assetManager:

assetManager.registerForeignAsset

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'          │
└─────────┴────────────────┴────────────────────────────────────────────────────┴──────────────────────────┘

assetManager.setAssetUnitsPerSecond

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'        │
└─────────┴───────────────────────┴─────────────────────────────────────┴────────────────────┘

assetManager.changeExistingAssetType

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'        │
└─────────┴───────────────────────┴─────────────────────────────────────┴────────────────────┘

assetManager.removeSupportedAsset

docs
args
┌─────────┬───────────────────────┬─────────────────────────────────────┬────────────────────┐
│ (index) │         name          │                type                 │      typeName      │
├─────────┼───────────────────────┼─────────────────────────────────────┼────────────────────┤
│    0    │      'assetType'      │ 'MoonbeamRuntimeXcmConfigAssetType' │ 'ForeignAssetType' │
│    1    │ 'numAssetsWeightHint' │                'u32'                │       'u32'        │
└─────────┴───────────────────────┴─────────────────────────────────────┴────────────────────┘

assetManager.removeExistingAssetType

docs
@ Remove a given assetId -> assetType association
args
┌─────────┬───────────────────────┬────────┬───────────┐
│ (index) │         name          │  type  │ typeName  │
├─────────┼───────────────────────┼────────┼───────────┤
│    0    │       'assetId'       │ 'u128' │ 'AssetId' │
│    1    │ 'numAssetsWeightHint' │ 'u32'  │   'u32'   │
└─────────┴───────────────────────┴────────┴───────────┘

assetManager.registerLocalAsset

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'  │
└─────────┴────────────────┴───────────────┴─────────────┘

assetManager.destroyForeignAsset

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'         │
└─────────┴───────────────────────┴──────────────────────────────┴───────────────────────┘

assetManager.destroyLocalAsset

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' │
└─────────┴───────────────────────┴──────────────────────────────┴───────────────────────┘

assets:

assets.create

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'    │
└─────────┴──────────────┴─────────────────┴────────────────┘

assets.forceCreate

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'    │
└─────────┴────────────────┴─────────────────┴────────────────┘

assets.destroy

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' │
└─────────┴───────────┴──────────────────────────────┴──────────────────┘

assets.mint

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'    │
└─────────┴───────────────┴─────────────────┴────────────────┘

assets.burn

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'    │
└─────────┴──────────┴─────────────────┴────────────────┘

assets.transfer

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'    │
└─────────┴──────────┴─────────────────┴────────────────┘

assets.transferKeepAlive

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'    │
└─────────┴──────────┴─────────────────┴────────────────┘

assets.forceTransfer

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'    │
└─────────┴──────────┴─────────────────┴────────────────┘

assets.freeze

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' │
└─────────┴───────┴─────────────────┴────────────────┘

assets.thaw

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' │
└─────────┴───────┴─────────────────┴────────────────┘

assets.freezeAsset

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' │
└─────────┴──────┴─────────────────┴───────────┘

assets.thawAsset

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' │
└─────────┴──────┴─────────────────┴───────────┘

assets.transferOwnership

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' │
└─────────┴─────────┴─────────────────┴────────────────┘

assets.setTeam

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' │
└─────────┴───────────┴─────────────────┴────────────────┘

assets.setMetadata

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'    │
└─────────┴────────────┴─────────────────┴───────────┘

assets.clearMetadata

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' │
└─────────┴──────┴─────────────────┴───────────┘

assets.forceSetMetadata

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'   │
└─────────┴────────────┴─────────────────┴───────────┘

assets.forceClearMetadata

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' │
└─────────┴──────┴─────────────────┴───────────┘

assets.forceAssetStatus

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'     │
└─────────┴────────────────┴─────────────────┴────────────────┘

assets.approveTransfer

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'    │
└─────────┴────────────┴─────────────────┴────────────────┘

assets.cancelApproval

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' │
└─────────┴────────────┴─────────────────┴────────────────┘

assets.forceCancelApproval

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' │
└─────────┴────────────┴─────────────────┴────────────────┘

assets.transferApproved

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'    │
└─────────┴───────────────┴─────────────────┴────────────────┘

assets.touch

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' │
└─────────┴──────┴─────────────────┴───────────┘

assets.refund

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'   │
└─────────┴─────────────┴─────────────────┴───────────┘

authorFilter:

authorFilter.setEligible

docs
@ Update the eligible count. Intended to be called by governance.
args
┌─────────┬───────┬───────┬────────────────────┐
│ (index) │ name  │ type  │      typeName      │
├─────────┼───────┼───────┼────────────────────┤
│    0    │ 'new' │ 'u32' │ 'EligibilityValue' │
└─────────┴───────┴───────┴────────────────────┘

authorInherent:

authorInherent.kickOffAuthorshipValidation

docs
@ This inherent is a workaround to run code after the "real" inherents have executed,
@ but before transactions are executed.
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘

authorMapping:

