Create a new nomination pool
On-chain name of method: nominationPools_create
Parameters
parameter | type | optional | description |
---|---|---|---|
amount | BN | false | The amount of funds to delegate to the pool |
root | string | false | The account to set as [PoolRoles::root ] |
nominator | string | false | The account to set as the [PoolRoles::nominator ] |
bouncer | string | false | The account to set as the [PoolRoles::bouncer ] |
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 for the failure is returned. On success, the function will return a object of type PoolCreateTxSuccess
.
This object contains the details of the transaction and your newly created nomination pool.
Minimal example
-
You will need to set up the dev enviornment 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.
- Inside
your-file-name.ts
, add the following code:
avail-js
import { SDK, WaitFor, Keyring, BN } from "avail-js-sdk"
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 amount = new BN(10).pow(new BN(18)).mul(new BN(10000)) // 10_000 Avail
const root: string = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" // Alice
const nominator: string = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" // Alice
const bouncer: string = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY" // Alice
const result = await sdk.tx.nominationPools.create(amount, root, nominator, bouncer, WaitFor.BlockInclusion, account)
if (result.isErr) {
console.log(result.reason)
process.exit(1)
}
console.log(JSON.stringify(result, null, 4))
process.exit()
}
main()
- Run the code using:
ts-node your-file-name.ts
Sample Response:
{
"isErr": false,
"event": {
"depositor": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
"poolId": "1"
},
"event2": {
"member": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
"poolId": "1",
"bonded": "10000",
"joined": "true"
},
"event": {
"key": "0x4d79417765736f6d654b6579",
"owner": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
"id": "10"
},
"events": [...],
"txHash": "0x5ae9edbd2a2da96eeffc14cf9050d711082890fa6bfb8749ad2c4947565f3bd2",
"txIndex": 1,
"blockHash": "0x152338c1b0696d12664cf3d4c159af3d54beca151ba1ea8b00989a66dc8050b0",
"blockNumber": 1
}