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 @kaiachain/web3js-ext packages to add kaia features on web3
Define sender address, sender private key and new role-based private keys to be changed
Set up the provider with the specified kaia Baobab testnet URL. A provider in web3js is a read-only abstraction to access the blockchain data.
Also, you can change the provider URL from baobab to allthatnode
Define a web3 instance using the provider
Create a sender's wallet with the updater role private key and provider
Compute the public keys from the new role-based private keys
Declare a transaction in the keys field with the computed role-based public keys
Sign the transaction with sender's wallet
Send the signed tx to the blockchain. It will return the receipt of the transaction