Transfer funds without ensuring min balance for sender
On-chain name of extrinsic: balances_transferAllowDeath
Parameters
avail-js
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, KilledAccount (optionally) event, transaction hash and block hash is returned.
Minimal Example
-
You will need to set up the dev environment required to run this example. For instructions, check out our docs here.
-
If you’re sending an extrinsic (i.e conducting a transaction) you will need to replace the demo seed phrase with your own seed phrase. The rest of the code should work as is.
avail-js
- Inside
your-file-name.ts
, add the following code:
avail-js
import * as dotenv from 'dotenv';
import { Account, SDK, BN } from 'avail-js-sdk';
dotenv.config();
export async function transferAllowDeath() {
// Initialize SDK with Turing endpoint
const sdk = await SDK.New('wss://turing-rpc.avail.so/ws');
// Create account from seed in .env file
const seed = process.env.SEED;
if (!seed) {
throw new Error("SEED environment variable is not set");
}
// Create account from seed
const account = Account.new(seed);
console.log("Sender Address: ", account.address);
// Destination address to send AVAIL to
const destinationAddress = "5DDY2yzh8uCysYFAiRSTeQVwtZSKNF49CkQkyPH852xvrYKk";
console.log("Recipient Address: ", destinationAddress);
// Amount to transfer: 12.345 AVAIL
const amount = new BN('12345000000000000000');
// Create transfer transaction
const tx = sdk.tx.balances.transferAllowDeath(destinationAddress, amount);
console.log("Submitting transfer transaction...");
// Execute and wait for inclusion
const res = await tx.executeWaitForInclusion(account, {});
// Check if transaction was successful
const isOk = res.isSuccessful();
if (isOk === undefined) {
throw new Error("Cannot check if transaction was successful");
}
else if (!isOk) {
throw new Error("Transaction failed");
}
console.log("Transfer completed successfully");
console.log(`Transaction Hash: ${res.txHash}`);
console.log(`Block Hash: ${res.blockHash}`);
console.log(`Block Number: ${res.blockNumber}`);
process.exit(0);
}
// Execute the function
transferAllowDeath();
- Run the code using:
terminal
ts-node your-file-name.ts
Last updated on