Multisig Account Key
AccountKeyWeightedMultiSig is an account key type containing a threshold and WeightedPublicKeys which contains a list consisting of a public key and its weight.
In order for a transaction to be valid for an account associated with AccountKeyWeightedMultiSig, the following conditions should be satisfied: _ The weighted sum of the signed public keys should be larger than the threshold. _ The invalid signature should not be included in the transaction. * The number of signed public keys should be less than the number of weightedPublicKeys.
Import the ethers and @kaiachain/ethers-ext packages to add kaia features on ethers.js
Define sender's address, private key and others weighted multi-sig private keys
Define receiver's address
Set up the provider with the specified Kairos testnet URL. A provider in ethers is a read-only abstraction to access the blockchain data.
Also, you can change the provider URL from kairos to quicknode
Create 3 different wallets with the weighted multi-sig private keys 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 first wallet, the populateTransaction
method add more params to the transaction object such as gas, nonce...
Sign the transaction with second wallet
Sign the transaction with the third wallet and 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