Call Workflow
This diagram shows the call execution flow: starting with refund, passing through validation
(signature, nonce, mortality, fee payment), then pre-dispatch checks, followed by dispatch which emits events: PartiallyRefunded, AllRefunded and modifies storage: Crowdloans, Contributions, and finally post-dispatch where ExtrinsicSuccess is emitted and fees are settled.
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.
Click items to navigate. Pan and zoom to explore.
Used by: stakersdevelopers
The Big Picture
Processes refunds in batches to handle gas limits.
Use Cases
- Process refunds for failed campaigns
From Chain Metadata
Refund a failed crowdloan. The call will try to refund all contributors (excluding the creator) up to the limit defined by the `RefundContributorsLimit`. If the limit is reached, the call will stop and the crowdloan will be marked as partially refunded. It may be needed to dispatch this call multiple times to refund all contributors. The dispatch origin for this call must be _Signed_ and doesn't need to be the creator of the crowdloan. Parameters: `crowdloan_id`: The id of the crowdloan to refund.
Input Parameters
| # | Name | Type | Description |
|---|---|---|---|
| 0 | crowdloan_id | Compact<u32> Cpt | crowdloan_id (Compact<u32>) (SCALE compact -> integer) |
Permissions
Origin
Signed
Required Role
Permission data inferred from metadata. May be incomplete.
Requirements
- Crowdloan not finalized
- Has contributors
Effects
Events Emitted
Storage Modified
Postconditions
- Contributors refunded (up to limit)
- PartiallyRefunded or AllRefunded event emitted
Side Effects
- May need multiple calls
Code Examples
import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";
const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });
// Build refund call
const crowdloan_id = 0;
const call = api.tx[stringCamelCase("Crowdloan")][stringCamelCase("refund")](
crowdloan_id
);Runtime Info
- Pallet Index
- 27
- Call Index
- 4
- First Version
- v273
- Current Version
- v393