authorMapping.addAssociation

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' │
└─────────┴────────────┴──────────────────────────────────────┴────────────┘

authorMapping.updateAssociation

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' │
└─────────┴───────────────┴──────────────────────────────────────┴────────────┘

authorMapping.clearAssociation

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' │
└─────────┴────────────┴──────────────────────────────────────┴────────────┘

authorMapping.registerKeys

docs
@ Add association and set session keys
args
┌─────────┬────────────┬──────────────────────────────────────┬────────────┐
│ (index) │    name    │                 type                 │  typeName  │
├─────────┼────────────┼──────────────────────────────────────┼────────────┤
│    0    │ 'authorId' │ 'NimbusPrimitivesNimbusCryptoPublic' │ 'NimbusId' │
│    1    │   'keys'   │ 'NimbusPrimitivesNimbusCryptoPublic' │   'Keys'   │
└─────────┴────────────┴──────────────────────────────────────┴────────────┘

authorMapping.setKeys

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'   │
└─────────┴───────────────┴──────────────────────────────────────┴────────────┘

balances:

balances.transfer

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'    │
└─────────┴─────────┴─────────────────┴────────────────┘

balances.setBalance

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'    │
└─────────┴───────────────┴─────────────────┴────────────────┘

balances.forceTransfer

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'    │
└─────────┴──────────┴─────────────────┴────────────────┘

balances.transferKeepAlive

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'    │
└─────────┴─────────┴─────────────────┴────────────────┘

balances.transferAll

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'     │
└─────────┴─────────────┴───────────────┴────────────────┘

balances.forceUnreserve

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'    │
└─────────┴──────────┴───────────────┴────────────────┘

baseFee:

baseFee.setBaseFeePerGas

docs
args
┌─────────┬───────┬────────┬──────────┐
│ (index) │ name  │  type  │ typeName │
├─────────┼───────┼────────┼──────────┤
│    0    │ 'fee' │ 'U256' │  'U256'  │
└─────────┴───────┴────────┴──────────┘

baseFee.setIsActive

docs
args
┌─────────┬────────────┬────────┬──────────┐
│ (index) │    name    │  type  │ typeName │
├─────────┼────────────┼────────┼──────────┤
│    0    │ 'isActive' │ 'bool' │  'bool'  │
└─────────┴────────────┴────────┴──────────┘

baseFee.setElasticity

docs
args
┌─────────┬──────────────┬───────────┬───────────┐
│ (index) │     name     │   type    │ typeName  │
├─────────┼──────────────┼───────────┼───────────┤
│    0    │ 'elasticity' │ 'Permill' │ 'Permill' │
└─────────┴──────────────┴───────────┴───────────┘

councilCollective:

councilCollective.setMembers

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'    │
└─────────┴──────────────┴───────────────────────┴─────────────────────┘

councilCollective.execute

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'    │
└─────────┴───────────────┴────────────────┴────────────┘

councilCollective.propose

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'     │
└─────────┴───────────────┴────────────────┴───────────────┘

councilCollective.vote

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'      │
└─────────┴────────────┴────────────────┴─────────────────┘

councilCollective.close

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'      │
└─────────┴───────────────────────┴────────────────┴─────────────────┘

councilCollective.disapproveProposal

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'  │
└─────────┴────────────────┴────────┴──────────┘

crowdloanRewards:

crowdloanRewards.associateNativeIdentity

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'    │
└─────────┴─────────────────┴───────────────────────────┴───────────────────────┘

crowdloanRewards.changeAssociationWithRelayKeys

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)>' │
└─────────┴───────────────────┴──────────────────────────────────────────┴─────────────────────────────────────────────┘

crowdloanRewards.claim

docs
@ Collect whatever portion of your reward are currently vested.
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘

crowdloanRewards.updateRewardAddress

docs
@ Update reward address, proving that the caller owns the current native key
args
┌─────────┬────────────────────┬───────────────┬─────────────┐
│ (index) │        name        │     type      │  typeName   │
├─────────┼────────────────────┼───────────────┼─────────────┤
│    0    │ 'newRewardAccount' │ 'AccountId20' │ 'AccountId' │
└─────────┴────────────────────┴───────────────┴─────────────┘

crowdloanRewards.completeInitialization

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' │
└─────────┴────────────────────┴───────┴──────────────────────┘

crowdloanRewards.initializeRewardVec

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)>' │
└─────────┴───────────┴───────────────────────────────────────────┴──────────────────────────────────────────────────────────┘

democracy:

democracy.propose

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' │
└─────────┴────────────────┴─────────────────┴─────────────┘

democracy.second

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'    │
└─────────┴─────────────────────┴────────────────┴─────────────┘

democracy.vote

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'   │
└─────────┴────────────┴──────────────────────────────────┴───────────────────┘

democracy.emergencyCancel

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' │
└─────────┴────────────┴───────┴───────────────────┘

democracy.externalPropose

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'  │
└─────────┴────────────────┴────────┴──────────┘

