Bond AVAIL tokens on Avail DA
On-chain name of extrinsic: staking_bond
Parameters
avail-js
| parameter | type | optional | description | 
|---|---|---|---|
| value | BN | false | amount that is bond. 10^18 is equal to 1 AVL | 
| payee | StakingRewardDestination | false | Can be: “Stakzed”, “Stash”, “None” or an account address | 
| 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 | 
Returns
On failure, a reason of failure is returned. On Success, Bonded 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, Pallets } from 'avail-js-sdk';
 
dotenv.config();
 
export async function stakingBond() {
    // 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("Account Address: ", account.address);
 
  // Bond amount: 10,000 AVAIL
  const value = new BN(10_000).mul(new BN(10).pow(new BN(18)));
  console.log("Bond Amount: 10,000 AVAIL");
 
    // Reward destination
    const payee = "Staked";
    console.log("Reward Destination: ", payee);
    
    // Create bond transaction
    const tx = sdk.tx.staking.bond(value, payee);
    console.log("Submitting bond 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("Bond completed successfully");
    console.log(`Transaction Hash: ${res.txHash}`);
    console.log(`Block Hash: ${res.blockHash}`);
    
    process.exit(0);
}
 
// Execute the function
stakingBond();- Run the code using:
terminal
ts-node your-file-name.tsLast updated on