Transfer funds while ensuring min balance for sender
On-chain name of extrinsic: balances_transferKeepAlive
Parameters
parameter | type | optional | description |
---|---|---|---|
dest | string | false | account that will receive funds |
value | BN | false | amount that is send. 10^18 is equal to 1 AVL |
waitFor | WaitFor | false | wait for block inclusion or finalization |
account | KeyringPair | false | account that will send and sign the transaction |
options | SignerOptions | true | used to overwrite existing signer options |
Return value
On failure, a reason of failure is returned. On Success, TransferEvent event, transaction hash and block hash is returned.
Basic Example
- Inside
your-file-name.ts
, add the following code:
avail-js
import { Keyring } from "@polkadot/api"
import { SDK } from "avail-js-sdk"
import { WaitFor } from "avail-js-sdk/sdk/transactions"
import { BN } from "@polkadot/util"
const main = async () => {
const providerEndpoint = "wss://turing-rpc.avail.so/ws";
const sdk = await SDK.New(providerEndpoint)
const Alice = 'This is a random seed phrase please do not use it';
const account = new Keyring({ type: "sr25519" }).addFromUri(Alice)
const dest = "5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw" // Eve
const amount = new BN(10).pow(new BN(18)) // one Avail
const result = await sdk.tx.balances.transferKeepAlive(dest, amount, WaitFor.BlockInclusion, account)
if (result.isErr) {
console.log(result.reason)
process.exit(1)
}
console.log("From=" + result.event.from + ", To=" + result.event.to + ", Amount=" + result.event.amount)
console.log("TxHash=" + result.txHash + ", BlockHash=" + result.blockHash)
process.exit()
}
main()
- Run the code using:
ts-node your-file-name.ts