Skip to main content
Unlisted page
This page is unlisted. Search engines will not index it, and only users having a direct link can access it.

DCENT WalletConnect

The Structural Diagram to Know How WalletConnect Works

connector event subscription

function on(event : string , callback : (error : Error | null , payload : any | null ) => void ) : void
  • event : connect, disconnect, session_request, session_update, call_request, wc_sessionRequest, wc_sessionUpdate

create session (session_request)

async function createSession() : Promise<void>;

kill session (disconnect)

function killSession() : void

example code

import WalletConnect from "@dcentwallet/walletconnect-client";
import QRCodeModal from "@dcentwallet/qrcode-modal"


// if connect func exec , modal must be opened
const connect = async () => {
const qrcodeModalOptions = {};
const connector = new WalletConnect({ qrcodeModal: QRCodeModal, qrcodeModalOptions });
// create session
if(!connector.connected){
await connector.createSession({chainId : '' }) // in order to open modal, createSession is required
}
// subscribe connector event
subscribeToEvents();
}

// subscribe event function
// callback : (err, payload) => void
const subscribeToEvents = () => {
connector.on('session_update', async callback )
connector.on('connect', callback )
connector.on('disconnect', callback ) // kill session
}

const killSession = async () => {
if(connector) {
connector.killSession();
}
// attach reset your app state code
}

sendTransaction, signTransaction

async function sendTransaction({
from : string, // required
to : string, // required
gas : string, // required
gasPrice : string, //required
value : string, // required
data : string, // required
nonce : string, // required
}) : Promise<string> //required

async function signTransaction({
from: string, // required
to: string, // required
gas: string, // required
gasPrice: string, // required
value: string, // required
data: string, // required
nonce: string, // required
}): Promise<string>;
const tx = { from, to, nonce, gasPrice, gasLimit, value, data };
const sendTransactionResult = await connector.sendTransaction(tx) // sendTransactionResult returns transaction hash
const signTransactionResult = await connector.signTransaction(tx) // signTransactionResult returns signed transaction
// result returns transaction hash
  • Other connector methods : signMessage, signPersonalMessage, signTypedData
  • For more information, refer to the following:

https://docs.walletconnect.com/1.0/client-api

Get DCENT Wallet Address

connector.on('connect', (err, payload) => {
const { chainId, accounts } = payload.params[0];
const address = accounts[0] // DCENT Wallet Address
})

Request DCENT to create accounts

const qrcodeModalOptions = {}; // see below more details
const connector = new WalletConnect({ qrcodeModal: QRCodeModal, qrcodeModalOptions})

qrcodeModalOptions

  • qrcodeModalOptions interface
propertytyperequired
serviceNamestringrequired
accountsIAccount []not required
  • IAccount interface
propertytyperequiredexample
contractAddressstringrequired0x4c665BBafd28Ec9e5D792345f470ebFcA21E3d15
networkTypestringrequiredETHEREUM / POLYGON / …
namestringoptionalonly when networkType supports contract
symbolstringoptionalonly when networkType supports contract

example

const qrcodeModalOptions = {
serviceName: "insert your dapp name",
accounts: [
{
contractAddress: '',
networkType: 'XRP'
},
{
contractAddress: '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',
networkType: 'POLYGON',
name: 'USD Coin',
symbol: 'USDC',
},
{
contractAddress: '0xc2132d05d31c914a87c6611c10748aeb04b58e8f',
networkType: 'POLYGON',
name: 'Tether',
symbol: 'USDT'
}
]
};

const connector = new WalletConnect({ qrcodeModal : QRCodeModal, qrcodeModalOptions });

NetworkType List

Network types where you can create accounts. (Main Account & Token Account Support)

networkTypesupport contract
BITCOINX
BTC-SEGWITX
ETHEREUMO
RSKO
XRPO
MONACOINX
KLAYTNO
BITCOINCASHX
BCH-ABCX
ECASHX
ZCASHX
LITECOINX
LTC-SEGWITX
BITCOIN-GOLDX
DASHX
DIGIBYTEX
DGB-SEGWITX
RAVENCOINX
BINANCEO
STELLARO
ETH-CLASSICX
BITCOIN-SVX
TRONO
DOGECOINX
LUNIVERSEO
PALMX
FLAREX
XINFINO
CARDANOX
BSCO
POLYGONO
HORIZENX
HEDERAO
STACKSO
SOLANAO
POLKADOTX
CONFLUXO
HECOO
XDAIO
FANTOMO
CELOO
METADIUMO
KUCOINO
SONGBIRDO
AVALANCHEO
EWTO
ARBITRUMO
BODAO
OECO
HARMONYO
ORBITCHAINO
OPENCOINO
CRONOSO