Configurations
Developers can develop wallet application using our web sdk. Install the
dcent-web-connector
from npm repository.npm install dcent-web-connector
Developer can access api through
window.DcentWebConnector
object or DcentWebConnector
object.const DcentWebConnector = require('dcent-web-connector')
- Must have a
D'CENT Biometric wallet
. You can get it at D'CENT website : https://dcentwallet.com/Shop - You need to install the lastest
D'CENT Bridge
. D'CENT Bridge Download : http://bridge.dcentwallet.com/download - D'CENT Biometric will be connected with your PC or Labtop using USB Cable(Micro USB 5-pin type).
All API functions return a
Promise
.
When function processing is completed, it is resolved. If an error occurs, it is rejected.
In either case, respond with a JSON object.{
"header": {
"version": "1.0",
"request_from": "",
"status": ""
},
"body": {
"command" : "",
"parameter" : {}
}
}
If D'CENT wallet isn't connected via USB, you'll get the following error:
{
"header": {
"version": "1.0",
"request_from": "ethereum",
"status": "error"
},
"body": {
"command": "transaction",
"error": {
"code": "user_cancel",
"message": "user cancel"
}
}
}
When executing a function that requires user authentication, an error occurs if the user cancels the authentication. The following shows the user cancel error in the Ethereum signed Transaction.
{
"header": {
"version": "1.0",
"request_from": "dcent-web",
"status": "error"
},
"body": {
"error": {
"code": "pop-up_closed",
"message": "Pop-up windows has been closed"
}
}
}
If the bridge service popup window is closed while calling a function and waiting, the following error occurs:
{
"header": {
"version": "1.0",
"request_from": "wam",
"status": "error"
},
"body": {
"error": {
"code": "no_device",
"message": "D'CENT Biometric Wallet is not connected"
}
}
}
dcent-web-connector
provides functions for using D'CENT Biometric Wallet.var result
try{
result = await DcentWebConnector.info()
}catch(e){
result = e
}
info()
returns :{
"header": {
"version": "1.0",
"request_from": "",
"status": ""
},
"body": {
"command" : "",
"parameter" : {
"version": "1.0.0",
"isUsbAttached": "true | false"
}
}
}
When the function is called from your web application, if D'CENT Bridge Service is not running as a pop-up,
dcent-web-connector
will automatically open a pop-up window and send a function request {
"header": {
"version": "1.0",
"response_from": "dcent-web",
"status": "error"
},
"body": {
"error": {
"code": "time_out",
"message": "The function execution time has expired"
}
}
}
All functions except setTimeOutMs function are called and then respond with
JSON Object
as below when timeout occurs. try {
await dcent.setTimeOutMs(60000) // 60 sec, The default value is 60 seconds.
} catch (e) {
console.log(e)
}
You can set the timeout time by calling
setTimeOutMs ()
as shown below.Sets the maximum time the function will run. Once set the timeout Time, it is valid until the value is set again. The default value is 60 seconds.
dcent-web-connector
will automatically open a pop-up window and send a function request. After each request to device is ended, it is recommended to close popup for enhancing user experience.var result
try{
result = await DcentWebConnector.info()
}catch(e){
result = e
}
// close pop-up window of D'CENT Bridge Service
DcentWebConnector.popupWindowClose()
Set listener for device connection state. Before processing a functions request,
dcent-web-connector
check the device connection state. If the state is changed, the device connection listener will be called.// device connection listener ( callback )
function connectionListener(state) {
if (state === DcentWebConnector.state.CONNECTED) {
console.log('DCENT is Connected');
} else if (state === DcentWebConnector.state.DISCONNECTED) {
console.log('DCENT is Disconnected');
}
}
try {
// set the device connection listener
DcentWebConnector.setConnectionListener(connectionListener)
} catch(e) {
}
All address path in the API should follow BIP44 rules.
m / purpose' / coin_type' / account' / change / address_index
DcentWebConnector.coinType
is defined in the source code below.You can get an address or XPUB for a specific private key with the APIs below.
You can find the APIs to generate signature for Ethereum, EVM compatible network.
You can find the APIs to generate signature for Klaytn network.
You can find the APIs to generate signature for Bitcoin and Bitcoin compatible network.
You can find the APIs to generate signature for XRPL transactions.
You can find the APIs to generate signature for Hedera transactions.