Query docs with entries & keys, submittable with paymentInfo (#2041)
This commit is contained in:
@@ -62,6 +62,23 @@ const unsub = await api.tx.balances
|
||||
|
||||
Be aware that when a transaction status is `isFinalized`, it means it is included, but it may still have failed - for instance if you try to send a larger amount that you have free, the transaction is included in a block, however from a end-user perspective the transaction failed since the transfer did not occur. In these cases a `system.ExtrinsicFailed` event will be available in the events array.
|
||||
|
||||
## Payment information
|
||||
|
||||
The Polkadot/Substrate RPC endpoints exposes weight/payment information that takes an encoded extrinsic and calculates the on-chain weight fees for it. A wrapper for this is available on the tx itself, taking exactly the same parameters as you would pass to a normal `.signAndSend` operation, specifically `.paymentInfo(sender, <any options>)`. To expand on our previous example -
|
||||
|
||||
```js
|
||||
// construct a transaction
|
||||
const transfer = api.tx.balances.transfer(BOB, 12345);
|
||||
|
||||
// retrieve the payment info
|
||||
const { partialFee, weight } = await transfer.paymentInfo(alice);
|
||||
|
||||
console.log(`transaction will have a weight of ${weight}, with ${partialFee.toHuman()} weight fees`);
|
||||
|
||||
// send the tx
|
||||
transfer.signAndSend(alice, ({ events = [], status }) => { ... });
|
||||
```
|
||||
|
||||
## Complex transactions
|
||||
|
||||
In many cases transactions can carry quite complex information, be it for passing objects or proposing changes. In the next section we will take a dive [into complex transactions, including those wrapped for sudo](api.tx.wrap.md).
|
||||
|
||||
Reference in New Issue
Block a user