Comment on page
🪐
Ronin DApps Integration
Welcome to MapNode Extension Wallet Developer Guide. This documentation contains guides for developers to get started developing on MapNode Extension Wallet.
To detect whether your browser is running MapNode Extension, please use:
if(window.MapNode || window.ethereum || window.ethereum?.isMapNode){
console.log('MapNode Extension is installed!');
}
Notice: MapNode Extension Testnet is under development and not available now. The MapNode Extension on Ethereum JavaScript provider API is specified by EIP-1193. Support
window.ethereum only
and removal window.web3
To connect MapNode Extension means to access the user's [blockchain - like Ethereum] account(s).
// Connect & get accounts
window.ethereum.request({method: 'eth_accounts'});
// Alias for connection
window.ethereum.request({method: 'eth_requestAccounts'});
//Check if dapp connected
window.ethereum.isConnected();
To disconnect MapNode Extension, please use:
window.ethereum.disconnect()
Once your account is connected, let's start experiencing more functions.
return
Promise<Array[String]>
- If wallet can not be found, return
[]
instead ofthrow Error
window.ethereum.request({ method: 'eth_accounts' }).then(accounts => {
if (accounts[0]) {
// Do something with accounts
} else {
// Wallet not found
}
})
return
Promise<{data: Boolean}>
window.ethereum.request({ method: 'has_wallet', params: ['ronin'] })
// Example
window.ethereum.request({ method: 'has_wallet', params: ['ronin'] }).then(() => {
// Wallet Exists
}).catch(e => {
// Wallet not found
})
return:
Promise<Signature | RPC: 2.0>
// Example Sign
const signature = window.ethereum.request({
method: 'eth_sign',
params: [
{
"to": "string",
"gas": "string",
"gasPrice": "string",
"value": "string",
"data": "string",
"nonce": "string"
}
]
});
return
Promise<hash>
window.ethereum.request({
method: 'eth_sendTransaction',
params: [
{
'to': 'string',
'gas': 'string',
'gasPrice': 'string',
'value': 'string',
'data': 'string',
'nonce': 'string'
}
]
})
window.ethereum.request({method: '<Your Method>', params: [args1,....]})
Currently we only support some action event from wallet extension
window.ethereum.on('event_name', callback);
//Example
window.ethereum.on('close', () => window.location.reload());
window.ethereum.on('accountsChanged', () => window.location.reload());
Events | Trigger |
---|---|
accountsChanged | Receive when active account changed in Extension |
networkChanged | Receive when active network changed in Extension |
chainChanged | Receive when active chain changed in Extension |
disconnect | Receive when disconnect from Extension |
close | Alias for disconnect event |
Method | Description |
---|---|
on(event, callback) | Add event listener |
off(event, callback) | Remove event listener |