democracy.externalProposeMajority

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'  │
└─────────┴────────────────┴────────┴──────────┘

democracy.externalProposeDefault

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'  │
└─────────┴────────────────┴────────┴──────────┘

democracy.fastTrack

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' │
└─────────┴────────────────┴────────┴───────────────┘

democracy.vetoExternal

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'  │
└─────────┴────────────────┴────────┴──────────┘

democracy.cancelReferendum

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' │
└─────────┴────────────┴────────────────┴───────────────────┘

democracy.cancelQueued

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' │
└─────────┴─────────┴───────┴───────────────────┘

democracy.delegate

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'  │
└─────────┴──────────────┴─────────────────────────────┴──────────────┘

democracy.undelegate

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) │
├─────────┤
└─────────┘

democracy.clearPublicProposals

docs
@ Clears all public proposals.
@
@ The dispatch origin of this call must be _Root_.
@
@ Weight: `O(1)`.
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘

democracy.notePreimage

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'  │
└─────────┴───────────────────┴─────────┴──────────┘

democracy.notePreimageOperational

docs
@ Same as `note_preimage` but origin is `OperationalPreimageOrigin`.
args
┌─────────┬───────────────────┬─────────┬──────────┐
│ (index) │       name        │  type   │ typeName │
├─────────┼───────────────────┼─────────┼──────────┤
│    0    │ 'encodedProposal' │ 'Bytes' │ 'Bytes'  │
└─────────┴───────────────────┴─────────┴──────────┘

democracy.noteImminentPreimage

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'  │
└─────────┴───────────────────┴─────────┴──────────┘

democracy.noteImminentPreimageOperational

