Public Account Key
AccountKeyPublic is used for accounts having one public key. If an account has an AccountKeyPublic object, the transaction validation process is done like below:
Import the ethers and @kaiachain/ethers-ext packages to add kaia features on ethers.js
Define sender's address and 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 sender's wallet, 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