docs
@ Register new asset with the asset manager
args
┌─────────┬────────────────┬────────────────────────────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼────────────────────────────────────────────────────┼──────────────────────────┤
│ 0 │ 'asset' │ 'MoonbeamRuntimeXcmConfigAssetType' │ 'ForeignAssetType' │
│ 1 │ 'metadata' │ 'MoonbeamRuntimeAssetConfigAssetRegistrarMetadata' │ 'AssetRegistrarMetadata' │
│ 2 │ 'minAmount' │ 'u128' │ 'Balance' │
│ 3 │ 'isSufficient' │ 'bool' │ 'bool' │
└─────────┴────────────────┴────────────────────────────────────────────────────┴──────────────────────────┘
docs
@ Change the amount of units we are charging per execution second
@ for a given ForeignAssetType
args
┌─────────┬───────────────────────┬─────────────────────────────────────┬────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────────┼─────────────────────────────────────┼────────────────────┤
│ 0 │ 'assetType' │ 'MoonbeamRuntimeXcmConfigAssetType' │ 'ForeignAssetType' │
│ 1 │ 'unitsPerSecond' │ 'u128' │ 'u128' │
│ 2 │ 'numAssetsWeightHint' │ 'u32' │ 'u32' │
└─────────┴───────────────────────┴─────────────────────────────────────┴────────────────────┘
docs
@ Change the xcm type mapping for a given assetId
@ We also change this if the previous units per second where pointing at the old
@ assetType
args
┌─────────┬───────────────────────┬─────────────────────────────────────┬────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────────┼─────────────────────────────────────┼────────────────────┤
│ 0 │ 'assetId' │ 'u128' │ 'AssetId' │
│ 1 │ 'newAssetType' │ 'MoonbeamRuntimeXcmConfigAssetType' │ 'ForeignAssetType' │
│ 2 │ 'numAssetsWeightHint' │ 'u32' │ 'u32' │
└─────────┴───────────────────────┴─────────────────────────────────────┴────────────────────┘
docs
args
┌─────────┬───────────────────────┬─────────────────────────────────────┬────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────────┼─────────────────────────────────────┼────────────────────┤
│ 0 │ 'assetType' │ 'MoonbeamRuntimeXcmConfigAssetType' │ 'ForeignAssetType' │
│ 1 │ 'numAssetsWeightHint' │ 'u32' │ 'u32' │
└─────────┴───────────────────────┴─────────────────────────────────────┴────────────────────┘
docs
@ Remove a given assetId -> assetType association
args
┌─────────┬───────────────────────┬────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────────┼────────┼───────────┤
│ 0 │ 'assetId' │ 'u128' │ 'AssetId' │
│ 1 │ 'numAssetsWeightHint' │ 'u32' │ 'u32' │
└─────────┴───────────────────────┴────────┴───────────┘
docs
@ Register a new local asset
@ No information is stored in this pallet about the local asset
@ The reason is that we dont need to hold a mapping between the multilocation
@ and the local asset, as this conversion is deterministic
@ Further, we dont allow xcm fee payment in local assets
args
┌─────────┬────────────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼───────────────┼─────────────┤
│ 0 │ 'creator' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'owner' │ 'AccountId20' │ 'AccountId' │
│ 2 │ 'isSufficient' │ 'bool' │ 'bool' │
│ 3 │ 'minBalance' │ 'u128' │ 'Balance' │
└─────────┴────────────────┴───────────────┴─────────────┘
docs
@ Destroy a given foreign assetId
@ The weight in this case is the one returned by the trait
@ plus the db writes and reads from removing all the associated
@ data
args
┌─────────┬───────────────────────┬──────────────────────────────┬───────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────────┼──────────────────────────────┼───────────────────────┤
│ 0 │ 'assetId' │ 'u128' │ 'AssetId' │
│ 1 │ 'destroyAssetWitness' │ 'PalletAssetsDestroyWitness' │ 'AssetDestroyWitness' │
│ 2 │ 'numAssetsWeightHint' │ 'u32' │ 'u32' │
└─────────┴───────────────────────┴──────────────────────────────┴───────────────────────┘
docs
@ Destroy a given local assetId
@ We do not store anything related to local assets in this pallet other than the counter
@ and the counter is not used for destroying the asset, so no additional db reads/writes
@ to be counter here
args
┌─────────┬───────────────────────┬──────────────────────────────┬───────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────────┼──────────────────────────────┼───────────────────────┤
│ 0 │ 'assetId' │ 'u128' │ 'AssetId' │
│ 1 │ 'destroyAssetWitness' │ 'PalletAssetsDestroyWitness' │ 'AssetDestroyWitness' │
└─────────┴───────────────────────┴──────────────────────────────┴───────────────────────┘
docs
@ Issue a new class of fungible assets from a public origin.
@
@ This new asset class has no assets initially and its owner is the origin.
@
@ The origin must be Signed and the sender must have sufficient funds free.
@
@ Funds of sender are reserved by `AssetDeposit`.
@
@ Parameters:
@ - `id`: The identifier of the new asset. This must not be currently in use to identify
@ an existing asset.
@ - `admin`: The admin of this class of assets. The admin is the initial address of each
@ member of the asset class's admin team.
@ - `min_balance`: The minimum balance of this new asset that any single account must
@ have. If an account's balance is reduced below this, then it collapses to zero.
@
@ Emits `Created` event when successful.
@
@ Weight: `O(1)`
args
┌─────────┬──────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'admin' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'minBalance' │ 'u128' │ 'Balance' │
└─────────┴──────────────┴─────────────────┴────────────────┘
docs
@ Issue a new class of fungible assets from a privileged origin.
@
@ This new asset class has no assets initially.
@
@ The origin must conform to `ForceOrigin`.
@
@ Unlike `create`, no funds are reserved.
@
@ - `id`: The identifier of the new asset. This must not be currently in use to identify
@ an existing asset.
@ - `owner`: The owner of this class of assets. The owner has full superuser permissions
@ over this asset, but may later change and configure the permissions using
@ `transfer_ownership` and `set_team`.
@ - `min_balance`: The minimum balance of this new asset that any single account must
@ have. If an account's balance is reduced below this, then it collapses to zero.
@
@ Emits `ForceCreated` event when successful.
@
@ Weight: `O(1)`
args
┌─────────┬────────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'owner' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'isSufficient' │ 'bool' │ 'bool' │
│ 3 │ 'minBalance' │ 'Compact<u128>' │ 'Balance' │
└─────────┴────────────────┴─────────────────┴────────────────┘
docs
@ Destroy a class of fungible assets.
@
@ The origin must conform to `ForceOrigin` or must be Signed and the sender must be the
@ owner of the asset `id`.
@
@ - `id`: The identifier of the asset to be destroyed. This must identify an existing
@ asset.
@
@ Emits `Destroyed` event when successful.
@
@ NOTE: It can be helpful to first freeze an asset before destroying it so that you
@ can provide accurate witness information and prevent users from manipulating state
@ in a way that can make it harder to destroy.
@
@ Weight: `O(c + p + a)` where:
@ - `c = (witness.accounts - witness.sufficients)`
@ - `s = witness.sufficients`
@ - `a = witness.approvals`
args
┌─────────┬───────────┬──────────────────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼──────────────────────────────┼──────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'witness' │ 'PalletAssetsDestroyWitness' │ 'DestroyWitness' │
└─────────┴───────────┴──────────────────────────────┴──────────────────┘
docs
@ Mint assets of a particular class.
@
@ The origin must be Signed and the sender must be the Issuer of the asset `id`.
@
@ - `id`: The identifier of the asset to have some amount minted.
@ - `beneficiary`: The account to be credited with the minted assets.
@ - `amount`: The amount of the asset to be minted.
@
@ Emits `Issued` event when successful.
@
@ Weight: `O(1)`
@ Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`.
args
┌─────────┬───────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'beneficiary' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴───────────────┴─────────────────┴────────────────┘
docs
@ Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.
@
@ Origin must be Signed and the sender should be the Manager of the asset `id`.
@
@ Bails with `NoAccount` if the `who` is already dead.
@
@ - `id`: The identifier of the asset to have some amount burned.
@ - `who`: The account to be debited from.
@ - `amount`: The maximum amount by which `who`'s balance should be reduced.
@
@ Emits `Burned` with the actual amount burned. If this takes the balance to below the
@ minimum for the asset, then the amount burned is increased to take it to zero.
@
@ Weight: `O(1)`
@ Modes: Post-existence of `who`; Pre & post Zombie-status of `who`.
args
┌─────────┬──────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'who' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴──────────┴─────────────────┴────────────────┘
docs
@ Move some assets from the sender account to another.
@
@ Origin must be Signed.
@
@ - `id`: The identifier of the asset to have some amount transferred.
@ - `target`: The account to be credited.
@ - `amount`: The amount by which the sender's balance of assets should be reduced and
@ `target`'s balance increased. The amount actually transferred may be slightly greater in
@ the case that the transfer would otherwise take the sender balance above zero but below
@ the minimum balance. Must be greater than zero.
@
@ Emits `Transferred` with the actual amount transferred. If this takes the source balance
@ to below the minimum for the asset, then the amount transferred is increased to take it
@ to zero.
@
@ Weight: `O(1)`
@ Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of
@ `target`.
args
┌─────────┬──────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'target' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴──────────┴─────────────────┴────────────────┘
docs
@ Move some assets from the sender account to another, keeping the sender account alive.
@
@ Origin must be Signed.
@
@ - `id`: The identifier of the asset to have some amount transferred.
@ - `target`: The account to be credited.
@ - `amount`: The amount by which the sender's balance of assets should be reduced and
@ `target`'s balance increased. The amount actually transferred may be slightly greater in
@ the case that the transfer would otherwise take the sender balance above zero but below
@ the minimum balance. Must be greater than zero.
@
@ Emits `Transferred` with the actual amount transferred. If this takes the source balance
@ to below the minimum for the asset, then the amount transferred is increased to take it
@ to zero.
@
@ Weight: `O(1)`
@ Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of
@ `target`.
args
┌─────────┬──────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'target' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴──────────┴─────────────────┴────────────────┘
docs
@ Move some assets from one account to another.
@
@ Origin must be Signed and the sender should be the Admin of the asset `id`.
@
@ - `id`: The identifier of the asset to have some amount transferred.
@ - `source`: The account to be debited.
@ - `dest`: The account to be credited.
@ - `amount`: The amount by which the `source`'s balance of assets should be reduced and
@ `dest`'s balance increased. The amount actually transferred may be slightly greater in
@ the case that the transfer would otherwise take the `source` balance above zero but
@ below the minimum balance. Must be greater than zero.
@
@ Emits `Transferred` with the actual amount transferred. If this takes the source balance
@ to below the minimum for the asset, then the amount transferred is increased to take it
@ to zero.
@
@ Weight: `O(1)`
@ Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of
@ `dest`.
args
┌─────────┬──────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'source' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'dest' │ 'AccountId20' │ 'LookupSource' │
│ 3 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴──────────┴─────────────────┴────────────────┘
docs
@ Disallow further unprivileged transfers from an account.
@
@ Origin must be Signed and the sender should be the Freezer of the asset `id`.
@
@ - `id`: The identifier of the asset to be frozen.
@ - `who`: The account to be frozen.
@
@ Emits `Frozen`.
@
@ Weight: `O(1)`
args
┌─────────┬───────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'who' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────┴─────────────────┴────────────────┘
docs
@ Allow unprivileged transfers from an account again.
@
@ Origin must be Signed and the sender should be the Admin of the asset `id`.
@
@ - `id`: The identifier of the asset to be frozen.
@ - `who`: The account to be unfrozen.
@
@ Emits `Thawed`.
@
@ Weight: `O(1)`
args
┌─────────┬───────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'who' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────┴─────────────────┴────────────────┘
docs
@ Disallow further unprivileged transfers for the asset class.
@
@ Origin must be Signed and the sender should be the Freezer of the asset `id`.
@
@ - `id`: The identifier of the asset to be frozen.
@
@ Emits `Frozen`.
@
@ Weight: `O(1)`
args
┌─────────┬──────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
└─────────┴──────┴─────────────────┴───────────┘
docs
@ Allow unprivileged transfers for the asset again.
@
@ Origin must be Signed and the sender should be the Admin of the asset `id`.
@
@ - `id`: The identifier of the asset to be thawed.
@
@ Emits `Thawed`.
@
@ Weight: `O(1)`
args
┌─────────┬──────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
└─────────┴──────┴─────────────────┴───────────┘
docs
@ Change the Owner of an asset.
@
@ Origin must be Signed and the sender should be the Owner of the asset `id`.
@
@ - `id`: The identifier of the asset.
@ - `owner`: The new Owner of this asset.
@
@ Emits `OwnerChanged`.
@
@ Weight: `O(1)`
args
┌─────────┬─────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'owner' │ 'AccountId20' │ 'LookupSource' │
└─────────┴─────────┴─────────────────┴────────────────┘
docs
@ Change the Issuer, Admin and Freezer of an asset.
@
@ Origin must be Signed and the sender should be the Owner of the asset `id`.
@
@ - `id`: The identifier of the asset to be frozen.
@ - `issuer`: The new Issuer of this asset.
@ - `admin`: The new Admin of this asset.
@ - `freezer`: The new Freezer of this asset.
@
@ Emits `TeamChanged`.
@
@ Weight: `O(1)`
args
┌─────────┬───────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'issuer' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'admin' │ 'AccountId20' │ 'LookupSource' │
│ 3 │ 'freezer' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────────┴─────────────────┴────────────────┘
docs
@ Set the metadata for an asset.
@
@ Origin must be Signed and the sender should be the Owner of the asset `id`.
@
@ Funds of sender are reserved according to the formula:
@ `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into
@ account any already reserved funds.
@
@ - `id`: The identifier of the asset to update.
@ - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.
@ - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.
@ - `decimals`: The number of decimals this asset uses to represent one unit.
@
@ Emits `MetadataSet`.
@
@ Weight: `O(1)`
args
┌─────────┬────────────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'name' │ 'Bytes' │ 'Bytes' │
│ 2 │ 'symbol' │ 'Bytes' │ 'Bytes' │
│ 3 │ 'decimals' │ 'u8' │ 'u8' │
└─────────┴────────────┴─────────────────┴───────────┘
docs
@ Clear the metadata for an asset.
@
@ Origin must be Signed and the sender should be the Owner of the asset `id`.
@
@ Any deposit is freed for the asset owner.
@
@ - `id`: The identifier of the asset to clear.
@
@ Emits `MetadataCleared`.
@
@ Weight: `O(1)`
args
┌─────────┬──────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
└─────────┴──────┴─────────────────┴───────────┘
docs
@ Force the metadata for an asset to some value.
@
@ Origin must be ForceOrigin.
@
@ Any deposit is left alone.
@
@ - `id`: The identifier of the asset to update.
@ - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.
@ - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.
@ - `decimals`: The number of decimals this asset uses to represent one unit.
@
@ Emits `MetadataSet`.
@
@ Weight: `O(N + S)` where N and S are the length of the name and symbol respectively.
args
┌─────────┬────────────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'name' │ 'Bytes' │ 'Bytes' │
│ 2 │ 'symbol' │ 'Bytes' │ 'Bytes' │
│ 3 │ 'decimals' │ 'u8' │ 'u8' │
│ 4 │ 'isFrozen' │ 'bool' │ 'bool' │
└─────────┴────────────┴─────────────────┴───────────┘
docs
@ Clear the metadata for an asset.
@
@ Origin must be ForceOrigin.
@
@ Any deposit is returned.
@
@ - `id`: The identifier of the asset to clear.
@
@ Emits `MetadataCleared`.
@
@ Weight: `O(1)`
args
┌─────────┬──────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
└─────────┴──────┴─────────────────┴───────────┘
docs
@ Alter the attributes of a given asset.
@
@ Origin must be `ForceOrigin`.
@
@ - `id`: The identifier of the asset.
@ - `owner`: The new Owner of this asset.
@ - `issuer`: The new Issuer of this asset.
@ - `admin`: The new Admin of this asset.
@ - `freezer`: The new Freezer of this asset.
@ - `min_balance`: The minimum balance of this new asset that any single account must
@ have. If an account's balance is reduced below this, then it collapses to zero.
@ - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient
@ value to account for the state bloat associated with its balance storage. If set to
@ `true`, then non-zero balances may be stored without a `consumer` reference (and thus
@ an ED in the Balances pallet or whatever else is used to control user-account state
@ growth).
@ - `is_frozen`: Whether this asset class is frozen except for permissioned/admin
@ instructions.
@
@ Emits `AssetStatusChanged` with the identity of the asset.
@
@ Weight: `O(1)`
args
┌─────────┬────────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'owner' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'issuer' │ 'AccountId20' │ 'LookupSource' │
│ 3 │ 'admin' │ 'AccountId20' │ 'LookupSource' │
│ 4 │ 'freezer' │ 'AccountId20' │ 'LookupSource' │
│ 5 │ 'minBalance' │ 'Compact<u128>' │ 'Balance' │
│ 6 │ 'isSufficient' │ 'bool' │ 'bool' │
│ 7 │ 'isFrozen' │ 'bool' │ 'bool' │
└─────────┴────────────────┴─────────────────┴────────────────┘
docs
@ Approve an amount of asset for transfer by a delegated third-party account.
@
@ Origin must be Signed.
@
@ Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account
@ for the purpose of holding the approval. If some non-zero amount of assets is already
@ approved from signing account to `delegate`, then it is topped up or unreserved to
@ meet the right value.
@
@ NOTE: The signing account does not need to own `amount` of assets at the point of
@ making this call.
@
@ - `id`: The identifier of the asset.
@ - `delegate`: The account to delegate permission to transfer asset.
@ - `amount`: The amount of asset that may be transferred by `delegate`. If there is
@ already an approval in place, then this acts additively.
@
@ Emits `ApprovedTransfer` on success.
@
@ Weight: `O(1)`
args
┌─────────┬────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'delegate' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴────────────┴─────────────────┴────────────────┘
docs
@ Cancel all of some asset approved for delegated transfer by a third-party account.
@
@ Origin must be Signed and there must be an approval in place between signer and
@ `delegate`.
@
@ Unreserves any deposit previously reserved by `approve_transfer` for the approval.
@
@ - `id`: The identifier of the asset.
@ - `delegate`: The account delegated permission to transfer asset.
@
@ Emits `ApprovalCancelled` on success.
@
@ Weight: `O(1)`
args
┌─────────┬────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'delegate' │ 'AccountId20' │ 'LookupSource' │
└─────────┴────────────┴─────────────────┴────────────────┘
docs
@ Cancel all of some asset approved for delegated transfer by a third-party account.
@
@ Origin must be either ForceOrigin or Signed origin with the signer being the Admin
@ account of the asset `id`.
@
@ Unreserves any deposit previously reserved by `approve_transfer` for the approval.
@
@ - `id`: The identifier of the asset.
@ - `delegate`: The account delegated permission to transfer asset.
@
@ Emits `ApprovalCancelled` on success.
@
@ Weight: `O(1)`
args
┌─────────┬────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'owner' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'delegate' │ 'AccountId20' │ 'LookupSource' │
└─────────┴────────────┴─────────────────┴────────────────┘
docs
@ Transfer some asset balance from a previously delegated account to some third-party
@ account.
@
@ Origin must be Signed and there must be an approval in place by the `owner` to the
@ signer.
@
@ If the entire amount approved for transfer is transferred, then any deposit previously
@ reserved by `approve_transfer` is unreserved.
@
@ - `id`: The identifier of the asset.
@ - `owner`: The account which previously approved for a transfer of at least `amount` and
@ from which the asset balance will be withdrawn.
@ - `destination`: The account to which the asset balance of `amount` will be transferred.
@ - `amount`: The amount of assets to transfer.
@
@ Emits `TransferredApproved` on success.
@
@ Weight: `O(1)`
args
┌─────────┬───────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'owner' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'destination' │ 'AccountId20' │ 'LookupSource' │
│ 3 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴───────────────┴─────────────────┴────────────────┘
docs
@ Create an asset account for non-provider assets.
@
@ A deposit will be taken from the signer account.
@
@ - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit
@ to be taken.
@ - `id`: The identifier of the asset for the account to be created.
@
@ Emits `Touched` event when successful.
args
┌─────────┬──────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
└─────────┴──────┴─────────────────┴───────────┘
docs
@ Return the deposit (if any) of an asset account.
@
@ The origin must be Signed.
@
@ - `id`: The identifier of the asset for the account to be created.
@ - `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.
@
@ Emits `Refunded` event when successful.
args
┌─────────┬─────────────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'allowBurn' │ 'bool' │ 'bool' │
└─────────┴─────────────┴─────────────────┴───────────┘
docs
@ Update the eligible count. Intended to be called by governance.
args
┌─────────┬───────┬───────┬────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼───────┼────────────────────┤
│ 0 │ 'new' │ 'u32' │ 'EligibilityValue' │
└─────────┴───────┴───────┴────────────────────┘
docs
@ This inherent is a workaround to run code after the "real" inherents have executed,
@ but before transactions are executed.
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Register your NimbusId onchain so blocks you author are associated with your account.
@
@ Users who have been (or will soon be) elected active collators in staking,
@ should submit this extrinsic to have their blocks accepted and earn rewards.
args
┌─────────┬────────────┬──────────────────────────────────────┬────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼──────────────────────────────────────┼────────────┤
│ 0 │ 'authorId' │ 'NimbusPrimitivesNimbusCryptoPublic' │ 'NimbusId' │
└─────────┴────────────┴──────────────────────────────────────┴────────────┘
docs
@ Change your Mapping.
@
@ This is useful for normal key rotation or for when switching from one physical collator
@ machine to another. No new security deposit is required.
@ This sets keys to new_author_id.into() by default.
args
┌─────────┬───────────────┬──────────────────────────────────────┬────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼──────────────────────────────────────┼────────────┤
│ 0 │ 'oldAuthorId' │ 'NimbusPrimitivesNimbusCryptoPublic' │ 'NimbusId' │
│ 1 │ 'newAuthorId' │ 'NimbusPrimitivesNimbusCryptoPublic' │ 'NimbusId' │
└─────────┴───────────────┴──────────────────────────────────────┴────────────┘
docs
@ Clear your Mapping.
@
@ This is useful when you are no longer an author and would like to re-claim your security
@ deposit.
args
┌─────────┬────────────┬──────────────────────────────────────┬────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼──────────────────────────────────────┼────────────┤
│ 0 │ 'authorId' │ 'NimbusPrimitivesNimbusCryptoPublic' │ 'NimbusId' │
└─────────┴────────────┴──────────────────────────────────────┴────────────┘
docs
@ Add association and set session keys
args
┌─────────┬────────────┬──────────────────────────────────────┬────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼──────────────────────────────────────┼────────────┤
│ 0 │ 'authorId' │ 'NimbusPrimitivesNimbusCryptoPublic' │ 'NimbusId' │
│ 1 │ 'keys' │ 'NimbusPrimitivesNimbusCryptoPublic' │ 'Keys' │
└─────────┴────────────┴──────────────────────────────────────┴────────────┘
docs
@ Set association and session keys at once.
@
@ This is useful for key rotation to update Nimbus and VRF keys in one call.
@ No new security deposit is required. Will replace `update_association` which is kept
@ now for backwards compatibility reasons.
args
┌─────────┬───────────────┬──────────────────────────────────────┬────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼──────────────────────────────────────┼────────────┤
│ 0 │ 'oldAuthorId' │ 'NimbusPrimitivesNimbusCryptoPublic' │ 'NimbusId' │
│ 1 │ 'newAuthorId' │ 'NimbusPrimitivesNimbusCryptoPublic' │ 'NimbusId' │
│ 2 │ 'newKeys' │ 'NimbusPrimitivesNimbusCryptoPublic' │ 'Keys' │
└─────────┴───────────────┴──────────────────────────────────────┴────────────┘
docs
@ Transfer some liquid free balance to another account.
@
@ `transfer` will set the `FreeBalance` of the sender and receiver.
@ If the sender's account is below the existential deposit as a result
@ of the transfer, the account will be reaped.
@
@ The dispatch origin for this call must be `Signed` by the transactor.
@
@ # <weight>
@ - Dependent on arguments but not critical, given proper implementations for input config
@ types. See related functions below.
@ - It contains a limited number of reads and writes internally and no complex
@ computation.
@
@ Related functions:
@
@ - `ensure_can_withdraw` is always called internally but has a bounded complexity.
@ - Transferring balances to accounts that did not exist before will cause
@ `T::OnNewAccount::on_new_account` to be called.
@ - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.
@ - `transfer_keep_alive` works the same way as `transfer`, but has an additional check
@ that the transfer will not kill the origin account.
@ ---------------------------------
@ - Origin account is already in memory, so no DB operations for them.
@ # </weight>
args
┌─────────┬─────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼─────────────────┼────────────────┤
│ 0 │ 'dest' │ 'AccountId20' │ 'LookupSource' │
│ 1 │ 'value' │ 'Compact<u128>' │ 'Balance' │
└─────────┴─────────┴─────────────────┴────────────────┘
docs
@ Set the balances of a given account.
@
@ This will alter `FreeBalance` and `ReservedBalance` in storage. it will
@ also alter the total issuance of the system (`TotalIssuance`) appropriately.
@ If the new free or reserved balance is below the existential deposit,
@ it will reset the account nonce (`frame_system::AccountNonce`).
@
@ The dispatch origin for this call is `root`.
args
┌─────────┬───────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼─────────────────┼────────────────┤
│ 0 │ 'who' │ 'AccountId20' │ 'LookupSource' │
│ 1 │ 'newFree' │ 'Compact<u128>' │ 'Balance' │
│ 2 │ 'newReserved' │ 'Compact<u128>' │ 'Balance' │
└─────────┴───────────────┴─────────────────┴────────────────┘
docs
@ Exactly as `transfer`, except the origin must be root and the source account may be
@ specified.
@ # <weight>
@ - Same as transfer, but additional read and write because the source account is not
@ assumed to be in the overlay.
@ # </weight>
args
┌─────────┬──────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼─────────────────┼────────────────┤
│ 0 │ 'source' │ 'AccountId20' │ 'LookupSource' │
│ 1 │ 'dest' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'value' │ 'Compact<u128>' │ 'Balance' │
└─────────┴──────────┴─────────────────┴────────────────┘
docs
@ Same as the [`transfer`] call, but with a check that the transfer will not kill the
@ origin account.
@
@ 99% of the time you want [`transfer`] instead.
@
@ [`transfer`]: struct.Pallet.html#method.transfer
args
┌─────────┬─────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼─────────────────┼────────────────┤
│ 0 │ 'dest' │ 'AccountId20' │ 'LookupSource' │
│ 1 │ 'value' │ 'Compact<u128>' │ 'Balance' │
└─────────┴─────────┴─────────────────┴────────────────┘
docs
@ Transfer the entire transferable balance from the caller account.
@
@ NOTE: This function only attempts to transfer _transferable_ balances. This means that
@ any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be
@ transferred by this function. To ensure that this function results in a killed account,
@ you might need to prepare the account by removing any reference counters, storage
@ deposits, etc...
@
@ The dispatch origin of this call must be Signed.
@
@ - `dest`: The recipient of the transfer.
@ - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all
@ of the funds the account has, causing the sender account to be killed (false), or
@ transfer everything except at least the existential deposit, which will guarantee to
@ keep the sender account alive (true). # <weight>
@ - O(1). Just like transfer, but reading the user's transferable balance first.
@ #</weight>
args
┌─────────┬─────────────┬───────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼───────────────┼────────────────┤
│ 0 │ 'dest' │ 'AccountId20' │ 'LookupSource' │
│ 1 │ 'keepAlive' │ 'bool' │ 'bool' │
└─────────┴─────────────┴───────────────┴────────────────┘
docs
@ Unreserve some balance from a user by force.
@
@ Can only be called by ROOT.
args
┌─────────┬──────────┬───────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼───────────────┼────────────────┤
│ 0 │ 'who' │ 'AccountId20' │ 'LookupSource' │
│ 1 │ 'amount' │ 'u128' │ 'Balance' │
└─────────┴──────────┴───────────────┴────────────────┘
docs
args
┌─────────┬───────┬────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼────────┼──────────┤
│ 0 │ 'fee' │ 'U256' │ 'U256' │
└─────────┴───────┴────────┴──────────┘
docs
args
┌─────────┬────────────┬────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼────────┼──────────┤
│ 0 │ 'isActive' │ 'bool' │ 'bool' │
└─────────┴────────────┴────────┴──────────┘
docs
args
┌─────────┬──────────────┬───────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼───────────┼───────────┤
│ 0 │ 'elasticity' │ 'Permill' │ 'Permill' │
└─────────┴──────────────┴───────────┴───────────┘
docs
@ Set the collective's membership.
@
@ - `new_members`: The new member list. Be nice to the chain and provide it sorted.
@ - `prime`: The prime member whose vote sets the default.
@ - `old_count`: The upper bound for the previous number of members in storage. Used for
@ weight estimation.
@
@ Requires root origin.
@
@ NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but
@ the weight estimations rely on it to estimate dispatchable weight.
@
@ # WARNING:
@
@ The `pallet-collective` can also be managed by logic outside of the pallet through the
@ implementation of the trait [`ChangeMembers`].
@ Any call to `set_members` must be careful that the member set doesn't get out of sync
@ with other logic managing the member set.
@
@ # <weight>
@ ## Weight
@ - `O(MP + N)` where:
@ - `M` old-members-count (code- and governance-bounded)
@ - `N` new-members-count (code- and governance-bounded)
@ - `P` proposals-count (code-bounded)
@ - DB:
@ - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the
@ members
@ - 1 storage read (codec `O(P)`) for reading the proposals
@ - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal
@ - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one
@ # </weight>
args
┌─────────┬──────────────┬───────────────────────┬─────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼───────────────────────┼─────────────────────┤
│ 0 │ 'newMembers' │ 'Vec<AccountId20>' │ 'Vec<AccountId>' │
│ 1 │ 'prime' │ 'Option<AccountId20>' │ 'Option<AccountId>' │
│ 2 │ 'oldCount' │ 'u32' │ 'MemberCount' │
└─────────┴──────────────┴───────────────────────┴─────────────────────┘
docs
@ Dispatch a proposal from a member using the `Member` origin.
@
@ Origin must be a member of the collective.
@
@ # <weight>
@ ## Weight
@ - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching
@ `proposal`
@ - DB: 1 read (codec `O(M)`) + DB access of `proposal`
@ - 1 event
@ # </weight>
args
┌─────────┬───────────────┬────────────────┬────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼────────────────┼────────────┤
│ 0 │ 'proposal' │ 'Call' │ 'Proposal' │
│ 1 │ 'lengthBound' │ 'Compact<u32>' │ 'u32' │
└─────────┴───────────────┴────────────────┴────────────┘
docs
@ Add a new proposal to either be voted on or executed directly.
@
@ Requires the sender to be member.
@
@ `threshold` determines whether `proposal` is executed directly (`threshold < 2`)
@ or put up for voting.
@
@ # <weight>
@ ## Weight
@ - `O(B + M + P1)` or `O(B + M + P2)` where:
@ - `B` is `proposal` size in bytes (length-fee-bounded)
@ - `M` is members-count (code- and governance-bounded)
@ - branching is influenced by `threshold` where:
@ - `P1` is proposal execution complexity (`threshold < 2`)
@ - `P2` is proposals-count (code-bounded) (`threshold >= 2`)
@ - DB:
@ - 1 storage read `is_member` (codec `O(M)`)
@ - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)
@ - DB accesses influenced by `threshold`:
@ - EITHER storage accesses done by `proposal` (`threshold < 2`)
@ - OR proposal insertion (`threshold <= 2`)
@ - 1 storage mutation `Proposals` (codec `O(P2)`)
@ - 1 storage mutation `ProposalCount` (codec `O(1)`)
@ - 1 storage write `ProposalOf` (codec `O(B)`)
@ - 1 storage write `Voting` (codec `O(M)`)
@ - 1 event
@ # </weight>
args
┌─────────┬───────────────┬────────────────┬───────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼────────────────┼───────────────┤
│ 0 │ 'threshold' │ 'Compact<u32>' │ 'MemberCount' │
│ 1 │ 'proposal' │ 'Call' │ 'Proposal' │
│ 2 │ 'lengthBound' │ 'Compact<u32>' │ 'u32' │
└─────────┴───────────────┴────────────────┴───────────────┘
docs
@ Add an aye or nay vote for the sender to the given proposal.
@
@ Requires the sender to be a member.
@
@ Transaction fees will be waived if the member is voting on any particular proposal
@ for the first time and the call is successful. Subsequent vote changes will charge a
@ fee.
@ # <weight>
@ ## Weight
@ - `O(M)` where `M` is members-count (code- and governance-bounded)
@ - DB:
@ - 1 storage read `Members` (codec `O(M)`)
@ - 1 storage mutation `Voting` (codec `O(M)`)
@ - 1 event
@ # </weight>
args
┌─────────┬────────────┬────────────────┬─────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼────────────────┼─────────────────┤
│ 0 │ 'proposal' │ 'H256' │ 'Hash' │
│ 1 │ 'index' │ 'Compact<u32>' │ 'ProposalIndex' │
│ 2 │ 'approve' │ 'bool' │ 'bool' │
└─────────┴────────────┴────────────────┴─────────────────┘
docs
@ Close a vote that is either approved, disapproved or whose voting period has ended.
@
@ May be called by any signed account in order to finish voting and close the proposal.
@
@ If called before the end of the voting period it will only close the vote if it is
@ has enough votes to be approved or disapproved.
@
@ If called after the end of the voting period abstentions are counted as rejections
@ unless there is a prime member set and the prime member cast an approval.
@
@ If the close operation completes successfully with disapproval, the transaction fee will
@ be waived. Otherwise execution of the approved operation will be charged to the caller.
@
@ + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed
@ proposal.
@ + `length_bound`: The upper bound for the length of the proposal in storage. Checked via
@ `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length.
@
@ # <weight>
@ ## Weight
@ - `O(B + M + P1 + P2)` where:
@ - `B` is `proposal` size in bytes (length-fee-bounded)
@ - `M` is members-count (code- and governance-bounded)
@ - `P1` is the complexity of `proposal` preimage.
@ - `P2` is proposal-count (code-bounded)
@ - DB:
@ - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)
@ - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec
@ `O(P2)`)
@ - any mutations done while executing `proposal` (`P1`)
@ - up to 3 events
@ # </weight>
args
┌─────────┬───────────────────────┬────────────────┬─────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────────┼────────────────┼─────────────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
│ 1 │ 'index' │ 'Compact<u32>' │ 'ProposalIndex' │
│ 2 │ 'proposalWeightBound' │ 'Compact<u64>' │ 'Weight' │
│ 3 │ 'lengthBound' │ 'Compact<u32>' │ 'u32' │
└─────────┴───────────────────────┴────────────────┴─────────────────┘
docs
@ Disapprove a proposal, close, and remove it from the system, regardless of its current
@ state.
@
@ Must be called by the Root origin.
@
@ Parameters:
@ * `proposal_hash`: The hash of the proposal that should be disapproved.
@
@ # <weight>
@ Complexity: O(P) where P is the number of max proposals
@ DB Weight:
@ * Reads: Proposals
@ * Writes: Voting, Proposals, ProposalOf
@ # </weight>
args
┌─────────┬────────────────┬────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼────────┼──────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
└─────────┴────────────────┴────────┴──────────┘
docs
@ Associate a native rewards_destination identity with a crowdloan contribution.
@
@ The caller needs to provide the unassociated relay account and a proof to succeed
@ with the association
@ The proof is nothing but a signature over the reward_address using the relay keys
args
┌─────────┬─────────────────┬───────────────────────────┬───────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────────┼───────────────────────────┼───────────────────────┤
│ 0 │ 'rewardAccount' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'relayAccount' │ '[u8;32]' │ 'RelayChainAccountId' │
│ 2 │ 'proof' │ 'SpRuntimeMultiSignature' │ 'MultiSignature' │
└─────────┴─────────────────┴───────────────────────────┴───────────────────────┘
docs
@ Change reward account by submitting proofs from relay accounts
@
@ The number of valid proofs needs to be bigger than 'RewardAddressRelayVoteThreshold'
@ The account to be changed needs to be submitted as 'previous_account'
@ Origin must be RewardAddressChangeOrigin
args
┌─────────┬───────────────────┬──────────────────────────────────────────┬─────────────────────────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────┼──────────────────────────────────────────┼─────────────────────────────────────────────┤
│ 0 │ 'rewardAccount' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'previousAccount' │ 'AccountId20' │ 'AccountId' │
│ 2 │ 'proofs' │ 'Vec<([u8;32],SpRuntimeMultiSignature)>' │ 'Vec<(RelayChainAccountId,MultiSignature)>' │
└─────────┴───────────────────┴──────────────────────────────────────────┴─────────────────────────────────────────────┘
docs
@ Collect whatever portion of your reward are currently vested.
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Update reward address, proving that the caller owns the current native key
args
┌─────────┬────────────────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────────┼───────────────┼─────────────┤
│ 0 │ 'newRewardAccount' │ 'AccountId20' │ 'AccountId' │
└─────────┴────────────────────┴───────────────┴─────────────┘
docs
@ This extrinsic completes the initialization if some checks are fullfiled. These checks are:
@ -The reward contribution money matches the crowdloan pot
@ -The end vesting block is higher than the init vesting block
@ -The initialization has not complete yet
args
┌─────────┬────────────────────┬───────┬──────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────────┼───────┼──────────────────────┤
│ 0 │ 'leaseEndingBlock' │ 'u32' │ 'VestingBlockNumber' │
└─────────┴────────────────────┴───────┴──────────────────────┘
docs
@ Initialize the reward distribution storage. It shortcuts whenever an error is found
@ This does not enforce any checks other than making sure we dont go over funds
@ complete_initialization should perform any additional
args
┌─────────┬───────────┬───────────────────────────────────────────┬──────────────────────────────────────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼───────────────────────────────────────────┼──────────────────────────────────────────────────────────┤
│ 0 │ 'rewards' │ 'Vec<([u8;32],Option<AccountId20>,u128)>' │ 'Vec<(RelayChainAccountId,Option<AccountId>,BalanceOf)>' │
└─────────┴───────────┴───────────────────────────────────────────┴──────────────────────────────────────────────────────────┘
docs
@ Propose a sensitive action to be taken.
@
@ The dispatch origin of this call must be _Signed_ and the sender must
@ have funds to cover the deposit.
@
@ - `proposal_hash`: The hash of the proposal preimage.
@ - `value`: The amount of deposit (must be at least `MinimumDeposit`).
@
@ Emits `Proposed`.
@
@ Weight: `O(p)`
args
┌─────────┬────────────────┬─────────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼─────────────────┼─────────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
│ 1 │ 'value' │ 'Compact<u128>' │ 'BalanceOf' │
└─────────┴────────────────┴─────────────────┴─────────────┘
docs
@ Signals agreement with a particular proposal.
@
@ The dispatch origin of this call must be _Signed_ and the sender
@ must have funds to cover the deposit, equal to the original deposit.
@
@ - `proposal`: The index of the proposal to second.
@ - `seconds_upper_bound`: an upper bound on the current number of seconds on this
@ proposal. Extrinsic is weighted according to this value with no refund.
@
@ Weight: `O(S)` where S is the number of seconds a proposal already has.
args
┌─────────┬─────────────────────┬────────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────────────┼────────────────┼─────────────┤
│ 0 │ 'proposal' │ 'Compact<u32>' │ 'PropIndex' │
│ 1 │ 'secondsUpperBound' │ 'Compact<u32>' │ 'u32' │
└─────────┴─────────────────────┴────────────────┴─────────────┘
docs
@ Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;
@ otherwise it is a vote to keep the status quo.
@
@ The dispatch origin of this call must be _Signed_.
@
@ - `ref_index`: The index of the referendum to vote for.
@ - `vote`: The vote configuration.
@
@ Weight: `O(R)` where R is the number of referendums the voter has voted on.
args
┌─────────┬────────────┬──────────────────────────────────┬───────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼──────────────────────────────────┼───────────────────┤
│ 0 │ 'refIndex' │ 'Compact<u32>' │ 'ReferendumIndex' │
│ 1 │ 'vote' │ 'PalletDemocracyVoteAccountVote' │ 'AccountVote' │
└─────────┴────────────┴──────────────────────────────────┴───────────────────┘
docs
@ Schedule an emergency cancellation of a referendum. Cannot happen twice to the same
@ referendum.
@
@ The dispatch origin of this call must be `CancellationOrigin`.
@
@ -`ref_index`: The index of the referendum to cancel.
@
@ Weight: `O(1)`.
args
┌─────────┬────────────┬───────┬───────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼───────┼───────────────────┤
│ 0 │ 'refIndex' │ 'u32' │ 'ReferendumIndex' │
└─────────┴────────────┴───────┴───────────────────┘
docs
@ Schedule a referendum to be tabled once it is legal to schedule an external
@ referendum.
@
@ The dispatch origin of this call must be `ExternalOrigin`.
@
@ - `proposal_hash`: The preimage hash of the proposal.
@
@ Weight: `O(V)` with V number of vetoers in the blacklist of proposal.
@ Decoding vec of length V. Charged as maximum
args
┌─────────┬────────────────┬────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼────────┼──────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
└─────────┴────────────────┴────────┴──────────┘
docs
@ Schedule a majority-carries referendum to be tabled next once it is legal to schedule
@ an external referendum.
@
@ The dispatch of this call must be `ExternalMajorityOrigin`.
@
@ - `proposal_hash`: The preimage hash of the proposal.
@
@ Unlike `external_propose`, blacklisting has no effect on this and it may replace a
@ pre-scheduled `external_propose` call.
@
@ Weight: `O(1)`
args
┌─────────┬────────────────┬────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼────────┼──────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
└─────────┴────────────────┴────────┴──────────┘
docs
@ Schedule a negative-turnout-bias referendum to be tabled next once it is legal to
@ schedule an external referendum.
@
@ The dispatch of this call must be `ExternalDefaultOrigin`.
@
@ - `proposal_hash`: The preimage hash of the proposal.
@
@ Unlike `external_propose`, blacklisting has no effect on this and it may replace a
@ pre-scheduled `external_propose` call.
@
@ Weight: `O(1)`
args
┌─────────┬────────────────┬────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼────────┼──────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
└─────────┴────────────────┴────────┴──────────┘
docs
@ Schedule the currently externally-proposed majority-carries referendum to be tabled
@ immediately. If there is no externally-proposed referendum currently, or if there is one
@ but it is not a majority-carries referendum then it fails.
@
@ The dispatch of this call must be `FastTrackOrigin`.
@
@ - `proposal_hash`: The hash of the current external proposal.
@ - `voting_period`: The period that is allowed for voting on this proposal. Increased to
@ `FastTrackVotingPeriod` if too low.
@ - `delay`: The number of block after voting has ended in approval and this should be
@ enacted. This doesn't have a minimum amount.
@
@ Emits `Started`.
@
@ Weight: `O(1)`
args
┌─────────┬────────────────┬────────┬───────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼────────┼───────────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
│ 1 │ 'votingPeriod' │ 'u32' │ 'BlockNumber' │
│ 2 │ 'delay' │ 'u32' │ 'BlockNumber' │
└─────────┴────────────────┴────────┴───────────────┘
docs
@ Veto and blacklist the external proposal hash.
@
@ The dispatch origin of this call must be `VetoOrigin`.
@
@ - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.
@
@ Emits `Vetoed`.
@
@ Weight: `O(V + log(V))` where V is number of `existing vetoers`
args
┌─────────┬────────────────┬────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼────────┼──────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
└─────────┴────────────────┴────────┴──────────┘
docs
@ Remove a referendum.
@
@ The dispatch origin of this call must be _Root_.
@
@ - `ref_index`: The index of the referendum to cancel.
@
@ # Weight: `O(1)`.
args
┌─────────┬────────────┬────────────────┬───────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼────────────────┼───────────────────┤
│ 0 │ 'refIndex' │ 'Compact<u32>' │ 'ReferendumIndex' │
└─────────┴────────────┴────────────────┴───────────────────┘
docs
@ Cancel a proposal queued for enactment.
@
@ The dispatch origin of this call must be _Root_.
@
@ - `which`: The index of the referendum to cancel.
@
@ Weight: `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`.
args
┌─────────┬─────────┬───────┬───────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼───────┼───────────────────┤
│ 0 │ 'which' │ 'u32' │ 'ReferendumIndex' │
└─────────┴─────────┴───────┴───────────────────┘
docs
@ Delegate the voting power (with some given conviction) of the sending account.
@
@ The balance delegated is locked for as long as it's delegated, and thereafter for the
@ time appropriate for the conviction's lock period.
@
@ The dispatch origin of this call must be _Signed_, and the signing account must either:
@ - be delegating already; or
@ - have no voting activity (if there is, then it will need to be removed/consolidated
@ through `reap_vote` or `unvote`).
@
@ - `to`: The account whose voting the `target` account's voting power will follow.
@ - `conviction`: The conviction that will be attached to the delegated votes. When the
@ account is undelegated, the funds will be locked for the corresponding period.
@ - `balance`: The amount of the account's balance to be used in delegating. This must not
@ be more than the account's current balance.
@
@ Emits `Delegated`.
@
@ Weight: `O(R)` where R is the number of referendums the voter delegating to has
@ voted on. Weight is charged as if maximum votes.
args
┌─────────┬──────────────┬─────────────────────────────┬──────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼─────────────────────────────┼──────────────┤
│ 0 │ 'to' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'conviction' │ 'PalletDemocracyConviction' │ 'Conviction' │
│ 2 │ 'balance' │ 'u128' │ 'BalanceOf' │
└─────────┴──────────────┴─────────────────────────────┴──────────────┘
docs
@ Undelegate the voting power of the sending account.
@
@ Tokens may be unlocked following once an amount of time consistent with the lock period
@ of the conviction with which the delegation was issued.
@
@ The dispatch origin of this call must be _Signed_ and the signing account must be
@ currently delegating.
@
@ Emits `Undelegated`.
@
@ Weight: `O(R)` where R is the number of referendums the voter delegating to has
@ voted on. Weight is charged as if maximum votes.
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Clears all public proposals.
@
@ The dispatch origin of this call must be _Root_.
@
@ Weight: `O(1)`.
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Register the preimage for an upcoming proposal. This doesn't require the proposal to be
@ in the dispatch queue but does require a deposit, returned once enacted.
@
@ The dispatch origin of this call must be _Signed_.
@
@ - `encoded_proposal`: The preimage of a proposal.
@
@ Emits `PreimageNoted`.
@
@ Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit).
args
┌─────────┬───────────────────┬─────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────┼─────────┼──────────┤
│ 0 │ 'encodedProposal' │ 'Bytes' │ 'Bytes' │
└─────────┴───────────────────┴─────────┴──────────┘
docs
@ Same as `note_preimage` but origin is `OperationalPreimageOrigin`.
args
┌─────────┬───────────────────┬─────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────┼─────────┼──────────┤
│ 0 │ 'encodedProposal' │ 'Bytes' │ 'Bytes' │
└─────────┴───────────────────┴─────────┴──────────┘
docs
@ Register the preimage for an upcoming proposal. This requires the proposal to be
@ in the dispatch queue. No deposit is needed. When this call is successful, i.e.
@ the preimage has not been uploaded before and matches some imminent proposal,
@ no fee is paid.
@
@ The dispatch origin of this call must be _Signed_.
@
@ - `encoded_proposal`: The preimage of a proposal.
@
@ Emits `PreimageNoted`.
@
@ Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit).
args
┌─────────┬───────────────────┬─────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────┼─────────┼──────────┤
│ 0 │ 'encodedProposal' │ 'Bytes' │ 'Bytes' │
└─────────┴───────────────────┴─────────┴──────────┘
docs
@ Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`.
args
┌─────────┬───────────────────┬─────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────┼─────────┼──────────┤
│ 0 │ 'encodedProposal' │ 'Bytes' │ 'Bytes' │
└─────────┴───────────────────┴─────────┴──────────┘
docs
@ Remove an expired proposal preimage and collect the deposit.
@
@ The dispatch origin of this call must be _Signed_.
@
@ - `proposal_hash`: The preimage hash of a proposal.
@ - `proposal_length_upper_bound`: an upper bound on length of the proposal. Extrinsic is
@ weighted according to this value with no refund.
@
@ This will only work after `VotingPeriod` blocks from the time that the preimage was
@ noted, if it's the same account doing it. If it's a different account, then it'll only
@ work an additional `EnactmentPeriod` later.
@
@ Emits `PreimageReaped`.
@
@ Weight: `O(D)` where D is length of proposal.
args
┌─────────┬─────────────────────────┬────────────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────────────────┼────────────────┼──────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
│ 1 │ 'proposalLenUpperBound' │ 'Compact<u32>' │ 'u32' │
└─────────┴─────────────────────────┴────────────────┴──────────┘
docs
@ Unlock tokens that have an expired lock.
@
@ The dispatch origin of this call must be _Signed_.
@
@ - `target`: The account to remove the lock on.
@
@ Weight: `O(R)` with R number of vote of target.
args
┌─────────┬──────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼───────────────┼─────────────┤
│ 0 │ 'target' │ 'AccountId20' │ 'AccountId' │
└─────────┴──────────┴───────────────┴─────────────┘
docs
@ Remove a vote for a referendum.
@
@ If:
@ - the referendum was cancelled, or
@ - the referendum is ongoing, or
@ - the referendum has ended such that
@ - the vote of the account was in opposition to the result; or
@ - there was no conviction to the account's vote; or
@ - the account made a split vote
@ ...then the vote is removed cleanly and a following call to `unlock` may result in more
@ funds being available.
@
@ If, however, the referendum has ended and:
@ - it finished corresponding to the vote of the account, and
@ - the account made a standard vote with conviction, and
@ - the lock period of the conviction is not over
@ ...then the lock will be aggregated into the overall account's lock, which may involve
@ *overlocking* (where the two locks are combined into a single lock that is the maximum
@ of both the amount locked and the time is it locked for).
@
@ The dispatch origin of this call must be _Signed_, and the signer must have a vote
@ registered for referendum `index`.
@
@ - `index`: The index of referendum of the vote to be removed.
@
@ Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.
@ Weight is calculated for the maximum number of vote.
args
┌─────────┬─────────┬───────┬───────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼───────┼───────────────────┤
│ 0 │ 'index' │ 'u32' │ 'ReferendumIndex' │
└─────────┴─────────┴───────┴───────────────────┘
docs
@ Remove a vote for a referendum.
@
@ If the `target` is equal to the signer, then this function is exactly equivalent to
@ `remove_vote`. If not equal to the signer, then the vote must have expired,
@ either because the referendum was cancelled, because the voter lost the referendum or
@ because the conviction period is over.
@
@ The dispatch origin of this call must be _Signed_.
@
@ - `target`: The account of the vote to be removed; this account must have voted for
@ referendum `index`.
@ - `index`: The index of referendum of the vote to be removed.
@
@ Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.
@ Weight is calculated for the maximum number of vote.
args
┌─────────┬──────────┬───────────────┬───────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼───────────────┼───────────────────┤
│ 0 │ 'target' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'index' │ 'u32' │ 'ReferendumIndex' │
└─────────┴──────────┴───────────────┴───────────────────┘
docs
@ Enact a proposal from a referendum. For now we just make the weight be the maximum.
args
┌─────────┬────────────────┬────────┬───────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼────────┼───────────────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
│ 1 │ 'index' │ 'u32' │ 'ReferendumIndex' │
└─────────┴────────────────┴────────┴───────────────────┘
docs
@ Permanently place a proposal into the blacklist. This prevents it from ever being
@ proposed again.
@
@ If called on a queued public or external proposal, then this will result in it being
@ removed. If the `ref_index` supplied is an active referendum with the proposal hash,
@ then it will be cancelled.
@
@ The dispatch origin of this call must be `BlacklistOrigin`.
@
@ - `proposal_hash`: The proposal hash to blacklist permanently.
@ - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be
@ cancelled.
@
@ Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a
@ reasonable value).
args
┌─────────┬─────────────────┬───────────────┬───────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────────┼───────────────┼───────────────────────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
│ 1 │ 'maybeRefIndex' │ 'Option<u32>' │ 'Option<ReferendumIndex>' │
└─────────┴─────────────────┴───────────────┴───────────────────────────┘
docs
@ Remove a proposal.
@
@ The dispatch origin of this call must be `CancelProposalOrigin`.
@
@ - `prop_index`: The index of the proposal to cancel.
@
@ Weight: `O(p)` where `p = PublicProps::<T>::decode_len()`
args
┌─────────┬─────────────┬────────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼────────────────┼─────────────┤
│ 0 │ 'propIndex' │ 'Compact<u32>' │ 'PropIndex' │
└─────────┴─────────────┴────────────────┴─────────────┘
docs
@ Service a single overweight message.
@
@ - `origin`: Must pass `ExecuteOverweightOrigin`.
@ - `index`: The index of the overweight message to service.
@ - `weight_limit`: The amount of weight that message execution may take.
@
@ Errors:
@ - `Unknown`: Message of `index` is unknown.
@ - `OverLimit`: Message execution may use greater than `weight_limit`.
@
@ Events:
@ - `OverweightServiced`: On success.
args
┌─────────┬───────────────┬───────┬───────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼───────┼───────────────────┤
│ 0 │ 'index' │ 'u64' │ 'OverweightIndex' │
│ 1 │ 'weightLimit' │ 'u64' │ 'Weight' │
└─────────┴───────────────┴───────┴───────────────────┘
docs
@ Transact an Ethereum transaction.
args
┌─────────┬───────────────┬────────────────────────────────────┬───────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼────────────────────────────────────┼───────────────┤
│ 0 │ 'transaction' │ 'EthereumTransactionTransactionV2' │ 'Transaction' │
└─────────┴───────────────┴────────────────────────────────────┴───────────────┘
docs
@ Withdraw balance from EVM into currency/balances pallet.
args
┌─────────┬───────────┬────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼────────┼─────────────┤
│ 0 │ 'address' │ 'H160' │ 'H160' │
│ 1 │ 'value' │ 'u128' │ 'BalanceOf' │
└─────────┴───────────┴────────┴─────────────┘
docs
@ Issue an EVM call operation. This is similar to a message call transaction in Ethereum.
args
┌─────────┬────────────────────────┬─────────────────────────┬─────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────────────┼─────────────────────────┼─────────────────────────┤
│ 0 │ 'source' │ 'H160' │ 'H160' │
│ 1 │ 'target' │ 'H160' │ 'H160' │
│ 2 │ 'input' │ 'Bytes' │ 'Bytes' │
│ 3 │ 'value' │ 'U256' │ 'U256' │
│ 4 │ 'gasLimit' │ 'u64' │ 'u64' │
│ 5 │ 'maxFeePerGas' │ 'U256' │ 'U256' │
│ 6 │ 'maxPriorityFeePerGas' │ 'Option<U256>' │ 'Option<U256>' │
│ 7 │ 'nonce' │ 'Option<U256>' │ 'Option<U256>' │
│ 8 │ 'accessList' │ 'Vec<(H160,Vec<H256>)>' │ 'Vec<(H160,Vec<H256>)>' │
└─────────┴────────────────────────┴─────────────────────────┴─────────────────────────┘
docs
@ Issue an EVM create operation. This is similar to a contract creation transaction in
@ Ethereum.
args
┌─────────┬────────────────────────┬─────────────────────────┬─────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────────────┼─────────────────────────┼─────────────────────────┤
│ 0 │ 'source' │ 'H160' │ 'H160' │
│ 1 │ 'init' │ 'Bytes' │ 'Bytes' │
│ 2 │ 'value' │ 'U256' │ 'U256' │
│ 3 │ 'gasLimit' │ 'u64' │ 'u64' │
│ 4 │ 'maxFeePerGas' │ 'U256' │ 'U256' │
│ 5 │ 'maxPriorityFeePerGas' │ 'Option<U256>' │ 'Option<U256>' │
│ 6 │ 'nonce' │ 'Option<U256>' │ 'Option<U256>' │
│ 7 │ 'accessList' │ 'Vec<(H160,Vec<H256>)>' │ 'Vec<(H160,Vec<H256>)>' │
└─────────┴────────────────────────┴─────────────────────────┴─────────────────────────┘
docs
@ Issue an EVM create2 operation.
args
┌─────────┬────────────────────────┬─────────────────────────┬─────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────────────┼─────────────────────────┼─────────────────────────┤
│ 0 │ 'source' │ 'H160' │ 'H160' │
│ 1 │ 'init' │ 'Bytes' │ 'Bytes' │
│ 2 │ 'salt' │ 'H256' │ 'H256' │
│ 3 │ 'value' │ 'U256' │ 'U256' │
│ 4 │ 'gasLimit' │ 'u64' │ 'u64' │
│ 5 │ 'maxFeePerGas' │ 'U256' │ 'U256' │
│ 6 │ 'maxPriorityFeePerGas' │ 'Option<U256>' │ 'Option<U256>' │
│ 7 │ 'nonce' │ 'Option<U256>' │ 'Option<U256>' │
│ 8 │ 'accessList' │ 'Vec<(H160,Vec<H256>)>' │ 'Vec<(H160,Vec<H256>)>' │
└─────────┴────────────────────────┴─────────────────────────┴─────────────────────────┘
docs
@ Increment `sufficients` for existing accounts having a nonzero `nonce` but zero `sufficients` value.
args
┌─────────┬─────────────┬─────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼─────────────┼─────────────┤
│ 0 │ 'addresses' │ 'Vec<H160>' │ 'Vec<H160>' │
└─────────┴─────────────┴─────────────┴─────────────┘
docs
@ Add a registrar to the system.
@
@ The dispatch origin for this call must be `T::RegistrarOrigin`.
@
@ - `account`: the account of the registrar.
@
@ Emits `RegistrarAdded` if successful.
@
@ # <weight>
@ - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).
@ - One storage mutation (codec `O(R)`).
@ - One event.
@ # </weight>
args
┌─────────┬───────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼───────────────┼─────────────┤
│ 0 │ 'account' │ 'AccountId20' │ 'AccountId' │
└─────────┴───────────┴───────────────┴─────────────┘
docs
@ Set an account's identity information and reserve the appropriate deposit.
@
@ If the account already has identity information, the deposit is taken as part payment
@ for the new deposit.
@
@ The dispatch origin for this call must be _Signed_.
@
@ - `info`: The identity information.
@
@ Emits `IdentitySet` if successful.
@
@ # <weight>
@ - `O(X + X' + R)`
@ - where `X` additional-field-count (deposit-bounded and code-bounded)
@ - where `R` judgements-count (registrar-count-bounded)
@ - One balance reserve operation.
@ - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).
@ - One event.
@ # </weight>
args
┌─────────┬────────┬──────────────────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────┼──────────────────────────────┼────────────────┤
│ 0 │ 'info' │ 'PalletIdentityIdentityInfo' │ 'IdentityInfo' │
└─────────┴────────┴──────────────────────────────┴────────────────┘
docs
@ Set the sub-accounts of the sender.
@
@ Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned
@ and an amount `SubAccountDeposit` will be reserved for each item in `subs`.
@
@ The dispatch origin for this call must be _Signed_ and the sender must have a registered
@ identity.
@
@ - `subs`: The identity's (new) sub-accounts.
@
@ # <weight>
@ - `O(P + S)`
@ - where `P` old-subs-count (hard- and deposit-bounded).
@ - where `S` subs-count (hard- and deposit-bounded).
@ - At most one balance operations.
@ - DB:
@ - `P + S` storage mutations (codec complexity `O(1)`)
@ - One storage read (codec complexity `O(P)`).
@ - One storage write (codec complexity `O(S)`).
@ - One storage-exists (`IdentityOf::contains_key`).
@ # </weight>
args
┌─────────┬────────┬───────────────────────────┬─────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────┼───────────────────────────┼─────────────────────────┤
│ 0 │ 'subs' │ 'Vec<(AccountId20,Data)>' │ 'Vec<(AccountId,Data)>' │
└─────────┴────────┴───────────────────────────┴─────────────────────────┘
docs
@ Clear an account's identity info and all sub-accounts and return all deposits.
@
@ Payment: All reserved balances on the account are returned.
@
@ The dispatch origin for this call must be _Signed_ and the sender must have a registered
@ identity.
@
@ Emits `IdentityCleared` if successful.
@
@ # <weight>
@ - `O(R + S + X)`
@ - where `R` registrar-count (governance-bounded).
@ - where `S` subs-count (hard- and deposit-bounded).
@ - where `X` additional-field-count (deposit-bounded and code-bounded).
@ - One balance-unreserve operation.
@ - `2` storage reads and `S + 2` storage deletions.
@ - One event.
@ # </weight>
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Request a judgement from a registrar.
@
@ Payment: At most `max_fee` will be reserved for payment to the registrar if judgement
@ given.
@
@ The dispatch origin for this call must be _Signed_ and the sender must have a
@ registered identity.
@
@ - `reg_index`: The index of the registrar whose judgement is requested.
@ - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:
@
@ ```nocompile
@ Self::registrars().get(reg_index).unwrap().fee
@ ```
@
@ Emits `JudgementRequested` if successful.
@
@ # <weight>
@ - `O(R + X)`.
@ - One balance-reserve operation.
@ - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.
@ - One event.
@ # </weight>
args
┌─────────┬────────────┬─────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────┼──────────────────┤
│ 0 │ 'regIndex' │ 'Compact<u32>' │ 'RegistrarIndex' │
│ 1 │ 'maxFee' │ 'Compact<u128>' │ 'BalanceOf' │
└─────────┴────────────┴─────────────────┴──────────────────┘
docs
@ Cancel a previous request.
@
@ Payment: A previously reserved deposit is returned on success.
@
@ The dispatch origin for this call must be _Signed_ and the sender must have a
@ registered identity.
@
@ - `reg_index`: The index of the registrar whose judgement is no longer requested.
@
@ Emits `JudgementUnrequested` if successful.
@
@ # <weight>
@ - `O(R + X)`.
@ - One balance-reserve operation.
@ - One storage mutation `O(R + X)`.
@ - One event
@ # </weight>
args
┌─────────┬────────────┬───────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼───────┼──────────────────┤
│ 0 │ 'regIndex' │ 'u32' │ 'RegistrarIndex' │
└─────────┴────────────┴───────┴──────────────────┘
docs
@ Set the fee required for a judgement to be requested from a registrar.
@
@ The dispatch origin for this call must be _Signed_ and the sender must be the account
@ of the registrar whose index is `index`.
@
@ - `index`: the index of the registrar whose fee is to be set.
@ - `fee`: the new fee.
@
@ # <weight>
@ - `O(R)`.
@ - One storage mutation `O(R)`.
@ - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)
@ # </weight>
args
┌─────────┬─────────┬─────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼─────────────────┼──────────────────┤
│ 0 │ 'index' │ 'Compact<u32>' │ 'RegistrarIndex' │
│ 1 │ 'fee' │ 'Compact<u128>' │ 'BalanceOf' │
└─────────┴─────────┴─────────────────┴──────────────────┘
docs
@ Change the account associated with a registrar.
@
@ The dispatch origin for this call must be _Signed_ and the sender must be the account
@ of the registrar whose index is `index`.
@
@ - `index`: the index of the registrar whose fee is to be set.
@ - `new`: the new account ID.
@
@ # <weight>
@ - `O(R)`.
@ - One storage mutation `O(R)`.
@ - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)
@ # </weight>
args
┌─────────┬─────────┬────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼────────────────┼──────────────────┤
│ 0 │ 'index' │ 'Compact<u32>' │ 'RegistrarIndex' │
│ 1 │ 'new' │ 'AccountId20' │ 'AccountId' │
└─────────┴─────────┴────────────────┴──────────────────┘
docs
@ Set the field information for a registrar.
@
@ The dispatch origin for this call must be _Signed_ and the sender must be the account
@ of the registrar whose index is `index`.
@
@ - `index`: the index of the registrar whose fee is to be set.
@ - `fields`: the fields that the registrar concerns themselves with.
@
@ # <weight>
@ - `O(R)`.
@ - One storage mutation `O(R)`.
@ - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)
@ # </weight>
args
┌─────────┬──────────┬──────────────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼──────────────────────────┼──────────────────┤
│ 0 │ 'index' │ 'Compact<u32>' │ 'RegistrarIndex' │
│ 1 │ 'fields' │ 'PalletIdentityBitFlags' │ 'IdentityFields' │
└─────────┴──────────┴──────────────────────────┴──────────────────┘
docs
@ Provide a judgement for an account's identity.
@
@ The dispatch origin for this call must be _Signed_ and the sender must be the account
@ of the registrar whose index is `reg_index`.
@
@ - `reg_index`: the index of the registrar whose judgement is being made.
@ - `target`: the account whose identity the judgement is upon. This must be an account
@ with a registered identity.
@ - `judgement`: the judgement of the registrar of index `reg_index` about `target`.
@
@ Emits `JudgementGiven` if successful.
@
@ # <weight>
@ - `O(R + X)`.
@ - One balance-transfer operation.
@ - Up to one account-lookup operation.
@ - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.
@ - One event.
@ # </weight>
args
┌─────────┬─────────────┬───────────────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼───────────────────────────┼──────────────────┤
│ 0 │ 'regIndex' │ 'Compact<u32>' │ 'RegistrarIndex' │
│ 1 │ 'target' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'judgement' │ 'PalletIdentityJudgement' │ 'Judgement' │
└─────────┴─────────────┴───────────────────────────┴──────────────────┘
docs
@ Remove an account's identity and sub-account information and slash the deposits.
@
@ Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by
@ `Slash`. Verification request deposits are not returned; they should be cancelled
@ manually using `cancel_request`.
@
@ The dispatch origin for this call must match `T::ForceOrigin`.
@
@ - `target`: the account whose identity the judgement is upon. This must be an account
@ with a registered identity.
@
@ Emits `IdentityKilled` if successful.
@
@ # <weight>
@ - `O(R + S + X)`.
@ - One balance-reserve operation.
@ - `S + 2` storage mutations.
@ - One event.
@ # </weight>
args
┌─────────┬──────────┬───────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼───────────────┼────────────────┤
│ 0 │ 'target' │ 'AccountId20' │ 'LookupSource' │
└─────────┴──────────┴───────────────┴────────────────┘
docs
@ Add the given account to the sender's subs.
@
@ Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated
@ to the sender.
@
@ The dispatch origin for this call must be _Signed_ and the sender must have a registered
@ sub identity of `sub`.
args
┌─────────┬────────┬───────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────┼───────────────┼────────────────┤
│ 0 │ 'sub' │ 'AccountId20' │ 'LookupSource' │
│ 1 │ 'data' │ 'Data' │ 'Data' │
└─────────┴────────┴───────────────┴────────────────┘
docs
@ Alter the associated name of the given sub-account.
@
@ The dispatch origin for this call must be _Signed_ and the sender must have a registered
@ sub identity of `sub`.
args
┌─────────┬────────┬───────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────┼───────────────┼────────────────┤
│ 0 │ 'sub' │ 'AccountId20' │ 'LookupSource' │
│ 1 │ 'data' │ 'Data' │ 'Data' │
└─────────┴────────┴───────────────┴────────────────┘
docs
@ Remove the given account from the sender's subs.
@
@ Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated
@ to the sender.
@
@ The dispatch origin for this call must be _Signed_ and the sender must have a registered
@ sub identity of `sub`.
args
┌─────────┬───────┬───────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼───────────────┼────────────────┤
│ 0 │ 'sub' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────┴───────────────┴────────────────┘
docs
@ Remove the sender as a sub-account.
@
@ Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated
@ to the sender (*not* the original depositor).
@
@ The dispatch origin for this call must be _Signed_ and the sender must have a registered
@ super-identity.
@
@ NOTE: This should not normally be used, but is provided in the case that the non-
@ controller of an account is maliciously registered as a sub-account.
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Issue a new class of fungible assets from a public origin.
@
@ This new asset class has no assets initially and its owner is the origin.
@
@ The origin must be Signed and the sender must have sufficient funds free.
@
@ Funds of sender are reserved by `AssetDeposit`.
@
@ Parameters:
@ - `id`: The identifier of the new asset. This must not be currently in use to identify
@ an existing asset.
@ - `admin`: The admin of this class of assets. The admin is the initial address of each
@ member of the asset class's admin team.
@ - `min_balance`: The minimum balance of this new asset that any single account must
@ have. If an account's balance is reduced below this, then it collapses to zero.
@
@ Emits `Created` event when successful.
@
@ Weight: `O(1)`
args
┌─────────┬──────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'admin' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'minBalance' │ 'u128' │ 'Balance' │
└─────────┴──────────────┴─────────────────┴────────────────┘
docs
@ Issue a new class of fungible assets from a privileged origin.
@
@ This new asset class has no assets initially.
@
@ The origin must conform to `ForceOrigin`.
@
@ Unlike `create`, no funds are reserved.
@
@ - `id`: The identifier of the new asset. This must not be currently in use to identify
@ an existing asset.
@ - `owner`: The owner of this class of assets. The owner has full superuser permissions
@ over this asset, but may later change and configure the permissions using
@ `transfer_ownership` and `set_team`.
@ - `min_balance`: The minimum balance of this new asset that any single account must
@ have. If an account's balance is reduced below this, then it collapses to zero.
@
@ Emits `ForceCreated` event when successful.
@
@ Weight: `O(1)`
args
┌─────────┬────────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'owner' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'isSufficient' │ 'bool' │ 'bool' │
│ 3 │ 'minBalance' │ 'Compact<u128>' │ 'Balance' │
└─────────┴────────────────┴─────────────────┴────────────────┘
docs
@ Destroy a class of fungible assets.
@
@ The origin must conform to `ForceOrigin` or must be Signed and the sender must be the
@ owner of the asset `id`.
@
@ - `id`: The identifier of the asset to be destroyed. This must identify an existing
@ asset.
@
@ Emits `Destroyed` event when successful.
@
@ NOTE: It can be helpful to first freeze an asset before destroying it so that you
@ can provide accurate witness information and prevent users from manipulating state
@ in a way that can make it harder to destroy.
@
@ Weight: `O(c + p + a)` where:
@ - `c = (witness.accounts - witness.sufficients)`
@ - `s = witness.sufficients`
@ - `a = witness.approvals`
args
┌─────────┬───────────┬──────────────────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼──────────────────────────────┼──────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'witness' │ 'PalletAssetsDestroyWitness' │ 'DestroyWitness' │
└─────────┴───────────┴──────────────────────────────┴──────────────────┘
docs
@ Mint assets of a particular class.
@
@ The origin must be Signed and the sender must be the Issuer of the asset `id`.
@
@ - `id`: The identifier of the asset to have some amount minted.
@ - `beneficiary`: The account to be credited with the minted assets.
@ - `amount`: The amount of the asset to be minted.
@
@ Emits `Issued` event when successful.
@
@ Weight: `O(1)`
@ Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`.
args
┌─────────┬───────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'beneficiary' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴───────────────┴─────────────────┴────────────────┘
docs
@ Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.
@
@ Origin must be Signed and the sender should be the Manager of the asset `id`.
@
@ Bails with `NoAccount` if the `who` is already dead.
@
@ - `id`: The identifier of the asset to have some amount burned.
@ - `who`: The account to be debited from.
@ - `amount`: The maximum amount by which `who`'s balance should be reduced.
@
@ Emits `Burned` with the actual amount burned. If this takes the balance to below the
@ minimum for the asset, then the amount burned is increased to take it to zero.
@
@ Weight: `O(1)`
@ Modes: Post-existence of `who`; Pre & post Zombie-status of `who`.
args
┌─────────┬──────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'who' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴──────────┴─────────────────┴────────────────┘
docs
@ Move some assets from the sender account to another.
@
@ Origin must be Signed.
@
@ - `id`: The identifier of the asset to have some amount transferred.
@ - `target`: The account to be credited.
@ - `amount`: The amount by which the sender's balance of assets should be reduced and
@ `target`'s balance increased. The amount actually transferred may be slightly greater in
@ the case that the transfer would otherwise take the sender balance above zero but below
@ the minimum balance. Must be greater than zero.
@
@ Emits `Transferred` with the actual amount transferred. If this takes the source balance
@ to below the minimum for the asset, then the amount transferred is increased to take it
@ to zero.
@
@ Weight: `O(1)`
@ Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of
@ `target`.
args
┌─────────┬──────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'target' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴──────────┴─────────────────┴────────────────┘
docs
@ Move some assets from the sender account to another, keeping the sender account alive.
@
@ Origin must be Signed.
@
@ - `id`: The identifier of the asset to have some amount transferred.
@ - `target`: The account to be credited.
@ - `amount`: The amount by which the sender's balance of assets should be reduced and
@ `target`'s balance increased. The amount actually transferred may be slightly greater in
@ the case that the transfer would otherwise take the sender balance above zero but below
@ the minimum balance. Must be greater than zero.
@
@ Emits `Transferred` with the actual amount transferred. If this takes the source balance
@ to below the minimum for the asset, then the amount transferred is increased to take it
@ to zero.
@
@ Weight: `O(1)`
@ Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of
@ `target`.
args
┌─────────┬──────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'target' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴──────────┴─────────────────┴────────────────┘
docs
@ Move some assets from one account to another.
@
@ Origin must be Signed and the sender should be the Admin of the asset `id`.
@
@ - `id`: The identifier of the asset to have some amount transferred.
@ - `source`: The account to be debited.
@ - `dest`: The account to be credited.
@ - `amount`: The amount by which the `source`'s balance of assets should be reduced and
@ `dest`'s balance increased. The amount actually transferred may be slightly greater in
@ the case that the transfer would otherwise take the `source` balance above zero but
@ below the minimum balance. Must be greater than zero.
@
@ Emits `Transferred` with the actual amount transferred. If this takes the source balance
@ to below the minimum for the asset, then the amount transferred is increased to take it
@ to zero.
@
@ Weight: `O(1)`
@ Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of
@ `dest`.
args
┌─────────┬──────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'source' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'dest' │ 'AccountId20' │ 'LookupSource' │
│ 3 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴──────────┴─────────────────┴────────────────┘
docs
@ Disallow further unprivileged transfers from an account.
@
@ Origin must be Signed and the sender should be the Freezer of the asset `id`.
@
@ - `id`: The identifier of the asset to be frozen.
@ - `who`: The account to be frozen.
@
@ Emits `Frozen`.
@
@ Weight: `O(1)`
args
┌─────────┬───────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'who' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────┴─────────────────┴────────────────┘
docs
@ Allow unprivileged transfers from an account again.
@
@ Origin must be Signed and the sender should be the Admin of the asset `id`.
@
@ - `id`: The identifier of the asset to be frozen.
@ - `who`: The account to be unfrozen.
@
@ Emits `Thawed`.
@
@ Weight: `O(1)`
args
┌─────────┬───────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'who' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────┴─────────────────┴────────────────┘
docs
@ Disallow further unprivileged transfers for the asset class.
@
@ Origin must be Signed and the sender should be the Freezer of the asset `id`.
@
@ - `id`: The identifier of the asset to be frozen.
@
@ Emits `Frozen`.
@
@ Weight: `O(1)`
args
┌─────────┬──────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
└─────────┴──────┴─────────────────┴───────────┘
docs
@ Allow unprivileged transfers for the asset again.
@
@ Origin must be Signed and the sender should be the Admin of the asset `id`.
@
@ - `id`: The identifier of the asset to be thawed.
@
@ Emits `Thawed`.
@
@ Weight: `O(1)`
args
┌─────────┬──────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
└─────────┴──────┴─────────────────┴───────────┘
docs
@ Change the Owner of an asset.
@
@ Origin must be Signed and the sender should be the Owner of the asset `id`.
@
@ - `id`: The identifier of the asset.
@ - `owner`: The new Owner of this asset.
@
@ Emits `OwnerChanged`.
@
@ Weight: `O(1)`
args
┌─────────┬─────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'owner' │ 'AccountId20' │ 'LookupSource' │
└─────────┴─────────┴─────────────────┴────────────────┘
docs
@ Change the Issuer, Admin and Freezer of an asset.
@
@ Origin must be Signed and the sender should be the Owner of the asset `id`.
@
@ - `id`: The identifier of the asset to be frozen.
@ - `issuer`: The new Issuer of this asset.
@ - `admin`: The new Admin of this asset.
@ - `freezer`: The new Freezer of this asset.
@
@ Emits `TeamChanged`.
@
@ Weight: `O(1)`
args
┌─────────┬───────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'issuer' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'admin' │ 'AccountId20' │ 'LookupSource' │
│ 3 │ 'freezer' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────────┴─────────────────┴────────────────┘
docs
@ Set the metadata for an asset.
@
@ Origin must be Signed and the sender should be the Owner of the asset `id`.
@
@ Funds of sender are reserved according to the formula:
@ `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into
@ account any already reserved funds.
@
@ - `id`: The identifier of the asset to update.
@ - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.
@ - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.
@ - `decimals`: The number of decimals this asset uses to represent one unit.
@
@ Emits `MetadataSet`.
@
@ Weight: `O(1)`
args
┌─────────┬────────────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'name' │ 'Bytes' │ 'Bytes' │
│ 2 │ 'symbol' │ 'Bytes' │ 'Bytes' │
│ 3 │ 'decimals' │ 'u8' │ 'u8' │
└─────────┴────────────┴─────────────────┴───────────┘
docs
@ Clear the metadata for an asset.
@
@ Origin must be Signed and the sender should be the Owner of the asset `id`.
@
@ Any deposit is freed for the asset owner.
@
@ - `id`: The identifier of the asset to clear.
@
@ Emits `MetadataCleared`.
@
@ Weight: `O(1)`
args
┌─────────┬──────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
└─────────┴──────┴─────────────────┴───────────┘
docs
@ Force the metadata for an asset to some value.
@
@ Origin must be ForceOrigin.
@
@ Any deposit is left alone.
@
@ - `id`: The identifier of the asset to update.
@ - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.
@ - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.
@ - `decimals`: The number of decimals this asset uses to represent one unit.
@
@ Emits `MetadataSet`.
@
@ Weight: `O(N + S)` where N and S are the length of the name and symbol respectively.
args
┌─────────┬────────────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'name' │ 'Bytes' │ 'Bytes' │
│ 2 │ 'symbol' │ 'Bytes' │ 'Bytes' │
│ 3 │ 'decimals' │ 'u8' │ 'u8' │
│ 4 │ 'isFrozen' │ 'bool' │ 'bool' │
└─────────┴────────────┴─────────────────┴───────────┘
docs
@ Clear the metadata for an asset.
@
@ Origin must be ForceOrigin.
@
@ Any deposit is returned.
@
@ - `id`: The identifier of the asset to clear.
@
@ Emits `MetadataCleared`.
@
@ Weight: `O(1)`
args
┌─────────┬──────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
└─────────┴──────┴─────────────────┴───────────┘
docs
@ Alter the attributes of a given asset.
@
@ Origin must be `ForceOrigin`.
@
@ - `id`: The identifier of the asset.
@ - `owner`: The new Owner of this asset.
@ - `issuer`: The new Issuer of this asset.
@ - `admin`: The new Admin of this asset.
@ - `freezer`: The new Freezer of this asset.
@ - `min_balance`: The minimum balance of this new asset that any single account must
@ have. If an account's balance is reduced below this, then it collapses to zero.
@ - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient
@ value to account for the state bloat associated with its balance storage. If set to
@ `true`, then non-zero balances may be stored without a `consumer` reference (and thus
@ an ED in the Balances pallet or whatever else is used to control user-account state
@ growth).
@ - `is_frozen`: Whether this asset class is frozen except for permissioned/admin
@ instructions.
@
@ Emits `AssetStatusChanged` with the identity of the asset.
@
@ Weight: `O(1)`
args
┌─────────┬────────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'owner' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'issuer' │ 'AccountId20' │ 'LookupSource' │
│ 3 │ 'admin' │ 'AccountId20' │ 'LookupSource' │
│ 4 │ 'freezer' │ 'AccountId20' │ 'LookupSource' │
│ 5 │ 'minBalance' │ 'Compact<u128>' │ 'Balance' │
│ 6 │ 'isSufficient' │ 'bool' │ 'bool' │
│ 7 │ 'isFrozen' │ 'bool' │ 'bool' │
└─────────┴────────────────┴─────────────────┴────────────────┘
docs
@ Approve an amount of asset for transfer by a delegated third-party account.
@
@ Origin must be Signed.
@
@ Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account
@ for the purpose of holding the approval. If some non-zero amount of assets is already
@ approved from signing account to `delegate`, then it is topped up or unreserved to
@ meet the right value.
@
@ NOTE: The signing account does not need to own `amount` of assets at the point of
@ making this call.
@
@ - `id`: The identifier of the asset.
@ - `delegate`: The account to delegate permission to transfer asset.
@ - `amount`: The amount of asset that may be transferred by `delegate`. If there is
@ already an approval in place, then this acts additively.
@
@ Emits `ApprovedTransfer` on success.
@
@ Weight: `O(1)`
args
┌─────────┬────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'delegate' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴────────────┴─────────────────┴────────────────┘
docs
@ Cancel all of some asset approved for delegated transfer by a third-party account.
@
@ Origin must be Signed and there must be an approval in place between signer and
@ `delegate`.
@
@ Unreserves any deposit previously reserved by `approve_transfer` for the approval.
@
@ - `id`: The identifier of the asset.
@ - `delegate`: The account delegated permission to transfer asset.
@
@ Emits `ApprovalCancelled` on success.
@
@ Weight: `O(1)`
args
┌─────────┬────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'delegate' │ 'AccountId20' │ 'LookupSource' │
└─────────┴────────────┴─────────────────┴────────────────┘
docs
@ Cancel all of some asset approved for delegated transfer by a third-party account.
@
@ Origin must be either ForceOrigin or Signed origin with the signer being the Admin
@ account of the asset `id`.
@
@ Unreserves any deposit previously reserved by `approve_transfer` for the approval.
@
@ - `id`: The identifier of the asset.
@ - `delegate`: The account delegated permission to transfer asset.
@
@ Emits `ApprovalCancelled` on success.
@
@ Weight: `O(1)`
args
┌─────────┬────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'owner' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'delegate' │ 'AccountId20' │ 'LookupSource' │
└─────────┴────────────┴─────────────────┴────────────────┘
docs
@ Transfer some asset balance from a previously delegated account to some third-party
@ account.
@
@ Origin must be Signed and there must be an approval in place by the `owner` to the
@ signer.
@
@ If the entire amount approved for transfer is transferred, then any deposit previously
@ reserved by `approve_transfer` is unreserved.
@
@ - `id`: The identifier of the asset.
@ - `owner`: The account which previously approved for a transfer of at least `amount` and
@ from which the asset balance will be withdrawn.
@ - `destination`: The account to which the asset balance of `amount` will be transferred.
@ - `amount`: The amount of assets to transfer.
@
@ Emits `TransferredApproved` on success.
@
@ Weight: `O(1)`
args
┌─────────┬───────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼─────────────────┼────────────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'owner' │ 'AccountId20' │ 'LookupSource' │
│ 2 │ 'destination' │ 'AccountId20' │ 'LookupSource' │
│ 3 │ 'amount' │ 'Compact<u128>' │ 'Balance' │
└─────────┴───────────────┴─────────────────┴────────────────┘
docs
@ Create an asset account for non-provider assets.
@
@ A deposit will be taken from the signer account.
@
@ - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit
@ to be taken.
@ - `id`: The identifier of the asset for the account to be created.
@
@ Emits `Touched` event when successful.
args
┌─────────┬──────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
└─────────┴──────┴─────────────────┴───────────┘
docs
@ Return the deposit (if any) of an asset account.
@
@ The origin must be Signed.
@
@ - `id`: The identifier of the asset for the account to be created.
@ - `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.
@
@ Emits `Refunded` event when successful.
args
┌─────────┬─────────────┬─────────────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼─────────────────┼───────────┤
│ 0 │ 'id' │ 'Compact<u128>' │ 'AssetId' │
│ 1 │ 'allowBurn' │ 'bool' │ 'bool' │
└─────────┴─────────────┴─────────────────┴───────────┘
docs
@ Place the chain in maintenance mode
@
@ Weight cost is:
@ * One DB read to ensure we're not already in maintenance mode
@ * Three DB writes - 1 for the mode, 1 for suspending xcm execution, 1 for the event
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Return the chain to normal operating mode
@
@ Weight cost is:
@ * One DB read to ensure we're in maintenance mode
@ * Three DB writes - 1 for the mode, 1 for resuming xcm execution, 1 for the event
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Add an orbiter in a collator pool
args
┌─────────┬───────────┬───────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼───────────────┼────────────────┤
│ 0 │ 'orbiter' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────────┴───────────────┴────────────────┘
docs
@ Remove an orbiter from the caller collator pool
args
┌─────────┬───────────┬───────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼───────────────┼────────────────┤
│ 0 │ 'orbiter' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────────┴───────────────┴────────────────┘
docs
@ Remove the caller from the specified collator pool
args
┌─────────┬────────────┬───────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼───────────────┼────────────────┤
│ 0 │ 'collator' │ 'AccountId20' │ 'LookupSource' │
└─────────┴────────────┴───────────────┴────────────────┘
docs
@ Registering as an orbiter
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Deregistering from orbiters
args
┌─────────┬──────────────────────┬───────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────────────┼───────┼──────────┤
│ 0 │ 'collatorsPoolCount' │ 'u32' │ 'u32' │
└─────────┴──────────────────────┴───────┴──────────┘
docs
@ Add a collator to orbiters program.
args
┌─────────┬────────────┬───────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼───────────────┼────────────────┤
│ 0 │ 'collator' │ 'AccountId20' │ 'LookupSource' │
└─────────┴────────────┴───────────────┴────────────────┘
docs
@ Remove a collator from orbiters program.
args
┌─────────┬────────────┬───────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼───────────────┼────────────────┤
│ 0 │ 'collator' │ 'AccountId20' │ 'LookupSource' │
└─────────┴────────────┴───────────────┴────────────────┘
docs
@ Set the expectations for total staked. These expectations determine the issuance for
@ the round according to logic in `fn compute_issuance`
args
┌─────────┬────────────────┬──────────────────────────────────────────────┬────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼──────────────────────────────────────────────┼────────────────────┤
│ 0 │ 'expectations' │ '{"min":"u128","ideal":"u128","max":"u128"}' │ 'Range<BalanceOf>' │
└─────────┴────────────────┴──────────────────────────────────────────────┴────────────────────┘
docs
@ Set the annual inflation rate to derive per-round inflation
args
┌─────────┬────────────┬───────────────────────────────────────────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼───────────────────────────────────────────────────────┼──────────────────┤
│ 0 │ 'schedule' │ '{"min":"Perbill","ideal":"Perbill","max":"Perbill"}' │ 'Range<Perbill>' │
└─────────┴────────────┴───────────────────────────────────────────────────────┴──────────────────┘
docs
@ Set the account that will hold funds set aside for parachain bond
args
┌─────────┬───────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼───────────────┼─────────────┤
│ 0 │ 'new' │ 'AccountId20' │ 'AccountId' │
└─────────┴───────┴───────────────┴─────────────┘
docs
@ Set the percent of inflation set aside for parachain bond
args
┌─────────┬───────┬───────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼───────────┼───────────┤
│ 0 │ 'new' │ 'Percent' │ 'Percent' │
└─────────┴───────┴───────────┴───────────┘
docs
@ Set the total number of collator candidates selected per round
@ - changes are not applied until the start of the next round
args
┌─────────┬───────┬───────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼───────┼──────────┤
│ 0 │ 'new' │ 'u32' │ 'u32' │
└─────────┴───────┴───────┴──────────┘
docs
@ Set the commission for all collators
args
┌─────────┬───────┬───────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼───────────┼───────────┤
│ 0 │ 'new' │ 'Perbill' │ 'Perbill' │
└─────────┴───────┴───────────┴───────────┘
docs
@ Set blocks per round
@ - if called with `new` less than length of current round, will transition immediately
@ in the next block
@ - also updates per-round inflation config
args
┌─────────┬───────┬───────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼───────┼──────────┤
│ 0 │ 'new' │ 'u32' │ 'u32' │
└─────────┴───────┴───────┴──────────┘
docs
@ Join the set of collator candidates
args
┌─────────┬──────────────────┬────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────────┼────────┼─────────────┤
│ 0 │ 'bond' │ 'u128' │ 'BalanceOf' │
│ 1 │ 'candidateCount' │ 'u32' │ 'u32' │
└─────────┴──────────────────┴────────┴─────────────┘
docs
@ Request to leave the set of candidates. If successful, the account is immediately
@ removed from the candidate pool to prevent selection as a collator.
args
┌─────────┬──────────────────┬───────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────────┼───────┼──────────┤
│ 0 │ 'candidateCount' │ 'u32' │ 'u32' │
└─────────┴──────────────────┴───────┴──────────┘
docs
@ Execute leave candidates request
args
┌─────────┬────────────────────────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────────────────┼───────────────┼─────────────┤
│ 0 │ 'candidate' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'candidateDelegationCount' │ 'u32' │ 'u32' │
└─────────┴────────────────────────────┴───────────────┴─────────────┘
docs
@ Cancel open request to leave candidates
@ - only callable by collator account
@ - result upon successful call is the candidate is active in the candidate pool
args
┌─────────┬──────────────────┬───────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────────┼───────┼──────────┤
│ 0 │ 'candidateCount' │ 'u32' │ 'u32' │
└─────────┴──────────────────┴───────┴──────────┘
docs
@ Temporarily leave the set of collator candidates without unbonding
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Rejoin the set of collator candidates if previously had called `go_offline`
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Increase collator candidate self bond by `more`
args
┌─────────┬────────┬────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────┼────────┼─────────────┤
│ 0 │ 'more' │ 'u128' │ 'BalanceOf' │
└─────────┴────────┴────────┴─────────────┘
docs
@ Request by collator candidate to decrease self bond by `less`
args
┌─────────┬────────┬────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────┼────────┼─────────────┤
│ 0 │ 'less' │ 'u128' │ 'BalanceOf' │
└─────────┴────────┴────────┴─────────────┘
docs
@ Execute pending request to adjust the collator candidate self bond
args
┌─────────┬─────────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼───────────────┼─────────────┤
│ 0 │ 'candidate' │ 'AccountId20' │ 'AccountId' │
└─────────┴─────────────┴───────────────┴─────────────┘
docs
@ Cancel pending request to adjust the collator candidate self bond
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ If caller is not a delegator and not a collator, then join the set of delegators
@ If caller is a delegator, then makes delegation to change their delegation state
args
┌─────────┬────────────────────────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────────────────┼───────────────┼─────────────┤
│ 0 │ 'candidate' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'amount' │ 'u128' │ 'BalanceOf' │
│ 2 │ 'candidateDelegationCount' │ 'u32' │ 'u32' │
│ 3 │ 'delegationCount' │ 'u32' │ 'u32' │
└─────────┴────────────────────────────┴───────────────┴─────────────┘
docs
@ Request to leave the set of delegators. If successful, the caller is scheduled
@ to be allowed to exit. Success forbids future delegator actions until the request is
@ invoked or cancelled.
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Execute the right to exit the set of delegators and revoke all ongoing delegations.
args
┌─────────┬───────────────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────┼───────────────┼─────────────┤
│ 0 │ 'delegator' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'delegationCount' │ 'u32' │ 'u32' │
└─────────┴───────────────────┴───────────────┴─────────────┘
docs
@ Cancel a pending request to exit the set of delegators. Success clears the pending exit
@ request (thereby resetting the delay upon another `leave_delegators` call).
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Request to revoke an existing delegation. If successful, the delegation is scheduled
@ to be allowed to be revoked via the `execute_delegation_request` extrinsic.
args
┌─────────┬────────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼───────────────┼─────────────┤
│ 0 │ 'collator' │ 'AccountId20' │ 'AccountId' │
└─────────┴────────────┴───────────────┴─────────────┘
docs
@ Bond more for delegators wrt a specific collator candidate.
args
┌─────────┬─────────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼───────────────┼─────────────┤
│ 0 │ 'candidate' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'more' │ 'u128' │ 'BalanceOf' │
└─────────┴─────────────┴───────────────┴─────────────┘
docs
@ Request bond less for delegators wrt a specific collator candidate.
args
┌─────────┬─────────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼───────────────┼─────────────┤
│ 0 │ 'candidate' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'less' │ 'u128' │ 'BalanceOf' │
└─────────┴─────────────┴───────────────┴─────────────┘
docs
@ Execute pending request to change an existing delegation
args
┌─────────┬─────────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼───────────────┼─────────────┤
│ 0 │ 'delegator' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'candidate' │ 'AccountId20' │ 'AccountId' │
└─────────┴─────────────┴───────────────┴─────────────┘
docs
@ Cancel request to change an existing delegation.
args
┌─────────┬─────────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼───────────────┼─────────────┤
│ 0 │ 'candidate' │ 'AccountId20' │ 'AccountId' │
└─────────┴─────────────┴───────────────┴─────────────┘
docs
@ Set the current validation data.
@
@ This should be invoked exactly once per block. It will panic at the finalization
@ phase if the call was not invoked.
@
@ The dispatch origin for this call must be `Inherent`
@
@ As a side effect, this function upgrades the current validation function
@ if the appropriate time has come.
args
┌─────────┬────────┬───────────────────────────────────────────────────────────┬─────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────┼───────────────────────────────────────────────────────────┼─────────────────────────┤
│ 0 │ 'data' │ 'CumulusPrimitivesParachainInherentParachainInherentData' │ 'ParachainInherentData' │
└─────────┴────────┴───────────────────────────────────────────────────────────┴─────────────────────────┘
docs
args
┌─────────┬───────────┬─────────┬─────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼─────────┼─────────────────┤
│ 0 │ 'message' │ 'Bytes' │ 'UpwardMessage' │
└─────────┴───────────┴─────────┴─────────────────┘
docs
args
┌─────────┬────────────┬────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼────────┼──────────┤
│ 0 │ 'codeHash' │ 'H256' │ 'Hash' │
└─────────┴────────────┴────────┴──────────┘
docs
args
┌─────────┬────────┬─────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────┼─────────┼──────────┤
│ 0 │ 'code' │ 'Bytes' │ 'Bytes' │
└─────────┴────────┴─────────┴──────────┘
docs
args
┌─────────┬───────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 1 │ 'message' │ 'XcmVersionedXcm' │ 'VersionedXcm' │
└─────────┴───────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Teleport some assets from the local chain to some destination chain.
@
@ Fee payment on the destination side is made from the first asset listed in the `assets` vector and
@ fee-weight is calculated locally and thus remote weights are assumed to be equal to
@ local weights.
@
@ - `origin`: Must be capable of withdrawing the `assets` and executing XCM.
@ - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send
@ from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.
@ - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be
@ an `AccountId32` value.
@ - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the
@ `dest` side. May not be empty.
@ - `fee_asset_item`: The index into `assets` of the item which should be used to pay
@ fees.
args
┌─────────┬────────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 1 │ 'beneficiary' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 2 │ 'assets' │ 'XcmVersionedMultiAssets' │ 'VersionedMultiAssets' │
│ 3 │ 'feeAssetItem' │ 'u32' │ 'u32' │
└─────────┴────────────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Transfer some assets from the local chain to the sovereign account of a destination chain and forward
@ a notification XCM.
@
@ Fee payment on the destination side is made from the first asset listed in the `assets` vector and
@ fee-weight is calculated locally and thus remote weights are assumed to be equal to
@ local weights.
@
@ - `origin`: Must be capable of withdrawing the `assets` and executing XCM.
@ - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send
@ from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.
@ - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be
@ an `AccountId32` value.
@ - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the
@ `dest` side.
@ - `fee_asset_item`: The index into `assets` of the item which should be used to pay
@ fees.
args
┌─────────┬────────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 1 │ 'beneficiary' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 2 │ 'assets' │ 'XcmVersionedMultiAssets' │ 'VersionedMultiAssets' │
│ 3 │ 'feeAssetItem' │ 'u32' │ 'u32' │
└─────────┴────────────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Execute an XCM message from a local, signed, origin.
@
@ An event is deposited indicating whether `msg` could be executed completely or only
@ partially.
@
@ No more than `max_weight` will be used in its attempted execution. If this is less than the
@ maximum amount of weight that the message could take to be executed, then no execution
@ attempt will be made.
@
@ NOTE: A successful return to this does *not* imply that the `msg` was executed successfully
@ to completion; only that *some* of it was executed.
args
┌─────────┬─────────────┬───────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼───────────────────┼────────────────┤
│ 0 │ 'message' │ 'XcmVersionedXcm' │ 'VersionedXcm' │
│ 1 │ 'maxWeight' │ 'u64' │ 'Weight' │
└─────────┴─────────────┴───────────────────┴────────────────┘
docs
@ Extoll that a particular destination can be communicated with through a particular
@ version of XCM.
@
@ - `origin`: Must be Root.
@ - `location`: The destination that is being described.
@ - `xcm_version`: The latest version of XCM that `location` supports.
args
┌─────────┬──────────────┬──────────────────────┬─────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼──────────────────────┼─────────────────┤
│ 0 │ 'location' │ 'XcmV1MultiLocation' │ 'MultiLocation' │
│ 1 │ 'xcmVersion' │ 'u32' │ 'XcmVersion' │
└─────────┴──────────────┴──────────────────────┴─────────────────┘
docs
@ Set a safe XCM version (the version that XCM should be encoded with if the most recent
@ version a destination can accept is unknown).
@
@ - `origin`: Must be Root.
@ - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable.
args
┌─────────┬───────────────────┬───────────────┬──────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────┼───────────────┼──────────────────────┤
│ 0 │ 'maybeXcmVersion' │ 'Option<u32>' │ 'Option<XcmVersion>' │
└─────────┴───────────────────┴───────────────┴──────────────────────┘
docs
@ Ask a location to notify us regarding their XCM version and any changes to it.
@
@ - `origin`: Must be Root.
@ - `location`: The location to which we should subscribe for XCM version notifications.
args
┌─────────┬────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'location' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
└─────────┴────────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Require that a particular destination should no longer notify us regarding any XCM
@ version changes.
@
@ - `origin`: Must be Root.
@ - `location`: The location to which we are currently subscribed for XCM version
@ notifications which we no longer desire.
args
┌─────────┬────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'location' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
└─────────┴────────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Transfer some assets from the local chain to the sovereign account of a destination chain and forward
@ a notification XCM.
@
@ Fee payment on the destination side is made from the first asset listed in the `assets` vector.
@
@ - `origin`: Must be capable of withdrawing the `assets` and executing XCM.
@ - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send
@ from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.
@ - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be
@ an `AccountId32` value.
@ - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the
@ `dest` side.
@ - `fee_asset_item`: The index into `assets` of the item which should be used to pay
@ fees.
@ - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.
args
┌─────────┬────────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 1 │ 'beneficiary' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 2 │ 'assets' │ 'XcmVersionedMultiAssets' │ 'VersionedMultiAssets' │
│ 3 │ 'feeAssetItem' │ 'u32' │ 'u32' │
│ 4 │ 'weightLimit' │ 'XcmV2WeightLimit' │ 'WeightLimit' │
└─────────┴────────────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Teleport some assets from the local chain to some destination chain.
@
@ Fee payment on the destination side is made from the first asset listed in the `assets` vector.
@
@ - `origin`: Must be capable of withdrawing the `assets` and executing XCM.
@ - `dest`: Destination context for the assets. Will typically be `X2(Parent, Parachain(..))` to send
@ from parachain to parachain, or `X1(Parachain(..))` to send from relay to parachain.
@ - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be
@ an `AccountId32` value.
@ - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the
@ `dest` side. May not be empty.
@ - `fee_asset_item`: The index into `assets` of the item which should be used to pay
@ fees.
@ - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.
args
┌─────────┬────────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 1 │ 'beneficiary' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 2 │ 'assets' │ 'XcmVersionedMultiAssets' │ 'VersionedMultiAssets' │
│ 3 │ 'feeAssetItem' │ 'u32' │ 'u32' │
│ 4 │ 'weightLimit' │ 'XcmV2WeightLimit' │ 'WeightLimit' │
└─────────┴────────────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Dispatch the given `call` from an account that the sender is authorised for through
@ `add_proxy`.
@
@ Removes any corresponding announcement(s).
@
@ The dispatch origin for this call must be _Signed_.
@
@ Parameters:
@ - `real`: The account that the proxy will make a call on behalf of.
@ - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.
@ - `call`: The call to be made by the `real` account.
@
@ # <weight>
@ Weight is a function of the number of proxies the user has (P).
@ # </weight>
args
┌─────────┬──────────────────┬────────────────────────────────────┬─────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────────┼────────────────────────────────────┼─────────────────────┤
│ 0 │ 'real' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'forceProxyType' │ 'Option<MoonbeamRuntimeProxyType>' │ 'Option<ProxyType>' │
│ 2 │ 'call' │ 'Call' │ 'Call' │
└─────────┴──────────────────┴────────────────────────────────────┴─────────────────────┘
docs
@ Register a proxy account for the sender that is able to make calls on its behalf.
@
@ The dispatch origin for this call must be _Signed_.
@
@ Parameters:
@ - `proxy`: The account that the `caller` would like to make a proxy.
@ - `proxy_type`: The permissions allowed for this proxy account.
@ - `delay`: The announcement period required of the initial proxy. Will generally be
@ zero.
@
@ # <weight>
@ Weight is a function of the number of proxies the user has (P).
@ # </weight>
args
┌─────────┬─────────────┬────────────────────────────┬───────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼────────────────────────────┼───────────────┤
│ 0 │ 'delegate' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'proxyType' │ 'MoonbeamRuntimeProxyType' │ 'ProxyType' │
│ 2 │ 'delay' │ 'u32' │ 'BlockNumber' │
└─────────┴─────────────┴────────────────────────────┴───────────────┘
docs
@ Unregister a proxy account for the sender.
@
@ The dispatch origin for this call must be _Signed_.
@
@ Parameters:
@ - `proxy`: The account that the `caller` would like to remove as a proxy.
@ - `proxy_type`: The permissions currently enabled for the removed proxy account.
@
@ # <weight>
@ Weight is a function of the number of proxies the user has (P).
@ # </weight>
args
┌─────────┬─────────────┬────────────────────────────┬───────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼────────────────────────────┼───────────────┤
│ 0 │ 'delegate' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'proxyType' │ 'MoonbeamRuntimeProxyType' │ 'ProxyType' │
│ 2 │ 'delay' │ 'u32' │ 'BlockNumber' │
└─────────┴─────────────┴────────────────────────────┴───────────────┘
docs
@ Unregister all proxy accounts for the sender.
@
@ The dispatch origin for this call must be _Signed_.
@
@ WARNING: This may be called on accounts created by `anonymous`, however if done, then
@ the unreserved fees will be inaccessible. **All access to this account will be lost.**
@
@ # <weight>
@ Weight is a function of the number of proxies the user has (P).
@ # </weight>
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘
docs
@ Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and
@ initialize it with a proxy of `proxy_type` for `origin` sender.
@
@ Requires a `Signed` origin.
@
@ - `proxy_type`: The type of the proxy that the sender will be registered as over the
@ new account. This will almost always be the most permissive `ProxyType` possible to
@ allow for maximum flexibility.
@ - `index`: A disambiguation index, in case this is called multiple times in the same
@ transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just
@ want to use `0`.
@ - `delay`: The announcement period required of the initial proxy. Will generally be
@ zero.
@
@ Fails with `Duplicate` if this has already been called in this transaction, from the
@ same sender, with the same parameters.
@
@ Fails if there are insufficient funds to pay for deposit.
@
@ # <weight>
@ Weight is a function of the number of proxies the user has (P).
@ # </weight>
@ TODO: Might be over counting 1 read
args
┌─────────┬─────────────┬────────────────────────────┬───────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼────────────────────────────┼───────────────┤
│ 0 │ 'proxyType' │ 'MoonbeamRuntimeProxyType' │ 'ProxyType' │
│ 1 │ 'delay' │ 'u32' │ 'BlockNumber' │
│ 2 │ 'index' │ 'u16' │ 'u16' │
└─────────┴─────────────┴────────────────────────────┴───────────────┘
docs
@ Removes a previously spawned anonymous proxy.
@
@ WARNING: **All access to this account will be lost.** Any funds held in it will be
@ inaccessible.
@
@ Requires a `Signed` origin, and the sender account must have been created by a call to
@ `anonymous` with corresponding parameters.
@
@ - `spawner`: The account that originally called `anonymous` to create this account.
@ - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.
@ - `proxy_type`: The proxy type originally passed to `anonymous`.
@ - `height`: The height of the chain when the call to `anonymous` was processed.
@ - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.
@
@ Fails with `NoPermission` in case the caller is not a previously created anonymous
@ account whose `anonymous` call has corresponding parameters.
@
@ # <weight>
@ Weight is a function of the number of proxies the user has (P).
@ # </weight>
args
┌─────────┬─────────────┬────────────────────────────┬───────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────┼────────────────────────────┼───────────────┤
│ 0 │ 'spawner' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'proxyType' │ 'MoonbeamRuntimeProxyType' │ 'ProxyType' │
│ 2 │ 'index' │ 'u16' │ 'u16' │
│ 3 │ 'height' │ 'Compact<u32>' │ 'BlockNumber' │
│ 4 │ 'extIndex' │ 'Compact<u32>' │ 'u32' │
└─────────┴─────────────┴────────────────────────────┴───────────────┘
docs
@ Publish the hash of a proxy-call that will be made in the future.
@
@ This must be called some number of blocks before the corresponding `proxy` is attempted
@ if the delay associated with the proxy relationship is greater than zero.
@
@ No more than `MaxPending` announcements may be made at any one time.
@
@ This will take a deposit of `AnnouncementDepositFactor` as well as
@ `AnnouncementDepositBase` if there are no other pending announcements.
@
@ The dispatch origin for this call must be _Signed_ and a proxy of `real`.
@
@ Parameters:
@ - `real`: The account that the proxy will make a call on behalf of.
@ - `call_hash`: The hash of the call to be made by the `real` account.
@
@ # <weight>
@ Weight is a function of:
@ - A: the number of announcements made.
@ - P: the number of proxies the user has.
@ # </weight>
args
┌─────────┬────────────┬───────────────┬──────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼───────────────┼──────────────┤
│ 0 │ 'real' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'callHash' │ 'H256' │ 'CallHashOf' │
└─────────┴────────────┴───────────────┴──────────────┘
docs
@ Remove a given announcement.
@
@ May be called by a proxy account to remove a call they previously announced and return
@ the deposit.
@
@ The dispatch origin for this call must be _Signed_.
@
@ Parameters:
@ - `real`: The account that the proxy will make a call on behalf of.
@ - `call_hash`: The hash of the call to be made by the `real` account.
@
@ # <weight>
@ Weight is a function of:
@ - A: the number of announcements made.
@ - P: the number of proxies the user has.
@ # </weight>
args
┌─────────┬────────────┬───────────────┬──────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼───────────────┼──────────────┤
│ 0 │ 'real' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'callHash' │ 'H256' │ 'CallHashOf' │
└─────────┴────────────┴───────────────┴──────────────┘
docs
@ Remove the given announcement of a delegate.
@
@ May be called by a target (proxied) account to remove a call that one of their delegates
@ (`delegate`) has announced they want to execute. The deposit is returned.
@
@ The dispatch origin for this call must be _Signed_.
@
@ Parameters:
@ - `delegate`: The account that previously announced the call.
@ - `call_hash`: The hash of the call to be made.
@
@ # <weight>
@ Weight is a function of:
@ - A: the number of announcements made.
@ - P: the number of proxies the user has.
@ # </weight>
args
┌─────────┬────────────┬───────────────┬──────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼───────────────┼──────────────┤
│ 0 │ 'delegate' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'callHash' │ 'H256' │ 'CallHashOf' │
└─────────┴────────────┴───────────────┴──────────────┘
docs
@ Dispatch the given `call` from an account that the sender is authorized for through
@ `add_proxy`.
@
@ Removes any corresponding announcement(s).
@
@ The dispatch origin for this call must be _Signed_.
@
@ Parameters:
@ - `real`: The account that the proxy will make a call on behalf of.
@ - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.
@ - `call`: The call to be made by the `real` account.
@
@ # <weight>
@ Weight is a function of:
@ - A: the number of announcements made.
@ - P: the number of proxies the user has.
@ # </weight>
args
┌─────────┬──────────────────┬────────────────────────────────────┬─────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────────┼────────────────────────────────────┼─────────────────────┤
│ 0 │ 'delegate' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'real' │ 'AccountId20' │ 'AccountId' │
│ 2 │ 'forceProxyType' │ 'Option<MoonbeamRuntimeProxyType>' │ 'Option<ProxyType>' │
│ 3 │ 'call' │ 'Call' │ 'Call' │
└─────────┴──────────────────┴────────────────────────────────────┴─────────────────────┘
docs
@ Anonymously schedule a task.
args
┌─────────┬─────────────────┬───────────────────────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────────┼───────────────────────────────────┼──────────────────┤
│ 0 │ 'when' │ 'u32' │ 'BlockNumber' │
│ 1 │ 'maybePeriodic' │ 'Option<(u32,u32)>' │ 'Option<Period>' │
│ 2 │ 'priority' │ 'u8' │ 'Priority' │
│ 3 │ 'call' │ 'FrameSupportScheduleMaybeHashed' │ 'CallOrHashOf' │
└─────────┴─────────────────┴───────────────────────────────────┴──────────────────┘
docs
@ Cancel an anonymously scheduled task.
args
┌─────────┬─────────┬───────┬───────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼───────┼───────────────┤
│ 0 │ 'when' │ 'u32' │ 'BlockNumber' │
│ 1 │ 'index' │ 'u32' │ 'u32' │
└─────────┴─────────┴───────┴───────────────┘
docs
@ Schedule a named task.
args
┌─────────┬─────────────────┬───────────────────────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────────┼───────────────────────────────────┼──────────────────┤
│ 0 │ 'id' │ 'Bytes' │ 'Bytes' │
│ 1 │ 'when' │ 'u32' │ 'BlockNumber' │
│ 2 │ 'maybePeriodic' │ 'Option<(u32,u32)>' │ 'Option<Period>' │
│ 3 │ 'priority' │ 'u8' │ 'Priority' │
│ 4 │ 'call' │ 'FrameSupportScheduleMaybeHashed' │ 'CallOrHashOf' │
└─────────┴─────────────────┴───────────────────────────────────┴──────────────────┘
docs
@ Cancel a named scheduled task.
args
┌─────────┬──────┬─────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────┼─────────┼──────────┤
│ 0 │ 'id' │ 'Bytes' │ 'Bytes' │
└─────────┴──────┴─────────┴──────────┘
docs
@ Anonymously schedule a task after a delay.
@
@ # <weight>
@ Same as [`schedule`].
@ # </weight>
args
┌─────────┬─────────────────┬───────────────────────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────────┼───────────────────────────────────┼──────────────────┤
│ 0 │ 'after' │ 'u32' │ 'BlockNumber' │
│ 1 │ 'maybePeriodic' │ 'Option<(u32,u32)>' │ 'Option<Period>' │
│ 2 │ 'priority' │ 'u8' │ 'Priority' │
│ 3 │ 'call' │ 'FrameSupportScheduleMaybeHashed' │ 'CallOrHashOf' │
└─────────┴─────────────────┴───────────────────────────────────┴──────────────────┘
docs
@ Schedule a named task after a delay.
@
@ # <weight>
@ Same as [`schedule_named`](Self::schedule_named).
@ # </weight>
args
┌─────────┬─────────────────┬───────────────────────────────────┬──────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────────────┼───────────────────────────────────┼──────────────────┤
│ 0 │ 'id' │ 'Bytes' │ 'Bytes' │
│ 1 │ 'after' │ 'u32' │ 'BlockNumber' │
│ 2 │ 'maybePeriodic' │ 'Option<(u32,u32)>' │ 'Option<Period>' │
│ 3 │ 'priority' │ 'u8' │ 'Priority' │
│ 4 │ 'call' │ 'FrameSupportScheduleMaybeHashed' │ 'CallOrHashOf' │
└─────────┴─────────────────┴───────────────────────────────────┴──────────────────┘
docs
@ A dispatch that will fill the block weight up to the given ratio.
args
┌─────────┬─────────┬───────────┬───────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼───────────┼───────────┤
│ 0 │ 'ratio' │ 'Perbill' │ 'Perbill' │
└─────────┴─────────┴───────────┴───────────┘
docs
@ Make some on-chain remark.
@
@ # <weight>
@ - `O(1)`
@ # </weight>
args
┌─────────┬──────────┬─────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼─────────┼──────────┤
│ 0 │ 'remark' │ 'Bytes' │ 'Bytes' │
└─────────┴──────────┴─────────┴──────────┘
docs
@ Set the number of pages in the WebAssembly environment's heap.
args
┌─────────┬─────────┬───────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼───────┼──────────┤
│ 0 │ 'pages' │ 'u64' │ 'u64' │
└─────────┴─────────┴───────┴──────────┘
docs
@ Set the new runtime code.
@
@ # <weight>
@ - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`
@ - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is
@ expensive).
@ - 1 storage write (codec `O(C)`).
@ - 1 digest item.
@ - 1 event.
@ The weight of this function is dependent on the runtime, but generally this is very
@ expensive. We will treat this as a full block.
@ # </weight>
args
┌─────────┬────────┬─────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────┼─────────┼──────────┤
│ 0 │ 'code' │ 'Bytes' │ 'Bytes' │
└─────────┴────────┴─────────┴──────────┘
docs
@ Set the new runtime code without doing any checks of the given `code`.
@
@ # <weight>
@ - `O(C)` where `C` length of `code`
@ - 1 storage write (codec `O(C)`).
@ - 1 digest item.
@ - 1 event.
@ The weight of this function is dependent on the runtime. We will treat this as a full
@ block. # </weight>
args
┌─────────┬────────┬─────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────┼─────────┼──────────┤
│ 0 │ 'code' │ 'Bytes' │ 'Bytes' │
└─────────┴────────┴─────────┴──────────┘
docs
@ Set some items of storage.
args
┌─────────┬─────────┬──────────────────────┬─────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼──────────────────────┼─────────────────┤
│ 0 │ 'items' │ 'Vec<(Bytes,Bytes)>' │ 'Vec<KeyValue>' │
└─────────┴─────────┴──────────────────────┴─────────────────┘
docs
@ Kill some items from storage.
args
┌─────────┬────────┬──────────────┬────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────┼──────────────┼────────────┤
│ 0 │ 'keys' │ 'Vec<Bytes>' │ 'Vec<Key>' │
└─────────┴────────┴──────────────┴────────────┘
docs
@ Kill all storage items with a key that starts with the given prefix.
@
@ **NOTE:** We rely on the Root origin to provide us the number of subkeys under
@ the prefix we are removing to accurately calculate the weight of this function.
args
┌─────────┬───────────┬─────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────┼─────────┼──────────┤
│ 0 │ 'prefix' │ 'Bytes' │ 'Key' │
│ 1 │ 'subkeys' │ 'u32' │ 'u32' │
└─────────┴───────────┴─────────┴──────────┘
docs
@ Make some on-chain remark and emit event.
args
┌─────────┬──────────┬─────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────┼─────────┼──────────┤
│ 0 │ 'remark' │ 'Bytes' │ 'Bytes' │
└─────────┴──────────┴─────────┴──────────┘
docs
@ Set the collective's membership.
@
@ - `new_members`: The new member list. Be nice to the chain and provide it sorted.
@ - `prime`: The prime member whose vote sets the default.
@ - `old_count`: The upper bound for the previous number of members in storage. Used for
@ weight estimation.
@
@ Requires root origin.
@
@ NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but
@ the weight estimations rely on it to estimate dispatchable weight.
@
@ # WARNING:
@
@ The `pallet-collective` can also be managed by logic outside of the pallet through the
@ implementation of the trait [`ChangeMembers`].
@ Any call to `set_members` must be careful that the member set doesn't get out of sync
@ with other logic managing the member set.
@
@ # <weight>
@ ## Weight
@ - `O(MP + N)` where:
@ - `M` old-members-count (code- and governance-bounded)
@ - `N` new-members-count (code- and governance-bounded)
@ - `P` proposals-count (code-bounded)
@ - DB:
@ - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the
@ members
@ - 1 storage read (codec `O(P)`) for reading the proposals
@ - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal
@ - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one
@ # </weight>
args
┌─────────┬──────────────┬───────────────────────┬─────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼───────────────────────┼─────────────────────┤
│ 0 │ 'newMembers' │ 'Vec<AccountId20>' │ 'Vec<AccountId>' │
│ 1 │ 'prime' │ 'Option<AccountId20>' │ 'Option<AccountId>' │
│ 2 │ 'oldCount' │ 'u32' │ 'MemberCount' │
└─────────┴──────────────┴───────────────────────┴─────────────────────┘
docs
@ Dispatch a proposal from a member using the `Member` origin.
@
@ Origin must be a member of the collective.
@
@ # <weight>
@ ## Weight
@ - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching
@ `proposal`
@ - DB: 1 read (codec `O(M)`) + DB access of `proposal`
@ - 1 event
@ # </weight>
args
┌─────────┬───────────────┬────────────────┬────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼────────────────┼────────────┤
│ 0 │ 'proposal' │ 'Call' │ 'Proposal' │
│ 1 │ 'lengthBound' │ 'Compact<u32>' │ 'u32' │
└─────────┴───────────────┴────────────────┴────────────┘
docs
@ Add a new proposal to either be voted on or executed directly.
@
@ Requires the sender to be member.
@
@ `threshold` determines whether `proposal` is executed directly (`threshold < 2`)
@ or put up for voting.
@
@ # <weight>
@ ## Weight
@ - `O(B + M + P1)` or `O(B + M + P2)` where:
@ - `B` is `proposal` size in bytes (length-fee-bounded)
@ - `M` is members-count (code- and governance-bounded)
@ - branching is influenced by `threshold` where:
@ - `P1` is proposal execution complexity (`threshold < 2`)
@ - `P2` is proposals-count (code-bounded) (`threshold >= 2`)
@ - DB:
@ - 1 storage read `is_member` (codec `O(M)`)
@ - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)
@ - DB accesses influenced by `threshold`:
@ - EITHER storage accesses done by `proposal` (`threshold < 2`)
@ - OR proposal insertion (`threshold <= 2`)
@ - 1 storage mutation `Proposals` (codec `O(P2)`)
@ - 1 storage mutation `ProposalCount` (codec `O(1)`)
@ - 1 storage write `ProposalOf` (codec `O(B)`)
@ - 1 storage write `Voting` (codec `O(M)`)
@ - 1 event
@ # </weight>
args
┌─────────┬───────────────┬────────────────┬───────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼────────────────┼───────────────┤
│ 0 │ 'threshold' │ 'Compact<u32>' │ 'MemberCount' │
│ 1 │ 'proposal' │ 'Call' │ 'Proposal' │
│ 2 │ 'lengthBound' │ 'Compact<u32>' │ 'u32' │
└─────────┴───────────────┴────────────────┴───────────────┘
docs
@ Add an aye or nay vote for the sender to the given proposal.
@
@ Requires the sender to be a member.
@
@ Transaction fees will be waived if the member is voting on any particular proposal
@ for the first time and the call is successful. Subsequent vote changes will charge a
@ fee.
@ # <weight>
@ ## Weight
@ - `O(M)` where `M` is members-count (code- and governance-bounded)
@ - DB:
@ - 1 storage read `Members` (codec `O(M)`)
@ - 1 storage mutation `Voting` (codec `O(M)`)
@ - 1 event
@ # </weight>
args
┌─────────┬────────────┬────────────────┬─────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼────────────────┼─────────────────┤
│ 0 │ 'proposal' │ 'H256' │ 'Hash' │
│ 1 │ 'index' │ 'Compact<u32>' │ 'ProposalIndex' │
│ 2 │ 'approve' │ 'bool' │ 'bool' │
└─────────┴────────────┴────────────────┴─────────────────┘
docs
@ Close a vote that is either approved, disapproved or whose voting period has ended.
@
@ May be called by any signed account in order to finish voting and close the proposal.
@
@ If called before the end of the voting period it will only close the vote if it is
@ has enough votes to be approved or disapproved.
@
@ If called after the end of the voting period abstentions are counted as rejections
@ unless there is a prime member set and the prime member cast an approval.
@
@ If the close operation completes successfully with disapproval, the transaction fee will
@ be waived. Otherwise execution of the approved operation will be charged to the caller.
@
@ + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed
@ proposal.
@ + `length_bound`: The upper bound for the length of the proposal in storage. Checked via
@ `storage::read` so it is `size_of::<u32>() == 4` larger than the pure length.
@
@ # <weight>
@ ## Weight
@ - `O(B + M + P1 + P2)` where:
@ - `B` is `proposal` size in bytes (length-fee-bounded)
@ - `M` is members-count (code- and governance-bounded)
@ - `P1` is the complexity of `proposal` preimage.
@ - `P2` is proposal-count (code-bounded)
@ - DB:
@ - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)
@ - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec
@ `O(P2)`)
@ - any mutations done while executing `proposal` (`P1`)
@ - up to 3 events
@ # </weight>
args
┌─────────┬───────────────────────┬────────────────┬─────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────────┼────────────────┼─────────────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
│ 1 │ 'index' │ 'Compact<u32>' │ 'ProposalIndex' │
│ 2 │ 'proposalWeightBound' │ 'Compact<u64>' │ 'Weight' │
│ 3 │ 'lengthBound' │ 'Compact<u32>' │ 'u32' │
└─────────┴───────────────────────┴────────────────┴─────────────────┘
docs
@ Disapprove a proposal, close, and remove it from the system, regardless of its current
@ state.
@
@ Must be called by the Root origin.
@
@ Parameters:
@ * `proposal_hash`: The hash of the proposal that should be disapproved.
@
@ # <weight>
@ Complexity: O(P) where P is the number of max proposals
@ DB Weight:
@ * Reads: Proposals
@ * Writes: Voting, Proposals, ProposalOf
@ # </weight>
args
┌─────────┬────────────────┬────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────────┼────────┼──────────┤
│ 0 │ 'proposalHash' │ 'H256' │ 'Hash' │
└─────────┴────────────────┴────────┴──────────┘
docs
@ Set the current time.
@
@ This call should be invoked exactly once per block. It will panic at the finalization
@ phase, if this call hasn't been invoked by that time.
@
@ The timestamp should be greater than the previous one by the amount specified by
@ `MinimumPeriod`.
@
@ The dispatch origin for this call must be `Inherent`.
@
@ # <weight>
@ - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)
@ - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in
@ `on_finalize`)
@ - 1 event handler `on_timestamp_set`. Must be `O(1)`.
@ # </weight>
args
┌─────────┬───────┬────────────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────┼────────────────┼──────────┤
│ 0 │ 'now' │ 'Compact<u64>' │ 'Moment' │
└─────────┴───────┴────────────────┴──────────┘
docs
@ Put forward a suggestion for spending. A deposit proportional to the value
@ is reserved and slashed if the proposal is rejected. It is returned once the
@ proposal is awarded.
@
@ # <weight>
@ - Complexity: O(1)
@ - DbReads: `ProposalCount`, `origin account`
@ - DbWrites: `ProposalCount`, `Proposals`, `origin account`
@ # </weight>
args
┌─────────┬───────────────┬─────────────────┬────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼─────────────────┼────────────────┤
│ 0 │ 'value' │ 'Compact<u128>' │ 'BalanceOf' │
│ 1 │ 'beneficiary' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────────────┴─────────────────┴────────────────┘
docs
@ Reject a proposed spend. The original deposit will be slashed.
@
@ May only be called from `T::RejectOrigin`.
@
@ # <weight>
@ - Complexity: O(1)
@ - DbReads: `Proposals`, `rejected proposer account`
@ - DbWrites: `Proposals`, `rejected proposer account`
@ # </weight>
args
┌─────────┬──────────────┬────────────────┬─────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼────────────────┼─────────────────┤
│ 0 │ 'proposalId' │ 'Compact<u32>' │ 'ProposalIndex' │
└─────────┴──────────────┴────────────────┴─────────────────┘
docs
@ Approve a proposal. At a later time, the proposal will be allocated to the beneficiary
@ and the original deposit will be returned.
@
@ May only be called from `T::ApproveOrigin`.
@
@ # <weight>
@ - Complexity: O(1).
@ - DbReads: `Proposals`, `Approvals`
@ - DbWrite: `Approvals`
@ # </weight>
args
┌─────────┬──────────────┬────────────────┬─────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼────────────────┼─────────────────┤
│ 0 │ 'proposalId' │ 'Compact<u32>' │ 'ProposalIndex' │
└─────────┴──────────────┴────────────────┴─────────────────┘
docs
@ Send a batch of dispatch calls.
@
@ May be called from any origin.
@
@ - `calls`: The calls to be dispatched from the same origin. The number of call must not
@ exceed the constant: `batched_calls_limit` (available in constant metadata).
@
@ If origin is root then call are dispatch without checking origin filter. (This includes
@ bypassing `frame_system::Config::BaseCallFilter`).
@
@ # <weight>
@ - Complexity: O(C) where C is the number of calls to be batched.
@ # </weight>
@
@ This will return `Ok` in all circumstances. To determine the success of the batch, an
@ event is deposited. If a call failed and the batch was interrupted, then the
@ `BatchInterrupted` event is deposited, along with the number of successful calls made
@ and the error of the failed call. If all were successful, then the `BatchCompleted`
@ event is deposited.
args
┌─────────┬─────────┬─────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼─────────────┼─────────────┤
│ 0 │ 'calls' │ 'Vec<Call>' │ 'Vec<Call>' │
└─────────┴─────────┴─────────────┴─────────────┘
docs
@ Send a call through an indexed pseudonym of the sender.
@
@ Filter from origin are passed along. The call will be dispatched with an origin which
@ use the same filter as the origin of this call.
@
@ NOTE: If you need to ensure that any account-based filtering is not honored (i.e.
@ because you expect `proxy` to have been used prior in the call stack and you do not want
@ the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`
@ in the Multisig pallet instead.
@
@ NOTE: Prior to version *12, this was called `as_limited_sub`.
@
@ The dispatch origin for this call must be _Signed_.
args
┌─────────┬─────────┬────────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼────────┼──────────┤
│ 0 │ 'index' │ 'u16' │ 'u16' │
│ 1 │ 'call' │ 'Call' │ 'Call' │
└─────────┴─────────┴────────┴──────────┘
docs
@ Send a batch of dispatch calls and atomically execute them.
@ The whole transaction will rollback and fail if any of the calls failed.
@
@ May be called from any origin.
@
@ - `calls`: The calls to be dispatched from the same origin. The number of call must not
@ exceed the constant: `batched_calls_limit` (available in constant metadata).
@
@ If origin is root then call are dispatch without checking origin filter. (This includes
@ bypassing `frame_system::Config::BaseCallFilter`).
@
@ # <weight>
@ - Complexity: O(C) where C is the number of calls to be batched.
@ # </weight>
args
┌─────────┬─────────┬─────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼─────────────┼─────────────┤
│ 0 │ 'calls' │ 'Vec<Call>' │ 'Vec<Call>' │
└─────────┴─────────┴─────────────┴─────────────┘
docs
@ Dispatches a function call with a provided origin.
@
@ The dispatch origin for this call must be _Root_.
@
@ # <weight>
@ - O(1).
@ - Limited storage reads.
@ - One DB write (event).
@ - Weight of derivative `call` execution + T::WeightInfo::dispatch_as().
@ # </weight>
args
┌─────────┬────────────┬───────────────────────────────┬─────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼───────────────────────────────┼─────────────────┤
│ 0 │ 'asOrigin' │ 'MoonbeamRuntimeOriginCaller' │ 'PalletsOrigin' │
│ 1 │ 'call' │ 'Call' │ 'Call' │
└─────────┴────────────┴───────────────────────────────┴─────────────────┘
docs
@ Transfer native currencies.
@
@ `dest_weight` is the weight for XCM execution on the dest chain, and
@ it would be charged from the transferred assets. If set below
@ requirements, the execution may fail and assets wouldn't be
@ received.
@
@ It's a no-op if any error on local XCM execution or message sending.
@ Note sending assets out per se doesn't guarantee they would be
@ received. Receiving depends on if the XCM message could be delivered
@ by the network, and if the receiving chain would handle
@ messages correctly.
args
┌─────────┬──────────────┬──────────────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼──────────────────────────────────────┼──────────────────────────┤
│ 0 │ 'currencyId' │ 'MoonbeamRuntimeXcmConfigCurrencyId' │ 'CurrencyId' │
│ 1 │ 'amount' │ 'u128' │ 'Balance' │
│ 2 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 3 │ 'destWeight' │ 'u64' │ 'Weight' │
└─────────┴──────────────┴──────────────────────────────────────┴──────────────────────────┘
docs
@ Transfer `MultiAsset`.
@
@ `dest_weight` is the weight for XCM execution on the dest chain, and
@ it would be charged from the transferred assets. If set below
@ requirements, the execution may fail and assets wouldn't be
@ received.
@
@ It's a no-op if any error on local XCM execution or message sending.
@ Note sending assets out per se doesn't guarantee they would be
@ received. Receiving depends on if the XCM message could be delivered
@ by the network, and if the receiving chain would handle
@ messages correctly.
args
┌─────────┬──────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'asset' │ 'XcmVersionedMultiAsset' │ 'VersionedMultiAsset' │
│ 1 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 2 │ 'destWeight' │ 'u64' │ 'Weight' │
└─────────┴──────────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Transfer native currencies specifying the fee and amount as
@ separate.
@
@ `dest_weight` is the weight for XCM execution on the dest chain, and
@ it would be charged from the transferred assets. If set below
@ requirements, the execution may fail and assets wouldn't be
@ received.
@
@ `fee` is the amount to be spent to pay for execution in destination
@ chain. Both fee and amount will be subtracted form the callers
@ balance.
@
@ If `fee` is not high enough to cover for the execution costs in the
@ destination chain, then the assets will be trapped in the
@ destination chain
@
@ It's a no-op if any error on local XCM execution or message sending.
@ Note sending assets out per se doesn't guarantee they would be
@ received. Receiving depends on if the XCM message could be delivered
@ by the network, and if the receiving chain would handle
@ messages correctly.
args
┌─────────┬──────────────┬──────────────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼──────────────────────────────────────┼──────────────────────────┤
│ 0 │ 'currencyId' │ 'MoonbeamRuntimeXcmConfigCurrencyId' │ 'CurrencyId' │
│ 1 │ 'amount' │ 'u128' │ 'Balance' │
│ 2 │ 'fee' │ 'u128' │ 'Balance' │
│ 3 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 4 │ 'destWeight' │ 'u64' │ 'Weight' │
└─────────┴──────────────┴──────────────────────────────────────┴──────────────────────────┘
docs
@ Transfer `MultiAsset` specifying the fee and amount as separate.
@
@ `dest_weight` is the weight for XCM execution on the dest chain, and
@ it would be charged from the transferred assets. If set below
@ requirements, the execution may fail and assets wouldn't be
@ received.
@
@ `fee` is the multiasset to be spent to pay for execution in
@ destination chain. Both fee and amount will be subtracted form the
@ callers balance For now we only accept fee and asset having the same
@ `MultiLocation` id.
@
@ If `fee` is not high enough to cover for the execution costs in the
@ destination chain, then the assets will be trapped in the
@ destination chain
@
@ It's a no-op if any error on local XCM execution or message sending.
@ Note sending assets out per se doesn't guarantee they would be
@ received. Receiving depends on if the XCM message could be delivered
@ by the network, and if the receiving chain would handle
@ messages correctly.
args
┌─────────┬──────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'asset' │ 'XcmVersionedMultiAsset' │ 'VersionedMultiAsset' │
│ 1 │ 'fee' │ 'XcmVersionedMultiAsset' │ 'VersionedMultiAsset' │
│ 2 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 3 │ 'destWeight' │ 'u64' │ 'Weight' │
└─────────┴──────────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Transfer several currencies specifying the item to be used as fee
@
@ `dest_weight` is the weight for XCM execution on the dest chain, and
@ it would be charged from the transferred assets. If set below
@ requirements, the execution may fail and assets wouldn't be
@ received.
@
@ `fee_item` is index of the currencies tuple that we want to use for
@ payment
@
@ It's a no-op if any error on local XCM execution or message sending.
@ Note sending assets out per se doesn't guarantee they would be
@ received. Receiving depends on if the XCM message could be delivered
@ by the network, and if the receiving chain would handle
@ messages correctly.
args
┌─────────┬──────────────┬──────────────────────────────────────────────────┬─────────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼──────────────────────────────────────────────────┼─────────────────────────────┤
│ 0 │ 'currencies' │ 'Vec<(MoonbeamRuntimeXcmConfigCurrencyId,u128)>' │ 'Vec<(CurrencyId,Balance)>' │
│ 1 │ 'feeItem' │ 'u32' │ 'u32' │
│ 2 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 3 │ 'destWeight' │ 'u64' │ 'Weight' │
└─────────┴──────────────┴──────────────────────────────────────────────────┴─────────────────────────────┘
docs
@ Transfer several `MultiAsset` specifying the item to be used as fee
@
@ `dest_weight` is the weight for XCM execution on the dest chain, and
@ it would be charged from the transferred assets. If set below
@ requirements, the execution may fail and assets wouldn't be
@ received.
@
@ `fee_item` is index of the MultiAssets that we want to use for
@ payment
@
@ It's a no-op if any error on local XCM execution or message sending.
@ Note sending assets out per se doesn't guarantee they would be
@ received. Receiving depends on if the XCM message could be delivered
@ by the network, and if the receiving chain would handle
@ messages correctly.
args
┌─────────┬──────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'assets' │ 'XcmVersionedMultiAssets' │ 'VersionedMultiAssets' │
│ 1 │ 'feeItem' │ 'u32' │ 'u32' │
│ 2 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 3 │ 'destWeight' │ 'u64' │ 'Weight' │
└─────────┴──────────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Register a derivative index for an account id. Dispatchable by
@ DerivativeAddressRegistrationOrigin
@
@ We do not store the derivative address, but only the index. We do not need to store
@ the derivative address to issue calls, only the index is enough
@
@ For now an index is registered for all possible destinations and not per-destination.
@ We can change this in the future although it would just make things more complicated
args
┌─────────┬─────────┬───────────────┬─────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼───────────────┼─────────────┤
│ 0 │ 'who' │ 'AccountId20' │ 'AccountId' │
│ 1 │ 'index' │ 'u16' │ 'u16' │
└─────────┴─────────┴───────────────┴─────────────┘
docs
@ De-Register a derivative index. This prevents an account to use a derivative address
@ (represented by an index) from our of our sovereign accounts anymore
args
┌─────────┬─────────┬───────┬──────────┐
│ (index) │ name │ type │ typeName │
├─────────┼─────────┼───────┼──────────┤
│ 0 │ 'index' │ 'u16' │ 'u16' │
└─────────┴─────────┴───────┴──────────┘
docs
@ Transact the inner call through a derivative account in a destination chain,
@ using 'fee_location' to pay for the fees. This fee_location is given as a multilocation
@
@ The caller needs to have the index registered in this pallet. The fee multiasset needs
@ to be a reserve asset for the destination transactor::multilocation.
args
┌─────────┬───────────────┬───────────────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼───────────────────────────────────────┼──────────────────────────┤
│ 0 │ 'dest' │ 'MoonbeamRuntimeXcmConfigTransactors' │ 'Transactor' │
│ 1 │ 'index' │ 'u16' │ 'u16' │
│ 2 │ 'feeLocation' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 3 │ 'destWeight' │ 'u64' │ 'Weight' │
│ 4 │ 'innerCall' │ 'Bytes' │ 'Bytes' │
└─────────┴───────────────┴───────────────────────────────────────┴──────────────────────────┘
docs
@ Transact the inner call through a derivative account in a destination chain,
@ using 'currency_id' to pay for the fees.
@
@ The caller needs to have the index registered in this pallet. The fee multiasset needs
@ to be a reserve asset for the destination transactor::multilocation.
args
┌─────────┬──────────────┬───────────────────────────────────────┬──────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼──────────────┼───────────────────────────────────────┼──────────────┤
│ 0 │ 'dest' │ 'MoonbeamRuntimeXcmConfigTransactors' │ 'Transactor' │
│ 1 │ 'index' │ 'u16' │ 'u16' │
│ 2 │ 'currencyId' │ 'MoonbeamRuntimeXcmConfigCurrencyId' │ 'CurrencyId' │
│ 3 │ 'destWeight' │ 'u64' │ 'Weight' │
│ 4 │ 'innerCall' │ 'Bytes' │ 'Bytes' │
└─────────┴──────────────┴───────────────────────────────────────┴──────────────┘
docs
@ Transact the call through the sovereign account in a destination chain,
@ 'fee_payer' pays for the fee
@
@ SovereignAccountDispatcherOrigin callable only
args
┌─────────┬───────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'dest' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 1 │ 'feePayer' │ 'AccountId20' │ 'AccountId' │
│ 2 │ 'feeLocation' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 3 │ 'destWeight' │ 'u64' │ 'Weight' │
│ 4 │ 'call' │ 'Bytes' │ 'Bytes' │
│ 5 │ 'originKind' │ 'XcmV0OriginKind' │ 'OriginKind' │
└─────────┴───────────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Change the transact info of a location
args
┌─────────┬───────────────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼───────────────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'location' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│ 1 │ 'transactExtraWeight' │ 'u64' │ 'Weight' │
│ 2 │ 'feePerSecond' │ 'u128' │ 'u128' │
│ 3 │ 'maxWeight' │ 'u64' │ 'u64' │
└─────────┴───────────────────────┴─────────────────────────────┴──────────────────────────┘
docs
@ Remove the transact info of a location
args
┌─────────┬────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │ name │ type │ typeName │
├─────────┼────────────┼─────────────────────────────┼──────────────────────────┤
│ 0 │ 'location' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
└─────────┴────────────┴─────────────────────────────┴──────────────────────────┘