docs
@ Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`.
args
┌─────────┬───────────────────┬─────────┬──────────┐
│ (index) │       name        │  type   │ typeName │
├─────────┼───────────────────┼─────────┼──────────┤
│    0    │ 'encodedProposal' │ 'Bytes' │ 'Bytes'  │
└─────────┴───────────────────┴─────────┴──────────┘

democracy.reapPreimage

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'   │
└─────────┴─────────────────────────┴────────────────┴──────────┘

democracy.unlock

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' │
└─────────┴──────────┴───────────────┴─────────────┘

democracy.removeVote

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' │
└─────────┴─────────┴───────┴───────────────────┘

democracy.removeOtherVote

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' │
└─────────┴──────────┴───────────────┴───────────────────┘

democracy.enactProposal

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' │
└─────────┴────────────────┴────────┴───────────────────┘

democracy.blacklist

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>' │
└─────────┴─────────────────┴───────────────┴───────────────────────────┘

democracy.cancelProposal

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' │
└─────────┴─────────────┴────────────────┴─────────────┘

dmpQueue:

dmpQueue.serviceOverweight

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'      │
└─────────┴───────────────┴───────┴───────────────────┘

ethereum:

ethereum.transact

docs
@ Transact an Ethereum transaction.
args
┌─────────┬───────────────┬────────────────────────────────────┬───────────────┐
│ (index) │     name      │                type                │   typeName    │
├─────────┼───────────────┼────────────────────────────────────┼───────────────┤
│    0    │ 'transaction' │ 'EthereumTransactionTransactionV2' │ 'Transaction' │
└─────────┴───────────────┴────────────────────────────────────┴───────────────┘

evm:

evm.withdraw

docs
@ Withdraw balance from EVM into currency/balances pallet.
args
┌─────────┬───────────┬────────┬─────────────┐
│ (index) │   name    │  type  │  typeName   │
├─────────┼───────────┼────────┼─────────────┤
│    0    │ 'address' │ 'H160' │   'H160'    │
│    1    │  'value'  │ 'u128' │ 'BalanceOf' │
└─────────┴───────────┴────────┴─────────────┘

evm.call

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>)>' │
└─────────┴────────────────────────┴─────────────────────────┴─────────────────────────┘

evm.create

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>)>' │
└─────────┴────────────────────────┴─────────────────────────┴─────────────────────────┘

evm.create2

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>)>' │
└─────────┴────────────────────────┴─────────────────────────┴─────────────────────────┘

evm.hotfixIncAccountSufficients

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>' │
└─────────┴─────────────┴─────────────┴─────────────┘

identity:

identity.addRegistrar

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' │
└─────────┴───────────┴───────────────┴─────────────┘

identity.setIdentity

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' │
└─────────┴────────┴──────────────────────────────┴────────────────┘

identity.setSubs

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)>' │
└─────────┴────────┴───────────────────────────┴─────────────────────────┘

identity.clearIdentity

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) │
├─────────┤
└─────────┘

identity.requestJudgement

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'    │
└─────────┴────────────┴─────────────────┴──────────────────┘

identity.cancelRequest

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' │
└─────────┴────────────┴───────┴──────────────────┘

identity.setFee

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'    │
└─────────┴─────────┴─────────────────┴──────────────────┘

identity.setAccountId

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'    │
└─────────┴─────────┴────────────────┴──────────────────┘

identity.setFields

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' │
└─────────┴──────────┴──────────────────────────┴──────────────────┘

identity.provideJudgement

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'    │
└─────────┴─────────────┴───────────────────────────┴──────────────────┘

identity.killIdentity

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' │
└─────────┴──────────┴───────────────┴────────────────┘

identity.addSub

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'     │
└─────────┴────────┴───────────────┴────────────────┘

identity.renameSub

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'     │
└─────────┴────────┴───────────────┴────────────────┘

identity.removeSub

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' │
└─────────┴───────┴───────────────┴────────────────┘

identity.quitSub

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) │
├─────────┤
└─────────┘

localAssets:

localAssets.create

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'    │
└─────────┴──────────────┴─────────────────┴────────────────┘

localAssets.forceCreate

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'    │
└─────────┴────────────────┴─────────────────┴────────────────┘

localAssets.destroy

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' │
└─────────┴───────────┴──────────────────────────────┴──────────────────┘

localAssets.mint

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'    │
└─────────┴───────────────┴─────────────────┴────────────────┘

localAssets.burn

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'    │
└─────────┴──────────┴─────────────────┴────────────────┘

localAssets.transfer

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'    │
└─────────┴──────────┴─────────────────┴────────────────┘

localAssets.transferKeepAlive

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'    │
└─────────┴──────────┴─────────────────┴────────────────┘

localAssets.forceTransfer

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'    │
└─────────┴──────────┴─────────────────┴────────────────┘

localAssets.freeze

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' │
└─────────┴───────┴─────────────────┴────────────────┘

localAssets.thaw

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' │
└─────────┴───────┴─────────────────┴────────────────┘

localAssets.freezeAsset

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' │
└─────────┴──────┴─────────────────┴───────────┘

localAssets.thawAsset

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' │
└─────────┴──────┴─────────────────┴───────────┘

localAssets.transferOwnership

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' │
└─────────┴─────────┴─────────────────┴────────────────┘

localAssets.setTeam

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' │
└─────────┴───────────┴─────────────────┴────────────────┘

localAssets.setMetadata

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'    │
└─────────┴────────────┴─────────────────┴───────────┘

localAssets.clearMetadata

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' │
└─────────┴──────┴─────────────────┴───────────┘

localAssets.forceSetMetadata

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'   │
└─────────┴────────────┴─────────────────┴───────────┘

localAssets.forceClearMetadata

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' │
└─────────┴──────┴─────────────────┴───────────┘

localAssets.forceAssetStatus

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'     │
└─────────┴────────────────┴─────────────────┴────────────────┘

localAssets.approveTransfer

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'    │
└─────────┴────────────┴─────────────────┴────────────────┘

localAssets.cancelApproval

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' │
└─────────┴────────────┴─────────────────┴────────────────┘

localAssets.forceCancelApproval

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' │
└─────────┴────────────┴─────────────────┴────────────────┘

localAssets.transferApproved

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'    │
└─────────┴───────────────┴─────────────────┴────────────────┘

localAssets.touch

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' │
└─────────┴──────┴─────────────────┴───────────┘

localAssets.refund

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'   │
└─────────┴─────────────┴─────────────────┴───────────┘

maintenanceMode:

maintenanceMode.enterMaintenanceMode

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) │
├─────────┤
└─────────┘

maintenanceMode.resumeNormalOperation

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) │
├─────────┤
└─────────┘

moonbeamOrbiters:

moonbeamOrbiters.collatorAddOrbiter

docs
@ Add an orbiter in a collator pool
args
┌─────────┬───────────┬───────────────┬────────────────┐
│ (index) │   name    │     type      │    typeName    │
├─────────┼───────────┼───────────────┼────────────────┤
│    0    │ 'orbiter' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────────┴───────────────┴────────────────┘

moonbeamOrbiters.collatorRemoveOrbiter

docs
@ Remove an orbiter from the caller collator pool
args
┌─────────┬───────────┬───────────────┬────────────────┐
│ (index) │   name    │     type      │    typeName    │
├─────────┼───────────┼───────────────┼────────────────┤
│    0    │ 'orbiter' │ 'AccountId20' │ 'LookupSource' │
└─────────┴───────────┴───────────────┴────────────────┘

moonbeamOrbiters.orbiterLeaveCollatorPool

docs
@ Remove the caller from the specified collator pool
args
┌─────────┬────────────┬───────────────┬────────────────┐
│ (index) │    name    │     type      │    typeName    │
├─────────┼────────────┼───────────────┼────────────────┤
│    0    │ 'collator' │ 'AccountId20' │ 'LookupSource' │
└─────────┴────────────┴───────────────┴────────────────┘

moonbeamOrbiters.orbiterRegister

docs
@ Registering as an orbiter
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘

moonbeamOrbiters.orbiterUnregister

docs
@ Deregistering from orbiters
args
┌─────────┬──────────────────────┬───────┬──────────┐
│ (index) │         name         │ type  │ typeName │
├─────────┼──────────────────────┼───────┼──────────┤
│    0    │ 'collatorsPoolCount' │ 'u32' │  'u32'   │
└─────────┴──────────────────────┴───────┴──────────┘

moonbeamOrbiters.addCollator

docs
@ Add a collator to orbiters program.
args
┌─────────┬────────────┬───────────────┬────────────────┐
│ (index) │    name    │     type      │    typeName    │
├─────────┼────────────┼───────────────┼────────────────┤
│    0    │ 'collator' │ 'AccountId20' │ 'LookupSource' │
└─────────┴────────────┴───────────────┴────────────────┘

moonbeamOrbiters.removeCollator

docs
@ Remove a collator from orbiters program.
args
┌─────────┬────────────┬───────────────┬────────────────┐
│ (index) │    name    │     type      │    typeName    │
├─────────┼────────────┼───────────────┼────────────────┤
│    0    │ 'collator' │ 'AccountId20' │ 'LookupSource' │
└─────────┴────────────┴───────────────┴────────────────┘

parachainStaking:

parachainStaking.setStakingExpectations

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>' │
└─────────┴────────────────┴──────────────────────────────────────────────┴────────────────────┘

parachainStaking.setInflation

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>' │
└─────────┴────────────┴───────────────────────────────────────────────────────┴──────────────────┘

parachainStaking.setParachainBondAccount

docs
@ Set the account that will hold funds set aside for parachain bond
args
┌─────────┬───────┬───────────────┬─────────────┐
│ (index) │ name  │     type      │  typeName   │
├─────────┼───────┼───────────────┼─────────────┤
│    0    │ 'new' │ 'AccountId20' │ 'AccountId' │
└─────────┴───────┴───────────────┴─────────────┘

parachainStaking.setParachainBondReservePercent

docs
@ Set the percent of inflation set aside for parachain bond
args
┌─────────┬───────┬───────────┬───────────┐
│ (index) │ name  │   type    │ typeName  │
├─────────┼───────┼───────────┼───────────┤
│    0    │ 'new' │ 'Percent' │ 'Percent' │
└─────────┴───────┴───────────┴───────────┘

parachainStaking.setTotalSelected

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'   │
└─────────┴───────┴───────┴──────────┘

parachainStaking.setCollatorCommission

docs
@ Set the commission for all collators
args
┌─────────┬───────┬───────────┬───────────┐
│ (index) │ name  │   type    │ typeName  │
├─────────┼───────┼───────────┼───────────┤
│    0    │ 'new' │ 'Perbill' │ 'Perbill' │
└─────────┴───────┴───────────┴───────────┘

parachainStaking.setBlocksPerRound

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'   │
└─────────┴───────┴───────┴──────────┘

parachainStaking.joinCandidates

docs
@ Join the set of collator candidates
args
┌─────────┬──────────────────┬────────┬─────────────┐
│ (index) │       name       │  type  │  typeName   │
├─────────┼──────────────────┼────────┼─────────────┤
│    0    │      'bond'      │ 'u128' │ 'BalanceOf' │
│    1    │ 'candidateCount' │ 'u32'  │    'u32'    │
└─────────┴──────────────────┴────────┴─────────────┘

parachainStaking.scheduleLeaveCandidates

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'   │
└─────────┴──────────────────┴───────┴──────────┘

parachainStaking.executeLeaveCandidates

docs
@ Execute leave candidates request
args
┌─────────┬────────────────────────────┬───────────────┬─────────────┐
│ (index) │            name            │     type      │  typeName   │
├─────────┼────────────────────────────┼───────────────┼─────────────┤
│    0    │        'candidate'         │ 'AccountId20' │ 'AccountId' │
│    1    │ 'candidateDelegationCount' │     'u32'     │    'u32'    │
└─────────┴────────────────────────────┴───────────────┴─────────────┘

parachainStaking.cancelLeaveCandidates

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'   │
└─────────┴──────────────────┴───────┴──────────┘

parachainStaking.goOffline

docs
@ Temporarily leave the set of collator candidates without unbonding
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘

parachainStaking.goOnline

docs
@ Rejoin the set of collator candidates if previously had called `go_offline`
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘

parachainStaking.candidateBondMore

docs
@ Increase collator candidate self bond by `more`
args
┌─────────┬────────┬────────┬─────────────┐
│ (index) │  name  │  type  │  typeName   │
├─────────┼────────┼────────┼─────────────┤
│    0    │ 'more' │ 'u128' │ 'BalanceOf' │
└─────────┴────────┴────────┴─────────────┘

parachainStaking.scheduleCandidateBondLess

docs
@ Request by collator candidate to decrease self bond by `less`
args
┌─────────┬────────┬────────┬─────────────┐
│ (index) │  name  │  type  │  typeName   │
├─────────┼────────┼────────┼─────────────┤
│    0    │ 'less' │ 'u128' │ 'BalanceOf' │
└─────────┴────────┴────────┴─────────────┘

parachainStaking.executeCandidateBondLess

docs
@ Execute pending request to adjust the collator candidate self bond
args
┌─────────┬─────────────┬───────────────┬─────────────┐
│ (index) │    name     │     type      │  typeName   │
├─────────┼─────────────┼───────────────┼─────────────┤
│    0    │ 'candidate' │ 'AccountId20' │ 'AccountId' │
└─────────┴─────────────┴───────────────┴─────────────┘

parachainStaking.cancelCandidateBondLess

docs
@ Cancel pending request to adjust the collator candidate self bond
args
┌─────────┐
│ (index) │
├─────────┤
└─────────┘

parachainStaking.delegate

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'    │
└─────────┴────────────────────────────┴───────────────┴─────────────┘

parachainStaking.scheduleLeaveDelegators

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) │
├─────────┤
└─────────┘

parachainStaking.executeLeaveDelegators

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'    │
└─────────┴───────────────────┴───────────────┴─────────────┘

parachainStaking.cancelLeaveDelegators

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) │
├─────────┤
└─────────┘

parachainStaking.scheduleRevokeDelegation

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' │
└─────────┴────────────┴───────────────┴─────────────┘

parachainStaking.delegatorBondMore

docs
@ Bond more for delegators wrt a specific collator candidate.
args
┌─────────┬─────────────┬───────────────┬─────────────┐
│ (index) │    name     │     type      │  typeName   │
├─────────┼─────────────┼───────────────┼─────────────┤
│    0    │ 'candidate' │ 'AccountId20' │ 'AccountId' │
│    1    │   'more'    │    'u128'     │ 'BalanceOf' │
└─────────┴─────────────┴───────────────┴─────────────┘

parachainStaking.scheduleDelegatorBondLess

docs
@ Request bond less for delegators wrt a specific collator candidate.
args
┌─────────┬─────────────┬───────────────┬─────────────┐
│ (index) │    name     │     type      │  typeName   │
├─────────┼─────────────┼───────────────┼─────────────┤
│    0    │ 'candidate' │ 'AccountId20' │ 'AccountId' │
│    1    │   'less'    │    'u128'     │ 'BalanceOf' │
└─────────┴─────────────┴───────────────┴─────────────┘

parachainStaking.executeDelegationRequest

docs
@ Execute pending request to change an existing delegation
args
┌─────────┬─────────────┬───────────────┬─────────────┐
│ (index) │    name     │     type      │  typeName   │
├─────────┼─────────────┼───────────────┼─────────────┤
│    0    │ 'delegator' │ 'AccountId20' │ 'AccountId' │
│    1    │ 'candidate' │ 'AccountId20' │ 'AccountId' │
└─────────┴─────────────┴───────────────┴─────────────┘

parachainStaking.cancelDelegationRequest

docs
@ Cancel request to change an existing delegation.
args
┌─────────┬─────────────┬───────────────┬─────────────┐
│ (index) │    name     │     type      │  typeName   │
├─────────┼─────────────┼───────────────┼─────────────┤
│    0    │ 'candidate' │ 'AccountId20' │ 'AccountId' │
└─────────┴─────────────┴───────────────┴─────────────┘

parachainSystem:

parachainSystem.setValidationData

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' │
└─────────┴────────┴───────────────────────────────────────────────────────────┴─────────────────────────┘

parachainSystem.sudoSendUpwardMessage

docs
args
┌─────────┬───────────┬─────────┬─────────────────┐
│ (index) │   name    │  type   │    typeName     │
├─────────┼───────────┼─────────┼─────────────────┤
│    0    │ 'message' │ 'Bytes' │ 'UpwardMessage' │
└─────────┴───────────┴─────────┴─────────────────┘

parachainSystem.authorizeUpgrade

docs
args
┌─────────┬────────────┬────────┬──────────┐
│ (index) │    name    │  type  │ typeName │
├─────────┼────────────┼────────┼──────────┤
│    0    │ 'codeHash' │ 'H256' │  'Hash'  │
└─────────┴────────────┴────────┴──────────┘

parachainSystem.enactAuthorizedUpgrade

docs
args
┌─────────┬────────┬─────────┬──────────┐
│ (index) │  name  │  type   │ typeName │
├─────────┼────────┼─────────┼──────────┤
│    0    │ 'code' │ 'Bytes' │ 'Bytes'  │
└─────────┴────────┴─────────┴──────────┘

polkadotXcm:

polkadotXcm.send

docs
args
┌─────────┬───────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │   name    │            type             │         typeName         │
├─────────┼───────────┼─────────────────────────────┼──────────────────────────┤
│    0    │  'dest'   │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
│    1    │ 'message' │      'XcmVersionedXcm'      │      'VersionedXcm'      │
└─────────┴───────────┴─────────────────────────────┴──────────────────────────┘

polkadotXcm.teleportAssets

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'           │
└─────────┴────────────────┴─────────────────────────────┴──────────────────────────┘

polkadotXcm.reserveTransferAssets

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'           │
└─────────┴────────────────┴─────────────────────────────┴──────────────────────────┘

polkadotXcm.execute

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'    │
└─────────┴─────────────┴───────────────────┴────────────────┘

polkadotXcm.forceXcmVersion

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'   │
└─────────┴──────────────┴──────────────────────┴─────────────────┘

polkadotXcm.forceDefaultXcmVersion

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>' │
└─────────┴───────────────────┴───────────────┴──────────────────────┘

polkadotXcm.forceSubscribeVersionNotify

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' │
└─────────┴────────────┴─────────────────────────────┴──────────────────────────┘

polkadotXcm.forceUnsubscribeVersionNotify

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' │
└─────────┴────────────┴─────────────────────────────┴──────────────────────────┘

polkadotXcm.limitedReserveTransferAssets

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'       │
└─────────┴────────────────┴─────────────────────────────┴──────────────────────────┘

polkadotXcm.limitedTeleportAssets

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'       │
└─────────┴────────────────┴─────────────────────────────┴──────────────────────────┘

proxy:

proxy.proxy

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'        │
└─────────┴──────────────────┴────────────────────────────────────┴─────────────────────┘

proxy.addProxy

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' │
└─────────┴─────────────┴────────────────────────────┴───────────────┘

proxy.removeProxy

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' │
└─────────┴─────────────┴────────────────────────────┴───────────────┘

proxy.removeProxies

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) │
├─────────┤
└─────────┘

proxy.anonymous

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'     │
└─────────┴─────────────┴────────────────────────────┴───────────────┘

proxy.killAnonymous

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'     │
└─────────┴─────────────┴────────────────────────────┴───────────────┘

proxy.announce

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' │
└─────────┴────────────┴───────────────┴──────────────┘

proxy.removeAnnouncement

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' │
└─────────┴────────────┴───────────────┴──────────────┘

proxy.rejectAnnouncement

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' │
└─────────┴────────────┴───────────────┴──────────────┘

proxy.proxyAnnounced

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'        │
└─────────┴──────────────────┴────────────────────────────────────┴─────────────────────┘

scheduler:

scheduler.schedule

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'  │
└─────────┴─────────────────┴───────────────────────────────────┴──────────────────┘

scheduler.cancel

docs
@ Cancel an anonymously scheduled task.
args
┌─────────┬─────────┬───────┬───────────────┐
│ (index) │  name   │ type  │   typeName    │
├─────────┼─────────┼───────┼───────────────┤
│    0    │ 'when'  │ 'u32' │ 'BlockNumber' │
│    1    │ 'index' │ 'u32' │     'u32'     │
└─────────┴─────────┴───────┴───────────────┘

scheduler.scheduleNamed

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'  │
└─────────┴─────────────────┴───────────────────────────────────┴──────────────────┘

scheduler.cancelNamed

docs
@ Cancel a named scheduled task.
args
┌─────────┬──────┬─────────┬──────────┐
│ (index) │ name │  type   │ typeName │
├─────────┼──────┼─────────┼──────────┤
│    0    │ 'id' │ 'Bytes' │ 'Bytes'  │
└─────────┴──────┴─────────┴──────────┘

scheduler.scheduleAfter

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'  │
└─────────┴─────────────────┴───────────────────────────────────┴──────────────────┘

scheduler.scheduleNamedAfter

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'  │
└─────────┴─────────────────┴───────────────────────────────────┴──────────────────┘

system:

system.fillBlock

docs
@ A dispatch that will fill the block weight up to the given ratio.
args
┌─────────┬─────────┬───────────┬───────────┐
│ (index) │  name   │   type    │ typeName  │
├─────────┼─────────┼───────────┼───────────┤
│    0    │ 'ratio' │ 'Perbill' │ 'Perbill' │
└─────────┴─────────┴───────────┴───────────┘

system.remark

docs
@ Make some on-chain remark.
@
@ # <weight>
@ - `O(1)`
@ # </weight>
args
┌─────────┬──────────┬─────────┬──────────┐
│ (index) │   name   │  type   │ typeName │
├─────────┼──────────┼─────────┼──────────┤
│    0    │ 'remark' │ 'Bytes' │ 'Bytes'  │
└─────────┴──────────┴─────────┴──────────┘

system.setHeapPages

docs
@ Set the number of pages in the WebAssembly environment's heap.
args
┌─────────┬─────────┬───────┬──────────┐
│ (index) │  name   │ type  │ typeName │
├─────────┼─────────┼───────┼──────────┤
│    0    │ 'pages' │ 'u64' │  'u64'   │
└─────────┴─────────┴───────┴──────────┘

system.setCode

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'  │
└─────────┴────────┴─────────┴──────────┘

system.setCodeWithoutChecks

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'  │
└─────────┴────────┴─────────┴──────────┘

system.setStorage

docs
@ Set some items of storage.
args
┌─────────┬─────────┬──────────────────────┬─────────────────┐
│ (index) │  name   │         type         │    typeName     │
├─────────┼─────────┼──────────────────────┼─────────────────┤
│    0    │ 'items' │ 'Vec<(Bytes,Bytes)>' │ 'Vec<KeyValue>' │
└─────────┴─────────┴──────────────────────┴─────────────────┘

system.killStorage

docs
@ Kill some items from storage.
args
┌─────────┬────────┬──────────────┬────────────┐
│ (index) │  name  │     type     │  typeName  │
├─────────┼────────┼──────────────┼────────────┤
│    0    │ 'keys' │ 'Vec<Bytes>' │ 'Vec<Key>' │
└─────────┴────────┴──────────────┴────────────┘

system.killPrefix

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'   │
└─────────┴───────────┴─────────┴──────────┘

system.remarkWithEvent

docs
@ Make some on-chain remark and emit event.
args
┌─────────┬──────────┬─────────┬──────────┐
│ (index) │   name   │  type   │ typeName │
├─────────┼──────────┼─────────┼──────────┤
│    0    │ 'remark' │ 'Bytes' │ 'Bytes'  │
└─────────┴──────────┴─────────┴──────────┘

techCommitteeCollective:

techCommitteeCollective.setMembers

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'    │
└─────────┴──────────────┴───────────────────────┴─────────────────────┘

techCommitteeCollective.execute

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'    │
└─────────┴───────────────┴────────────────┴────────────┘

techCommitteeCollective.propose

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'     │
└─────────┴───────────────┴────────────────┴───────────────┘

techCommitteeCollective.vote

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'      │
└─────────┴────────────┴────────────────┴─────────────────┘

techCommitteeCollective.close

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'      │
└─────────┴───────────────────────┴────────────────┴─────────────────┘

techCommitteeCollective.disapproveProposal

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'  │
└─────────┴────────────────┴────────┴──────────┘

timestamp:

timestamp.set

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' │
└─────────┴───────┴────────────────┴──────────┘

treasury:

treasury.proposeSpend

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' │
└─────────┴───────────────┴─────────────────┴────────────────┘

treasury.rejectProposal

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' │
└─────────┴──────────────┴────────────────┴─────────────────┘

treasury.approveProposal

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' │
└─────────┴──────────────┴────────────────┴─────────────────┘

utility:

utility.batch

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>' │
└─────────┴─────────┴─────────────┴─────────────┘

utility.asDerivative

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'  │
└─────────┴─────────┴────────┴──────────┘

utility.batchAll

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>' │
└─────────┴─────────┴─────────────┴─────────────┘

utility.dispatchAs

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'      │
└─────────┴────────────┴───────────────────────────────┴─────────────────┘

xTokens:

xTokens.transfer

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'         │
└─────────┴──────────────┴──────────────────────────────────────┴──────────────────────────┘

xTokens.transferMultiasset

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'         │
└─────────┴──────────────┴─────────────────────────────┴──────────────────────────┘

xTokens.transferWithFee

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'         │
└─────────┴──────────────┴──────────────────────────────────────┴──────────────────────────┘

xTokens.transferMultiassetWithFee

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'         │
└─────────┴──────────────┴─────────────────────────────┴──────────────────────────┘

xTokens.transferMulticurrencies

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'           │
└─────────┴──────────────┴──────────────────────────────────────────────────┴─────────────────────────────┘

xTokens.transferMultiassets

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'         │
└─────────┴──────────────┴─────────────────────────────┴──────────────────────────┘

xcmTransactor:

xcmTransactor.register

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'    │
└─────────┴─────────┴───────────────┴─────────────┘

xcmTransactor.deregister

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'   │
└─────────┴─────────┴───────┴──────────┘

xcmTransactor.transactThroughDerivativeMultilocation

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'          │
└─────────┴───────────────┴───────────────────────────────────────┴──────────────────────────┘

xcmTransactor.transactThroughDerivative

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'    │
└─────────┴──────────────┴───────────────────────────────────────┴──────────────┘

xcmTransactor.transactThroughSovereign

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'       │
└─────────┴───────────────┴─────────────────────────────┴──────────────────────────┘

xcmTransactor.setTransactInfo

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'           │
└─────────┴───────────────────────┴─────────────────────────────┴──────────────────────────┘

xcmTransactor.removeTransactInfo

docs
@ Remove the transact info of a location
args
┌─────────┬────────────┬─────────────────────────────┬──────────────────────────┐
│ (index) │    name    │            type             │         typeName         │
├─────────┼────────────┼─────────────────────────────┼──────────────────────────┤
│    0    │ 'location' │ 'XcmVersionedMultiLocation' │ 'VersionedMultiLocation' │
└─────────┴────────────┴─────────────────────────────┴──────────────────────────┘