Extrinsics
The following sections contain Extrinsics methods are part of the default asset-hub-kusama runtime. On the api, these are exposed via api.tx.<module>.<method>.
(NOTE: These were generated from a static/snapshot view of a recent default asset-hub-kusama runtime. Some items may not be available in older nodes, or in any customized implementations.)
ahMigrator
finishMigration(data: Option<PalletRcMigratorMigrationFinishedData>)
interface:
api.tx.ahMigrator.finishMigrationsummary: Finish the migration.
This is typically called by the Relay Chain to signal the migration has finished.
The
dataparameter might beNoneif we are running the migration for a second time for some pallets and have already performed the checking account balance correction, so we do not need to do it this time.
forceSetStage(stage: PalletAhMigratorMigrationStage)
interface:
api.tx.ahMigrator.forceSetStagesummary: Set the migration stage.
This call is intended for emergency use only and is guarded by the [
Config::AdminOrigin].
receiveAccounts(accounts: Vec<PalletRcMigratorAccountsAccount>)
interface:
api.tx.ahMigrator.receiveAccountssummary: Receive accounts from the Relay Chain.
The accounts sent with
pallet_rc_migrator::Pallet::migrate_accountsfunction.
receiveAssetRates(rates: Vec<(PolkadotRuntimeCommonImplsVersionedLocatableAsset,u128)>)
- interface:
api.tx.ahMigrator.receiveAssetRates
receiveBagsListMessages(messages: Vec<PalletRcMigratorStakingBagsListPortableBagsListMessage>)
- interface:
api.tx.ahMigrator.receiveBagsListMessages
receiveBountiesMessages(messages: Vec<PalletRcMigratorBountiesRcBountiesMessage>)
- interface:
api.tx.ahMigrator.receiveBountiesMessages
receiveChildBountiesMessages(messages: Vec<PalletRcMigratorChildBountiesPortableChildBountiesMessage>)
- interface:
api.tx.ahMigrator.receiveChildBountiesMessages
receiveClaims(messages: Vec<PalletRcMigratorClaimsRcClaimsMessage>)
- interface:
api.tx.ahMigrator.receiveClaims
receiveConvictionVotingMessages(messages: Vec<PalletRcMigratorConvictionVotingRcConvictionVotingMessage>)
- interface:
api.tx.ahMigrator.receiveConvictionVotingMessages
receiveCrowdloanMessages(messages: Vec<PalletRcMigratorCrowdloanRcCrowdloanMessage>)
- interface:
api.tx.ahMigrator.receiveCrowdloanMessages
receiveDelegatedStakingMessages(messages: Vec<PalletRcMigratorStakingDelegatedStakingPortableDelegatedStakingMessage>)
- interface:
api.tx.ahMigrator.receiveDelegatedStakingMessages
receiveIndices(indices: Vec<PalletRcMigratorIndicesRcIndicesIndex>)
- interface:
api.tx.ahMigrator.receiveIndices
receiveMultisigs(accounts: Vec<PalletRcMigratorMultisigRcMultisig>)
interface:
api.tx.ahMigrator.receiveMultisigssummary: Receive multisigs from the Relay Chain.
This will be called from an XCM
Transactinside a DMP from the relay chain. The multisigs were prepared bypallet_rc_migrator::multisig::MultisigMigrator::migrate_many.
receiveNomPoolsMessages(messages: Vec<PalletRcMigratorStakingNomPoolsRcNomPoolsMessage>)
- interface:
api.tx.ahMigrator.receiveNomPoolsMessages
receivePreimageChunks(chunks: Vec<PalletRcMigratorPreimageChunksRcPreimageChunk>)
- interface:
api.tx.ahMigrator.receivePreimageChunks
receivePreimageLegacyStatus(legacy_status: Vec<PalletRcMigratorPreimageLegacyRequestStatusRcPreimageLegacyStatus>)
- interface:
api.tx.ahMigrator.receivePreimageLegacyStatus
receivePreimageRequestStatus(request_status: Vec<PalletRcMigratorPreimageRequestStatusPortableRequestStatus>)
- interface:
api.tx.ahMigrator.receivePreimageRequestStatus
receiveProxyAnnouncements(announcements: Vec<PalletRcMigratorProxyRcProxyAnnouncement>)
- interface:
api.tx.ahMigrator.receiveProxyAnnouncements - summary: Receive proxy announcements from the Relay Chain.
receiveProxyProxies(proxies: Vec<PalletRcMigratorProxyRcProxy>)
- interface:
api.tx.ahMigrator.receiveProxyProxies - summary: Receive proxies from the Relay Chain.
receiveRecoveryMessages(messages: Vec<PalletRcMigratorRecoveryPortableRecoveryMessage>)
- interface:
api.tx.ahMigrator.receiveRecoveryMessages
receiveReferendaMetadata(metadata: Vec<(u32,H256)>)
- interface:
api.tx.ahMigrator.receiveReferendaMetadata
receiveReferendaValues(values: Vec<PalletRcMigratorReferendaReferendaMessage>)
- interface:
api.tx.ahMigrator.receiveReferendaValues - summary: Receive referendum counts, deciding counts, votes for the track queue.
receiveReferendums(referendums: Vec<(u32,PalletReferendaReferendumInfoRcPalletsOrigin)>)
- interface:
api.tx.ahMigrator.receiveReferendums - summary: Receive referendums from the Relay Chain.
receiveSchedulerAgendaMessages(messages: Vec<PalletRcMigratorSchedulerSchedulerAgendaMessage>)
- interface:
api.tx.ahMigrator.receiveSchedulerAgendaMessages
receiveSchedulerMessages(messages: Vec<PalletRcMigratorSchedulerRcSchedulerMessage>)
- interface:
api.tx.ahMigrator.receiveSchedulerMessages
receiveSocietyMessages(messages: Vec<PalletRcMigratorSocietyPortableSocietyMessage>)
- interface:
api.tx.ahMigrator.receiveSocietyMessages
receiveStakingMessages(messages: Vec<PalletRcMigratorStakingMessagePortableStakingMessage>)
- interface:
api.tx.ahMigrator.receiveStakingMessages
receiveTreasuryMessages(messages: Vec<PalletRcMigratorTreasuryPortableTreasuryMessage>)
- interface:
api.tx.ahMigrator.receiveTreasuryMessages
receiveVestingSchedules(schedules: Vec<PalletRcMigratorVestingRcVestingSchedule>)
- interface:
api.tx.ahMigrator.receiveVestingSchedules
sendXcmMessage(dest: XcmVersionedLocation, message: XcmVersionedXcm)
- interface:
api.tx.ahMigrator.sendXcmMessage - summary: XCM send call identical to the [
pallet_xcm::Pallet::send] call but with the [Config::SendXcm] router which will be able to send messages to the Relay Chain during the migration.
setDmpQueuePriority(new: PalletRcMigratorQueuePriority)
interface:
api.tx.ahMigrator.setDmpQueuePrioritysummary: Set the DMP queue priority configuration.
Can only be called by the
AdminOrigin.
setManager(new: Option<AccountId32>)
interface:
api.tx.ahMigrator.setManagersummary: Set the manager account id.
The manager has the similar to [
Config::AdminOrigin] privileges except that it can not set the manager account id viaset_managercall.
startMigration()
interface:
api.tx.ahMigrator.startMigrationsummary: Start the data migration.
This is typically called by the Relay Chain to start the migration on the Asset Hub and receive a handshake message indicating the Asset Hub's readiness.
ahOps
transferToPostMigrationTreasury(asset_id: StagingXcmV5Location)
interface:
api.tx.ahOps.transferToPostMigrationTreasurysummary: Transfer the balance from the pre-migration treasury account to the post-migration treasury account.
This call can only be called after the migration is completed.
unreserveCrowdloanReserve(block: u32, depositor: Option<AccountId32>, para_id: u32)
interface:
api.tx.ahOps.unreserveCrowdloanReservesummary: Unreserve the deposit that was taken for creating a crowdloan.
This can be called once either:
The crowdloan failed to win an auction and timed out
Won an auction, all leases expired and all contributions are withdrawn
Can be called by any signed origin. The condition that all contributions are withdrawn is in place since the reserve acts as a storage deposit.
unreserveLeaseDeposit(block: u32, depositor: Option<AccountId32>, para_id: u32)
interface:
api.tx.ahOps.unreserveLeaseDepositsummary: Unreserve the deposit that was taken for creating a crowdloan.
This can be called by any signed origin. It unreserves the lease deposit on the account that won the lease auction. It can be unreserved once all leases expired. Note that it will be called automatically from
withdraw_crowdloan_contributionfor the matching crowdloan account.Solo bidder accounts that won lease auctions can use this to unreserve their amount.
withdrawCrowdloanContribution(block: u32, depositor: Option<AccountId32>, para_id: u32)
interface:
api.tx.ahOps.withdrawCrowdloanContributionsummary: Withdraw the contribution of a finished crowdloan.
A crowdloan contribution can be withdrawn if either:
The crowdloan failed to in an auction and timed out
Won an auction and all leases expired
Can be called by any signed origin.
assetConversion
addLiquidity(asset1: StagingXcmV5Location, asset2: StagingXcmV5Location, amount1_desired: u128, amount2_desired: u128, amount1_min: u128, amount2_min: u128, mint_to: AccountId32)
interface:
api.tx.assetConversion.addLiquiditysummary: Provide liquidity into the pool of
asset1andasset2. NOTE: an optimal amount of asset1 and asset2 will be calculated and might be different than the providedamount1_desired/amount2_desiredthus you should provide the min amount you're happy to provide. Paramsamount1_min/amount2_minrepresent that.mint_towill be sent the liquidity tokens that represent this share of the pool.NOTE: when encountering an incorrect exchange rate and non-withdrawable pool liquidity, batch an atomic call with [
Pallet::add_liquidity] and [Pallet::swap_exact_tokens_for_tokens] or [Pallet::swap_tokens_for_exact_tokens] calls to render the liquidity withdrawable and rectify the exchange rate.Once liquidity is added, someone may successfully call [
Pallet::swap_exact_tokens_for_tokens].
createPool(asset1: StagingXcmV5Location, asset2: StagingXcmV5Location)
interface:
api.tx.assetConversion.createPoolsummary: Creates an empty liquidity pool and an associated new
lp_tokenasset (the id of which is returned in theEvent::PoolCreatedevent).Once a pool is created, someone may [
Pallet::add_liquidity] to it.
removeLiquidity(asset1: StagingXcmV5Location, asset2: StagingXcmV5Location, lp_token_burn: u128, amount1_min_receive: u128, amount2_min_receive: u128, withdraw_to: AccountId32)
- interface:
api.tx.assetConversion.removeLiquidity - summary: Allows you to remove liquidity by providing the
lp_token_burntokens that will be burned in the process. With the usage ofamount1_min_receive/amount2_min_receiveit's possible to control the min amount of returned tokens you're happy with.
swapExactTokensForTokens(path: Vec<StagingXcmV5Location>, amount_in: u128, amount_out_min: u128, send_to: AccountId32, keep_alive: bool)
interface:
api.tx.assetConversion.swapExactTokensForTokenssummary: Swap the exact amount of
asset1intoasset2.amount_out_minparam allows you to specify the min amount of theasset2you're happy to receive.[
AssetConversionApi::quote_price_exact_tokens_for_tokens] runtime call can be called for a quote.
swapTokensForExactTokens(path: Vec<StagingXcmV5Location>, amount_out: u128, amount_in_max: u128, send_to: AccountId32, keep_alive: bool)
interface:
api.tx.assetConversion.swapTokensForExactTokenssummary: Swap any amount of
asset1to get the exact amount ofasset2.amount_in_maxparam allows to specify the max amount of theasset1you're happy to provide.[
AssetConversionApi::quote_price_tokens_for_exact_tokens] runtime call can be called for a quote.
touch(asset1: StagingXcmV5Location, asset2: StagingXcmV5Location)
interface:
api.tx.assetConversion.touchsummary: Touch an existing pool to fulfill prerequisites before providing liquidity, such as ensuring that the pool's accounts are in place. It is typically useful when a pool creator removes the pool's accounts and does not provide a liquidity. This action may involve holding assets from the caller as a deposit for creating the pool's accounts.
The origin must be Signed.
asset1: The asset ID of an existing pool with a pair (asset1, asset2).asset2: The asset ID of an existing pool with a pair (asset1, asset2).Emits
Touchedevent when successful.
assetRate
create(asset_kind: PolkadotRuntimeCommonImplsVersionedLocatableAsset, rate: u128)
interface:
api.tx.assetRate.createsummary: Initialize a conversion rate to native balance for the given asset.
Complexity
- O(1)
remove(asset_kind: PolkadotRuntimeCommonImplsVersionedLocatableAsset)
interface:
api.tx.assetRate.removesummary: Remove an existing conversion rate to native balance for the given asset.
Complexity
- O(1)
update(asset_kind: PolkadotRuntimeCommonImplsVersionedLocatableAsset, rate: u128)
interface:
api.tx.assetRate.updatesummary: Update the conversion rate to native balance for the given asset.
Complexity
- O(1)
assets
approveTransfer(id: Compact<u32>, delegate: MultiAddress, amount: Compact<u128>)
interface:
api.tx.assets.approveTransfersummary: Approve an amount of asset for transfer by a delegated third-party account.
Origin must be Signed.
Ensures that
ApprovalDepositworth ofCurrencyis reserved from signing account for the purpose of holding the approval. If some non-zero amount of assets is already approved from signing account todelegate, then it is topped up or unreserved to meet the right value.NOTE: The signing account does not need to own
amountof 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 bydelegate. If there is already an approval in place, then this acts additively.Emits
ApprovedTransferon success.Weight:
O(1)
block(id: Compact<u32>, who: MultiAddress)
interface:
api.tx.assets.blocksummary: Disallow further unprivileged transfers of an asset
idto and from an accountwho.Origin must be Signed and the sender should be the Freezer of the asset
id.id: The identifier of the account's asset.who: The account to be unblocked.Emits
Blocked.Weight:
O(1)
burn(id: Compact<u32>, who: MultiAddress, amount: Compact<u128>)
interface:
api.tx.assets.burnsummary: Reduce the balance of
whoby as much as possible up toamountassets ofid.Origin must be Signed and the sender should be the Manager of the asset
id.Bails with
NoAccountif thewhois 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 whichwho's balance should be reduced.Emits
Burnedwith 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 ofwho; Pre & post Zombie-status ofwho.
cancelApproval(id: Compact<u32>, delegate: MultiAddress)
interface:
api.tx.assets.cancelApprovalsummary: 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_transferfor the approval.id: The identifier of the asset.delegate: The account delegated permission to transfer asset.Emits
ApprovalCancelledon success.Weight:
O(1)
clearMetadata(id: Compact<u32>)
interface:
api.tx.assets.clearMetadatasummary: 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)
create(id: Compact<u32>, admin: MultiAddress, min_balance: u128)
interface:
api.tx.assets.createsummary: 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 conform to the configured
CreateOriginand 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. If [NextAssetId] is set, then this must be equal to it.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
Createdevent when successful.Weight:
O(1)
destroyAccounts(id: Compact<u32>)
interface:
api.tx.assets.destroyAccountssummary: Destroy all accounts associated with a given asset.
destroy_accountsshould only be called afterstart_destroyhas been called, and the asset is in aDestroyingstate.Due to weight restrictions, this function may need to be called multiple times to fully destroy all accounts. It will destroy
RemoveItemsLimitaccounts at a time.id: The identifier of the asset to be destroyed. This must identify an existing asset.Each call emits the
Event::DestroyedAccountsevent.
destroyApprovals(id: Compact<u32>)
interface:
api.tx.assets.destroyApprovalssummary: Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).
destroy_approvalsshould only be called afterstart_destroyhas been called, and the asset is in aDestroyingstate.Due to weight restrictions, this function may need to be called multiple times to fully destroy all approvals. It will destroy
RemoveItemsLimitapprovals at a time.id: The identifier of the asset to be destroyed. This must identify an existing asset.Each call emits the
Event::DestroyedApprovalsevent.
finishDestroy(id: Compact<u32>)
interface:
api.tx.assets.finishDestroysummary: Complete destroying asset and unreserve currency.
finish_destroyshould only be called afterstart_destroyhas been called, and the asset is in aDestroyingstate. All accounts or approvals should be destroyed before hand.id: The identifier of the asset to be destroyed. This must identify an existing asset.Each successful call emits the
Event::Destroyedevent.
forceAssetStatus(id: Compact<u32>, owner: MultiAddress, issuer: MultiAddress, admin: MultiAddress, freezer: MultiAddress, min_balance: Compact<u128>, is_sufficient: bool, is_frozen: bool)
interface:
api.tx.assets.forceAssetStatussummary: 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 totrue, then non-zero balances may be stored without aconsumerreference (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
AssetStatusChangedwith the identity of the asset.Weight:
O(1)
forceCancelApproval(id: Compact<u32>, owner: MultiAddress, delegate: MultiAddress)
interface:
api.tx.assets.forceCancelApprovalsummary: 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_transferfor the approval.id: The identifier of the asset.delegate: The account delegated permission to transfer asset.Emits
ApprovalCancelledon success.Weight:
O(1)
forceClearMetadata(id: Compact<u32>)
interface:
api.tx.assets.forceClearMetadatasummary: 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)
forceCreate(id: Compact<u32>, owner: MultiAddress, is_sufficient: bool, min_balance: Compact<u128>)
interface:
api.tx.assets.forceCreatesummary: 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. If [NextAssetId] is set, then this must be equal to it.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 usingtransfer_ownershipandset_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
ForceCreatedevent when successful.Weight:
O(1)
forceSetMetadata(id: Compact<u32>, name: Bytes, symbol: Bytes, decimals: u8, is_frozen: bool)
interface:
api.tx.assets.forceSetMetadatasummary: 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 byStringLimit.symbol: The exchange symbol for this asset. Limited in length byStringLimit.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.
forceTransfer(id: Compact<u32>, source: MultiAddress, dest: MultiAddress, amount: Compact<u128>)
interface:
api.tx.assets.forceTransfersummary: 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 thesource's balance of assets should be reduced anddest's balance increased. The amount actually transferred may be slightly greater in the case that the transfer would otherwise take thesourcebalance above zero but below the minimum balance. Must be greater than zero.Emits
Transferredwith 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 ofdest; Post-existence ofsource; Account pre-existence ofdest.
freeze(id: Compact<u32>, who: MultiAddress)
interface:
api.tx.assets.freezesummary: Disallow further unprivileged transfers of an asset
idfrom an accountwho.whomust already exist as an entry inAccounts of the asset. If you want to freeze an account that does not have an entry, usetouch_otherfirst.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)
freezeAsset(id: Compact<u32>)
interface:
api.tx.assets.freezeAssetsummary: 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)
mint(id: Compact<u32>, beneficiary: MultiAddress, amount: Compact<u128>)
interface:
api.tx.assets.mintsummary: 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
Issuedevent when successful.Weight:
O(1)Modes: Pre-existing balance ofbeneficiary; Account pre-existence ofbeneficiary.
refund(id: Compact<u32>, allow_burn: bool)
interface:
api.tx.assets.refundsummary: Return the deposit (if any) of an asset account or a consumer reference (if any) of an account.
The origin must be Signed.
id: The identifier of the asset for which the caller would like the deposit refunded.allow_burn: Iftruethen assets may be destroyed in order to complete the refund.It will fail with either [
Error::ContainsHolds] or [Error::ContainsFreezes] if the asset account contains holds or freezes in place.Emits
Refundedevent when successful.
refundOther(id: Compact<u32>, who: MultiAddress)
interface:
api.tx.assets.refundOthersummary: Return the deposit (if any) of a target asset account. Useful if you are the depositor.
The origin must be Signed and either the account owner, depositor, or asset
Admin. In order to burn a non-zero balance of the asset, the caller must be the account and should userefund.id: The identifier of the asset for the account holding a deposit.who: The account to refund.It will fail with either [
Error::ContainsHolds] or [Error::ContainsFreezes] if the asset account contains holds or freezes in place.Emits
Refundedevent when successful.
setMetadata(id: Compact<u32>, name: Bytes, symbol: Bytes, decimals: u8)
interface:
api.tx.assets.setMetadatasummary: 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 byStringLimit.symbol: The exchange symbol for this asset. Limited in length byStringLimit.decimals: The number of decimals this asset uses to represent one unit.Emits
MetadataSet.Weight:
O(1)
setMinBalance(id: Compact<u32>, min_balance: u128)
interface:
api.tx.assets.setMinBalancesummary: Sets the minimum balance of an asset.
Only works if there aren't any accounts that are holding the asset or if the new value of
min_balanceis less than the old one.Origin must be Signed and the sender has to be the Owner of the asset
id.id: The identifier of the asset.min_balance: The new value ofmin_balance.Emits
AssetMinBalanceChangedevent when successful.
setTeam(id: Compact<u32>, issuer: MultiAddress, admin: MultiAddress, freezer: MultiAddress)
interface:
api.tx.assets.setTeamsummary: 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)
startDestroy(id: Compact<u32>)
interface:
api.tx.assets.startDestroysummary: Start the process of destroying a fungible asset class.
start_destroyis the first in a series of extrinsics that should be called, to allow destruction of an asset class.The origin must conform to
ForceOriginor must beSignedby the asset'sowner.id: The identifier of the asset to be destroyed. This must identify an existing asset.It will fail with either [
Error::ContainsHolds] or [Error::ContainsFreezes] if an account contains holds or freezes in place.
thaw(id: Compact<u32>, who: MultiAddress)
interface:
api.tx.assets.thawsummary: Allow unprivileged transfers to and 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)
thawAsset(id: Compact<u32>)
interface:
api.tx.assets.thawAssetsummary: 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)
touch(id: Compact<u32>)
interface:
api.tx.assets.touchsummary: 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
Touchedevent when successful.
touchOther(id: Compact<u32>, who: MultiAddress)
interface:
api.tx.assets.touchOthersummary: Create an asset account for
who.A deposit will be taken from the signer account.
origin: Must be Signed byFreezerorAdminof the assetid; 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.who: The account to be created.Emits
Touchedevent when successful.
transfer(id: Compact<u32>, target: MultiAddress, amount: Compact<u128>)
interface:
api.tx.assets.transfersummary: 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 andtarget'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
Transferredwith 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 oftarget; Post-existence of sender; Account pre-existence oftarget.
transferAll(id: Compact<u32>, dest: MultiAddress, keep_alive: bool)
interface:
api.tx.assets.transferAllsummary: Transfer the entire transferable balance from the caller asset account.
NOTE: This function only attempts to transfer transferable balances. This means that any held, frozen, or minimum balance (when
keep_aliveistrue), 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.
id: The identifier of the asset for the account holding a deposit.dest: The recipient of the transfer.keep_alive: A boolean to determine if thetransfer_alloperation should send all of the funds the asset account has, causing the sender asset account to be killed (false), or transfer everything except at least the minimum balance, which will guarantee to keep the sender asset account alive (true).
transferApproved(id: Compact<u32>, owner: MultiAddress, destination: MultiAddress, amount: Compact<u128>)
interface:
api.tx.assets.transferApprovedsummary: 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
ownerto the signer.If the entire amount approved for transfer is transferred, then any deposit previously reserved by
approve_transferis unreserved.id: The identifier of the asset.owner: The account which previously approved for a transfer of at leastamountand from which the asset balance will be withdrawn.destination: The account to which the asset balance ofamountwill be transferred.amount: The amount of assets to transfer.Emits
TransferredApprovedon success.Weight:
O(1)
transferKeepAlive(id: Compact<u32>, target: MultiAddress, amount: Compact<u128>)
interface:
api.tx.assets.transferKeepAlivesummary: 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 andtarget'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
Transferredwith 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 oftarget; Post-existence of sender; Account pre-existence oftarget.
transferOwnership(id: Compact<u32>, owner: MultiAddress)
interface:
api.tx.assets.transferOwnershipsummary: 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)
balances
burn(value: Compact<u128>, keep_alive: bool)
interface:
api.tx.balances.burnsummary: Burn the specified liquid free balance from the origin account.
If the origin's account ends up below the existential deposit as a result of the burn and
keep_aliveis false, the account will be reaped.Unlike sending funds to a burn address, which merely makes the funds inaccessible, this
burnoperation will reduce total issuance by the amount burned.
forceAdjustTotalIssuance(direction: PalletBalancesAdjustmentDirection, delta: Compact<u128>)
interface:
api.tx.balances.forceAdjustTotalIssuancesummary: Adjust the total issuance in a saturating way.
Can only be called by root and always needs a positive
delta.Example
forceSetBalance(who: MultiAddress, new_free: Compact<u128>)
interface:
api.tx.balances.forceSetBalancesummary: Set the regular balance of a given account.
The dispatch origin for this call is
root.
forceTransfer(source: MultiAddress, dest: MultiAddress, value: Compact<u128>)
- interface:
api.tx.balances.forceTransfer - summary: Exactly as
transfer_allow_death, except the origin must be root and the source account may be specified.
forceUnreserve(who: MultiAddress, amount: u128)
interface:
api.tx.balances.forceUnreservesummary: Unreserve some balance from a user by force.
Can only be called by ROOT.
transferAll(dest: MultiAddress, keep_alive: bool)
interface:
api.tx.balances.transferAllsummary: 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_aliveistrue), 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 thetransfer_alloperation 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).
transferAllowDeath(dest: MultiAddress, value: Compact<u128>)
interface:
api.tx.balances.transferAllowDeathsummary: Transfer some liquid free balance to another account.
transfer_allow_deathwill set theFreeBalanceof 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
Signedby the transactor.
transferKeepAlive(dest: MultiAddress, value: Compact<u128>)
interface:
api.tx.balances.transferKeepAlivesummary: Same as the
transfer_allow_deathcall, but with a check that the transfer will not kill the origin account.99% of the time you want
transfer_allow_deathinstead.
upgradeAccounts(who: Vec<AccountId32>)
interface:
api.tx.balances.upgradeAccountssummary: Upgrade a specified account.
origin: Must beSigned.who: The account to be upgraded.This will waive the transaction fee if at least all but 10% of the accounts needed to be upgraded. (We let some not have to be upgraded just in order to allow for the possibility of churn).
bounties
acceptCurator(bounty_id: Compact<u32>)
interface:
api.tx.bounties.acceptCuratorsummary: Accept the curator role for a bounty. A deposit will be reserved from curator and refund upon successful payout.
May only be called from the curator.
Complexity
- O(1).
approveBounty(bounty_id: Compact<u32>)
interface:
api.tx.bounties.approveBountysummary: Approve a bounty proposal. At a later time, the bounty will be funded and become active and the original deposit will be returned.
May only be called from
T::SpendOrigin.Complexity
- O(1).
approveBountyWithCurator(bounty_id: Compact<u32>, curator: MultiAddress, fee: Compact<u128>)
interface:
api.tx.bounties.approveBountyWithCuratorsummary: Approve bountry and propose a curator simultaneously. This call is a shortcut to calling
approve_bountyandpropose_curatorseparately.May only be called from
T::SpendOrigin.bounty_id: Bounty ID to approve.curator: The curator account whom will manage this bounty.fee: The curator fee.Complexity
O(1).
awardBounty(bounty_id: Compact<u32>, beneficiary: MultiAddress)
interface:
api.tx.bounties.awardBountysummary: Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay.
The dispatch origin for this call must be the curator of this bounty.
bounty_id: Bounty ID to award.beneficiary: The beneficiary account whom will receive the payout.Complexity
O(1).
claimBounty(bounty_id: Compact<u32>)
interface:
api.tx.bounties.claimBountysummary: Claim the payout from an awarded bounty after payout delay.
The dispatch origin for this call must be the beneficiary of this bounty.
bounty_id: Bounty ID to claim.Complexity
O(1).
closeBounty(bounty_id: Compact<u32>)
interface:
api.tx.bounties.closeBountysummary: Cancel a proposed or active bounty. All the funds will be sent to treasury and the curator deposit will be unreserved if possible.
Only
T::RejectOriginis able to cancel a bounty.bounty_id: Bounty ID to cancel.Complexity
O(1).
extendBountyExpiry(bounty_id: Compact<u32>, remark: Bytes)
interface:
api.tx.bounties.extendBountyExpirysummary: Extend the expiry time of an active bounty.
The dispatch origin for this call must be the curator of this bounty.
bounty_id: Bounty ID to extend.remark: additional information.Complexity
O(1).
pokeDeposit(bounty_id: Compact<u32>)
interface:
api.tx.bounties.pokeDepositsummary: Poke the deposit reserved for creating a bounty proposal.
This can be used by accounts to update their reserved amount.
The dispatch origin for this call must be Signed.
Parameters:
bounty_id: The bounty id for which to adjust the deposit.If the deposit is updated, the difference will be reserved/unreserved from the proposer's account.
The transaction is made free if the deposit is updated and paid otherwise.
Emits
DepositPokedif the deposit is updated.
proposeBounty(value: Compact<u128>, description: Bytes)
interface:
api.tx.bounties.proposeBountysummary: Propose a new bounty.
The dispatch origin for this call must be Signed.
Payment:
TipReportDepositBasewill be reserved from the origin account, as well asDataDepositPerBytefor each byte inreason. It will be unreserved upon approval, or slashed when rejected.curator: The curator account whom will manage this bounty.fee: The curator fee.value: The total payment amount of this bounty, curator fee included.description: The description of this bounty.
proposeCurator(bounty_id: Compact<u32>, curator: MultiAddress, fee: Compact<u128>)
interface:
api.tx.bounties.proposeCuratorsummary: Propose a curator to a funded bounty.
May only be called from
T::SpendOrigin.Complexity
- O(1).
unassignCurator(bounty_id: Compact<u32>)
interface:
api.tx.bounties.unassignCuratorsummary: Unassign curator from a bounty.
This function can only be called by the
RejectOrigina signed origin.If this function is called by the
RejectOrigin, we assume that the curator is malicious or inactive. As a result, we will slash the curator when possible.If the origin is the curator, we take this as a sign they are unable to do their job and they willingly give up. We could slash them, but for now we allow them to recover their deposit and exit without issue. (We may want to change this if it is abused.)
Finally, the origin can be anyone if and only if the curator is "inactive". This allows anyone in the community to call out that a curator is not doing their due diligence, and we should pick a new curator. In this case the curator should also be slashed.
Complexity
- O(1).
childBounties
acceptCurator(parent_bounty_id: Compact<u32>, child_bounty_id: Compact<u32>)
interface:
api.tx.childBounties.acceptCuratorsummary: Accept the curator role for the child-bounty.
The dispatch origin for this call must be the curator of this child-bounty.
A deposit will be reserved from the curator and refund upon successful payout or cancellation.
Fee for curator is deducted from curator fee of parent bounty.
Parent bounty must be in active state, for this child-bounty call to work.
Child-bounty must be in "CuratorProposed" state, for processing the call. And state of child-bounty is moved to "Active" on successful call completion.
parent_bounty_id: Index of parent bounty.child_bounty_id: Index of child bounty.
addChildBounty(parent_bounty_id: Compact<u32>, value: Compact<u128>, description: Bytes)
interface:
api.tx.childBounties.addChildBountysummary: Add a new child-bounty.
The dispatch origin for this call must be the curator of parent bounty and the parent bounty must be in "active" state.
Child-bounty gets added successfully & fund gets transferred from parent bounty to child-bounty account, if parent bounty has enough funds, else the call fails.
Upper bound to maximum number of active child bounties that can be added are managed via runtime trait config [
Config::MaxActiveChildBountyCount].If the call is success, the status of child-bounty is updated to "Added".
parent_bounty_id: Index of parent bounty for which child-bounty is being added.value: Value for executing the proposal.description: Text description for the child-bounty.
awardChildBounty(parent_bounty_id: Compact<u32>, child_bounty_id: Compact<u32>, beneficiary: MultiAddress)
interface:
api.tx.childBounties.awardChildBountysummary: Award child-bounty to a beneficiary.
The beneficiary will be able to claim the funds after a delay.
The dispatch origin for this call must be the parent curator or curator of this child-bounty.
Parent bounty must be in active state, for this child-bounty call to work.
Child-bounty must be in active state, for processing the call. And state of child-bounty is moved to "PendingPayout" on successful call completion.
parent_bounty_id: Index of parent bounty.child_bounty_id: Index of child bounty.beneficiary: Beneficiary account.
claimChildBounty(parent_bounty_id: Compact<u32>, child_bounty_id: Compact<u32>)
interface:
api.tx.childBounties.claimChildBountysummary: Claim the payout from an awarded child-bounty after payout delay.
The dispatch origin for this call may be any signed origin.
Call works independent of parent bounty state, No need for parent bounty to be in active state.
The Beneficiary is paid out with agreed bounty value. Curator fee is paid & curator deposit is unreserved.
Child-bounty must be in "PendingPayout" state, for processing the call. And instance of child-bounty is removed from the state on successful call completion.
parent_bounty_id: Index of parent bounty.child_bounty_id: Index of child bounty.
closeChildBounty(parent_bounty_id: Compact<u32>, child_bounty_id: Compact<u32>)
interface:
api.tx.childBounties.closeChildBountysummary: Cancel a proposed or active child-bounty. Child-bounty account funds are transferred to parent bounty account. The child-bounty curator deposit may be unreserved if possible.
The dispatch origin for this call must be either parent curator or
T::RejectOrigin.If the state of child-bounty is
Active, curator deposit is unreserved.If the state of child-bounty is
PendingPayout, call fails & returnsPendingPayouterror.For the origin other than T::RejectOrigin, parent bounty must be in active state, for this child-bounty call to work. For origin T::RejectOrigin execution is forced.
Instance of child-bounty is removed from the state on successful call completion.
parent_bounty_id: Index of parent bounty.child_bounty_id: Index of child bounty.
proposeCurator(parent_bounty_id: Compact<u32>, child_bounty_id: Compact<u32>, curator: MultiAddress, fee: Compact<u128>)
interface:
api.tx.childBounties.proposeCuratorsummary: Propose curator for funded child-bounty.
The dispatch origin for this call must be curator of parent bounty.
Parent bounty must be in active state, for this child-bounty call to work.
Child-bounty must be in "Added" state, for processing the call. And state of child-bounty is moved to "CuratorProposed" on successful call completion.
parent_bounty_id: Index of parent bounty.child_bounty_id: Index of child bounty.curator: Address of child-bounty curator.fee: payment fee to child-bounty curator for execution.
unassignCurator(parent_bounty_id: Compact<u32>, child_bounty_id: Compact<u32>)
interface:
api.tx.childBounties.unassignCuratorsummary: Unassign curator from a child-bounty.
The dispatch origin for this call can be either
RejectOrigin, or the curator of the parent bounty, or any signed origin.For the origin other than T::RejectOrigin and the child-bounty curator, parent bounty must be in active state, for this call to work. We allow child-bounty curator and T::RejectOrigin to execute this call irrespective of the parent bounty state.
If this function is called by the
RejectOriginor the parent bounty curator, we assume that the child-bounty curator is malicious or inactive. As a result, child-bounty curator deposit is slashed.If the origin is the child-bounty curator, we take this as a sign that they are unable to do their job, and are willingly giving up. We could slash the deposit, but for now we allow them to unreserve their deposit and exit without issue. (We may want to change this if it is abused.)
Finally, the origin can be anyone iff the child-bounty curator is "inactive". Expiry update due of parent bounty is used to estimate inactive state of child-bounty curator.
This allows anyone in the community to call out that a child-bounty curator is not doing their due diligence, and we should pick a new one. In this case the child-bounty curator deposit is slashed.
State of child-bounty is moved to Added state on successful call completion.
parent_bounty_id: Index of parent bounty.child_bounty_id: Index of child bounty.
claims
attest(statement: Bytes)
interface:
api.tx.claims.attestsummary: Attest to a statement, needed to finalize the claims process.
WARNING: Insecure unless your chain includes
PrevalidateAttestsas aTransactionExtension.Unsigned Validation: A call to attest is deemed valid if the sender has a
Preclaimregistered and provides astatementwhich is expected for the account.Parameters:
statement: The identity of the statement which is being attested to in the signature.
claim(dest: AccountId32, ethereum_signature: PolkadotRuntimeCommonClaimsEcdsaSignature)
interface:
api.tx.claims.claimsummary: Make a claim to collect your DOTs.
The dispatch origin for this call must be None.
Unsigned Validation: A call to claim is deemed valid if the signature provided matches the expected signed message of:
Ethereum Signed Message: > (configured prefix string)(address)
and
addressmatches thedestaccount.Parameters:
dest: The destination account to payout the claim.ethereum_signature: The signature of an ethereum signed message matching the format described above.
claimAttest(dest: AccountId32, ethereum_signature: PolkadotRuntimeCommonClaimsEcdsaSignature, statement: Bytes)
interface:
api.tx.claims.claimAttestsummary: Make a claim to collect your DOTs by signing a statement.
The dispatch origin for this call must be None.
Unsigned Validation: A call to
claim_attestis deemed valid if the signature provided matches the expected signed message of:Ethereum Signed Message: > (configured prefix string)(address)(statement)
and
addressmatches thedestaccount; thestatementmust match that which is expected according to your purchase arrangement.Parameters:
dest: The destination account to payout the claim.ethereum_signature: The signature of an ethereum signed message matching the format described above.statement: The identity of the statement which is being attested to in the signature.
mintClaim(who: EthereumAddress, value: u128, vesting_schedule: Option<(u128,u128,u32)>, statement: Option<PolkadotRuntimeCommonClaimsStatementKind>)
interface:
api.tx.claims.mintClaimsummary: Mint a new claim to collect DOTs.
The dispatch origin for this call must be Root.
Parameters:
who: The Ethereum address allowed to collect this claim.value: The number of DOTs that will be claimed.vesting_schedule: An optional vesting schedule for these DOTs.
moveClaim(old: EthereumAddress, new: EthereumAddress, maybe_preclaim: Option<AccountId32>)
- interface:
api.tx.claims.moveClaim
collatorSelection
addInvulnerable(who: AccountId32)
interface:
api.tx.collatorSelection.addInvulnerablesummary: Add a new account
whoto the list ofInvulnerablescollators.whomust have registered session keys. Ifwhois a candidate, they will be removed.The origin for this call must be the
UpdateOrigin.
leaveIntent()
interface:
api.tx.collatorSelection.leaveIntentsummary: Deregister
originas a collator candidate. Note that the collator can only leave on session change. TheCandidacyBondwill be unreserved immediately.This call will fail if the total number of candidates would drop below
MinEligibleCollators.
registerAsCandidate()
interface:
api.tx.collatorSelection.registerAsCandidatesummary: Register this account as a collator candidate. The account must (a) already have registered session keys and (b) be able to reserve the
CandidacyBond.This call is not available to
Invulnerablecollators.
removeInvulnerable(who: AccountId32)
interface:
api.tx.collatorSelection.removeInvulnerablesummary: Remove an account
whofrom the list ofInvulnerablescollators.Invulnerablesmust be sorted.The origin for this call must be the
UpdateOrigin.
setCandidacyBond(bond: u128)
interface:
api.tx.collatorSelection.setCandidacyBondsummary: Set the candidacy bond amount.
If the candidacy bond is increased by this call, all current candidates which have a deposit lower than the new bond will be kicked from the list and get their deposits back.
The origin for this call must be the
UpdateOrigin.
setDesiredCandidates(max: u32)
interface:
api.tx.collatorSelection.setDesiredCandidatessummary: Set the ideal number of non-invulnerable collators. If lowering this number, then the number of running collators could be higher than this figure. Aside from that edge case, there should be no other way to have more candidates than the desired number.
The origin for this call must be the
UpdateOrigin.
setInvulnerables(new: Vec<AccountId32>)
interface:
api.tx.collatorSelection.setInvulnerablessummary: Set the list of invulnerable (fixed) collators. These collators must do some preparation, namely to have registered session keys.
The call will remove any accounts that have not registered keys from the set. That is, it is non-atomic; the caller accepts all
AccountIds passed innewindividually as acceptable Invulnerables, and is not proposing a set of new Invulnerables.This call does not maintain mutual exclusivity of
InvulnerablesandCandidates. It is recommended to use a batch ofadd_invulnerableandremove_invulnerableinstead. Abatch_allcan also be used to enforce atomicity. If any candidates are included innew, they should be removed withremove_invulnerable_candidateafter execution.Must be called by the
UpdateOrigin.
takeCandidateSlot(deposit: u128, target: AccountId32)
interface:
api.tx.collatorSelection.takeCandidateSlotsummary: The caller
originreplaces a candidatetargetin the collator candidate list by reservingdeposit. The amountdepositreserved by the caller must be greater than the existing bond of the target it is trying to replace.This call will fail if the caller is already a collator candidate or invulnerable, the caller does not have registered session keys, the target is not a collator candidate, and/or the
depositamount cannot be reserved.
updateBond(new_deposit: u128)
interface:
api.tx.collatorSelection.updateBondsummary: Update the candidacy bond of collator candidate
originto a new amountnew_deposit.Setting a
new_depositthat is lower than the current deposit whileoriginis occupying a top-DesiredCandidatesslot is not allowed.This call will fail if
originis not a collator candidate, the updated bond is lower than the minimum candidacy bond, and/or the amount cannot be reserved.
convictionVoting
delegate(class: u16, to: MultiAddress, conviction: PalletConvictionVotingConviction, balance: u128)
interface:
api.tx.convictionVoting.delegatesummary: Delegate the voting power (with some given conviction) of the sending account for a particular class of polls.
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 through
remove_vote).to: The account whose voting thetargetaccount's voting power will follow.class: The class of polls to delegate. To delegate multiple classes, multiple calls to this function are required.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 polls the voter delegating to has voted on. Weight is initially charged as if maximum votes, but is refunded later.
removeOtherVote(target: MultiAddress, class: u16, index: u32)
interface:
api.tx.convictionVoting.removeOtherVotesummary: Remove a vote for a poll.
If the
targetis equal to the signer, then this function is exactly equivalent toremove_vote. If not equal to the signer, then the vote must have expired, either because the poll was cancelled, because the voter lost the poll 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 pollindex.index: The index of poll of the vote to be removed.class: The class of the poll.Weight:
O(R + log R)where R is the number of polls thattargethas voted on. Weight is calculated for the maximum number of vote.
removeVote(class: Option<u16>, index: u32)
interface:
api.tx.convictionVoting.removeVotesummary: Remove a vote for a poll.
If:
the poll was cancelled, or
the poll is ongoing, or
the poll 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
unlockmay result in more funds being available.If, however, the poll 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 poll
index.index: The index of poll of the vote to be removed.class: Optional parameter, if given it indicates the class of the poll. For polls which have finished or are cancelled, this must beSome.Weight:
O(R + log R)where R is the number of polls thattargethas voted on. Weight is calculated for the maximum number of vote.
undelegate(class: u16)
interface:
api.tx.convictionVoting.undelegatesummary: Undelegate the voting power of the sending account for a particular class of polls.
Tokens may be unlocked following once an amount of time consistent with the lock period of the conviction with which the delegation was issued has passed.
The dispatch origin of this call must be Signed and the signing account must be currently delegating.
class: The class of polls to remove the delegation from.Emits
Undelegated.Weight:
O(R)where R is the number of polls the voter delegating to has voted on. Weight is initially charged as if maximum votes, but is refunded later.
unlock(class: u16, target: MultiAddress)
interface:
api.tx.convictionVoting.unlocksummary: Remove the lock caused by prior voting/delegating which has expired within a particular class.
The dispatch origin of this call must be Signed.
class: The class of polls to unlock.target: The account to remove the lock on.Weight:
O(R)with R number of vote of target.
vote(poll_index: Compact<u32>, vote: PalletConvictionVotingVoteAccountVote)
interface:
api.tx.convictionVoting.votesummary: Vote in a poll. 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.
poll_index: The index of the poll to vote for.vote: The vote configuration.Weight:
O(R)where R is the number of polls the voter has voted on.
cumulusXcm
foreignAssets
approveTransfer(id: StagingXcmV5Location, delegate: MultiAddress, amount: Compact<u128>)
interface:
api.tx.foreignAssets.approveTransfersummary: Approve an amount of asset for transfer by a delegated third-party account.
Origin must be Signed.
Ensures that
ApprovalDepositworth ofCurrencyis reserved from signing account for the purpose of holding the approval. If some non-zero amount of assets is already approved from signing account todelegate, then it is topped up or unreserved to meet the right value.NOTE: The signing account does not need to own
amountof 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 bydelegate. If there is already an approval in place, then this acts additively.Emits
ApprovedTransferon success.Weight:
O(1)
block(id: StagingXcmV5Location, who: MultiAddress)
interface:
api.tx.foreignAssets.blocksummary: Disallow further unprivileged transfers of an asset
idto and from an accountwho.Origin must be Signed and the sender should be the Freezer of the asset
id.id: The identifier of the account's asset.who: The account to be unblocked.Emits
Blocked.Weight:
O(1)
burn(id: StagingXcmV5Location, who: MultiAddress, amount: Compact<u128>)
interface:
api.tx.foreignAssets.burnsummary: Reduce the balance of
whoby as much as possible up toamountassets ofid.Origin must be Signed and the sender should be the Manager of the asset
id.Bails with
NoAccountif thewhois 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 whichwho's balance should be reduced.Emits
Burnedwith 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 ofwho; Pre & post Zombie-status ofwho.
cancelApproval(id: StagingXcmV5Location, delegate: MultiAddress)
interface:
api.tx.foreignAssets.cancelApprovalsummary: 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_transferfor the approval.id: The identifier of the asset.delegate: The account delegated permission to transfer asset.Emits
ApprovalCancelledon success.Weight:
O(1)
clearMetadata(id: StagingXcmV5Location)
interface:
api.tx.foreignAssets.clearMetadatasummary: 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)
create(id: StagingXcmV5Location, admin: MultiAddress, min_balance: u128)
interface:
api.tx.foreignAssets.createsummary: 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 conform to the configured
CreateOriginand 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. If [NextAssetId] is set, then this must be equal to it.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
Createdevent when successful.Weight:
O(1)
destroyAccounts(id: StagingXcmV5Location)
interface:
api.tx.foreignAssets.destroyAccountssummary: Destroy all accounts associated with a given asset.
destroy_accountsshould only be called afterstart_destroyhas been called, and the asset is in aDestroyingstate.Due to weight restrictions, this function may need to be called multiple times to fully destroy all accounts. It will destroy
RemoveItemsLimitaccounts at a time.id: The identifier of the asset to be destroyed. This must identify an existing asset.Each call emits the
Event::DestroyedAccountsevent.
destroyApprovals(id: StagingXcmV5Location)
interface:
api.tx.foreignAssets.destroyApprovalssummary: Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).
destroy_approvalsshould only be called afterstart_destroyhas been called, and the asset is in aDestroyingstate.Due to weight restrictions, this function may need to be called multiple times to fully destroy all approvals. It will destroy
RemoveItemsLimitapprovals at a time.id: The identifier of the asset to be destroyed. This must identify an existing asset.Each call emits the
Event::DestroyedApprovalsevent.
finishDestroy(id: StagingXcmV5Location)
interface:
api.tx.foreignAssets.finishDestroysummary: Complete destroying asset and unreserve currency.
finish_destroyshould only be called afterstart_destroyhas been called, and the asset is in aDestroyingstate. All accounts or approvals should be destroyed before hand.id: The identifier of the asset to be destroyed. This must identify an existing asset.Each successful call emits the
Event::Destroyedevent.
forceAssetStatus(id: StagingXcmV5Location, owner: MultiAddress, issuer: MultiAddress, admin: MultiAddress, freezer: MultiAddress, min_balance: Compact<u128>, is_sufficient: bool, is_frozen: bool)
interface:
api.tx.foreignAssets.forceAssetStatussummary: 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 totrue, then non-zero balances may be stored without aconsumerreference (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
AssetStatusChangedwith the identity of the asset.Weight:
O(1)
forceCancelApproval(id: StagingXcmV5Location, owner: MultiAddress, delegate: MultiAddress)
interface:
api.tx.foreignAssets.forceCancelApprovalsummary: 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_transferfor the approval.id: The identifier of the asset.delegate: The account delegated permission to transfer asset.Emits
ApprovalCancelledon success.Weight:
O(1)
forceClearMetadata(id: StagingXcmV5Location)
interface:
api.tx.foreignAssets.forceClearMetadatasummary: 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)
forceCreate(id: StagingXcmV5Location, owner: MultiAddress, is_sufficient: bool, min_balance: Compact<u128>)
interface:
api.tx.foreignAssets.forceCreatesummary: 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. If [NextAssetId] is set, then this must be equal to it.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 usingtransfer_ownershipandset_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
ForceCreatedevent when successful.Weight:
O(1)
forceSetMetadata(id: StagingXcmV5Location, name: Bytes, symbol: Bytes, decimals: u8, is_frozen: bool)
interface:
api.tx.foreignAssets.forceSetMetadatasummary: 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 byStringLimit.symbol: The exchange symbol for this asset. Limited in length byStringLimit.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.
forceTransfer(id: StagingXcmV5Location, source: MultiAddress, dest: MultiAddress, amount: Compact<u128>)
interface:
api.tx.foreignAssets.forceTransfersummary: 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 thesource's balance of assets should be reduced anddest's balance increased. The amount actually transferred may be slightly greater in the case that the transfer would otherwise take thesourcebalance above zero but below the minimum balance. Must be greater than zero.Emits
Transferredwith 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 ofdest; Post-existence ofsource; Account pre-existence ofdest.
freeze(id: StagingXcmV5Location, who: MultiAddress)
interface:
api.tx.foreignAssets.freezesummary: Disallow further unprivileged transfers of an asset
idfrom an accountwho.whomust already exist as an entry inAccounts of the asset. If you want to freeze an account that does not have an entry, usetouch_otherfirst.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)
freezeAsset(id: StagingXcmV5Location)
interface:
api.tx.foreignAssets.freezeAssetsummary: 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)
mint(id: StagingXcmV5Location, beneficiary: MultiAddress, amount: Compact<u128>)
interface:
api.tx.foreignAssets.mintsummary: 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
Issuedevent when successful.Weight:
O(1)Modes: Pre-existing balance ofbeneficiary; Account pre-existence ofbeneficiary.
refund(id: StagingXcmV5Location, allow_burn: bool)
interface:
api.tx.foreignAssets.refundsummary: Return the deposit (if any) of an asset account or a consumer reference (if any) of an account.
The origin must be Signed.
id: The identifier of the asset for which the caller would like the deposit refunded.allow_burn: Iftruethen assets may be destroyed in order to complete the refund.It will fail with either [
Error::ContainsHolds] or [Error::ContainsFreezes] if the asset account contains holds or freezes in place.Emits
Refundedevent when successful.
refundOther(id: StagingXcmV5Location, who: MultiAddress)
interface:
api.tx.foreignAssets.refundOthersummary: Return the deposit (if any) of a target asset account. Useful if you are the depositor.
The origin must be Signed and either the account owner, depositor, or asset
Admin. In order to burn a non-zero balance of the asset, the caller must be the account and should userefund.id: The identifier of the asset for the account holding a deposit.who: The account to refund.It will fail with either [
Error::ContainsHolds] or [Error::ContainsFreezes] if the asset account contains holds or freezes in place.Emits
Refundedevent when successful.
setMetadata(id: StagingXcmV5Location, name: Bytes, symbol: Bytes, decimals: u8)
interface:
api.tx.foreignAssets.setMetadatasummary: 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 byStringLimit.symbol: The exchange symbol for this asset. Limited in length byStringLimit.decimals: The number of decimals this asset uses to represent one unit.Emits
MetadataSet.Weight:
O(1)
setMinBalance(id: StagingXcmV5Location, min_balance: u128)
interface:
api.tx.foreignAssets.setMinBalancesummary: Sets the minimum balance of an asset.
Only works if there aren't any accounts that are holding the asset or if the new value of
min_balanceis less than the old one.Origin must be Signed and the sender has to be the Owner of the asset
id.id: The identifier of the asset.min_balance: The new value ofmin_balance.Emits
AssetMinBalanceChangedevent when successful.
setTeam(id: StagingXcmV5Location, issuer: MultiAddress, admin: MultiAddress, freezer: MultiAddress)
interface:
api.tx.foreignAssets.setTeamsummary: 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)
startDestroy(id: StagingXcmV5Location)
interface:
api.tx.foreignAssets.startDestroysummary: Start the process of destroying a fungible asset class.
start_destroyis the first in a series of extrinsics that should be called, to allow destruction of an asset class.The origin must conform to
ForceOriginor must beSignedby the asset'sowner.id: The identifier of the asset to be destroyed. This must identify an existing asset.It will fail with either [
Error::ContainsHolds] or [Error::ContainsFreezes] if an account contains holds or freezes in place.
thaw(id: StagingXcmV5Location, who: MultiAddress)
interface:
api.tx.foreignAssets.thawsummary: Allow unprivileged transfers to and 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)
thawAsset(id: StagingXcmV5Location)
interface:
api.tx.foreignAssets.thawAssetsummary: 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)
touch(id: StagingXcmV5Location)
interface:
api.tx.foreignAssets.touchsummary: 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
Touchedevent when successful.
touchOther(id: StagingXcmV5Location, who: MultiAddress)
interface:
api.tx.foreignAssets.touchOthersummary: Create an asset account for
who.A deposit will be taken from the signer account.
origin: Must be Signed byFreezerorAdminof the assetid; 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.who: The account to be created.Emits
Touchedevent when successful.
transfer(id: StagingXcmV5Location, target: MultiAddress, amount: Compact<u128>)
interface:
api.tx.foreignAssets.transfersummary: 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 andtarget'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
Transferredwith 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 oftarget; Post-existence of sender; Account pre-existence oftarget.
transferAll(id: StagingXcmV5Location, dest: MultiAddress, keep_alive: bool)
interface:
api.tx.foreignAssets.transferAllsummary: Transfer the entire transferable balance from the caller asset account.
NOTE: This function only attempts to transfer transferable balances. This means that any held, frozen, or minimum balance (when
keep_aliveistrue), 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.
id: The identifier of the asset for the account holding a deposit.dest: The recipient of the transfer.keep_alive: A boolean to determine if thetransfer_alloperation should send all of the funds the asset account has, causing the sender asset account to be killed (false), or transfer everything except at least the minimum balance, which will guarantee to keep the sender asset account alive (true).
transferApproved(id: StagingXcmV5Location, owner: MultiAddress, destination: MultiAddress, amount: Compact<u128>)
interface:
api.tx.foreignAssets.transferApprovedsummary: 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
ownerto the signer.If the entire amount approved for transfer is transferred, then any deposit previously reserved by
approve_transferis unreserved.id: The identifier of the asset.owner: The account which previously approved for a transfer of at leastamountand from which the asset balance will be withdrawn.destination: The account to which the asset balance ofamountwill be transferred.amount: The amount of assets to transfer.Emits
TransferredApprovedon success.Weight:
O(1)
transferKeepAlive(id: StagingXcmV5Location, target: MultiAddress, amount: Compact<u128>)
interface:
api.tx.foreignAssets.transferKeepAlivesummary: 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 andtarget'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
Transferredwith 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 oftarget; Post-existence of sender; Account pre-existence oftarget.
transferOwnership(id: StagingXcmV5Location, owner: MultiAddress)
interface:
api.tx.foreignAssets.transferOwnershipsummary: 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)
indices
claim(index: u32)
interface:
api.tx.indices.claimsummary: Assign an previously unassigned index.
Payment:
Depositis reserved from the sender account.The dispatch origin for this call must be Signed.
index: the index to be claimed. This must not be in use.Emits
IndexAssignedif successful.Complexity
O(1).
forceTransfer(new: MultiAddress, index: u32, freeze: bool)
interface:
api.tx.indices.forceTransfersummary: Force an index to an account. This doesn't require a deposit. If the index is already held, then any deposit is reimbursed to its current owner.
The dispatch origin for this call must be Root.
index: the index to be (re-)assigned.new: the new owner of the index. This function is a no-op if it is equal to sender.freeze: if set totrue, will freeze the index so it cannot be transferred.Emits
IndexAssignedif successful.Complexity
O(1).
free(index: u32)
interface:
api.tx.indices.freesummary: Free up an index owned by the sender.
Payment: Any previous deposit placed for the index is unreserved in the sender account.
The dispatch origin for this call must be Signed and the sender must own the index.
index: the index to be freed. This must be owned by the sender.Emits
IndexFreedif successful.Complexity
O(1).
freeze(index: u32)
interface:
api.tx.indices.freezesummary: Freeze an index so it will always point to the sender account. This consumes the deposit.
The dispatch origin for this call must be Signed and the signing account must have a non-frozen account
index.index: the index to be frozen in place.Emits
IndexFrozenif successful.Complexity
O(1).
pokeDeposit(index: u32)
interface:
api.tx.indices.pokeDepositsummary: Poke the deposit reserved for an index.
The dispatch origin for this call must be Signed and the signing account must have a non-frozen account
index.The transaction fees is waived if the deposit is changed after poking/reconsideration.
index: the index whose deposit is to be poked/reconsidered.Emits
DepositPokedif successful.
transfer(new: MultiAddress, index: u32)
interface:
api.tx.indices.transfersummary: Assign an index already owned by the sender to another account. The balance reservation is effectively transferred to the new account.
The dispatch origin for this call must be Signed.
index: the index to be re-assigned. This must be owned by the sender.new: the new owner of the index. This function is a no-op if it is equal to sender.Emits
IndexAssignedif successful.Complexity
O(1).
messageQueue
executeOverweight(message_origin: CumulusPrimitivesCoreAggregateMessageOrigin, page: u32, index: u32, weight_limit: SpWeightsWeightV2Weight)
interface:
api.tx.messageQueue.executeOverweightsummary: Execute an overweight message.
Temporary processing errors will be propagated whereas permanent errors are treated as success condition.
origin: Must beSigned.message_origin: The origin from which the message to be executed arrived.page: The page in the queue in which the message to be executed is sitting.index: The index into the queue of the message to be executed.weight_limit: The maximum amount of weight allowed to be consumed in the execution of the message.Benchmark complexity considerations: O(index + weight_limit).
reapPage(message_origin: CumulusPrimitivesCoreAggregateMessageOrigin, page_index: u32)
- interface:
api.tx.messageQueue.reapPage - summary: Remove a page which has no more messages remaining to be processed or is stale.
multiBlockElection
manage(op: PalletElectionProviderMultiBlockAdminOperation)
interface:
api.tx.multiBlockElection.managesummary: Manage this pallet.
The origin of this call must be [
Config::AdminOrigin].See [
AdminOperation] for various operations that are possible.
multiBlockElectionSigned
bail()
interface:
api.tx.multiBlockElectionSigned.bailsummary: Retract a submission.
A portion of the deposit may be returned, based on the [
Config::BailoutGraceRatio].This will fully remove the solution from storage.
clearOldRoundData(round: u32, witness_pages: u32)
interface:
api.tx.multiBlockElectionSigned.clearOldRoundDatasummary: Clear the data of a submitter form an old round.
The dispatch origin of this call must be signed, and the original submitter.
This can only be called for submissions that end up being discarded, as in they are not processed and they end up lingering in the queue.
register(claimed_score: SpNposElectionsElectionScore)
- interface:
api.tx.multiBlockElectionSigned.register - summary: Register oneself for an upcoming signed election.
setInvulnerables(inv: Vec<AccountId32>)
interface:
api.tx.multiBlockElectionSigned.setInvulnerablessummary: Set the invulnerable list.
Dispatch origin must the the same as [
crate::Config::AdminOrigin].
submitPage(page: u32, maybe_solution: Option<AssetHubKusamaRuntimeStakingNposCompactSolution24>)
interface:
api.tx.multiBlockElectionSigned.submitPagesummary: Submit a single page of a solution.
Must always come after [
Pallet::register].maybe_solutioncan be set toNoneto erase the page.Collects deposits from the signed origin based on [
Config::DepositBase] and [Config::DepositPerPage].
multiBlockElectionUnsigned
submitUnsigned(paged_solution: PalletElectionProviderMultiBlockPagedRawSolution)
interface:
api.tx.multiBlockElectionUnsigned.submitUnsignedsummary: Submit an unsigned solution.
This works very much like an inherent, as only the validators are permitted to submit anything. By default validators will compute this call in their
offchain_workerhook and try and submit it back.This is different from signed page submission mainly in that the solution page is verified on the fly.
The
paged_solutionmay contain at most [Config::MinerPages] pages. They are interpreted as msp -> lsp, as per [crate::Pallet::msp_range_for].For example, if
Pages = 4, andMinerPages = 2, our full snapshot range would be [0, 1, 2, 3], with 3 being msp. But, in this case, then thepaged_raw_solution.pagesis expected to correspond to[snapshot(2), snapshot(3)].
multiBlockElectionVerifier
multiBlockMigrations
clearHistoric(selector: PalletMigrationsHistoricCleanupSelector)
interface:
api.tx.multiBlockMigrations.clearHistoricsummary: Clears the
Historicset.map_cursormust be set to the last value that was returned by theHistoricClearedevent. The first timeNonecan be used.limitmust be chosen in a way that will result in a sensible weight.
forceOnboardMbms()
interface:
api.tx.multiBlockMigrations.forceOnboardMbmssummary: Forces the onboarding of the migrations.
This process happens automatically on a runtime upgrade. It is in place as an emergency measurement. The cursor needs to be
Nonefor this to succeed.
forceSetActiveCursor(index: u32, inner_cursor: Option<Bytes>, started_at: Option<u32>)
interface:
api.tx.multiBlockMigrations.forceSetActiveCursorsummary: Allows root to set an active cursor to forcefully start/forward the migration process.
This is an edge-case version of [
Self::force_set_cursor] that allows to set thestarted_atvalue to the next block number. Otherwise this would not be possible, sinceforce_set_cursortakes an absolute block number. Settingstarted_attoNoneindicates that the current block number plus one should be used.
forceSetCursor(cursor: Option<PalletMigrationsMigrationCursor>)
interface:
api.tx.multiBlockMigrations.forceSetCursorsummary: Allows root to set a cursor to forcefully start, stop or forward the migration process.
Should normally not be needed and is only in place as emergency measure. Note that restarting the migration process in this manner will not call the [
MigrationStatusHandler::started] hook or emit anUpgradeStartedevent.
multisig
approveAsMulti(threshold: u16, other_signatories: Vec<AccountId32>, maybe_timepoint: Option<PalletMultisigTimepoint>, call_hash: [u8;32], max_weight: SpWeightsWeightV2Weight)
interface:
api.tx.multisig.approveAsMultisummary: Register approval for a dispatch to be made from a deterministic composite account if approved by a total of
threshold - 1ofother_signatories.Payment:
DepositBasewill be reserved if this is the first approval, plusthresholdtimesDepositFactor. It is returned once this dispatch happens or is cancelled.The dispatch origin for this call must be Signed.
threshold: The total number of approvals for this dispatch before it is executed.other_signatories: The accounts (other than the sender) who can approve this dispatch. May not be empty.maybe_timepoint: If this is the first approval, then this must beNone. If it is not the first approval, then it must beSome, with the timepoint (block number and transaction index) of the first approval transaction.call_hash: The hash of the call to be executed.NOTE: If this is the final approval, you will want to use
as_multiinstead.Complexity
O(S).Up to one balance-reserve or unreserve operation.
One passthrough operation, one insert, both
O(S)whereSis the number of signatories.Sis capped byMaxSignatories, with weight being proportional.One encode & hash, both of complexity
O(S).Up to one binary search and insert (
O(logS + S)).I/O: 1 read
O(S), up to 1 mutateO(S). Up to one remove.One event.
Storage: inserts one item, value size bounded by
MaxSignatories, with a deposit taken for its lifetime ofDepositBase + threshold * DepositFactor.
asMulti(threshold: u16, other_signatories: Vec<AccountId32>, maybe_timepoint: Option<PalletMultisigTimepoint>, call: Call, max_weight: SpWeightsWeightV2Weight)
interface:
api.tx.multisig.asMultisummary: Register approval for a dispatch to be made from a deterministic composite account if approved by a total of
threshold - 1ofother_signatories.If there are enough, then dispatch the call.
Payment:
DepositBasewill be reserved if this is the first approval, plusthresholdtimesDepositFactor. It is returned once this dispatch happens or is cancelled.The dispatch origin for this call must be Signed.
threshold: The total number of approvals for this dispatch before it is executed.other_signatories: The accounts (other than the sender) who can approve this dispatch. May not be empty.maybe_timepoint: If this is the first approval, then this must beNone. If it is not the first approval, then it must beSome, with the timepoint (block number and transaction index) of the first approval transaction.call: The call to be executed.NOTE: Unless this is the final approval, you will generally want to use
approve_as_multiinstead, since it only requires a hash of the call.Result is equivalent to the dispatched result if
thresholdis exactly1. Otherwise on success, result isOkand the result from the interior call, if it was executed, may be found in the depositedMultisigExecutedevent.Complexity
O(S + Z + Call).Up to one balance-reserve or unreserve operation.
One passthrough operation, one insert, both
O(S)whereSis the number of signatories.Sis capped byMaxSignatories, with weight being proportional.One call encode & hash, both of complexity
O(Z)whereZis tx-len.One encode & hash, both of complexity
O(S).Up to one binary search and insert (
O(logS + S)).I/O: 1 read
O(S), up to 1 mutateO(S). Up to one remove.One event.
The weight of the
call.Storage: inserts one item, value size bounded by
MaxSignatories, with a deposit taken for its lifetime ofDepositBase + threshold * DepositFactor.
asMultiThreshold1(other_signatories: Vec<AccountId32>, call: Call)
interface:
api.tx.multisig.asMultiThreshold1summary: Immediately dispatch a multi-signature call using a single approval from the caller.
The dispatch origin for this call must be Signed.
other_signatories: The accounts (other than the sender) who are part of the multi-signature, but do not participate in the approval process.call: The call to be executed.Result is equivalent to the dispatched result.
Complexity O(Z + C) where Z is the length of the call and C its execution weight.
cancelAsMulti(threshold: u16, other_signatories: Vec<AccountId32>, timepoint: PalletMultisigTimepoint, call_hash: [u8;32])
interface:
api.tx.multisig.cancelAsMultisummary: Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously for this operation will be unreserved on success.
The dispatch origin for this call must be Signed.
threshold: The total number of approvals for this dispatch before it is executed.other_signatories: The accounts (other than the sender) who can approve this dispatch. May not be empty.timepoint: The timepoint (block number and transaction index) of the first approval transaction for this dispatch.call_hash: The hash of the call to be executed.Complexity
O(S).Up to one balance-reserve or unreserve operation.
One passthrough operation, one insert, both
O(S)whereSis the number of signatories.Sis capped byMaxSignatories, with weight being proportional.One encode & hash, both of complexity
O(S).One event.
I/O: 1 read
O(S), one remove.Storage: removes one item.
pokeDeposit(threshold: u16, other_signatories: Vec<AccountId32>, call_hash: [u8;32])
interface:
api.tx.multisig.pokeDepositsummary: Poke the deposit reserved for an existing multisig operation.
The dispatch origin for this call must be Signed and must be the original depositor of the multisig operation.
The transaction fee is waived if the deposit amount has changed.
threshold: The total number of approvals needed for this multisig.other_signatories: The accounts (other than the sender) who are part of the multisig.call_hash: The hash of the call this deposit is reserved for.Emits
DepositPokedif successful.
nftFractionalization
fractionalize(nft_collection_id: u32, nft_id: u32, asset_id: u32, beneficiary: MultiAddress, fractions: u128)
interface:
api.tx.nftFractionalization.fractionalizesummary: Lock the NFT and mint a new fungible asset.
The dispatch origin for this call must be Signed. The origin must be the owner of the NFT they are trying to lock.
Depositfunds of sender are reserved.nft_collection_id: The ID used to identify the collection of the NFT. Is used within the context ofpallet_nfts.nft_id: The ID used to identify the NFT within the given collection. Is used within the context ofpallet_nfts.asset_id: The ID of the new asset. It must not exist. Is used within the context ofpallet_assets.beneficiary: The account that will receive the newly created asset.fractions: The total issuance of the newly created asset class.Emits
NftFractionalizedevent when successful.
unify(nft_collection_id: u32, nft_id: u32, asset_id: u32, beneficiary: MultiAddress)
interface:
api.tx.nftFractionalization.unifysummary: Burn the total issuance of the fungible asset and return (unlock) the locked NFT.
The dispatch origin for this call must be Signed.
Depositfunds will be returned toasset_creator.nft_collection_id: The ID used to identify the collection of the NFT. Is used within the context ofpallet_nfts.nft_id: The ID used to identify the NFT within the given collection. Is used within the context ofpallet_nfts.asset_id: The ID of the asset being returned and destroyed. Must match the original ID of the created asset, corresponding to the NFT. Is used within the context ofpallet_assets.beneficiary: The account that will receive the unified NFT.Emits
NftUnifiedevent when successful.
nfts
approveItemAttributes(collection: u32, item: u32, delegate: MultiAddress)
interface:
api.tx.nfts.approveItemAttributessummary: Approve item's attributes to be changed by a delegated third-party account.
Origin must be Signed and must be an owner of the
item.collection: A collection of the item.item: The item that holds attributes.delegate: The account to delegate permission to change attributes of the item.Emits
ItemAttributesApprovalAddedon success.
approveTransfer(collection: u32, item: u32, delegate: MultiAddress, maybe_deadline: Option<u32>)
interface:
api.tx.nfts.approveTransfersummary: Approve an item to be transferred by a delegated third-party account.
Origin must be either
ForceOriginor Signed and the sender should be the Owner of theitem.collection: The collection of the item to be approved for delegated transfer.item: The item to be approved for delegated transfer.delegate: The account to delegate permission to transfer the item.maybe_deadline: Optional deadline for the approval. Specified by providing the number of blocks after which the approval will expireEmits
TransferApprovedon success.Weight:
O(1)
burn(collection: u32, item: u32)
interface:
api.tx.nfts.burnsummary: Destroy a single item.
The origin must conform to
ForceOriginor must be Signed and the signing account must be the owner of theitem.collection: The collection of the item to be burned.item: The item to be burned.Emits
Burned.Weight:
O(1)
buyItem(collection: u32, item: u32, bid_price: u128)
interface:
api.tx.nfts.buyItemsummary: Allows to buy an item if it's up for sale.
Origin must be Signed and must not be the owner of the
item.collection: The collection of the item.item: The item the sender wants to buy.bid_price: The price the sender is willing to pay.Emits
ItemBoughton success.
cancelApproval(collection: u32, item: u32, delegate: MultiAddress)
interface:
api.tx.nfts.cancelApprovalsummary: Cancel one of the transfer approvals for a specific item.
Origin must be either:
the
Forceorigin;Signedwith the signer being the Owner of theitem;Arguments:
collection: The collection of the item of whose approval will be cancelled.item: The item of the collection of whose approval will be cancelled.delegate: The account that is going to loose their approval.Emits
ApprovalCancelledon success.Weight:
O(1)
cancelItemAttributesApproval(collection: u32, item: u32, delegate: MultiAddress, witness: PalletNftsCancelAttributesApprovalWitness)
interface:
api.tx.nfts.cancelItemAttributesApprovalsummary: Cancel the previously provided approval to change item's attributes. All the previously set attributes by the
delegatewill be removed.Origin must be Signed and must be an owner of the
item.collection: Collection that the item is contained within.item: The item that holds attributes.delegate: The previously approved account to remove.Emits
ItemAttributesApprovalRemovedon success.
cancelSwap(offered_collection: u32, offered_item: u32)
interface:
api.tx.nfts.cancelSwapsummary: Cancel an atomic swap.
Origin must be Signed. Origin must be an owner of the
itemif the deadline hasn't expired.collection: The collection of the item.item: The item an owner wants to give.Emits
SwapCancelledon success.
claimSwap(send_collection: u32, send_item: u32, receive_collection: u32, receive_item: u32, witness_price: Option<PalletNftsPriceWithDirection>)
interface:
api.tx.nfts.claimSwapsummary: Claim an atomic swap. This method executes a pending swap, that was created by a counterpart before.
Origin must be Signed and must be an owner of the
item.send_collection: The collection of the item to be sent.send_item: The item to be sent.receive_collection: The collection of the item to be received.receive_item: The item to be received.witness_price: A price that was previously agreed on.Emits
SwapClaimedon success.
clearAllTransferApprovals(collection: u32, item: u32)
interface:
api.tx.nfts.clearAllTransferApprovalssummary: Cancel all the approvals of a specific item.
Origin must be either:
the
Forceorigin;Signedwith the signer being the Owner of theitem;Arguments:
collection: The collection of the item of whose approvals will be cleared.item: The item of the collection of whose approvals will be cleared.Emits
AllApprovalsCancelledon success.Weight:
O(1)
clearAttribute(collection: u32, maybe_item: Option<u32>, namespace: PalletNftsAttributeNamespace, key: Bytes)
interface:
api.tx.nfts.clearAttributesummary: Clear an attribute for a collection or item.
Origin must be either
ForceOriginor Signed and the sender should be the Owner of the attribute.Any deposit is freed for the collection's owner.
collection: The identifier of the collection whose item's metadata to clear.maybe_item: The identifier of the item whose metadata to clear.namespace: Attribute's namespace.key: The key of the attribute.Emits
AttributeCleared.Weight:
O(1)
clearCollectionMetadata(collection: u32)
interface:
api.tx.nfts.clearCollectionMetadatasummary: Clear the metadata for a collection.
Origin must be either
ForceOriginorSignedand the sender should be the Admin of thecollection.Any deposit is freed for the collection's owner.
collection: The identifier of the collection whose metadata to clear.Emits
CollectionMetadataCleared.Weight:
O(1)
clearMetadata(collection: u32, item: u32)
interface:
api.tx.nfts.clearMetadatasummary: Clear the metadata for an item.
Origin must be either
ForceOriginor Signed and the sender should be the Admin of thecollection.Any deposit is freed for the collection's owner.
collection: The identifier of the collection whose item's metadata to clear.item: The identifier of the item whose metadata to clear.Emits
ItemMetadataCleared.Weight:
O(1)
create(admin: MultiAddress, config: PalletNftsCollectionConfig)
interface:
api.tx.nfts.createsummary: Issue a new collection of non-fungible items from a public origin.
This new collection has no items initially and its owner is the origin.
The origin must be Signed and the sender must have sufficient funds free.
CollectionDepositfunds of sender are reserved.Parameters:
admin: The admin of this collection. The admin is the initial address of each member of the collection's admin team.Emits
Createdevent when successful.Weight:
O(1)
createSwap(offered_collection: u32, offered_item: u32, desired_collection: u32, maybe_desired_item: Option<u32>, maybe_price: Option<PalletNftsPriceWithDirection>, duration: u32)
interface:
api.tx.nfts.createSwapsummary: Register a new atomic swap, declaring an intention to send an
itemin exchange fordesired_itemfrom origin to target on the current blockchain. The target can execute the swap during the specifieddurationof blocks (if set). Additionally, the price could be set for the desireditem.Origin must be Signed and must be an owner of the
item.collection: The collection of the item.item: The item an owner wants to give.desired_collection: The collection of the desired item.desired_item: The desired item an owner wants to receive.maybe_price: The price an owner is willing to pay or receive for the desireditem.duration: A deadline for the swap. Specified by providing the number of blocks after which the swap will expire.Emits
SwapCreatedon success.
destroy(collection: u32, witness: PalletNftsDestroyWitness)
interface:
api.tx.nfts.destroysummary: Destroy a collection of fungible items.
The origin must conform to
ForceOriginor must beSignedand the sender must be the owner of thecollection.NOTE: The collection must have 0 items to be destroyed.
collection: The identifier of the collection to be destroyed.witness: Information on the items minted in the collection. This must be correct.Emits
Destroyedevent when successful.Weight:
O(m + c + a)where:m = witness.item_metadatasc = witness.item_configsa = witness.attributes
forceCollectionConfig(collection: u32, config: PalletNftsCollectionConfig)
interface:
api.tx.nfts.forceCollectionConfigsummary: Change the config of a collection.
Origin must be
ForceOrigin.collection: The identifier of the collection.config: The new config of this collection.Emits
CollectionConfigChanged.Weight:
O(1)
forceCollectionOwner(collection: u32, owner: MultiAddress)
interface:
api.tx.nfts.forceCollectionOwnersummary: Change the Owner of a collection.
Origin must be
ForceOrigin.collection: The identifier of the collection.owner: The new Owner of this collection.Emits
OwnerChanged.Weight:
O(1)
forceCreate(owner: MultiAddress, config: PalletNftsCollectionConfig)
interface:
api.tx.nfts.forceCreatesummary: Issue a new collection of non-fungible items from a privileged origin.
This new collection has no items initially.
The origin must conform to
ForceOrigin.Unlike
create, no funds are reserved.owner: The owner of this collection of items. The owner has full superuser permissions over this item, but may later change and configure the permissions usingtransfer_ownershipandset_team.Emits
ForceCreatedevent when successful.Weight:
O(1)
forceMint(collection: u32, item: u32, mint_to: MultiAddress, item_config: PalletNftsItemConfig)
interface:
api.tx.nfts.forceMintsummary: Mint an item of a particular collection from a privileged origin.
The origin must conform to
ForceOriginor must beSignedand the sender must be the Issuer of thecollection.collection: The collection of the item to be minted.item: An identifier of the new item.mint_to: Account into which the item will be minted.item_config: A config of the new item.Emits
Issuedevent when successful.Weight:
O(1)
forceSetAttribute(set_as: Option<AccountId32>, collection: u32, maybe_item: Option<u32>, namespace: PalletNftsAttributeNamespace, key: Bytes, value: Bytes)
interface:
api.tx.nfts.forceSetAttributesummary: Force-set an attribute for a collection or item.
Origin must be
ForceOrigin.If the attribute already exists and it was set by another account, the deposit will be returned to the previous owner.
set_as: An optional owner of the attribute.collection: The identifier of the collection whose item's metadata to set.maybe_item: The identifier of the item whose metadata to set.namespace: Attribute's namespace.key: The key of the attribute.value: The value to which to set the attribute.Emits
AttributeSet.Weight:
O(1)
lockCollection(collection: u32, lock_settings: u64)
interface:
api.tx.nfts.lockCollectionsummary: Disallows specified settings for the whole collection.
Origin must be Signed and the sender should be the Owner of the
collection.collection: The collection to be locked.lock_settings: The settings to be locked.Note: it's possible to only lock(set) the setting, but not to unset it.
Emits
CollectionLocked.Weight:
O(1)
lockItemProperties(collection: u32, item: u32, lock_metadata: bool, lock_attributes: bool)
interface:
api.tx.nfts.lockItemPropertiessummary: Disallows changing the metadata or attributes of the item.
Origin must be either
ForceOriginor Signed and the sender should be the Admin of thecollection.collection: The collection if theitem.item: An item to be locked.lock_metadata: Specifies whether the metadata should be locked.lock_attributes: Specifies whether the attributes in theCollectionOwnernamespace should be locked.Note:
lock_attributesaffects the attributes in theCollectionOwnernamespace only. When the metadata or attributes are locked, it won't be possible the unlock them.Emits
ItemPropertiesLocked.Weight:
O(1)
lockItemTransfer(collection: u32, item: u32)
interface:
api.tx.nfts.lockItemTransfersummary: Disallow further unprivileged transfer of an item.
Origin must be Signed and the sender should be the Freezer of the
collection.collection: The collection of the item to be changed.item: The item to become non-transferable.Emits
ItemTransferLocked.Weight:
O(1)
mint(collection: u32, item: u32, mint_to: MultiAddress, witness_data: Option<PalletNftsMintWitness>)
interface:
api.tx.nfts.mintsummary: Mint an item of a particular collection.
The origin must be Signed and the sender must comply with the
mint_settingsrules.collection: The collection of the item to be minted.item: An identifier of the new item.mint_to: Account into which the item will be minted.witness_data: When the mint type isHolderOf(collection_id), then the owned item_id from that collection needs to be provided within the witness data object. If the mint price is set, then it should be additionally confirmed in thewitness_data.Note: the deposit will be taken from the
originand not theownerof theitem.Emits
Issuedevent when successful.Weight:
O(1)
mintPreSigned(mint_data: PalletNftsPreSignedMint, signature: SpRuntimeMultiSignature, signer: AccountId32)
interface:
api.tx.nfts.mintPreSignedsummary: Mint an item by providing the pre-signed approval.
Origin must be Signed.
mint_data: The pre-signed approval that consists of the information about the item, its metadata, attributes, who can mint it (Nonefor anyone) and until what block number.signature: The signature of thedataobject.signer: Thedataobject's signer. Should be an Issuer of the collection.Emits
Issuedon success. EmitsAttributeSetif the attributes were provided. EmitsItemMetadataSetif the metadata was not empty.
payTips(tips: Vec<PalletNftsItemTip>)
interface:
api.tx.nfts.payTipssummary: Allows to pay the tips.
Origin must be Signed.
tips: Tips array.Emits
TipSenton every tip transfer.
redeposit(collection: u32, items: Vec<u32>)
interface:
api.tx.nfts.redepositsummary: Re-evaluate the deposits on some items.
Origin must be Signed and the sender should be the Owner of the
collection.collection: The collection of the items to be reevaluated.items: The items of the collection whose deposits will be reevaluated.NOTE: This exists as a best-effort function. Any items which are unknown or in the case that the owner account does not have reservable funds to pay for a deposit increase are ignored. Generally the owner isn't going to call this on items whose existing deposit is less than the refreshed deposit as it would only cost them, so it's of little consequence.
It will still return an error in the case that the collection is unknown or the signer is not permitted to call it.
Weight:
O(items.len())
setAcceptOwnership(maybe_collection: Option<u32>)
interface:
api.tx.nfts.setAcceptOwnershipsummary: Set (or reset) the acceptance of ownership for a particular account.
Origin must be
Signedand ifmaybe_collectionisSome, then the signer must have a provider reference.maybe_collection: The identifier of the collection whose ownership the signer is willing to accept, or ifNone, an indication that the signer is willing to accept no ownership transferal.Emits
OwnershipAcceptanceChanged.
setAttribute(collection: u32, maybe_item: Option<u32>, namespace: PalletNftsAttributeNamespace, key: Bytes, value: Bytes)
interface:
api.tx.nfts.setAttributesummary: Set an attribute for a collection or item.
Origin must be Signed and must conform to the namespace ruleset:
CollectionOwnernamespace could be modified by thecollectionAdmin only;ItemOwnernamespace could be modified by themaybe_itemowner only.maybe_itemshould be set in that case;Account(AccountId)namespace could be modified only when theoriginwas given a permission to do so;The funds of
originare reserved according to the formula:AttributeDepositBase + DepositPerByte * (key.len + value.len)taking into account any already reserved funds.collection: The identifier of the collection whose item's metadata to set.maybe_item: The identifier of the item whose metadata to set.namespace: Attribute's namespace.key: The key of the attribute.value: The value to which to set the attribute.Emits
AttributeSet.Weight:
O(1)
setAttributesPreSigned(data: PalletNftsPreSignedAttributes, signature: SpRuntimeMultiSignature, signer: AccountId32)
interface:
api.tx.nfts.setAttributesPreSignedsummary: Set attributes for an item by providing the pre-signed approval.
Origin must be Signed and must be an owner of the
data.item.data: The pre-signed approval that consists of the information about the item, attributes to update and until what block number.signature: The signature of thedataobject.signer: Thedataobject's signer. Should be an Admin of the collection for theCollectionOwnernamespace.Emits
AttributeSetfor each provided attribute. EmitsItemAttributesApprovalAddedif the approval wasn't set before. EmitsPreSignedAttributesSeton success.
setCollectionMaxSupply(collection: u32, max_supply: u32)
interface:
api.tx.nfts.setCollectionMaxSupplysummary: Set the maximum number of items a collection could have.
Origin must be either
ForceOriginorSignedand the sender should be the Owner of thecollection.collection: The identifier of the collection to change.max_supply: The maximum number of items a collection could have.Emits
CollectionMaxSupplySetevent when successful.
setCollectionMetadata(collection: u32, data: Bytes)
interface:
api.tx.nfts.setCollectionMetadatasummary: Set the metadata for a collection.
Origin must be either
ForceOriginorSignedand the sender should be the Admin of thecollection.If the origin is
Signed, then funds of signer are reserved according to the formula:MetadataDepositBase + DepositPerByte * data.lentaking into account any already reserved funds.collection: The identifier of the item whose metadata to update.data: The general information of this item. Limited in length byStringLimit.Emits
CollectionMetadataSet.Weight:
O(1)
setMetadata(collection: u32, item: u32, data: Bytes)
interface:
api.tx.nfts.setMetadatasummary: Set the metadata for an item.
Origin must be either
ForceOriginor Signed and the sender should be the Admin of thecollection.If the origin is Signed, then funds of signer are reserved according to the formula:
MetadataDepositBase + DepositPerByte * data.lentaking into account any already reserved funds.collection: The identifier of the collection whose item's metadata to set.item: The identifier of the item whose metadata to set.data: The general information of this item. Limited in length byStringLimit.Emits
ItemMetadataSet.Weight:
O(1)
setPrice(collection: u32, item: u32, price: Option<u128>, whitelisted_buyer: Option<MultiAddress>)
interface:
api.tx.nfts.setPricesummary: Set (or reset) the price for an item.
Origin must be Signed and must be the owner of the
item.collection: The collection of the item.item: The item to set the price for.price: The price for the item. PassNone, to reset the price.buyer: Restricts the buy operation to a specific account.Emits
ItemPriceSeton success if the price is notNone. EmitsItemPriceRemovedon success if the price isNone.
setTeam(collection: u32, issuer: Option<MultiAddress>, admin: Option<MultiAddress>, freezer: Option<MultiAddress>)
interface:
api.tx.nfts.setTeamsummary: Change the Issuer, Admin and Freezer of a collection.
Origin must be either
ForceOriginor Signed and the sender should be the Owner of thecollection.Note: by setting the role to
Noneonly theForceOriginwill be able to change it after toSome(account).collection: The collection whose team should be changed.issuer: The new Issuer of this collection.admin: The new Admin of this collection.freezer: The new Freezer of this collection.Emits
TeamChanged.Weight:
O(1)
transfer(collection: u32, item: u32, dest: MultiAddress)
interface:
api.tx.nfts.transfersummary: Move an item from the sender account to another.
Origin must be Signed and the signing account must be either:
the Owner of the
item;the approved delegate for the
item(in this case, the approval is reset).Arguments:
collection: The collection of the item to be transferred.item: The item to be transferred.dest: The account to receive ownership of the item.Emits
Transferred.Weight:
O(1)
transferOwnership(collection: u32, new_owner: MultiAddress)
interface:
api.tx.nfts.transferOwnershipsummary: Change the Owner of a collection.
Origin must be Signed and the sender should be the Owner of the
collection.collection: The collection whose owner should be changed.owner: The new Owner of this collection. They must have calledset_accept_ownershipwithcollectionin order for this operation to succeed.Emits
OwnerChanged.Weight:
O(1)
unlockItemTransfer(collection: u32, item: u32)
interface:
api.tx.nfts.unlockItemTransfersummary: Re-allow unprivileged transfer of an item.
Origin must be Signed and the sender should be the Freezer of the
collection.collection: The collection of the item to be changed.item: The item to become transferable.Emits
ItemTransferUnlocked.Weight:
O(1)
updateMintSettings(collection: u32, mint_settings: PalletNftsMintSettings)
interface:
api.tx.nfts.updateMintSettingssummary: Update mint settings.
Origin must be either
ForceOriginorSignedand the sender should be the Issuer of thecollection.collection: The identifier of the collection to change.mint_settings: The new mint settings.Emits
CollectionMintSettingsUpdatedevent when successful.
nominationPools
adjustPoolDeposit(pool_id: u32)
interface:
api.tx.nominationPools.adjustPoolDepositsummary: Top up the deficit or withdraw the excess ED from the pool.
When a pool is created, the pool depositor transfers ED to the reward account of the pool. ED is subject to change and over time, the deposit in the reward account may be insufficient to cover the ED deficit of the pool or vice-versa where there is excess deposit to the pool. This call allows anyone to adjust the ED deposit of the pool by either topping up the deficit or claiming the excess.
applySlash(member_account: MultiAddress)
interface:
api.tx.nominationPools.applySlashsummary: Apply a pending slash on a member.
Fails unless [
crate::pallet::Config::StakeAdapter] is of strategy type: [adapter::StakeStrategyType::Delegate].The pending slash amount of the member must be equal or more than
ExistentialDeposit. This call can be dispatched permissionlessly (i.e. by any account). If the execution is successful, fee is refunded and caller may be rewarded with a part of the slash based on the [crate::pallet::Config::StakeAdapter] configuration.
bondExtra(extra: PalletNominationPoolsBondExtra)
interface:
api.tx.nominationPools.bondExtrasummary: Bond
extramore funds fromorigininto the pool to which they already belong.Additional funds can come from either the free balance of the account, of from the accumulated rewards, see [
BondExtra].Bonding extra funds implies an automatic payout of all pending rewards as well. See
bond_extra_otherto bond pending rewards ofothermembers.
bondExtraOther(member: MultiAddress, extra: PalletNominationPoolsBondExtra)
interface:
api.tx.nominationPools.bondExtraOthersummary:
originbonds funds fromextrafor some pool membermemberinto their respective pools.origincan bond extra funds from free balance or pending rewards whenorigin == other.In the case of
origin != other,origincan only bond extra pending rewards ofothermembers assuming set_claim_permission for the given member isPermissionlessCompoundorPermissionlessAll.
chill(pool_id: u32)
interface:
api.tx.nominationPools.chillsummary: Chill on behalf of the pool.
The dispatch origin of this call can be signed by the pool nominator or the pool root role, same as [
Pallet::nominate].This directly forwards the call to an implementation of
StakingInterface(e.g.,pallet-staking) through [Config::StakeAdapter], on behalf of the bonded pool.Under certain conditions, this call can be dispatched permissionlessly (i.e. by any account).
Conditions for a permissionless dispatch:
When pool depositor has less than
MinNominatorBondstaked, otherwise pool members are unable to unbond.Conditions for permissioned dispatch:
The caller is the pool's nominator or root.
claimCommission(pool_id: u32)
interface:
api.tx.nominationPools.claimCommissionsummary: Claim pending commission.
The
rootrole of the pool is always allowed to claim the pool's commission.If the pool has set
CommissionClaimPermission::Permissionless, then any account can trigger the process of claiming the pool's commission.If the pool has set its
CommissionClaimPermissiontoAccount(acc), then only accountsacc, andthe pool's root account
may call this extrinsic on behalf of the pool.
Pending commissions are paid out and added to the total claimed commission. The total pending commission is reset to zero.
claimPayout()
interface:
api.tx.nominationPools.claimPayoutsummary: A bonded member can use this to claim their payout based on the rewards that the pool has accumulated since their last claimed payout (OR since joining if this is their first time claiming rewards). The payout will be transferred to the member's account.
The member will earn rewards pro rata based on the members stake vs the sum of the members in the pools stake. Rewards do not "expire".
See
claim_payout_otherto claim rewards on behalf of someotherpool member.
claimPayoutOther(other: AccountId32)
interface:
api.tx.nominationPools.claimPayoutOthersummary:
origincan claim payouts on some pool memberother's behalf.Pool member
othermust have aPermissionlessWithdraworPermissionlessAllclaim permission for this call to be successful.
create(amount: Compact<u128>, root: MultiAddress, nominator: MultiAddress, bouncer: MultiAddress)
interface:
api.tx.nominationPools.createsummary: Create a new delegation pool.
Arguments
amount- The amount of funds to delegate to the pool. This also acts of a sort of deposit since the pools creator cannot fully unbond funds until the pool is being destroyed.index- A disambiguation index for creating the account. Likely only useful when creating multiple pools in the same extrinsic.root- The account to set as [PoolRoles::root].nominator- The account to set as the [PoolRoles::nominator].bouncer- The account to set as the [PoolRoles::bouncer].Note
In addition to
amount, the caller will transfer the existential deposit; so the caller needs at have at leastamount + existential_deposittransferable.
createWithPoolId(amount: Compact<u128>, root: MultiAddress, nominator: MultiAddress, bouncer: MultiAddress, pool_id: u32)
interface:
api.tx.nominationPools.createWithPoolIdsummary: Create a new delegation pool with a previously used pool id
Arguments
same as
createwith the inclusion ofpool_id- `A valid PoolId.
join(amount: Compact<u128>, pool_id: u32)
interface:
api.tx.nominationPools.joinsummary: Stake funds with a pool. The amount to bond is delegated (or transferred based on [
adapter::StakeStrategyType]) from the member to the pool account and immediately increases the pool's bond.The method of transferring the amount to the pool account is determined by [
adapter::StakeStrategyType]. If the pool is configured to use [adapter::StakeStrategyType::Delegate], the funds remain in the account of theorigin, while the pool gains the right to use these funds for staking.Note
An account can only be a member of a single pool.
An account cannot join the same pool multiple times.
This call will not dust the member account, so the member must have at least
existential deposit + amountin their account.Only a pool with [
PoolState::Open] can be joined
migrateDelegation(member_account: MultiAddress)
interface:
api.tx.nominationPools.migrateDelegationsummary: Migrates delegated funds from the pool account to the
member_account.Fails unless [
crate::pallet::Config::StakeAdapter] is of strategy type: [adapter::StakeStrategyType::Delegate].This is a permission-less call and refunds any fee if claim is successful.
If the pool has migrated to delegation based staking, the staked tokens of pool members can be moved and held in their own account. See [
adapter::DelegateStake]
migratePoolToDelegateStake(pool_id: u32)
interface:
api.tx.nominationPools.migratePoolToDelegateStakesummary: Migrate pool from [
adapter::StakeStrategyType::Transfer] to [adapter::StakeStrategyType::Delegate].Fails unless [
crate::pallet::Config::StakeAdapter] is of strategy type: [adapter::StakeStrategyType::Delegate].This call can be dispatched permissionlessly, and refunds any fee if successful.
If the pool has already migrated to delegation based staking, this call will fail.
nominate(pool_id: u32, validators: Vec<AccountId32>)
interface:
api.tx.nominationPools.nominatesummary: Nominate on behalf of the pool.
The dispatch origin of this call must be signed by the pool nominator or the pool root role.
This directly forwards the call to an implementation of
StakingInterface(e.g.,pallet-staking) through [Config::StakeAdapter], on behalf of the bonded pool.Note
In addition to a
rootornominatorrole oforigin, the pool's depositor needs to have at leastdepositor_min_bondin the pool to start nominating.
poolWithdrawUnbonded(pool_id: u32, num_slashing_spans: u32)
interface:
api.tx.nominationPools.poolWithdrawUnbondedsummary: Call
withdraw_unbondedfor the pools account. This call can be made by any account.This is useful if there are too many unlocking chunks to call
unbond, and some can be cleared by withdrawing. In the case there are too many unlocking chunks, the user would probably see an error likeNoMoreChunksemitted from the staking system when they attempt to unbond.
setClaimPermission(permission: PalletNominationPoolsClaimPermission)
interface:
api.tx.nominationPools.setClaimPermissionsummary: Allows a pool member to set a claim permission to allow or disallow permissionless bonding and withdrawing.
Arguments
origin- Member of a pool.permission- The permission to be applied.
setCommission(pool_id: u32, new_commission: Option<(Perbill,AccountId32)>)
interface:
api.tx.nominationPools.setCommissionsummary: Set the commission of a pool. Both a commission percentage and a commission payee must be provided in the
currenttuple. Where acurrentofNoneis provided, any current commission will be removed.- If a
Noneis supplied tonew_commission, existing commission will be removed.
- If a
setCommissionChangeRate(pool_id: u32, change_rate: PalletNominationPoolsCommissionChangeRate)
interface:
api.tx.nominationPools.setCommissionChangeRatesummary: Set the commission change rate for a pool.
Initial change rate is not bounded, whereas subsequent updates can only be more restrictive than the current.
setCommissionClaimPermission(pool_id: u32, permission: Option<PalletNominationPoolsCommissionClaimPermission>)
interface:
api.tx.nominationPools.setCommissionClaimPermissionsummary: Set or remove a pool's commission claim permission.
Determines who can claim the pool's pending commission. Only the
Rootrole of the pool is able to configure commission claim permissions.
setCommissionMax(pool_id: u32, max_commission: Perbill)
interface:
api.tx.nominationPools.setCommissionMaxsummary: Set the maximum commission of a pool.
Initial max can be set to any
Perbill, and only smaller values thereafter.Current commission will be lowered in the event it is higher than a new max commission.
setConfigs(min_join_bond: PalletNominationPoolsConfigOpU128, min_create_bond: PalletNominationPoolsConfigOpU128, max_pools: PalletNominationPoolsConfigOpU32, max_members: PalletNominationPoolsConfigOpU32, max_members_per_pool: PalletNominationPoolsConfigOpU32, global_max_commission: PalletNominationPoolsConfigOpPerbill)
interface:
api.tx.nominationPools.setConfigssummary: Update configurations for the nomination pools. The origin for this call must be [
Config::AdminOrigin].Arguments
min_join_bond- Set [MinJoinBond].min_create_bond- Set [MinCreateBond].max_pools- Set [MaxPools].max_members- Set [MaxPoolMembers].max_members_per_pool- Set [MaxPoolMembersPerPool].global_max_commission- Set [GlobalMaxCommission].
setMetadata(pool_id: u32, metadata: Bytes)
interface:
api.tx.nominationPools.setMetadatasummary: Set a new metadata for the pool.
The dispatch origin of this call must be signed by the bouncer, or the root role of the pool.
setState(pool_id: u32, state: PalletNominationPoolsPoolState)
interface:
api.tx.nominationPools.setStatesummary: Set a new state for the pool.
If a pool is already in the
Destroyingstate, then under no condition can its state change again.The dispatch origin of this call must be either:
- signed by the bouncer, or the root role of the pool, 2. if the pool conditions to be open are NOT met (as described by
ok_to_be_open), and then the state of the pool can be permissionlessly changed toDestroying.
- signed by the bouncer, or the root role of the pool, 2. if the pool conditions to be open are NOT met (as described by
unbond(member_account: MultiAddress, unbonding_points: Compact<u128>)
interface:
api.tx.nominationPools.unbondsummary: Unbond up to
unbonding_pointsof themember_account's funds from the pool. It implicitly collects the rewards one last time, since not doing so would mean some rewards would be forfeited.Under certain conditions, this call can be dispatched permissionlessly (i.e. by any account).
Conditions for a permissionless dispatch.
The pool is blocked and the caller is either the root or bouncer. This is refereed to as a kick.
The pool is destroying and the member is not the depositor.
The pool is destroying, the member is the depositor and no other members are in the pool.
Conditions for permissioned dispatch (i.e. the caller is also the
member_account):The caller is not the depositor.
The caller is the depositor, the pool is destroying and no other members are in the pool.
Note
If there are too many unlocking chunks to unbond with the pool account, [
Call::pool_withdraw_unbonded] can be called to try and minimize unlocking chunks. The [StakingInterface::unbond] will implicitly call [Call::pool_withdraw_unbonded] to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks are available). However, it may not be possible to release the current unlocking chunks, in which case, the result of this call will likely be theNoMoreChunkserror from the staking system.
updateRoles(pool_id: u32, new_root: PalletNominationPoolsConfigOpAccountId32, new_nominator: PalletNominationPoolsConfigOpAccountId32, new_bouncer: PalletNominationPoolsConfigOpAccountId32)
interface:
api.tx.nominationPools.updateRolessummary: Update the roles of the pool.
The root is the only entity that can change any of the roles, including itself, excluding the depositor, who can never change.
It emits an event, notifying UIs of the role change. This event is quite relevant to most pool members and they should be informed of changes to pool roles.
withdrawUnbonded(member_account: MultiAddress, num_slashing_spans: u32)
interface:
api.tx.nominationPools.withdrawUnbondedsummary: Withdraw unbonded funds from
member_account. If no bonded funds can be unbonded, an error is returned.Under certain conditions, this call can be dispatched permissionlessly (i.e. by any account).
Conditions for a permissionless dispatch
The pool is in destroy mode and the target is not the depositor.
The target is the depositor and they are the only member in the sub pools.
The pool is blocked and the caller is either the root or bouncer.
Conditions for permissioned dispatch
The caller is the target and they are not the depositor.
Note
If the target is the depositor, the pool will be destroyed.
If the pool has any pending slash, we also try to slash the member before letting them withdraw. This calculation adds some weight overhead and is only defensive. In reality, pool slashes must have been already applied via permissionless [
Call::apply_slash].
parachainInfo
parachainSystem
setValidationData(data: CumulusPalletParachainSystemParachainInherentBasicParachainInherentData, inbound_messages_data: CumulusPalletParachainSystemParachainInherentInboundMessagesData)
interface:
api.tx.parachainSystem.setValidationDatasummary: 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
InherentAs a side effect, this function upgrades the current validation function if the appropriate time has come.
sudoSendUpwardMessage(message: Bytes)
- interface:
api.tx.parachainSystem.sudoSendUpwardMessage
parameters
setParameter(key_value: AssetHubKusamaRuntimeRuntimeParameters)
interface:
api.tx.parameters.setParametersummary: Set the value of a parameter.
The dispatch origin of this call must be
AdminOriginfor the givenkey. Values be deleted by setting them toNone.
polkadotXcm
addAuthorizedAlias(aliaser: XcmVersionedLocation, expires: Option<u64>)
interface:
api.tx.polkadotXcm.addAuthorizedAliassummary: Authorize another
aliaserlocation to alias into the localoriginmaking this call. Thealiaseris only authorized until the providedexpiryblock number. The call can also be used for a previously authorized alias in order to update itsexpiryblock number.Usually useful to allow your local account to be aliased into from a remote location also under your control (like your account on another chain).
WARNING: make sure the caller
origin(you) trusts thealiaserlocation to act in their/your name. Once authorized using this call, thealiasercan freely impersonateoriginin XCM programs executed on the local chain.
claimAssets(assets: XcmVersionedAssets, beneficiary: XcmVersionedLocation)
interface:
api.tx.polkadotXcm.claimAssetssummary: Claims assets trapped on this pallet because of leftover assets during XCM execution.
origin: Anyone can call this extrinsic.assets: The exact assets that were trapped. Use the version to specify what version was the latest when they were trapped.beneficiary: The location/account where the claimed assets will be deposited.
execute(message: XcmVersionedXcm, max_weight: SpWeightsWeightV2Weight)
interface:
api.tx.polkadotXcm.executesummary: Execute an XCM message from a local, signed, origin.
An event is deposited indicating whether
msgcould be executed completely or only partially.No more than
max_weightwill 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.
forceDefaultXcmVersion(maybe_xcm_version: Option<u32>)
interface:
api.tx.polkadotXcm.forceDefaultXcmVersionsummary: 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 an origin specified by AdminOrigin.maybe_xcm_version: The default XCM encoding version, orNoneto disable.
forceSubscribeVersionNotify(location: XcmVersionedLocation)
interface:
api.tx.polkadotXcm.forceSubscribeVersionNotifysummary: Ask a location to notify us regarding their XCM version and any changes to it.
origin: Must be an origin specified by AdminOrigin.location: The location to which we should subscribe for XCM version notifications.
forceSuspension(suspended: bool)
interface:
api.tx.polkadotXcm.forceSuspensionsummary: Set or unset the global suspension state of the XCM executor.
origin: Must be an origin specified by AdminOrigin.suspended:trueto suspend,falseto resume.
forceUnsubscribeVersionNotify(location: XcmVersionedLocation)
interface:
api.tx.polkadotXcm.forceUnsubscribeVersionNotifysummary: Require that a particular destination should no longer notify us regarding any XCM version changes.
origin: Must be an origin specified by AdminOrigin.location: The location to which we are currently subscribed for XCM version notifications which we no longer desire.
forceXcmVersion(location: StagingXcmV5Location, version: u32)
interface:
api.tx.polkadotXcm.forceXcmVersionsummary: Extoll that a particular destination can be communicated with through a particular version of XCM.
origin: Must be an origin specified by AdminOrigin.location: The destination that is being described.xcm_version: The latest version of XCM thatlocationsupports.
limitedReserveTransferAssets(dest: XcmVersionedLocation, beneficiary: XcmVersionedLocation, assets: XcmVersionedAssets, fee_asset_item: u32, weight_limit: XcmV3WeightLimit)
interface:
api.tx.polkadotXcm.limitedReserveTransferAssetssummary: Transfer some assets from the local chain to the destination chain through their local, destination or remote reserve.
assetsmust have same reserve location and may not be teleportable todest.assetshave local reserve: transfer assets to sovereign account of destination chain and forward a notification XCM todestto mint and deposit reserve-based assets tobeneficiary.assetshave destination reserve: burn local assets and forward a notification todestchain to withdraw the reserve assets from this chain's sovereign account and deposit them tobeneficiary.assetshave remote reserve: burn local assets, forward XCM to reserve chain to move reserves from this chain's SA todestchain's SA, and forward another XCM todestto mint and deposit reserve-based assets tobeneficiary.Fee payment on the destination side is made from the asset in the
assetsvector of indexfee_asset_item, up to enough to pay forweight_limitof weight. If more weight is needed thanweight_limit, then the operation will fail and the sent assets may be at risk.origin: Must be capable of withdrawing theassetsand executing XCM.dest: Destination context for the assets. Will typically be[Parent, Parachain(..)]to send from parachain to parachain, or[Parachain(..)]to send from relay to parachain.beneficiary: A beneficiary location for the assets in the context ofdest. Will generally be anAccountId32value.assets: The assets to be withdrawn. This should include the assets used to pay the fee on thedest(and possibly reserve) chains.fee_asset_item: The index intoassetsof the item which should be used to pay fees.weight_limit: The remote-side weight limit, if any, for the XCM fee purchase.
limitedTeleportAssets(dest: XcmVersionedLocation, beneficiary: XcmVersionedLocation, assets: XcmVersionedAssets, fee_asset_item: u32, weight_limit: XcmV3WeightLimit)
interface:
api.tx.polkadotXcm.limitedTeleportAssetssummary: Teleport some assets from the local chain to some destination chain.
Fee payment on the destination side is made from the asset in the
assetsvector of indexfee_asset_item, up to enough to pay forweight_limitof weight. If more weight is needed thanweight_limit, then the operation will fail and the sent assets may be at risk.origin: Must be capable of withdrawing theassetsand executing XCM.dest: Destination context for the assets. Will typically be[Parent, Parachain(..)]to send from parachain to parachain, or[Parachain(..)]to send from relay to parachain.beneficiary: A beneficiary location for the assets in the context ofdest. Will generally be anAccountId32value.assets: The assets to be withdrawn. This should include the assets used to pay the fee on thedestchain.fee_asset_item: The index intoassetsof the item which should be used to pay fees.weight_limit: The remote-side weight limit, if any, for the XCM fee purchase.
removeAllAuthorizedAliases()
- interface:
api.tx.polkadotXcm.removeAllAuthorizedAliases - summary: Remove all previously authorized
aliasers that can alias into the localoriginmaking this call.
removeAuthorizedAlias(aliaser: XcmVersionedLocation)
- interface:
api.tx.polkadotXcm.removeAuthorizedAlias - summary: Remove a previously authorized
aliaserfrom the list of locations that can alias into the localoriginmaking this call.
reserveTransferAssets(dest: XcmVersionedLocation, beneficiary: XcmVersionedLocation, assets: XcmVersionedAssets, fee_asset_item: u32)
interface:
api.tx.polkadotXcm.reserveTransferAssetssummary: Transfer some assets from the local chain to the destination chain through their local, destination or remote reserve.
assetsmust have same reserve location and may not be teleportable todest.assetshave local reserve: transfer assets to sovereign account of destination chain and forward a notification XCM todestto mint and deposit reserve-based assets tobeneficiary.assetshave destination reserve: burn local assets and forward a notification todestchain to withdraw the reserve assets from this chain's sovereign account and deposit them tobeneficiary.assetshave remote reserve: burn local assets, forward XCM to reserve chain to move reserves from this chain's SA todestchain's SA, and forward another XCM todestto mint and deposit reserve-based assets tobeneficiary.This function is deprecated: Use
limited_reserve_transfer_assetsinstead.Fee payment on the destination side is made from the asset in the
assetsvector of indexfee_asset_item. The weight limit for fees is not provided and thus is unlimited, with all fees taken as needed from the asset.origin: Must be capable of withdrawing theassetsand executing XCM.dest: Destination context for the assets. Will typically be[Parent, Parachain(..)]to send from parachain to parachain, or[Parachain(..)]to send from relay to parachain.beneficiary: A beneficiary location for the assets in the context ofdest. Will generally be anAccountId32value.assets: The assets to be withdrawn. This should include the assets used to pay the fee on thedest(and possibly reserve) chains.fee_asset_item: The index intoassetsof the item which should be used to pay fees.
send(dest: XcmVersionedLocation, message: XcmVersionedXcm)
- interface:
api.tx.polkadotXcm.send
teleportAssets(dest: XcmVersionedLocation, beneficiary: XcmVersionedLocation, assets: XcmVersionedAssets, fee_asset_item: u32)
interface:
api.tx.polkadotXcm.teleportAssetssummary: Teleport some assets from the local chain to some destination chain.
This function is deprecated: Use
limited_teleport_assetsinstead.Fee payment on the destination side is made from the asset in the
assetsvector of indexfee_asset_item. The weight limit for fees is not provided and thus is unlimited, with all fees taken as needed from the asset.origin: Must be capable of withdrawing theassetsand executing XCM.dest: Destination context for the assets. Will typically be[Parent, Parachain(..)]to send from parachain to parachain, or[Parachain(..)]to send from relay to parachain.beneficiary: A beneficiary location for the assets in the context ofdest. Will generally be anAccountId32value.assets: The assets to be withdrawn. This should include the assets used to pay the fee on thedestchain.fee_asset_item: The index intoassetsof the item which should be used to pay fees.
transferAssets(dest: XcmVersionedLocation, beneficiary: XcmVersionedLocation, assets: XcmVersionedAssets, fee_asset_item: u32, weight_limit: XcmV3WeightLimit)
interface:
api.tx.polkadotXcm.transferAssetssummary: Transfer some assets from the local chain to the destination chain through their local, destination or remote reserve, or through teleports.
Fee payment on the destination side is made from the asset in the
assetsvector of indexfee_asset_item(hence referred to asfees), up to enough to pay forweight_limitof weight. If more weight is needed thanweight_limit, then the operation will fail and the sent assets may be at risk.assets(excludingfees) must have same reserve location or otherwise be teleportable todest, no limitations imposed onfees.for local reserve: transfer assets to sovereign account of destination chain and forward a notification XCM to
destto mint and deposit reserve-based assets tobeneficiary.for destination reserve: burn local assets and forward a notification to
destchain to withdraw the reserve assets from this chain's sovereign account and deposit them tobeneficiary.for remote reserve: burn local assets, forward XCM to reserve chain to move reserves from this chain's SA to
destchain's SA, and forward another XCM todestto mint and deposit reserve-based assets tobeneficiary.for teleports: burn local assets and forward XCM to
destchain to mint/teleport assets and deposit them tobeneficiary.origin: Must be capable of withdrawing theassetsand executing XCM.dest: Destination context for the assets. Will typically beX2(Parent, Parachain(..))to send from parachain to parachain, orX1(Parachain(..))to send from relay to parachain.beneficiary: A beneficiary location for the assets in the context ofdest. Will generally be anAccountId32value.assets: The assets to be withdrawn. This should include the assets used to pay the fee on thedest(and possibly reserve) chains.fee_asset_item: The index intoassetsof the item which should be used to pay fees.weight_limit: The remote-side weight limit, if any, for the XCM fee purchase.
transferAssetsUsingTypeAndThen(dest: XcmVersionedLocation, assets: XcmVersionedAssets, assets_transfer_type: StagingXcmExecutorAssetTransferTransferType, remote_fees_id: XcmVersionedAssetId, fees_transfer_type: StagingXcmExecutorAssetTransferTransferType, custom_xcm_on_dest: XcmVersionedXcm, weight_limit: XcmV3WeightLimit)
interface:
api.tx.polkadotXcm.transferAssetsUsingTypeAndThensummary: Transfer assets from the local chain to the destination chain using explicit transfer types for assets and fees.
assetsmust have same reserve location or may be teleportable todest. Caller must provide theassets_transfer_typeto be used forassets:TransferType::LocalReserve: transfer assets to sovereign account of destination chain and forward a notification XCM todestto mint and deposit reserve-based assets tobeneficiary.TransferType::DestinationReserve: burn local assets and forward a notification todestchain to withdraw the reserve assets from this chain's sovereign account and deposit them tobeneficiary.TransferType::RemoteReserve(reserve): burn local assets, forward XCM toreservechain to move reserves from this chain's SA todestchain's SA, and forward another XCM todestto mint and deposit reserve-based assets tobeneficiary. Typically the remotereserveis Asset Hub.TransferType::Teleport: burn local assets and forward XCM todestchain to mint/teleport assets and deposit them tobeneficiary.On the destination chain, as well as any intermediary hops,
BuyExecutionis used to buy execution using transferredassetsidentified byremote_fees_id. Make sure enough of the specifiedremote_fees_idasset is included in the given list ofassets.remote_fees_idshould be enough to pay forweight_limit. If more weight is needed thanweight_limit, then the operation will fail and the sent assets may be at risk.remote_fees_idmay use different transfer type than rest ofassetsand can be specified throughfees_transfer_type.The caller needs to specify what should happen to the transferred assets once they reach the
destchain. This is done through thecustom_xcm_on_destparameter, which contains the instructions to execute ondestas a final step. This is usually as simple as:Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }]), but could be something more exotic like sending theassetseven further.origin: Must be capable of withdrawing theassetsand executing XCM.dest: Destination context for the assets. Will typically be[Parent, Parachain(..)]to send from parachain to parachain, or[Parachain(..)]to send from relay to parachain, or(parents: 2, (GlobalConsensus(..), ..))to send from parachain across a bridge to another ecosystem destination.assets: The assets to be withdrawn. This should include the assets used to pay the fee on thedest(and possibly reserve) chains.assets_transfer_type: The XCMTransferTypeused to transfer theassets.remote_fees_id: One of the includedassetsto be used to pay fees.fees_transfer_type: The XCMTransferTypeused to transfer thefeesassets.custom_xcm_on_dest: The XCM to be executed ondestchain as the last step of the transfer, which also determines what happens to the assets on the destination chain.weight_limit: The remote-side weight limit, if any, for the XCM fee purchase.
poolAssets
approveTransfer(id: u32, delegate: MultiAddress, amount: Compact<u128>)
interface:
api.tx.poolAssets.approveTransfersummary: Approve an amount of asset for transfer by a delegated third-party account.
Origin must be Signed.
Ensures that
ApprovalDepositworth ofCurrencyis reserved from signing account for the purpose of holding the approval. If some non-zero amount of assets is already approved from signing account todelegate, then it is topped up or unreserved to meet the right value.NOTE: The signing account does not need to own
amountof 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 bydelegate. If there is already an approval in place, then this acts additively.Emits
ApprovedTransferon success.Weight:
O(1)
block(id: u32, who: MultiAddress)
interface:
api.tx.poolAssets.blocksummary: Disallow further unprivileged transfers of an asset
idto and from an accountwho.Origin must be Signed and the sender should be the Freezer of the asset
id.id: The identifier of the account's asset.who: The account to be unblocked.Emits
Blocked.Weight:
O(1)
burn(id: u32, who: MultiAddress, amount: Compact<u128>)
interface:
api.tx.poolAssets.burnsummary: Reduce the balance of
whoby as much as possible up toamountassets ofid.Origin must be Signed and the sender should be the Manager of the asset
id.Bails with
NoAccountif thewhois 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 whichwho's balance should be reduced.Emits
Burnedwith 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 ofwho; Pre & post Zombie-status ofwho.
cancelApproval(id: u32, delegate: MultiAddress)
interface:
api.tx.poolAssets.cancelApprovalsummary: 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_transferfor the approval.id: The identifier of the asset.delegate: The account delegated permission to transfer asset.Emits
ApprovalCancelledon success.Weight:
O(1)
clearMetadata(id: u32)
interface:
api.tx.poolAssets.clearMetadatasummary: 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)
create(id: u32, admin: MultiAddress, min_balance: u128)
interface:
api.tx.poolAssets.createsummary: 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 conform to the configured
CreateOriginand 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. If [NextAssetId] is set, then this must be equal to it.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
Createdevent when successful.Weight:
O(1)
destroyAccounts(id: u32)
interface:
api.tx.poolAssets.destroyAccountssummary: Destroy all accounts associated with a given asset.
destroy_accountsshould only be called afterstart_destroyhas been called, and the asset is in aDestroyingstate.Due to weight restrictions, this function may need to be called multiple times to fully destroy all accounts. It will destroy
RemoveItemsLimitaccounts at a time.id: The identifier of the asset to be destroyed. This must identify an existing asset.Each call emits the
Event::DestroyedAccountsevent.
destroyApprovals(id: u32)
interface:
api.tx.poolAssets.destroyApprovalssummary: Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).
destroy_approvalsshould only be called afterstart_destroyhas been called, and the asset is in aDestroyingstate.Due to weight restrictions, this function may need to be called multiple times to fully destroy all approvals. It will destroy
RemoveItemsLimitapprovals at a time.id: The identifier of the asset to be destroyed. This must identify an existing asset.Each call emits the
Event::DestroyedApprovalsevent.
finishDestroy(id: u32)
interface:
api.tx.poolAssets.finishDestroysummary: Complete destroying asset and unreserve currency.
finish_destroyshould only be called afterstart_destroyhas been called, and the asset is in aDestroyingstate. All accounts or approvals should be destroyed before hand.id: The identifier of the asset to be destroyed. This must identify an existing asset.Each successful call emits the
Event::Destroyedevent.
forceAssetStatus(id: u32, owner: MultiAddress, issuer: MultiAddress, admin: MultiAddress, freezer: MultiAddress, min_balance: Compact<u128>, is_sufficient: bool, is_frozen: bool)
interface:
api.tx.poolAssets.forceAssetStatussummary: 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 totrue, then non-zero balances may be stored without aconsumerreference (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
AssetStatusChangedwith the identity of the asset.Weight:
O(1)
forceCancelApproval(id: u32, owner: MultiAddress, delegate: MultiAddress)
interface:
api.tx.poolAssets.forceCancelApprovalsummary: 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_transferfor the approval.id: The identifier of the asset.delegate: The account delegated permission to transfer asset.Emits
ApprovalCancelledon success.Weight:
O(1)
forceClearMetadata(id: u32)
interface:
api.tx.poolAssets.forceClearMetadatasummary: 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)
forceCreate(id: u32, owner: MultiAddress, is_sufficient: bool, min_balance: Compact<u128>)
interface:
api.tx.poolAssets.forceCreatesummary: 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. If [NextAssetId] is set, then this must be equal to it.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 usingtransfer_ownershipandset_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
ForceCreatedevent when successful.Weight:
O(1)
forceSetMetadata(id: u32, name: Bytes, symbol: Bytes, decimals: u8, is_frozen: bool)
interface:
api.tx.poolAssets.forceSetMetadatasummary: 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 byStringLimit.symbol: The exchange symbol for this asset. Limited in length byStringLimit.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.
forceTransfer(id: u32, source: MultiAddress, dest: MultiAddress, amount: Compact<u128>)
interface:
api.tx.poolAssets.forceTransfersummary: 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 thesource's balance of assets should be reduced anddest's balance increased. The amount actually transferred may be slightly greater in the case that the transfer would otherwise take thesourcebalance above zero but below the minimum balance. Must be greater than zero.Emits
Transferredwith 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 ofdest; Post-existence ofsource; Account pre-existence ofdest.
freeze(id: u32, who: MultiAddress)
interface:
api.tx.poolAssets.freezesummary: Disallow further unprivileged transfers of an asset
idfrom an accountwho.whomust already exist as an entry inAccounts of the asset. If you want to freeze an account that does not have an entry, usetouch_otherfirst.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)
freezeAsset(id: u32)
interface:
api.tx.poolAssets.freezeAssetsummary: 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)
mint(id: u32, beneficiary: MultiAddress, amount: Compact<u128>)
interface:
api.tx.poolAssets.mintsummary: 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
Issuedevent when successful.Weight:
O(1)Modes: Pre-existing balance ofbeneficiary; Account pre-existence ofbeneficiary.
refund(id: u32, allow_burn: bool)
interface:
api.tx.poolAssets.refundsummary: Return the deposit (if any) of an asset account or a consumer reference (if any) of an account.
The origin must be Signed.
id: The identifier of the asset for which the caller would like the deposit refunded.allow_burn: Iftruethen assets may be destroyed in order to complete the refund.It will fail with either [
Error::ContainsHolds] or [Error::ContainsFreezes] if the asset account contains holds or freezes in place.Emits
Refundedevent when successful.
refundOther(id: u32, who: MultiAddress)
interface:
api.tx.poolAssets.refundOthersummary: Return the deposit (if any) of a target asset account. Useful if you are the depositor.
The origin must be Signed and either the account owner, depositor, or asset
Admin. In order to burn a non-zero balance of the asset, the caller must be the account and should userefund.id: The identifier of the asset for the account holding a deposit.who: The account to refund.It will fail with either [
Error::ContainsHolds] or [Error::ContainsFreezes] if the asset account contains holds or freezes in place.Emits
Refundedevent when successful.
setMetadata(id: u32, name: Bytes, symbol: Bytes, decimals: u8)
interface:
api.tx.poolAssets.setMetadatasummary: 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 byStringLimit.symbol: The exchange symbol for this asset. Limited in length byStringLimit.decimals: The number of decimals this asset uses to represent one unit.Emits
MetadataSet.Weight:
O(1)
setMinBalance(id: u32, min_balance: u128)
interface:
api.tx.poolAssets.setMinBalancesummary: Sets the minimum balance of an asset.
Only works if there aren't any accounts that are holding the asset or if the new value of
min_balanceis less than the old one.Origin must be Signed and the sender has to be the Owner of the asset
id.id: The identifier of the asset.min_balance: The new value ofmin_balance.Emits
AssetMinBalanceChangedevent when successful.
setTeam(id: u32, issuer: MultiAddress, admin: MultiAddress, freezer: MultiAddress)
interface:
api.tx.poolAssets.setTeamsummary: 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)
startDestroy(id: u32)
interface:
api.tx.poolAssets.startDestroysummary: Start the process of destroying a fungible asset class.
start_destroyis the first in a series of extrinsics that should be called, to allow destruction of an asset class.The origin must conform to
ForceOriginor must beSignedby the asset'sowner.id: The identifier of the asset to be destroyed. This must identify an existing asset.It will fail with either [
Error::ContainsHolds] or [Error::ContainsFreezes] if an account contains holds or freezes in place.
thaw(id: u32, who: MultiAddress)
interface:
api.tx.poolAssets.thawsummary: Allow unprivileged transfers to and 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)
thawAsset(id: u32)
interface:
api.tx.poolAssets.thawAssetsummary: 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)
touch(id: u32)
interface:
api.tx.poolAssets.touchsummary: 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
Touchedevent when successful.
touchOther(id: u32, who: MultiAddress)
interface:
api.tx.poolAssets.touchOthersummary: Create an asset account for
who.A deposit will be taken from the signer account.
origin: Must be Signed byFreezerorAdminof the assetid; 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.who: The account to be created.Emits
Touchedevent when successful.
transfer(id: u32, target: MultiAddress, amount: Compact<u128>)
interface:
api.tx.poolAssets.transfersummary: 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 andtarget'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
Transferredwith 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 oftarget; Post-existence of sender; Account pre-existence oftarget.
transferAll(id: u32, dest: MultiAddress, keep_alive: bool)
interface:
api.tx.poolAssets.transferAllsummary: Transfer the entire transferable balance from the caller asset account.
NOTE: This function only attempts to transfer transferable balances. This means that any held, frozen, or minimum balance (when
keep_aliveistrue), 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.
id: The identifier of the asset for the account holding a deposit.dest: The recipient of the transfer.keep_alive: A boolean to determine if thetransfer_alloperation should send all of the funds the asset account has, causing the sender asset account to be killed (false), or transfer everything except at least the minimum balance, which will guarantee to keep the sender asset account alive (true).
transferApproved(id: u32, owner: MultiAddress, destination: MultiAddress, amount: Compact<u128>)
interface:
api.tx.poolAssets.transferApprovedsummary: 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
ownerto the signer.If the entire amount approved for transfer is transferred, then any deposit previously reserved by
approve_transferis unreserved.id: The identifier of the asset.owner: The account which previously approved for a transfer of at leastamountand from which the asset balance will be withdrawn.destination: The account to which the asset balance ofamountwill be transferred.amount: The amount of assets to transfer.Emits
TransferredApprovedon success.Weight:
O(1)
transferKeepAlive(id: u32, target: MultiAddress, amount: Compact<u128>)
interface:
api.tx.poolAssets.transferKeepAlivesummary: 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 andtarget'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
Transferredwith 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 oftarget; Post-existence of sender; Account pre-existence oftarget.
transferOwnership(id: u32, owner: MultiAddress)
interface:
api.tx.poolAssets.transferOwnershipsummary: 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)
preimage
ensureUpdated(hashes: Vec<H256>)
interface:
api.tx.preimage.ensureUpdatedsummary: Ensure that the bulk of pre-images is upgraded.
The caller pays no fee if at least 90% of pre-images were successfully updated.
notePreimage(bytes: Bytes)
interface:
api.tx.preimage.notePreimagesummary: Register a preimage on-chain.
If the preimage was previously requested, no fees or deposits are taken for providing the preimage. Otherwise, a deposit is taken proportional to the size of the preimage.
requestPreimage(hash: H256)
interface:
api.tx.preimage.requestPreimagesummary: Request a preimage be uploaded to the chain without paying any fees or deposits.
If the preimage requests has already been provided on-chain, we unreserve any deposit a user may have paid, and take the control of the preimage out of their hands.
unnotePreimage(hash: H256)
interface:
api.tx.preimage.unnotePreimagesummary: Clear an unrequested preimage from the runtime storage.
If
lenis provided, then it will be a much cheaper operation.hash: The hash of the preimage to be removed from the store.len: The length of the preimage ofhash.
unrequestPreimage(hash: H256)
interface:
api.tx.preimage.unrequestPreimagesummary: Clear a previously made request for a preimage.
NOTE: THIS MUST NOT BE CALLED ON
hashMORE TIMES THANrequest_preimage.
proxy
addProxy(delegate: MultiAddress, proxy_type: AssetHubKusamaRuntimeProxyType, delay: u32)
interface:
api.tx.proxy.addProxysummary: 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 thecallerwould 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.
announce(real: MultiAddress, call_hash: H256)
interface:
api.tx.proxy.announcesummary: 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
proxyis attempted if the delay associated with the proxy relationship is greater than zero.No more than
MaxPendingannouncements may be made at any one time.This will take a deposit of
AnnouncementDepositFactoras well asAnnouncementDepositBaseif 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 therealaccount.
createPure(proxy_type: AssetHubKusamaRuntimeProxyType, delay: u32, index: u16)
interface:
api.tx.proxy.createPuresummary: Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and initialize it with a proxy of
proxy_typefororiginsender.Requires a
Signedorigin.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 permissiveProxyTypepossible to allow for maximum flexibility.index: A disambiguation index, in case this is called multiple times in the same transaction (e.g. withutility::batch). Unless you're usingbatchyou probably just want to use0.delay: The announcement period required of the initial proxy. Will generally be zero.Fails with
Duplicateif 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.
killPure(spawner: MultiAddress, proxy_type: AssetHubKusamaRuntimeProxyType, index: u16, height: Compact<u32>, ext_index: Compact<u32>)
interface:
api.tx.proxy.killPuresummary: Removes a previously spawned pure proxy.
WARNING: All access to this account will be lost. Any funds held in it will be inaccessible.
Requires a
Signedorigin, and the sender account must have been created by a call tocreate_purewith corresponding parameters.spawner: The account that originally calledcreate_pureto create this account.index: The disambiguation index originally passed tocreate_pure. Probably0.proxy_type: The proxy type originally passed tocreate_pure.height: The height of the chain when the call tocreate_purewas processed.ext_index: The extrinsic index in which the call tocreate_purewas processed.Fails with
NoPermissionin case the caller is not a previously created pure account whosecreate_purecall has corresponding parameters.
pokeDeposit()
interface:
api.tx.proxy.pokeDepositsummary: Poke / Adjust deposits made for proxies and announcements based on current values. This can be used by accounts to possibly lower their locked amount.
The dispatch origin for this call must be Signed.
The transaction fee is waived if the deposit amount has changed.
Emits
DepositPokedif successful.
proxy(real: MultiAddress, force_proxy_type: Option<AssetHubKusamaRuntimeProxyType>, call: Call)
interface:
api.tx.proxy.proxysummary: Dispatch the given
callfrom an account that the sender is authorised for throughadd_proxy.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 therealaccount.
proxyAnnounced(delegate: MultiAddress, real: MultiAddress, force_proxy_type: Option<AssetHubKusamaRuntimeProxyType>, call: Call)
interface:
api.tx.proxy.proxyAnnouncedsummary: Dispatch the given
callfrom an account that the sender is authorized for throughadd_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 therealaccount.
rejectAnnouncement(delegate: MultiAddress, call_hash: H256)
interface:
api.tx.proxy.rejectAnnouncementsummary: 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.
removeAnnouncement(real: MultiAddress, call_hash: H256)
interface:
api.tx.proxy.removeAnnouncementsummary: 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 therealaccount.
removeProxies()
interface:
api.tx.proxy.removeProxiessummary: 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
create_pure, however if done, then the unreserved fees will be inaccessible. All access to this account will be lost.
removeProxy(delegate: MultiAddress, proxy_type: AssetHubKusamaRuntimeProxyType, delay: u32)
interface:
api.tx.proxy.removeProxysummary: Unregister a proxy account for the sender.
The dispatch origin for this call must be Signed.
Parameters:
proxy: The account that thecallerwould like to remove as a proxy.proxy_type: The permissions currently enabled for the removed proxy account.
recovery
asRecovered(account: MultiAddress, call: Call)
interface:
api.tx.recovery.asRecoveredsummary: Send a call through a recovered account.
The dispatch origin for this call must be Signed and registered to be able to make calls on behalf of the recovered account.
Parameters:
account: The recovered account you want to make a call on-behalf-of.call: The call you want to make with the recovered account.
cancelRecovered(account: MultiAddress)
interface:
api.tx.recovery.cancelRecoveredsummary: Cancel the ability to use
as_recoveredforaccount.The dispatch origin for this call must be Signed and registered to be able to make calls on behalf of the recovered account.
Parameters:
account: The recovered account you are able to call on-behalf-of.
claimRecovery(account: MultiAddress)
interface:
api.tx.recovery.claimRecoverysummary: Allow a successful rescuer to claim their recovered account.
The dispatch origin for this call must be Signed and must be a "rescuer" who has successfully completed the account recovery process: collected
thresholdor more vouches, waiteddelay_periodblocks since initiation.Parameters:
account: The lost account that you want to claim has been successfully recovered by you.
closeRecovery(rescuer: MultiAddress)
interface:
api.tx.recovery.closeRecoverysummary: As the controller of a recoverable account, close an active recovery process for your account.
Payment: By calling this function, the recoverable account will receive the recovery deposit
RecoveryDepositplaced by the rescuer.The dispatch origin for this call must be Signed and must be a recoverable account with an active recovery process for it.
Parameters:
rescuer: The account trying to rescue this recoverable account.
createRecovery(friends: Vec<AccountId32>, threshold: u16, delay_period: u32)
interface:
api.tx.recovery.createRecoverysummary: Create a recovery configuration for your account. This makes your account recoverable.
Payment:
ConfigDepositBase+FriendDepositFactor* #_of_friends balance will be reserved for storing the recovery configuration. This deposit is returned in full when the user callsremove_recovery.The dispatch origin for this call must be Signed.
Parameters:
friends: A list of friends you trust to vouch for recovery attempts. Should be ordered and contain no duplicate values.threshold: The number of friends that must vouch for a recovery attempt before the account can be recovered. Should be less than or equal to the length of the list of friends.delay_period: The number of blocks after a recovery attempt is initialized that needs to pass before the account can be recovered.
initiateRecovery(account: MultiAddress)
interface:
api.tx.recovery.initiateRecoverysummary: Initiate the process for recovering a recoverable account.
Payment:
RecoveryDepositbalance will be reserved for initiating the recovery process. This deposit will always be repatriated to the account trying to be recovered. Seeclose_recovery.The dispatch origin for this call must be Signed.
Parameters:
account: The lost account that you want to recover. This account needs to be recoverable (i.e. have a recovery configuration).
pokeDeposit(maybe_account: Option<MultiAddress>)
interface:
api.tx.recovery.pokeDepositsummary: Poke deposits for recovery configurations and / or active recoveries.
This can be used by accounts to possibly lower their locked amount.
The dispatch origin for this call must be Signed.
Parameters:
maybe_account: Optional recoverable account for which you have an active recovery and want to adjust the deposit for the active recovery.This function checks both recovery configuration deposit and active recovery deposits of the caller:
If the caller has created a recovery configuration, checks and adjusts its deposit
If the caller has initiated any active recoveries, and provides the account in
maybe_account, checks and adjusts those depositsIf any deposit is updated, the difference will be reserved/unreserved from the caller's account.
The transaction is made free if any deposit is updated and paid otherwise.
Emits
DepositPokedif any deposit is updated. Multiple events may be emitted in case both types of deposits are updated.
removeRecovery()
interface:
api.tx.recovery.removeRecoverysummary: Remove the recovery process for your account. Recovered accounts are still accessible.
NOTE: The user must make sure to call
close_recoveryon all active recovery attempts before calling this function else it will fail.Payment: By calling this function the recoverable account will unreserve their recovery configuration deposit. (
ConfigDepositBase+FriendDepositFactor* #_of_friends)The dispatch origin for this call must be Signed and must be a recoverable account (i.e. has a recovery configuration).
setRecovered(lost: MultiAddress, rescuer: MultiAddress)
interface:
api.tx.recovery.setRecoveredsummary: Allow ROOT to bypass the recovery process and set a rescuer account for a lost account directly.
The dispatch origin for this call must be ROOT.
Parameters:
lost: The "lost account" to be recovered.rescuer: The "rescuer account" which can call as the lost account.
vouchRecovery(lost: MultiAddress, rescuer: MultiAddress)
interface:
api.tx.recovery.vouchRecoverysummary: Allow a "friend" of a recoverable account to vouch for an active recovery process for that account.
The dispatch origin for this call must be Signed and must be a "friend" for the recoverable account.
Parameters:
lost: The lost account that you want to recover.rescuer: The account trying to rescue the lost account that you want to vouch for.The combination of these two parameters must point to an active recovery process.
referenda
cancel(index: u32)
interface:
api.tx.referenda.cancelsummary: Cancel an ongoing referendum.
origin: must be theCancelOrigin.index: The index of the referendum to be cancelled.Emits
Cancelled.
kill(index: u32)
interface:
api.tx.referenda.killsummary: Cancel an ongoing referendum and slash the deposits.
origin: must be theKillOrigin.index: The index of the referendum to be cancelled.Emits
KilledandDepositSlashed.
nudgeReferendum(index: u32)
interface:
api.tx.referenda.nudgeReferendumsummary: Advance a referendum onto its next logical state. Only used internally.
origin: must beRoot.index: the referendum to be advanced.
oneFewerDeciding(track: u16)
interface:
api.tx.referenda.oneFewerDecidingsummary: Advance a track onto its next logical state. Only used internally.
origin: must beRoot.track: the track to be advanced.Action item for when there is now one fewer referendum in the deciding phase and the
DecidingCountis not yet updated. This means that we should either:begin deciding another referendum (and leave
DecidingCountalone); ordecrement
DecidingCount.
placeDecisionDeposit(index: u32)
interface:
api.tx.referenda.placeDecisionDepositsummary: Post the Decision Deposit for a referendum.
origin: must beSignedand the account must have funds available for the referendum's track's Decision Deposit.index: The index of the submitted referendum whose Decision Deposit is yet to be posted.Emits
DecisionDepositPlaced.
refundDecisionDeposit(index: u32)
interface:
api.tx.referenda.refundDecisionDepositsummary: Refund the Decision Deposit for a closed referendum back to the depositor.
origin: must beSignedorRoot.index: The index of a closed referendum whose Decision Deposit has not yet been refunded.Emits
DecisionDepositRefunded.
refundSubmissionDeposit(index: u32)
interface:
api.tx.referenda.refundSubmissionDepositsummary: Refund the Submission Deposit for a closed referendum back to the depositor.
origin: must beSignedorRoot.index: The index of a closed referendum whose Submission Deposit has not yet been refunded.Emits
SubmissionDepositRefunded.
setMetadata(index: u32, maybe_hash: Option<H256>)
interface:
api.tx.referenda.setMetadatasummary: Set or clear metadata of a referendum.
Parameters:
origin: Must beSignedby a creator of a referendum or by anyone to clear a metadata of a finished referendum.index: The index of a referendum to set or clear metadata for.maybe_hash: The hash of an on-chain stored preimage.Noneto clear a metadata.
submit(proposal_origin: AssetHubKusamaRuntimeOriginCaller, proposal: FrameSupportPreimagesBounded, enactment_moment: FrameSupportScheduleDispatchTime)
interface:
api.tx.referenda.submitsummary: Propose a referendum on a privileged action.
origin: must beSubmitOriginand the account must haveSubmissionDepositfunds available.proposal_origin: The origin from which the proposal should be executed.proposal: The proposal.enactment_moment: The moment that the proposal should be enacted.Emits
Submitted.
remoteProxyRelayChain
registerRemoteProxyProof(proof: PalletRemoteProxyRemoteProxyProof)
interface:
api.tx.remoteProxyRelayChain.registerRemoteProxyProofsummary: Register a given remote proxy proof in the current [
dispatch_context].The registered remote proof can then be used later in the same context to execute a remote proxy call. This is for example useful when having a multisig operation. The multisig call can use [
Self::remote_proxy_with_registered_proof] to get an approval by the members of the multisig. The final execution of the multisig call should be at least a batch ofregister_remote_proxy_proofand the multisig call that usesremote_proxy_with_registered_proof. This way the final approver can use a recent proof to prove the existence of the remote proxy. Otherwise it would require the multisig members to approve the call in [Config::MaxStorageRootsToKeep] amount of time.It is supported to register multiple proofs, but the proofs need to be consumed in the reverse order as they were registered. Basically this means last in, first out.
The [
dispatch_context] spans the entire lifetime of a transaction and every call in the transaction gets access to the same context.Example
ignore batch([ register_remote_proxy_proof, as_multisig(remote_proxy_with_registered_proof(transfer)) ])As
proofscan not be verified indefinitely (the time the storage roots are stored is limited) this function provides the possibility to provide a "fresh proof" at time of dispatch. As in the example above, this could be useful for multisig operation that depend on multiple members to approve a certain action, which can take multiple days.
remoteProxy(real: MultiAddress, force_proxy_type: Option<AssetHubKusamaRuntimeProxyType>, call: Call, proof: PalletRemoteProxyRemoteProxyProof)
interface:
api.tx.remoteProxyRelayChain.remoteProxysummary: Dispatch the given
callfrom an account that the sender is authorised on a remote chain.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 therealaccount.proof: The proof from the remote chain about the existence of the proxy.
remoteProxyWithRegisteredProof(real: MultiAddress, force_proxy_type: Option<AssetHubKusamaRuntimeProxyType>, call: Call)
interface:
api.tx.remoteProxyRelayChain.remoteProxyWithRegisteredProofsummary: Dispatch the given
callfrom an account that the sender is authorised on a remote chain.The dispatch origin for this call must be Signed. The difference to [
Self::remote_proxy] is that the proof nees to registered before using [Self::register_remote_proxy_proof] (see for more information).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 therealaccount.
revive
call(dest: H160, value: Compact<u128>, gas_limit: SpWeightsWeightV2Weight, storage_deposit_limit: Compact<u128>, data: Bytes)
interface:
api.tx.revive.callsummary: Makes a call to an account, optionally transferring some balance.
Parameters
dest: Address of the contract to call.value: The balance to transfer from theorigintodest.gas_limit: The gas limit enforced when executing the constructor.storage_deposit_limit: The maximum amount of balance that can be charged from the caller to pay for the storage consumed.data: The input data to pass to the contract.If the account is a smart-contract account, the associated code will be executed and any value will be transferred.
If the account is a regular account, any value will be transferred.
If no account exists and the call value is not less than
existential_deposit, a regular account will be created and any value will be transferred.
dispatchAsFallbackAccount(call: Call)
interface:
api.tx.revive.dispatchAsFallbackAccountsummary: Dispatch an
callwith the origin set to the callers fallback address.Every
AccountId32can control its corresponding fallback account. The fallback account is theAccountId20with the last 12 bytes set to0xEE. This is essentially a recovery function in case anAccountId20was used without creating a mapping first.
ethCall(dest: H160, value: U256, gas_limit: SpWeightsWeightV2Weight, storage_deposit_limit: Compact<u128>, data: Bytes)
- interface:
api.tx.revive.ethCall - summary: Same as [
Self::call], but intended to be dispatched only by an EVM transaction through the EVM compatibility layer.
ethInstantiateWithCode(value: U256, gas_limit: SpWeightsWeightV2Weight, storage_deposit_limit: Compact<u128>, code: Bytes, data: Bytes)
interface:
api.tx.revive.ethInstantiateWithCodesummary: Same as [
Self::instantiate_with_code], but intended to be dispatched only by an EVM transaction through the EVM compatibility layer.Calling this dispatchable ensures that the origin's nonce is bumped only once, via the
CheckNoncetransaction extension. In contrast, [Self::instantiate_with_code] also bumps the nonce after contract instantiation, since it may be invoked multiple times within a batch call transaction.
ethTransact(payload: Bytes)
interface:
api.tx.revive.ethTransactsummary: A raw EVM transaction, typically dispatched by an Ethereum JSON-RPC server.
Parameters
payload: The encoded [crate::evm::TransactionSigned].gas_limit: The gas limit enforced during contract execution.storage_deposit_limit: The maximum balance that can be charged to the caller for storage usage.Note
This call cannot be dispatched directly; attempting to do so will result in a failed transaction. It serves as a wrapper for an Ethereum transaction. When submitted, the runtime converts it into a [
sp_runtime::generic::CheckedExtrinsic] by recovering the signer and validating the transaction.
instantiate(value: Compact<u128>, gas_limit: SpWeightsWeightV2Weight, storage_deposit_limit: Compact<u128>, code_hash: H256, data: Bytes, salt: Option<[u8;32]>)
interface:
api.tx.revive.instantiatesummary: Instantiates a contract from a previously deployed vm binary.
This function is identical to [
Self::instantiate_with_code] but without the code deployment step. Instead, thecode_hashof an on-chain deployed vm binary must be supplied.
instantiateWithCode(value: Compact<u128>, gas_limit: SpWeightsWeightV2Weight, storage_deposit_limit: Compact<u128>, code: Bytes, data: Bytes, salt: Option<[u8;32]>)
interface:
api.tx.revive.instantiateWithCodesummary: Instantiates a new contract from the supplied
codeoptionally transferring some balance.This dispatchable has the same effect as calling [
Self::upload_code] + [Self::instantiate]. Bundling them together provides efficiency gains. Please also check the documentation of [Self::upload_code].Parameters
value: The balance to transfer from theoriginto the newly created contract.gas_limit: The gas limit enforced when executing the constructor.storage_deposit_limit: The maximum amount of balance that can be charged/reserved from the caller to pay for the storage consumed.code: The contract code to deploy in raw bytes.data: The input data to pass to the contract constructor.salt: Used for the address derivation. IfSomeis supplied thenCREATE2semantics are used. IfNonethenCRATE1is used.
Instantiation is executed as follows:
The supplied
codeis deployed, and acode_hashis created for that code.If the
code_hashalready exists on the chain the underlyingcodewill be shared.The destination address is computed based on the sender, code_hash and the salt.
The smart-contract account is created at the computed address.
The
valueis transferred to the new account.The
deployfunction is executed in the context of the newly-created account.
mapAccount()
interface:
api.tx.revive.mapAccountsummary: Register the callers account id so that it can be used in contract interactions.
This will error if the origin is already mapped or is a eth native
Address20. It will take a deposit that can be released by calling [Self::unmap_account].
removeCode(code_hash: H256)
interface:
api.tx.revive.removeCodesummary: Remove the code stored under
code_hashand refund the deposit to its owner.A code can only be removed by its original uploader (its owner) and only if it is not used by any contract.
setCode(dest: H160, code_hash: H256)
interface:
api.tx.revive.setCodesummary: Privileged function that changes the code of an existing contract.
This takes care of updating refcounts and all other necessary operations. Returns an error if either the
code_hashordestdo not exist.Note
This does not change the address of the contract in question. This means that the contract address is no longer derived from its code hash after calling this dispatchable.
unmapAccount()
interface:
api.tx.revive.unmapAccountsummary: Unregister the callers account id in order to free the deposit.
There is no reason to ever call this function other than freeing up the deposit. This is only useful when the account should no longer be used.
uploadCode(code: Bytes, storage_deposit_limit: Compact<u128>)
interface:
api.tx.revive.uploadCodesummary: Upload new
codewithout instantiating a contract from it.If the code does not already exist a deposit is reserved from the caller and unreserved only when [
Self::remove_code] is called. The size of the reserve depends on the size of the suppliedcode.Note
Anyone can instantiate a contract from any uploaded code and thus prevent its removal. To avoid this situation a constructor could employ access control so that it can only be instantiated by permissioned entities. The same is true when uploading through [
Self::instantiate_with_code].
scheduler
cancel(when: u32, index: u32)
- interface:
api.tx.scheduler.cancel - summary: Cancel an anonymously scheduled task.
cancelNamed(id: [u8;32])
- interface:
api.tx.scheduler.cancelNamed - summary: Cancel a named scheduled task.
cancelRetry(task: (u32,u32))
- interface:
api.tx.scheduler.cancelRetry - summary: Removes the retry configuration of a task.
cancelRetryNamed(id: [u8;32])
- interface:
api.tx.scheduler.cancelRetryNamed - summary: Cancel the retry configuration of a named task.
schedule(when: u32, maybe_periodic: Option<(u32,u32)>, priority: u8, call: Call)
- interface:
api.tx.scheduler.schedule - summary: Anonymously schedule a task.
scheduleAfter(after: u32, maybe_periodic: Option<(u32,u32)>, priority: u8, call: Call)
- interface:
api.tx.scheduler.scheduleAfter - summary: Anonymously schedule a task after a delay.
scheduleNamed(id: [u8;32], when: u32, maybe_periodic: Option<(u32,u32)>, priority: u8, call: Call)
- interface:
api.tx.scheduler.scheduleNamed - summary: Schedule a named task.
scheduleNamedAfter(id: [u8;32], after: u32, maybe_periodic: Option<(u32,u32)>, priority: u8, call: Call)
- interface:
api.tx.scheduler.scheduleNamedAfter - summary: Schedule a named task after a delay.
setRetry(task: (u32,u32), retries: u8, period: u32)
interface:
api.tx.scheduler.setRetrysummary: Set a retry configuration for a task so that, in case its scheduled run fails, it will be retried after
periodblocks, for a total amount ofretriesretries or until it succeeds.Tasks which need to be scheduled for a retry are still subject to weight metering and agenda space, same as a regular task. If a periodic task fails, it will be scheduled normally while the task is retrying.
Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic clones of the original task. Their retry configuration will be derived from the original task's configuration, but will have a lower value for
remainingthan the originaltotal_retries.
setRetryNamed(id: [u8;32], retries: u8, period: u32)
interface:
api.tx.scheduler.setRetryNamedsummary: Set a retry configuration for a named task so that, in case its scheduled run fails, it will be retried after
periodblocks, for a total amount ofretriesretries or until it succeeds.Tasks which need to be scheduled for a retry are still subject to weight metering and agenda space, same as a regular task. If a periodic task fails, it will be scheduled normally while the task is retrying.
Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic clones of the original task. Their retry configuration will be derived from the original task's configuration, but will have a lower value for
remainingthan the originaltotal_retries.
session
purgeKeys()
interface:
api.tx.session.purgeKeyssummary: Removes any session key(s) of the function caller.
This doesn't take effect until the next session.
The dispatch origin of this function must be Signed and the account must be either be convertible to a validator ID using the chain's typical addressing system (this usually means being a controller account) or directly convertible into a validator ID (which usually means being a stash account).
Complexity
O(1)in number of key types. Actual cost depends on the number of length ofT::Keys::key_ids()which is fixed.
setKeys(keys: AssetHubKusamaRuntimeSessionKeys, proof: Bytes)
interface:
api.tx.session.setKeyssummary: Sets the session key(s) of the function caller to
keys. Allows an account to set its session key prior to becoming a validator. This doesn't take effect until the next session.The dispatch origin of this function must be signed.
Complexity
O(1). Actual cost depends on the number of length ofT::Keys::key_ids()which is fixed.
society
bestowMembership(candidate: AccountId32)
- interface:
api.tx.society.bestowMembership - summary: Transform an approved candidate into a member. Callable only by the Signed origin of the Founder, only after the period for voting has ended and only when the candidate is not clearly rejected.
bid(value: u128)
interface:
api.tx.society.bidsummary: A user outside of the society can make a bid for entry.
Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned when the bid becomes a member, or if the bid calls
unbid.The dispatch origin for this call must be Signed.
Parameters:
value: A one time payment the bid would like to receive when joining the society.
claimMembership()
- interface:
api.tx.society.claimMembership - summary: Transform an approved candidate into a member. Callable only by the the candidate, and only after the period for voting has ended.
cleanupCandidacy(candidate: AccountId32, max: u32)
interface:
api.tx.society.cleanupCandidacysummary: Remove up to
maxstale votes for the givencandidate.May be called by any Signed origin, but only after the candidate's candidacy is ended.
cleanupChallenge(challenge_round: u32, max: u32)
interface:
api.tx.society.cleanupChallengesummary: Remove up to
maxstale votes for the defender in the givenchallenge_round.May be called by any Signed origin, but only after the challenge round is ended.
defenderVote(approve: bool)
interface:
api.tx.society.defenderVotesummary: As a member, vote on the defender.
The dispatch origin for this call must be Signed and a member.
Parameters:
approve: A boolean which says if the candidate should be approved (true) or rejected (false).
dissolve()
interface:
api.tx.society.dissolvesummary: Dissolve the society and remove all members.
The dispatch origin for this call must be Signed, and the signing account must be both the
Founderand theHead. This implies that it may only be done when there is one member.
dropCandidate(candidate: AccountId32)
interface:
api.tx.society.dropCandidatesummary: Remove a
candidate's failed application from the society. Callable by any signed origin but only at the end of the subsequent round and only for a candidate with more rejections than approvals.The bid deposit is lost and the voucher is banned.
foundSociety(founder: MultiAddress, max_members: u32, max_intake: u32, max_strikes: u32, candidate_deposit: u128, rules: Bytes)
interface:
api.tx.society.foundSocietysummary: Found the society.
This is done as a discrete action in order to allow for the pallet to be included into a running chain and can only be done once.
The dispatch origin for this call must be from the FounderSetOrigin.
Parameters:
founder- The first member and head of the newly founded society.max_members- The initial max number of members for the society.max_intake- The maximum number of candidates per intake period.max_strikes: The maximum number of strikes a member may get before they become suspended and may only be reinstated by the founder.candidate_deposit: The deposit required to make a bid for membership of the group.rules- The rules of this society concerning membership.Complexity: O(1)
judgeSuspendedMember(who: MultiAddress, forgive: bool)
interface:
api.tx.society.judgeSuspendedMembersummary: Allow suspension judgement origin to make judgement on a suspended member.
If a suspended member is forgiven, we simply add them back as a member, not affecting any of the existing storage items for that member.
If a suspended member is rejected, remove all associated storage items, including their payouts, and remove any vouched bids they currently have.
The dispatch origin for this call must be Signed from the Founder.
Parameters:
who- The suspended member to be judged.forgive- A boolean representing whether the suspension judgement origin forgives (true) or rejects (false) a suspended member.
kickCandidate(candidate: AccountId32)
interface:
api.tx.society.kickCandidatesummary: Remove the candidate's application from the society. Callable only by the Signed origin of the Founder, only after the period for voting has ended, and only when they do not have a clear approval.
Any bid deposit is lost and voucher is banned.
payout()
interface:
api.tx.society.payoutsummary: Transfer the first matured payout for the sender and remove it from the records.
NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.
Payment: The member will receive a payment equal to their first matured payout to their free balance.
The dispatch origin for this call must be Signed and a member with payouts remaining.
pokeDeposit()
interface:
api.tx.society.pokeDepositsummary: Poke the deposit reserved when bidding.
The dispatch origin for this call must be Signed and must be the bidder.
The transaction fee is waived if the deposit is changed after poking/reconsideration.
Emits
DepositPokedif successful.
punishSkeptic()
- interface:
api.tx.society.punishSkeptic - summary: Punish the skeptic with a strike if they did not vote on a candidate. Callable by the candidate.
resignCandidacy()
interface:
api.tx.society.resignCandidacysummary: Remove the candidate's application from the society. Callable only by the candidate.
Any bid deposit is lost and voucher is banned.
setParameters(max_members: u32, max_intake: u32, max_strikes: u32, candidate_deposit: u128)
interface:
api.tx.society.setParameterssummary: Change the maximum number of members in society and the maximum number of new candidates in a single intake period.
The dispatch origin for this call must be Signed by the Founder.
Parameters:
max_members- The maximum number of members for the society. This must be no less than the current number of members.max_intake- The maximum number of candidates per intake period.max_strikes: The maximum number of strikes a member may get before they become suspended and may only be reinstated by the founder.candidate_deposit: The deposit required to make a bid for membership of the group.
unbid()
interface:
api.tx.society.unbidsummary: A bidder can remove their bid for entry into society. By doing so, they will have their candidate deposit returned or they will unvouch their voucher.
Payment: The bid deposit is unreserved if the user made a bid.
The dispatch origin for this call must be Signed and a bidder.
unvouch()
interface:
api.tx.society.unvouchsummary: As a vouching member, unvouch a bid. This only works while vouched user is only a bidder (and not a candidate).
The dispatch origin for this call must be Signed and a vouching member.
Parameters:
pos: Position in theBidsvector of the bid who should be unvouched.
vote(candidate: MultiAddress, approve: bool)
interface:
api.tx.society.votesummary: As a member, vote on a candidate.
The dispatch origin for this call must be Signed and a member.
Parameters:
candidate: The candidate that the member would like to bid on.approve: A boolean which says if the candidate should be approved (true) or rejected (false).
vouch(who: MultiAddress, value: u128, tip: u128)
interface:
api.tx.society.vouchsummary: As a member, vouch for someone to join society by placing a bid on their behalf.
There is no deposit required to vouch for a new bid, but a member can only vouch for one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by the suspension judgement origin, the member will be banned from vouching again.
As a vouching member, you can claim a tip if the candidate is accepted. This tip will be paid as a portion of the reward the member will receive for joining the society.
The dispatch origin for this call must be Signed and a member.
Parameters:
who: The user who you would like to vouch for.value: The total reward to be paid between you and the candidate if they become a member in the society.tip: Your cut of the totalvaluepayout when the candidate is inducted into the society. Tips larger thanvaluewill be saturated upon payout.
waiveRepay(amount: u128)
- interface:
api.tx.society.waiveRepay - summary: Repay the payment previously given to the member with the signed origin, remove any pending payments, and elevate them from rank 0 to rank 1.
staking
applySlash(slash_era: u32, slash_key: (AccountId32,Perbill,u32))
interface:
api.tx.staking.applySlashsummary: Manually and permissionlessly applies a deferred slash for a given era.
Normally, slashes are automatically applied shortly after the start of the
slash_era. The automatic application of slashes is handled by the pallet's internal logic, and it tries to apply one slash page per block of the era. If for some reason, one era is not enough for applying all slash pages, the remaining slashes need to be manually (permissionlessly) applied.For a given era x, if at era x+1, slashes are still unapplied, all withdrawals get blocked, and these need to be manually applied by calling this function. This function exists as a fallback mechanism for this extreme situation, but we never expect to encounter this in normal scenarios.
The parameters for this call can be queried by looking at the
UnappliedSlashesstorage for eras older than the active era.Parameters
slash_era: The staking era in which the slash was originally scheduled.slash_key: A unique identifier for the slash, represented as a tuple:stash: The stash account of the validator being slashed.slash_fraction: The fraction of the stake that was slashed.page_index: The index of the exposure page being processed.Behavior
The function is permissionless—anyone can call it.
The
slash_eramust be the current era or a past era. If it is in the future, the call fails withEraNotStarted.The fee is waived if the slash is successfully applied.
Future Improvement
Implement an off-chain worker (OCW) task to automatically apply slashes when there is unused block space, improving efficiency.
bond(value: Compact<u128>, payee: PalletStakingAsyncRewardDestination)
interface:
api.tx.staking.bondsummary: Take the origin account as a stash and lock up
valueof its balance.controllerwill be the account that controls it.valuemust be more than theminimum_balancespecified byT::Currency.The dispatch origin for this call must be Signed by the stash account.
Emits
Bonded.NOTE: Two of the storage writes (
Self::bonded,Self::payee) are never cleaned unless theoriginfalls below existential deposit (or equal to 0) and gets removed as dust.
bondExtra(max_additional: Compact<u128>)
interface:
api.tx.staking.bondExtrasummary: Add some extra amount that have appeared in the stash
free_balanceinto the balance up for staking.The dispatch origin for this call must be Signed by the stash, not the controller.
Use this if there are additional funds in your stash account that you wish to bond. Unlike
bondorunbondthis function does not impose any limitation on the amount that can be added.Emits
Bonded.
cancelDeferredSlash(era: u32, validator_slashes: Vec<(AccountId32,Perbill)>)
interface:
api.tx.staking.cancelDeferredSlashsummary: Cancels scheduled slashes for a given era before they are applied.
This function allows
T::AdminOriginto cancel pending slashes for specified validators in a given era. The cancelled slashes are stored and will be checked when applying slashes.Parameters
era: The staking era for which slashes should be cancelled. This is the era where the slash would be applied, not the era in which the offence was committed.validator_slashes: A list of validator stash accounts and their slash fractions to be cancelled.
chill()
interface:
api.tx.staking.chillsummary: Declare no desire to either validate or nominate.
Effects will be felt at the beginning of the next era.
The dispatch origin for this call must be Signed by the controller, not the stash.
Complexity
Independent of the arguments. Insignificant complexity.
Contains one read.
Writes are limited to the
originaccount key.
chillOther(stash: AccountId32)
interface:
api.tx.staking.chillOthersummary: Declare a
controllerto stop participating as either a validator or nominator.Effects will be felt at the beginning of the next era.
The dispatch origin for this call must be Signed, but can be called by anyone.
If the caller is the same as the controller being targeted, then no further checks are enforced, and this function behaves just like
chill.If the caller is different than the controller being targeted, the following conditions must be met:
controllermust belong to a nominator who has become non-decodable,Or:
A
ChillThresholdmust be set and checked which defines how close to the max nominators or validators we must reach before users can start chilling one-another.A
MaxNominatorCountandMaxValidatorCountmust be set which is used to determine how close we are to the threshold.A
MinNominatorBondandMinValidatorBondmust be set and checked, which determines if this is a person that should be chilled because they have not met the threshold bond required.This can be helpful if bond requirements are updated, and we need to remove old users who do not satisfy these requirements.
deprecateControllerBatch(controllers: Vec<AccountId32>)
interface:
api.tx.staking.deprecateControllerBatchsummary: Updates a batch of controller accounts to their corresponding stash account if they are not the same. Ignores any controller accounts that do not exist, and does not operate if the stash and controller are already the same.
Effects will be felt instantly (as soon as this function is completed successfully).
The dispatch origin must be
T::AdminOrigin.
forceApplyMinCommission(validator_stash: AccountId32)
- interface:
api.tx.staking.forceApplyMinCommission - summary: Force a validator to have at least the minimum commission. This will not affect a validator who already has a commission greater than or equal to the minimum. Any account can call this.
forceNewEra()
interface:
api.tx.staking.forceNewErasummary: Force there to be a new era at the end of the next session. After this, it will be reset to normal (non-forced) behaviour.
The dispatch origin must be Root.
Warning
The election process starts multiple blocks before the end of the era. If this is called just before a new era is triggered, the election process may not have enough blocks to get a result.
forceNewEraAlways()
interface:
api.tx.staking.forceNewEraAlwayssummary: Force there to be a new era at the end of sessions indefinitely.
The dispatch origin must be Root.
Warning
The election process starts multiple blocks before the end of the era. If this is called just before a new era is triggered, the election process may not have enough blocks to get a result.
forceNoEras()
interface:
api.tx.staking.forceNoErassummary: Force there to be no new eras indefinitely.
The dispatch origin must be Root.
Warning
The election process starts multiple blocks before the end of the era. Thus the election process may be ongoing when this is called. In this case the election will continue until the next era is triggered.
forceUnstake(stash: AccountId32, num_slashing_spans: u32)
interface:
api.tx.staking.forceUnstakesummary: Force a current staker to become completely unstaked, immediately.
The dispatch origin must be Root. #### Parameters
stash: The stash account to be unstaked.num_slashing_spans: Deprecated. This parameter is retained for backward compatibility. It no longer has any effect.
increaseValidatorCount(additional: Compact<u32>)
interface:
api.tx.staking.increaseValidatorCountsummary: Increments the ideal number of validators up to maximum of
T::MaxValidatorSet.The dispatch origin must be Root.
kick(who: Vec<MultiAddress>)
interface:
api.tx.staking.kicksummary: Remove the given nominations from the calling validator.
Effects will be felt at the beginning of the next era.
The dispatch origin for this call must be Signed by the controller, not the stash.
who: A list of nominator stash accounts who are nominating this validator which should no longer be nominating this validator.Note: Making this call only makes sense if you first set the validator preferences to block any further nominations.
migrateCurrency(stash: AccountId32)
interface:
api.tx.staking.migrateCurrencysummary: Migrates permissionlessly a stash from locks to holds.
This removes the old lock on the stake and creates a hold on it atomically. If all stake cannot be held, the best effort is made to hold as much as possible. The remaining stake is removed from the ledger.
The fee is waived if the migration is successful.
nominate(targets: Vec<MultiAddress>)
interface:
api.tx.staking.nominatesummary: Declare the desire to nominate
targetsfor the origin controller.Effects will be felt at the beginning of the next era.
The dispatch origin for this call must be Signed by the controller, not the stash.
payoutStakers(validator_stash: AccountId32, era: u32)
interface:
api.tx.staking.payoutStakerssummary: Pay out next page of the stakers behind a validator for the given era.
validator_stashis the stash account of the validator.eramay be any era between[current_era - history_depth; current_era].The origin of this call must be Signed. Any account can call this function, even if it is not one of the stakers.
The reward payout could be paged in case there are too many nominators backing the
validator_stash. This call will payout unpaid pages in an ascending order. To claim a specific page, usepayout_stakers_by_page.`If all pages are claimed, it returns an error
InvalidPage.
payoutStakersByPage(validator_stash: AccountId32, era: u32, page: u32)
interface:
api.tx.staking.payoutStakersByPagesummary: Pay out a page of the stakers behind a validator for the given era and page.
validator_stashis the stash account of the validator.eramay be any era between[current_era - history_depth; current_era].pageis the page index of nominators to pay out with value between 0 andnum_nominators / T::MaxExposurePageSize.The origin of this call must be Signed. Any account can call this function, even if it is not one of the stakers.
If a validator has more than [
Config::MaxExposurePageSize] nominators backing them, then the list of nominators is paged, with each page being capped at [Config::MaxExposurePageSize.] If a validator has more than one page of nominators, the call needs to be made for each page separately in order for all the nominators backing a validator to receive the reward. The nominators are not sorted across pages and so it should not be assumed the highest staker would be on the topmost page and vice versa. If rewards are not claimed in [Config::HistoryDepth] eras, they are lost.
pruneEraStep(era: u32)
interface:
api.tx.staking.pruneEraStepsummary: Perform one step of era pruning to prevent PoV size exhaustion from unbounded deletions.
This extrinsic enables permissionless lazy pruning of era data by performing incremental deletion of storage items. Each call processes a limited number of items based on available block weight to avoid exceeding block limits.
Returns
Pays::Nowhen work is performed to incentivize regular maintenance. Anyone can call this to help maintain the chain's storage health.The era must be eligible for pruning (older than HistoryDepth + 1). Check
EraPruningStatestorage to see if an era needs pruning before calling.
reapStash(stash: AccountId32, num_slashing_spans: u32)
interface:
api.tx.staking.reapStashsummary: Remove all data structures concerning a staker/stash once it is at a state where it can be considered
dustin the staking system. The requirements are:the
total_balanceof the stash is belowmin_chilled_bondor is zero. 2. or, theledger.totalof the stash is belowmin_chilled_bondor is zero.The former can happen in cases like a slash; the latter when a fully unbonded account is still receiving staking rewards in
RewardDestination::Staked.It can be called by anyone, as long as
stashmeets the above requirements.Refunds the transaction fees upon successful execution.
Parameters
stash: The stash account to be reaped.num_slashing_spans: Deprecated. This parameter is retained for backward compatibility. It no longer has any effect.
rebond(value: Compact<u128>)
interface:
api.tx.staking.rebondsummary: Rebond a portion of the stash scheduled to be unlocked.
The dispatch origin must be signed by the controller.
restoreLedger(stash: AccountId32, maybe_controller: Option<AccountId32>, maybe_total: Option<u128>, maybe_unlocking: Option<Vec<PalletStakingAsyncLedgerUnlockChunk>>)
interface:
api.tx.staking.restoreLedgersummary: Restores the state of a ledger which is in an inconsistent state.
The requirements to restore a ledger are the following:
The stash is bonded; or
The stash is not bonded but it has a staking lock left behind; or
If the stash has an associated ledger and its state is inconsistent; or
If the ledger is not corrupted but its staking lock is out of sync.
The
maybe_*input parameters will overwrite the corresponding data and metadata of the ledger associated with the stash. If the input parameters are not set, the ledger will be reset values from on-chain state.
scaleValidatorCount(factor: Percent)
interface:
api.tx.staking.scaleValidatorCountsummary: Scale up the ideal number of validators by a factor up to maximum of
T::MaxValidatorSet.The dispatch origin must be Root.
setController()
interface:
api.tx.staking.setControllersummary: (Re-)sets the controller of a stash to the stash itself. This function previously accepted a
controllerargument to set the controller to an account other than the stash itself. This functionality has now been removed, now only setting the controller to the stash, if it is not already.Effects will be felt instantly (as soon as this function is completed successfully).
The dispatch origin for this call must be Signed by the stash, not the controller.
setInvulnerables(invulnerables: Vec<AccountId32>)
interface:
api.tx.staking.setInvulnerablessummary: Set the validators who cannot be slashed (if any).
The dispatch origin must be Root.
setMinCommission(new: Perbill)
interface:
api.tx.staking.setMinCommissionsummary: Sets the minimum amount of commission that each validators must maintain.
This call has lower privilege requirements than
set_staking_configand can be called by theT::AdminOrigin. Root can always call this.
setPayee(payee: PalletStakingAsyncRewardDestination)
interface:
api.tx.staking.setPayeesummary: (Re-)set the payment target for a controller.
Effects will be felt instantly (as soon as this function is completed successfully).
The dispatch origin for this call must be Signed by the controller, not the stash.
setStakingConfigs(min_nominator_bond: PalletStakingAsyncPalletConfigOpU128, min_validator_bond: PalletStakingAsyncPalletConfigOpU128, max_nominator_count: PalletStakingAsyncPalletConfigOpU32, max_validator_count: PalletStakingAsyncPalletConfigOpU32, chill_threshold: PalletStakingAsyncPalletConfigOpPercent, min_commission: PalletStakingAsyncPalletConfigOpPerbill, max_staked_rewards: PalletStakingAsyncPalletConfigOpPercent)
interface:
api.tx.staking.setStakingConfigssummary: Update the various staking configurations .
min_nominator_bond: The minimum active bond needed to be a nominator.min_validator_bond: The minimum active bond needed to be a validator.max_nominator_count: The max number of users who can be a nominator at once. When set toNone, no limit is enforced.max_validator_count: The max number of users who can be a validator at once. When set toNone, no limit is enforced.chill_threshold: The ratio ofmax_nominator_countormax_validator_countwhich should be filled in order for thechill_othertransaction to work.min_commission: The minimum amount of commission that each validators must maintain. This is checked only upon callingvalidate. Existing validators are not affected.RuntimeOrigin must be Root to call this function.
NOTE: Existing nominators and validators will not be affected by this update. to kick people under the new limits,
chill_othershould be called.
setValidatorCount(new: Compact<u32>)
interface:
api.tx.staking.setValidatorCountsummary: Sets the ideal number of validators.
The dispatch origin must be Root.
unbond(value: Compact<u128>)
interface:
api.tx.staking.unbondsummary: Schedule a portion of the stash to be unlocked ready for transfer out after the bond period ends. If this leaves an amount actively bonded less than [
asset::existential_deposit], then it is increased to the full amount.The dispatch origin for this call must be Signed by the controller, not the stash.
Once the unlock period is done, you can call
withdraw_unbondedto actually move the funds out of management ready for transfer.No more than a limited number of unlocking chunks (see
MaxUnlockingChunks) can co-exists at the same time. If there are no unlocking chunks slots available [Call::withdraw_unbonded] is called to remove some of the chunks (if possible).If a user encounters the
InsufficientBonderror when calling this extrinsic, they should callchillfirst in order to free up their bonded funds.Emits
Unbonded.See also [
Call::withdraw_unbonded].
updatePayee(controller: AccountId32)
interface:
api.tx.staking.updatePayeesummary: Migrates an account's
RewardDestination::ControllertoRewardDestination::Account(controller).Effects will be felt instantly (as soon as this function is completed successfully).
This will waive the transaction fee if the
payeeis successfully migrated.
validate(prefs: PalletStakingAsyncValidatorPrefs)
interface:
api.tx.staking.validatesummary: Declare the desire to validate for the origin controller.
Effects will be felt at the beginning of the next era.
The dispatch origin for this call must be Signed by the controller, not the stash.
withdrawUnbonded(num_slashing_spans: u32)
interface:
api.tx.staking.withdrawUnbondedsummary: Remove any stake that has been fully unbonded and is ready for withdrawal.
Stake is considered fully unbonded once [
Config::BondingDuration] has elapsed since the unbonding was initiated. In rare cases—such as when offences for the unbonded era have been reported but not yet processed—withdrawal is restricted to eras for which all offences have been processed.The unlocked stake will be returned as free balance in the stash account.
The dispatch origin for this call must be Signed by the controller.
Emits
Withdrawn.See also [
Call::unbond].Parameters
num_slashing_spans: Deprecated. Retained only for backward compatibility; this parameter has no effect.
stakingRcClient
relayNewOffencePaged(offences: Vec<(u32,PalletStakingAsyncRcClientOffence)>)
- interface:
api.tx.stakingRcClient.relayNewOffencePaged
relaySessionReport(report: PalletStakingAsyncRcClientSessionReport)
- interface:
api.tx.stakingRcClient.relaySessionReport - summary: Called to indicate the start of a new session on the relay chain.
stateTrieMigration
continueMigrate(limits: PalletStateTrieMigrationMigrationLimits, real_size_upper: u32, witness_task: PalletStateTrieMigrationMigrationTask)
interface:
api.tx.stateTrieMigration.continueMigratesummary: Continue the migration for the given
limits.The dispatch origin of this call can be any signed account.
This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit, Upon successful execution, the transaction fee is returned.
The (potentially over-estimated) of the byte length of all the data read must be provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing that executing the current
MigrationTaskwith the givenlimitswill not exceedreal_size_upperbytes of read data.The
witness_taskis merely a helper to prevent the caller from being slashed or generally trigger a migration that they do not intend. This parameter is just a message from caller, saying that they believedwitness_taskwas the last state of the migration, and they only wish for their transaction to do anything, if this assumption holds. In casewitness_taskdoes not match, the transaction fails.Based on the documentation of [
MigrationTask::migrate_until_exhaustion], the recommended way of doing this is to pass alimitthat only boundscount, as thesizelimit can always be overwritten.
controlAutoMigration(maybe_config: Option<PalletStateTrieMigrationMigrationLimits>)
interface:
api.tx.stateTrieMigration.controlAutoMigrationsummary: Control the automatic migration.
The dispatch origin of this call must be [
Config::ControlOrigin].
forceSetProgress(progress_top: PalletStateTrieMigrationProgress, progress_child: PalletStateTrieMigrationProgress)
interface:
api.tx.stateTrieMigration.forceSetProgresssummary: Forcefully set the progress the running migration.
This is only useful in one case: the next key to migrate is too big to be migrated with a signed account, in a parachain context, and we simply want to skip it. A reasonable example of this would be
:code:, which is both very expensive to migrate, and commonly used, so probably it is already migrated.In case you mess things up, you can also, in principle, use this to reset the migration process.
migrateCustomChild(root: Bytes, child_keys: Vec<Bytes>, total_size: u32)
interface:
api.tx.stateTrieMigration.migrateCustomChildsummary: Migrate the list of child keys by iterating each of them one by one.
All of the given child keys must be present under one
child_root.This does not affect the global migration process tracker ([
MigrationProcess]), and should only be used in case any keys are leftover due to a bug.
migrateCustomTop(keys: Vec<Bytes>, witness_size: u32)
interface:
api.tx.stateTrieMigration.migrateCustomTopsummary: Migrate the list of top keys by iterating each of them one by one.
This does not affect the global migration process tracker ([
MigrationProcess]), and should only be used in case any keys are leftover due to a bug.
setSignedMaxLimits(limits: PalletStateTrieMigrationMigrationLimits)
- interface:
api.tx.stateTrieMigration.setSignedMaxLimits - summary: Set the maximum limit of the signed migration.
system
applyAuthorizedUpgrade(code: Bytes)
interface:
api.tx.system.applyAuthorizedUpgradesummary: Provide the preimage (runtime binary)
codefor an upgrade that has been authorized.If the authorization required a version check, this call will ensure the spec name remains unchanged and that the spec version has increased.
Depending on the runtime's
OnSetCodeconfiguration, this function may directly apply the newcodein the same block or attempt to schedule the upgrade.All origins are allowed.
authorizeUpgrade(code_hash: H256)
interface:
api.tx.system.authorizeUpgradesummary: Authorize an upgrade to a given
code_hashfor the runtime. The runtime can be supplied later.This call requires Root origin.
authorizeUpgradeWithoutChecks(code_hash: H256)
interface:
api.tx.system.authorizeUpgradeWithoutCheckssummary: Authorize an upgrade to a given
code_hashfor the runtime. The runtime can be supplied later.WARNING: This authorizes an upgrade that will take place without any safety checks, for example that the spec name remains the same and that the version number increases. Not recommended for normal use. Use
authorize_upgradeinstead.This call requires Root origin.
doTask(task: AssetHubKusamaRuntimeRuntimeTask)
- interface:
api.tx.system.doTask
killPrefix(prefix: Bytes, subkeys: u32)
interface:
api.tx.system.killPrefixsummary: 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.
killStorage(keys: Vec<Bytes>)
- interface:
api.tx.system.killStorage - summary: Kill some items from storage.
remark(remark: Bytes)
interface:
api.tx.system.remarksummary: Make some on-chain remark.
Can be executed by every
origin.
remarkWithEvent(remark: Bytes)
- interface:
api.tx.system.remarkWithEvent - summary: Make some on-chain remark and emit event.
setCode(code: Bytes)
- interface:
api.tx.system.setCode - summary: Set the new runtime code.
setCodeWithoutChecks(code: Bytes)
interface:
api.tx.system.setCodeWithoutCheckssummary: Set the new runtime code without doing any checks of the given
code.Note that runtime upgrades will not run if this is called with a not-increasing spec version!
setHeapPages(pages: u64)
- interface:
api.tx.system.setHeapPages - summary: Set the number of pages in the WebAssembly environment's heap.
setStorage(items: Vec<(Bytes,Bytes)>)
- interface:
api.tx.system.setStorage - summary: Set some items of storage.
timestamp
set(now: Compact<u64>)
interface:
api.tx.timestamp.setsummary: 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 [
Config::MinimumPeriod].The dispatch origin for this call must be None.
This dispatch class is Mandatory to ensure it gets executed in the block. Be aware that changing the complexity of this call could result exhausting the resources in a block to execute any other calls.
Complexity
O(1)(Note that implementations ofOnTimestampSetmust also beO(1))1 storage read and 1 storage mutation (codec
O(1)because ofDidUpdate::takeinon_finalize)1 event handler
on_timestamp_set. Must beO(1).
toPolkadotXcmRouter
reportBridgeStatus(bridge_id: H256, is_congested: bool)
- interface:
api.tx.toPolkadotXcmRouter.reportBridgeStatus - summary: Notification about congested bridge queue.
treasury
checkStatus(index: u32)
interface:
api.tx.treasury.checkStatussummary: Check the status of the spend and remove it from the storage if processed.
Dispatch Origin
Must be signed.
Details
The status check is a prerequisite for retrying a failed payout. If a spend has either succeeded or expired, it is removed from the storage by this function. In such instances, transaction fees are refunded.
Parameters
index: The spend index.Events
Emits [
Event::PaymentFailed] if the spend payout has failed. Emits [Event::SpendProcessed] if the spend payout has succeed.
payout(index: u32)
interface:
api.tx.treasury.payoutsummary: Claim a spend.
Dispatch Origin
Must be signed
Details
Spends must be claimed within some temporal bounds. A spend may be claimed within one [
Config::PayoutPeriod] from thevalid_fromblock. In case of a payout failure, the spend status must be updated with thecheck_statusdispatchable before retrying with the current function.Parameters
index: The spend index.Events
Emits [
Event::Paid] if successful.
removeApproval(proposal_id: Compact<u32>)
interface:
api.tx.treasury.removeApprovalsummary: Force a previously approved proposal to be removed from the approval queue.
Dispatch Origin
Must be [
Config::RejectOrigin].Details
The original deposit will no longer be returned.
Parameters
proposal_id: The index of a proposalComplexity
O(A) where
Ais the number of approvalsErrors
[
Error::ProposalNotApproved]: Theproposal_idsupplied was not found in the approval queue, i.e., the proposal has not been approved. This could also mean the proposal does not exist altogether, thus there is no way it would have been approved in the first place.
spend(asset_kind: PolkadotRuntimeCommonImplsVersionedLocatableAsset, amount: Compact<u128>, beneficiary: ParachainsCommonPayVersionedLocatableAccount, valid_from: Option<u32>)
interface:
api.tx.treasury.spendsummary: Propose and approve a spend of treasury funds.
Dispatch Origin
Must be [
Config::SpendOrigin] with theSuccessvalue being at leastamountofasset_kindin the native asset. The amount ofasset_kindis converted for assertion using the [Config::BalanceConverter].Details
Create an approved spend for transferring a specific
amountofasset_kindto a designated beneficiary. The spend must be claimed using thepayoutdispatchable within the [Config::PayoutPeriod].Parameters
asset_kind: An indicator of the specific asset class to be spent.amount: The amount to be transferred from the treasury to thebeneficiary.beneficiary: The beneficiary of the spend.valid_from: The block number from which the spend can be claimed. It can refer to the past if the resulting spend has not yet expired according to the [Config::PayoutPeriod]. IfNone, the spend can be claimed immediately after approval.Events
Emits [
Event::AssetSpendApproved] if successful.
spendLocal(amount: Compact<u128>, beneficiary: MultiAddress)
interface:
api.tx.treasury.spendLocalsummary: Propose and approve a spend of treasury funds.
Dispatch Origin
Must be [
Config::SpendOrigin] with theSuccessvalue being at leastamount.Details NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the beneficiary.
Parameters
amount: The amount to be transferred from the treasury to thebeneficiary.beneficiary: The destination account for the transfer.Events
Emits [
Event::SpendApproved] if successful.
voidSpend(index: u32)
interface:
api.tx.treasury.voidSpendsummary: Void previously approved spend.
Dispatch Origin
Must be [
Config::RejectOrigin].Details
A spend void is only possible if the payout has not been attempted yet.
Parameters
index: The spend index.Events
Emits [
Event::AssetSpendVoided] if successful.
uniques
approveTransfer(collection: u32, item: u32, delegate: MultiAddress)
interface:
api.tx.uniques.approveTransfersummary: Approve an item to be transferred by a delegated third-party account.
The origin must conform to
ForceOriginor must beSignedand the sender must be either the owner of theitemor the admin of the collection.collection: The collection of the item to be approved for delegated transfer.item: The item of the item to be approved for delegated transfer.delegate: The account to delegate permission to transfer the item.Important NOTE: The
approvedaccount gets reset after each transfer.Emits
ApprovedTransferon success.Weight:
O(1)
burn(collection: u32, item: u32, check_owner: Option<MultiAddress>)
interface:
api.tx.uniques.burnsummary: Destroy a single item.
Origin must be Signed and the signing account must be either:
the Admin of the
collection;the Owner of the
item;collection: The collection of the item to be burned.item: The item of the item to be burned.check_owner: IfSomethen the operation will fail withWrongOwnerunless the item is owned by this value.Emits
Burnedwith the actual amount burned.Weight:
O(1)Modes:check_owner.is_some().
buyItem(collection: u32, item: u32, bid_price: u128)
interface:
api.tx.uniques.buyItemsummary: Allows to buy an item if it's up for sale.
Origin must be Signed and must not be the owner of the
item.collection: The collection of the item.item: The item the sender wants to buy.bid_price: The price the sender is willing to pay.Emits
ItemBoughton success.
cancelApproval(collection: u32, item: u32, maybe_check_delegate: Option<MultiAddress>)
interface:
api.tx.uniques.cancelApprovalsummary: Cancel the prior approval for the transfer of an item by a delegate.
Origin must be either:
the
Forceorigin;Signedwith the signer being the Admin of thecollection;Signedwith the signer being the Owner of theitem;Arguments:
collection: The collection of the item of whose approval will be cancelled.item: The item of the item of whose approval will be cancelled.maybe_check_delegate: IfSomewill ensure that the given account is the one to which permission of transfer is delegated.Emits
ApprovalCancelledon success.Weight:
O(1)
clearAttribute(collection: u32, maybe_item: Option<u32>, key: Bytes)
interface:
api.tx.uniques.clearAttributesummary: Clear an attribute for a collection or item.
Origin must be either
ForceOriginor Signed and the sender should be the Owner of thecollection.Any deposit is freed for the collection's owner.
collection: The identifier of the collection whose item's metadata to clear.maybe_item: The identifier of the item whose metadata to clear.key: The key of the attribute.Emits
AttributeCleared.Weight:
O(1)
clearCollectionMetadata(collection: u32)
interface:
api.tx.uniques.clearCollectionMetadatasummary: Clear the metadata for a collection.
Origin must be either
ForceOriginorSignedand the sender should be the Owner of thecollection.Any deposit is freed for the collection's owner.
collection: The identifier of the collection whose metadata to clear.Emits
CollectionMetadataCleared.Weight:
O(1)
clearMetadata(collection: u32, item: u32)
interface:
api.tx.uniques.clearMetadatasummary: Clear the metadata for an item.
Origin must be either
ForceOriginor Signed and the sender should be the Owner of theitem.Any deposit is freed for the collection's owner.
collection: The identifier of the collection whose item's metadata to clear.item: The identifier of the item whose metadata to clear.Emits
MetadataCleared.Weight:
O(1)
create(collection: u32, admin: MultiAddress)
interface:
api.tx.uniques.createsummary: Issue a new collection of non-fungible items from a public origin.
This new collection has no items initially and its owner is the origin.
The origin must conform to the configured
CreateOriginand have sufficient funds free.ItemDepositfunds of sender are reserved.Parameters:
collection: The identifier of the new collection. This must not be currently in use.admin: The admin of this collection. The admin is the initial address of each member of the collection's admin team.Emits
Createdevent when successful.Weight:
O(1)
destroy(collection: u32, witness: PalletUniquesDestroyWitness)
interface:
api.tx.uniques.destroysummary: Destroy a collection of fungible items.
The origin must conform to
ForceOriginor must beSignedand the sender must be the owner of thecollection.collection: The identifier of the collection to be destroyed.witness: Information on the items minted in the collection. This must be correct.Emits
Destroyedevent when successful.Weight:
O(n + m)where:n = witness.itemsm = witness.item_metadatasa = witness.attributes
forceCreate(collection: u32, owner: MultiAddress, free_holding: bool)
interface:
api.tx.uniques.forceCreatesummary: Issue a new collection of non-fungible items from a privileged origin.
This new collection has no items initially.
The origin must conform to
ForceOrigin.Unlike
create, no funds are reserved.collection: The identifier of the new item. This must not be currently in use.owner: The owner of this collection of items. The owner has full superuser permissions over this item, but may later change and configure the permissions usingtransfer_ownershipandset_team.Emits
ForceCreatedevent when successful.Weight:
O(1)
forceItemStatus(collection: u32, owner: MultiAddress, issuer: MultiAddress, admin: MultiAddress, freezer: MultiAddress, free_holding: bool, is_frozen: bool)
interface:
api.tx.uniques.forceItemStatussummary: Alter the attributes of a given item.
Origin must be
ForceOrigin.collection: The identifier of the item.owner: The new Owner of this item.issuer: The new Issuer of this item.admin: The new Admin of this item.freezer: The new Freezer of this item.free_holding: Whether a deposit is taken for holding an item of this collection.is_frozen: Whether this collection is frozen except for permissioned/admin instructions.Emits
ItemStatusChangedwith the identity of the item.Weight:
O(1)
freeze(collection: u32, item: u32)
interface:
api.tx.uniques.freezesummary: Disallow further unprivileged transfer of an item.
Origin must be Signed and the sender should be the Freezer of the
collection.collection: The collection of the item to be frozen.item: The item of the item to be frozen.Emits
Frozen.Weight:
O(1)
freezeCollection(collection: u32)
interface:
api.tx.uniques.freezeCollectionsummary: Disallow further unprivileged transfers for a whole collection.
Origin must be Signed and the sender should be the Freezer of the
collection.collection: The collection to be frozen.Emits
CollectionFrozen.Weight:
O(1)
mint(collection: u32, item: u32, owner: MultiAddress)
interface:
api.tx.uniques.mintsummary: Mint an item of a particular collection.
The origin must be Signed and the sender must be the Issuer of the
collection.collection: The collection of the item to be minted.item: The item value of the item to be minted.beneficiary: The initial owner of the minted item.Emits
Issuedevent when successful.Weight:
O(1)
redeposit(collection: u32, items: Vec<u32>)
interface:
api.tx.uniques.redepositsummary: Reevaluate the deposits on some items.
Origin must be Signed and the sender should be the Owner of the
collection.collection: The collection to be frozen.items: The items of the collection whose deposits will be reevaluated.NOTE: This exists as a best-effort function. Any items which are unknown or in the case that the owner account does not have reservable funds to pay for a deposit increase are ignored. Generally the owner isn't going to call this on items whose existing deposit is less than the refreshed deposit as it would only cost them, so it's of little consequence.
It will still return an error in the case that the collection is unknown of the signer is not permitted to call it.
Weight:
O(items.len())
setAcceptOwnership(maybe_collection: Option<u32>)
interface:
api.tx.uniques.setAcceptOwnershipsummary: Set (or reset) the acceptance of ownership for a particular account.
Origin must be
Signedand ifmaybe_collectionisSome, then the signer must have a provider reference.maybe_collection: The identifier of the collection whose ownership the signer is willing to accept, or ifNone, an indication that the signer is willing to accept no ownership transferal.Emits
OwnershipAcceptanceChanged.
setAttribute(collection: u32, maybe_item: Option<u32>, key: Bytes, value: Bytes)
interface:
api.tx.uniques.setAttributesummary: Set an attribute for a collection or item.
Origin must be either
ForceOriginor Signed and the sender should be the Owner of thecollection.If the origin is Signed, then funds of signer are reserved according to the formula:
MetadataDepositBase + DepositPerByte * (key.len + value.len)taking into account any already reserved funds.collection: The identifier of the collection whose item's metadata to set.maybe_item: The identifier of the item whose metadata to set.key: The key of the attribute.value: The value to which to set the attribute.Emits
AttributeSet.Weight:
O(1)
setCollectionMaxSupply(collection: u32, max_supply: u32)
interface:
api.tx.uniques.setCollectionMaxSupplysummary: Set the maximum amount of items a collection could have.
Origin must be either
ForceOriginorSignedand the sender should be the Owner of thecollection.Note: This function can only succeed once per collection.
collection: The identifier of the collection to change.max_supply: The maximum amount of items a collection could have.Emits
CollectionMaxSupplySetevent when successful.
setCollectionMetadata(collection: u32, data: Bytes, is_frozen: bool)
interface:
api.tx.uniques.setCollectionMetadatasummary: Set the metadata for a collection.
Origin must be either
ForceOriginorSignedand the sender should be the Owner of thecollection.If the origin is
Signed, then funds of signer are reserved according to the formula:MetadataDepositBase + DepositPerByte * data.lentaking into account any already reserved funds.collection: The identifier of the item whose metadata to update.data: The general information of this item. Limited in length byStringLimit.is_frozen: Whether the metadata should be frozen against further changes.Emits
CollectionMetadataSet.Weight:
O(1)
setMetadata(collection: u32, item: u32, data: Bytes, is_frozen: bool)
interface:
api.tx.uniques.setMetadatasummary: Set the metadata for an item.
Origin must be either
ForceOriginor Signed and the sender should be the Owner of thecollection.If the origin is Signed, then funds of signer are reserved according to the formula:
MetadataDepositBase + DepositPerByte * data.lentaking into account any already reserved funds.collection: The identifier of the collection whose item's metadata to set.item: The identifier of the item whose metadata to set.data: The general information of this item. Limited in length byStringLimit.is_frozen: Whether the metadata should be frozen against further changes.Emits
MetadataSet.Weight:
O(1)
setPrice(collection: u32, item: u32, price: Option<u128>, whitelisted_buyer: Option<MultiAddress>)
interface:
api.tx.uniques.setPricesummary: Set (or reset) the price for an item.
Origin must be Signed and must be the owner of the asset
item.collection: The collection of the item.item: The item to set the price for.price: The price for the item. PassNone, to reset the price.buyer: Restricts the buy operation to a specific account.Emits
ItemPriceSeton success if the price is notNone. EmitsItemPriceRemovedon success if the price isNone.
setTeam(collection: u32, issuer: MultiAddress, admin: MultiAddress, freezer: MultiAddress)
interface:
api.tx.uniques.setTeamsummary: Change the Issuer, Admin and Freezer of a collection.
Origin must be Signed and the sender should be the Owner of the
collection.collection: The collection whose team should be changed.issuer: The new Issuer of this collection.admin: The new Admin of this collection.freezer: The new Freezer of this collection.Emits
TeamChanged.Weight:
O(1)
thaw(collection: u32, item: u32)
interface:
api.tx.uniques.thawsummary: Re-allow unprivileged transfer of an item.
Origin must be Signed and the sender should be the Freezer of the
collection.collection: The collection of the item to be thawed.item: The item of the item to be thawed.Emits
Thawed.Weight:
O(1)
thawCollection(collection: u32)
interface:
api.tx.uniques.thawCollectionsummary: Re-allow unprivileged transfers for a whole collection.
Origin must be Signed and the sender should be the Admin of the
collection.collection: The collection to be thawed.Emits
CollectionThawed.Weight:
O(1)
transfer(collection: u32, item: u32, dest: MultiAddress)
interface:
api.tx.uniques.transfersummary: Move an item from the sender account to another.
This resets the approved account of the item.
Origin must be Signed and the signing account must be either:
the Admin of the
collection;the Owner of the
item;the approved delegate for the
item(in this case, the approval is reset).Arguments:
collection: The collection of the item to be transferred.item: The item of the item to be transferred.dest: The account to receive ownership of the item.Emits
Transferred.Weight:
O(1)
transferOwnership(collection: u32, new_owner: MultiAddress)
interface:
api.tx.uniques.transferOwnershipsummary: Change the Owner of a collection.
Origin must be Signed and the sender should be the Owner of the
collection.collection: The collection whose owner should be changed.owner: The new Owner of this collection. They must have calledset_accept_ownershipwithcollectionin order for this operation to succeed.Emits
OwnerChanged.Weight:
O(1)
utility
asDerivative(index: u16, call: Call)
interface:
api.tx.utility.asDerivativesummary: 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
proxyto have been used prior in the call stack and you do not want the call restrictions to apply to any sub-accounts), then useas_multi_threshold_1in the Multisig pallet instead.NOTE: Prior to version *12, this was called
as_limited_sub.The dispatch origin for this call must be Signed.
batch(calls: Vec<Call>)
interface:
api.tx.utility.batchsummary: Send a batch of dispatch calls.
May be called from any origin except
None.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 the calls are dispatched without checking origin filter. (This includes bypassing
frame_system::Config::BaseCallFilter).Complexity
O(C) where C is the number of calls to be batched.
This will return
Okin all circumstances. To determine the success of the batch, an event is deposited. If a call failed and the batch was interrupted, then theBatchInterruptedevent is deposited, along with the number of successful calls made and the error of the failed call. If all were successful, then theBatchCompletedevent is deposited.
batchAll(calls: Vec<Call>)
interface:
api.tx.utility.batchAllsummary: 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 except
None.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 the calls are dispatched without checking origin filter. (This includes bypassing
frame_system::Config::BaseCallFilter).Complexity
O(C) where C is the number of calls to be batched.
dispatchAs(as_origin: AssetHubKusamaRuntimeOriginCaller, call: Call)
interface:
api.tx.utility.dispatchAssummary: Dispatches a function call with a provided origin.
The dispatch origin for this call must be Root.
Complexity
- O(1).
dispatchAsFallible(as_origin: AssetHubKusamaRuntimeOriginCaller, call: Call)
interface:
api.tx.utility.dispatchAsFalliblesummary: Dispatches a function call with a provided origin.
Almost the same as [
Pallet::dispatch_as] but forwards any error of the inner call.The dispatch origin for this call must be Root.
forceBatch(calls: Vec<Call>)
interface:
api.tx.utility.forceBatchsummary: Send a batch of dispatch calls. Unlike
batch, it allows errors and won't interrupt.May be called from any origin except
None.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 the calls are dispatch without checking origin filter. (This includes bypassing
frame_system::Config::BaseCallFilter).Complexity
O(C) where C is the number of calls to be batched.
ifElse(main: Call, fallback: Call)
interface:
api.tx.utility.ifElsesummary: Dispatch a fallback call in the event the main call fails to execute. May be called from any origin except
None.This function first attempts to dispatch the
maincall. If themaincall fails, thefallbackis attemted. if the fallback is successfully dispatched, the weights of both calls are accumulated and an event containing the main call error is deposited.In the event of a fallback failure the whole call fails with the weights returned.
main: The main call to be dispatched. This is the primary action to execute.fallback: The fallback call to be dispatched in case themaincall fails.Dispatch Logic
If the origin is
root, both the main and fallback calls are executed without applying any origin filters.If the origin is not
root, the origin filter is applied to both themainandfallbackcalls.Use Case
Some use cases might involve submitting a
batchtype call in either main, fallback or both.
withWeight(call: Call, weight: SpWeightsWeightV2Weight)
interface:
api.tx.utility.withWeightsummary: Dispatch a function call with a specified weight.
This function does not check the weight of the call, and instead allows the Root origin to specify the weight of the call.
The dispatch origin for this call must be Root.
vesting
forceRemoveVestingSchedule(target: MultiAddress, schedule_index: u32)
interface:
api.tx.vesting.forceRemoveVestingSchedulesummary: Force remove a vesting schedule
The dispatch origin for this call must be Root.
target: An account that has a vesting scheduleschedule_index: The vesting schedule index that should be removed
forceVestedTransfer(source: MultiAddress, target: MultiAddress, schedule: PalletVestingVestingInfo)
interface:
api.tx.vesting.forceVestedTransfersummary: Force a vested transfer.
The dispatch origin for this call must be Root.
source: The account whose funds should be transferred.target: The account that should be transferred the vested funds.schedule: The vesting schedule attached to the transfer.Emits
VestingCreated.NOTE: This will unlock all schedules through the current block.
Complexity
O(1).
mergeSchedules(schedule1_index: u32, schedule2_index: u32)
interface:
api.tx.vesting.mergeSchedulessummary: Merge two vesting schedules together, creating a new vesting schedule that unlocks over the highest possible start and end blocks. If both schedules have already started the current block will be used as the schedule start; with the caveat that if one schedule is finished by the current block, the other will be treated as the new merged schedule, unmodified.
NOTE: If
schedule1_index == schedule2_indexthis is a no-op. NOTE: This will unlock all schedules through the current block prior to merging. NOTE: If both schedules have ended by the current block, no new schedule will be created and both will be removed.Merged schedule attributes:
starting_block:MAX(schedule1.starting_block, scheduled2.starting_block, current_block).ending_block:MAX(schedule1.ending_block, schedule2.ending_block).locked:schedule1.locked_at(current_block) + schedule2.locked_at(current_block).The dispatch origin for this call must be Signed.
schedule1_index: index of the first schedule to merge.schedule2_index: index of the second schedule to merge.
vest()
interface:
api.tx.vesting.vestsummary: Unlock any vested funds of the sender account.
The dispatch origin for this call must be Signed and the sender must have funds still locked under this pallet.
Emits either
VestingCompletedorVestingUpdated.Complexity
O(1).
vestOther(target: MultiAddress)
interface:
api.tx.vesting.vestOthersummary: Unlock any vested funds of a
targetaccount.The dispatch origin for this call must be Signed.
target: The account whose vested funds should be unlocked. Must have funds still locked under this pallet.Emits either
VestingCompletedorVestingUpdated.Complexity
O(1).
vestedTransfer(target: MultiAddress, schedule: PalletVestingVestingInfo)
interface:
api.tx.vesting.vestedTransfersummary: Create a vested transfer.
The dispatch origin for this call must be Signed.
target: The account receiving the vested funds.schedule: The vesting schedule attached to the transfer.Emits
VestingCreated.NOTE: This will unlock all schedules through the current block.
Complexity
O(1).
voterList
putInFrontOf(lighter: MultiAddress)
interface:
api.tx.voterList.putInFrontOfsummary: Move the caller's Id directly in front of
lighter.The dispatch origin for this call must be Signed and can only be called by the Id of the account going in front of
lighter. Fee is payed by the origin under all circumstances.Only works if:
both nodes are within the same bag,
and
originhas a greaterScorethanlighter.
putInFrontOfOther(heavier: MultiAddress, lighter: MultiAddress)
interface:
api.tx.voterList.putInFrontOfOthersummary: Same as [
Pallet::put_in_front_of], but it can be called by anyone.Fee is paid by the origin under all circumstances.
rebag(dislocated: MultiAddress)
interface:
api.tx.voterList.rebagsummary: Declare that some
dislocatedaccount has, through rewards or penalties, sufficiently changed its score that it should properly fall into a different bag than its current one.Anyone can call this function about any potentially dislocated account.
Will always update the stored score of
dislocatedto the correct score, based onScoreProvider.If
dislocateddoes not exists, it returns an error.
whitelist
dispatchWhitelistedCall(call_hash: H256, call_encoded_len: u32, call_weight_witness: SpWeightsWeightV2Weight)
- interface:
api.tx.whitelist.dispatchWhitelistedCall
dispatchWhitelistedCallWithPreimage(call: Call)
- interface:
api.tx.whitelist.dispatchWhitelistedCallWithPreimage
removeWhitelistedCall(call_hash: H256)
- interface:
api.tx.whitelist.removeWhitelistedCall
whitelistCall(call_hash: H256)
- interface:
api.tx.whitelist.whitelistCall
xcmpQueue
resumeXcmExecution()
interface:
api.tx.xcmpQueue.resumeXcmExecutionsummary: Resumes all XCM executions for the XCMP queue.
Note that this function doesn't change the status of the in/out bound channels.
origin: Must passControllerOrigin.
suspendXcmExecution()
interface:
api.tx.xcmpQueue.suspendXcmExecutionsummary: Suspends all XCM executions for the XCMP queue, regardless of the sender's origin.
origin: Must passControllerOrigin.
updateDropThreshold(new: u32)
interface:
api.tx.xcmpQueue.updateDropThresholdsummary: Overwrites the number of pages which must be in the queue after which we drop any further messages from the channel.
origin: Must passRoot.new: Desired value forQueueConfigData.drop_threshold
updateResumeThreshold(new: u32)
interface:
api.tx.xcmpQueue.updateResumeThresholdsummary: Overwrites the number of pages which the queue must be reduced to before it signals that message sending may recommence after it has been suspended.
origin: Must passRoot.new: Desired value forQueueConfigData.resume_threshold
updateSuspendThreshold(new: u32)
interface:
api.tx.xcmpQueue.updateSuspendThresholdsummary: Overwrites the number of pages which must be in the queue for the other side to be told to suspend their sending.
origin: Must passRoot.new: Desired value forQueueConfigData.suspend_value