Comment on page
🪐
Solana 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){
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.mapnode.sol
To connect MapNode Extension means to access the user's [blockchain - like Ethereum] account(s).
// Connect & get accounts
window.mapnode.sol.request({method: 'sol_accounts'});
// Alias for connection
window.mapnode.sol.request({method: 'sol_requestAccounts'});
//Check if dapp connected
window.mapnode.sol.isConnected();
To disconnect MapNode Extension, please use:
window.mapnode.sol.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.mapnode.sol.request({ method: 'sol_accounts' }).then(accounts => {
if (accounts[0]) {
// Do something with accounts
} else {
// Wallet not found
}
})
return
Promise<{data: Boolean}>
window.mapnode.sol.request({ method: 'has_wallet', params: ['solana'] })
// Example
window.mapnode.sol.request({ method: 'has_wallet', params: ['solana'] }).then(() => {
// Wallet Exists
}).catch(e => {
// Wallet not found
})
return: `Promise<({signature: base58, publicKey: PublicKey})>
// Example Sign Transaction
const signature = window.mapnode.sol.request({
method: 'sol_sign',
params: [<Transaction>]
}).then(({publicKey, signature}) => {
//Do something with publicKey and signature
});
return
Promise<boolean>
window.mapnode.sol.request({
method: 'sol_verify',
params: [signature, msg]
})
return
Promise<Solana RPC>
Currently only support HTTP(s) method Reference:window.mapnode.sol.request({method: '<Your Method>', params: [args1,....]})
Currently we only support some action event from wallet extension
window.mapnode.sol.on('event_name', callback);
//Example
window.mapnode.sol.on('close', () => window.location.reload());
window.mapnode.sol.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 |