Role-based Account Key
AccountKeyRoleBased represents a role-based key. If an account has an AccountKeyRoleBased object and the transaction type is one except account update, the validation process is done according to each roles like below:
Import the ethers and @kaiachain/ethers-ext packages to add kaia features on ethers.js
Define sender's address and role-based private keys
Define receiver's address
Set up the provider with the specified kaia Baobab testnet URL. A provider in ethers is a read-only abstraction to access the blockchain data.
Also, you can change the provider URL from baobab to allthatnode
Create a sender's wallet with the private key and provider
Create a value transfer transaction with type: TxType.ValueTransfer
so that it can be recovered later with klay_recoverFromTransaction
Sign the transaction with the wallet that has role sending transaction, the populateTransaction
method add more params to the transaction object such as gas, nonce...
Send the signed transaction to kaia network
Wait for the transaction to be completed and print the receipt
Recover the address from signed transaction using klay_recoverFromMessage