UNPKG

@galacticcouncil/descriptors

Version:

Hydration papi (polkadot-api) descriptors

978 lines (977 loc) 196 kB
import { StorageDescriptor, PlainDescriptor, TxDescriptor, RuntimeDescriptor, Enum, ApisFromDef, QueryFromPalletsDef, TxFromPalletsDef, EventsFromPalletsDef, ErrorsFromPalletsDef, ConstFromPalletsDef, ViewFnsFromPalletsDef, SS58String, SizedHex, FixedSizeArray } from "polkadot-api"; import type { I5sesotjlssv2d, Iffmde3ekjedi9, I4mddgoa69c0a2, Ie49tr2lbm93o0, I95g6i7ilua7lq, Ieniouoqkq4icf, Phase, Ibgl04rn6nbfm6, I4q39t5hn830vp, I3qklfjubrljqh, Iag3f1hum3p4c8, I7svnfko10tq2e, I4s6jkha20aoh0, I2brm5b9jij1st, I78s05f59eoi8b, I35l6p7kq19mr0, If9iqq7i64mur8, I4v5g6i7bmt06o, I84bhscllvv07n, If2801grpltbp8, In7a38730s6qs, If15el53dd76v9, I9s0ave7t0vnrk, I4fo08joqmcqnm, Ia5cotcvi888ln, I21jsa919m88fd, Iegif7m3upfe1k, I9kt8c221c83ln, Ic76kfh5ebqkpl, Icscpmubum33bq, I21d2olof7eb60, Ibgm4rnf22lal1, Ie68np0vpihith, I9bnv6lu0crf1q, Iauhjqifrdklq7, Ie1uso9m8rt5cf, Ic357tcepuvo5c, I2rnoam876ruhj, Ic5b47dj4coa3r, Ib3qnc19gu633c, Ifira6u9hi7cu1, I72tqocvdoqfff, I2i27f3sfmvc05, I1nlrtd1epki2d, I3abtumcmempjs, Id81m8flopt8ha, I8hff7chabggkd, I49i39mtj1ivbs, Ifkr2kcak2vto1, I1ju6r8q0cs9jt, I4kpeq6j7cd5bu, I5na1ka76k6811, I59mhdb9omdqfa, I9vl5kpk0fpakt, I717jt61hu19b4, I7f7v8192r1lmq, Idjrs24gh0qv5l, I5r8t4iaend96p, Ie2db4l6126rkt, Ictkqqlhdjt761, Iftvbctbo05fu4, XcmVersionedXcm, Ic0c3req3mlc1l, XcmVersionedAssetId, I7ocn4njqde3v5, XcmVersionedLocation, Iek7ha36da9mf5, I7qpv90droestd, I6td1q1lcrslkk, I44njbaraj4c6j, I3o763oas6kue, I35p85j063s0il, I5vv5n03oo8gas } from "./common-types"; type AnonymousEnum<T extends {}> = T & { __anonymous: true; }; type MyTuple<T> = [T, ...T[]]; type SeparateUndefined<T> = undefined extends T ? undefined | Exclude<T, undefined> : T; type Anonymize<T> = SeparateUndefined<T extends string | number | bigint | boolean | void | undefined | null | symbol | Uint8Array | Enum<any> ? T : T extends AnonymousEnum<infer V> ? Enum<V> : T extends MyTuple<any> ? { [K in keyof T]: T[K]; } : T extends [] ? [] : T extends FixedSizeArray<infer L, infer T> ? number extends L ? Array<T> : FixedSizeArray<L, T> : { [K in keyof T & string]: T[K]; }>; type IStorage = { System: { /** * The full account information for a particular account ID. */ Account: StorageDescriptor<[Key: SS58String], Anonymize<I5sesotjlssv2d>, false, never>; /** * Total extrinsics count for the current block. */ ExtrinsicCount: StorageDescriptor<[], number, true, never>; /** * Whether all inherents have been applied. */ InherentsApplied: StorageDescriptor<[], boolean, false, never>; /** * The current weight for the block. */ BlockWeight: StorageDescriptor<[], Anonymize<Iffmde3ekjedi9>, false, never>; /** * Total length (in bytes) for all extrinsics put together, for the current block. */ AllExtrinsicsLen: StorageDescriptor<[], number, true, never>; /** * Map of block numbers to block hashes. */ BlockHash: StorageDescriptor<[Key: number], SizedHex<32>, false, never>; /** * Extrinsics data for the current block (maps an extrinsic's index to its data). */ ExtrinsicData: StorageDescriptor<[Key: number], Uint8Array, false, never>; /** * The current block number being processed. Set by `execute_block`. */ Number: StorageDescriptor<[], number, false, never>; /** * Hash of the previous block. */ ParentHash: StorageDescriptor<[], SizedHex<32>, false, never>; /** * Digest of the current block, also part of the block header. */ Digest: StorageDescriptor<[], Anonymize<I4mddgoa69c0a2>, false, never>; /** * Events deposited for the current block. * * NOTE: The item is unbound and should therefore never be read on chain. * It could otherwise inflate the PoV size of a block. * * Events have a large in-memory size. Box the events to not go out-of-memory * just in case someone still reads them from within the runtime. */ Events: StorageDescriptor<[], Anonymize<Ie49tr2lbm93o0>, false, never>; /** * The number of events in the `Events<T>` list. */ EventCount: StorageDescriptor<[], number, false, never>; /** * Mapping between a topic (represented by T::Hash) and a vector of indexes * of events in the `<Events<T>>` list. * * All topic vectors have deterministic storage locations depending on the topic. This * allows light-clients to leverage the changes trie storage tracking mechanism and * in case of changes fetch the list of events of interest. * * The value has the type `(BlockNumberFor<T>, EventIndex)` because if we used only just * the `EventIndex` then in case if the topic has the same contents on the next block * no notification will be triggered thus the event might be lost. */ EventTopics: StorageDescriptor<[Key: SizedHex<32>], Anonymize<I95g6i7ilua7lq>, false, never>; /** * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. */ LastRuntimeUpgrade: StorageDescriptor<[], Anonymize<Ieniouoqkq4icf>, true, never>; /** * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. */ UpgradedToU32RefCount: StorageDescriptor<[], boolean, false, never>; /** * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False * (default) if not. */ UpgradedToTripleRefCount: StorageDescriptor<[], boolean, false, never>; /** * The execution phase of the block. */ ExecutionPhase: StorageDescriptor<[], Phase, true, never>; /** * `Some` if a code upgrade has been authorized. */ AuthorizedUpgrade: StorageDescriptor<[], Anonymize<Ibgl04rn6nbfm6>, true, never>; /** * The weight reclaimed for the extrinsic. * * This information is available until the end of the extrinsic execution. * More precisely this information is removed in `note_applied_extrinsic`. * * Logic doing some post dispatch weight reduction must update this storage to avoid duplicate * reduction. */ ExtrinsicWeightReclaimed: StorageDescriptor<[], Anonymize<I4q39t5hn830vp>, false, never>; }; Assets: { /** * Details of an asset. */ Asset: StorageDescriptor<[Key: number], Anonymize<I3qklfjubrljqh>, true, never>; /** * The holdings of a specific account for a specific asset. */ Account: StorageDescriptor<Anonymize<I7svnfko10tq2e>, Anonymize<Iag3f1hum3p4c8>, true, never>; /** * Approved balance transfers. First balance is the amount approved for transfer. Second * is the amount of `T::Currency` reserved for storing this. * First key is the asset ID, second key is the owner and third key is the delegate. */ Approvals: StorageDescriptor<Anonymize<I2brm5b9jij1st>, Anonymize<I4s6jkha20aoh0>, true, never>; /** * Metadata of an asset. */ Metadata: StorageDescriptor<[Key: number], Anonymize<I78s05f59eoi8b>, false, never>; /** * Maps an asset to a list of its configured reserve information. */ Reserves: StorageDescriptor<[Key: number], Anonymize<I35l6p7kq19mr0>, false, never>; /** * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage * item has no effect. * * This can be useful for setting up constraints for IDs of the new assets. For example, by * providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an * auto-increment model can be applied to all new asset IDs. * * The initial next asset ID can be set using the [`GenesisConfig`] or the * [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration. */ NextAssetId: StorageDescriptor<[], number, true, never>; }; ForeignAssets: { /** * Details of an asset. */ Asset: StorageDescriptor<[Key: Anonymize<If9iqq7i64mur8>], Anonymize<I3qklfjubrljqh>, true, never>; /** * The holdings of a specific account for a specific asset. */ Account: StorageDescriptor<Anonymize<I4v5g6i7bmt06o>, Anonymize<Iag3f1hum3p4c8>, true, never>; /** * Approved balance transfers. First balance is the amount approved for transfer. Second * is the amount of `T::Currency` reserved for storing this. * First key is the asset ID, second key is the owner and third key is the delegate. */ Approvals: StorageDescriptor<Anonymize<I84bhscllvv07n>, Anonymize<I4s6jkha20aoh0>, true, never>; /** * Metadata of an asset. */ Metadata: StorageDescriptor<[Key: Anonymize<If9iqq7i64mur8>], Anonymize<I78s05f59eoi8b>, false, never>; /** * Maps an asset to a list of its configured reserve information. */ Reserves: StorageDescriptor<[Key: Anonymize<If9iqq7i64mur8>], Anonymize<If2801grpltbp8>, false, never>; /** * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage * item has no effect. * * This can be useful for setting up constraints for IDs of the new assets. For example, by * providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an * auto-increment model can be applied to all new asset IDs. * * The initial next asset ID can be set using the [`GenesisConfig`] or the * [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration. */ NextAssetId: StorageDescriptor<[], Anonymize<If9iqq7i64mur8>, true, never>; }; }; type ICalls = { PolkadotXcm: { /** */ send: TxDescriptor<Anonymize<Ia5cotcvi888ln>>; /** * Teleport some assets from the local chain to some destination chain. * * **This function is deprecated: Use `limited_teleport_assets` instead.** * * Fee payment on the destination side is made from the asset in the `assets` vector of * index `fee_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 the `assets` and 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 of `dest`. Will * generally be an `AccountId32` value. * - `assets`: The assets to be withdrawn. This should include the assets used to pay the * fee on the `dest` chain. * - `fee_asset_item`: The index into `assets` of the item which should be used to pay * fees. */ teleport_assets: TxDescriptor<Anonymize<I21jsa919m88fd>>; /** * Transfer some assets from the local chain to the destination chain through their local, * destination or remote reserve. * * `assets` must have same reserve location and may not be teleportable to `dest`. * - `assets` have local reserve: transfer assets to sovereign account of destination * chain and forward a notification XCM to `dest` to mint and deposit reserve-based * assets to `beneficiary`. * - `assets` have destination reserve: burn local assets and forward a notification to * `dest` chain to withdraw the reserve assets from this chain's sovereign account and * deposit them to `beneficiary`. * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` * to mint and deposit reserve-based assets to `beneficiary`. * * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** * * Fee payment on the destination side is made from the asset in the `assets` vector of * index `fee_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 the `assets` and 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 of `dest`. Will * generally be an `AccountId32` value. * - `assets`: The assets to be withdrawn. This should include the assets used to pay the * fee on the `dest` (and possibly reserve) chains. * - `fee_asset_item`: The index into `assets` of the item which should be used to pay * fees. */ reserve_transfer_assets: TxDescriptor<Anonymize<I21jsa919m88fd>>; /** * Execute an XCM message from a local, signed, origin. * * An event is deposited indicating whether `msg` could be executed completely or only * partially. * * No more than `max_weight` will be used in its attempted execution. If this is less than * the maximum amount of weight that the message could take to be executed, then no * execution attempt will be made. */ execute: TxDescriptor<Anonymize<Iegif7m3upfe1k>>; /** * 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 that `location` supports. */ force_xcm_version: TxDescriptor<Anonymize<I9kt8c221c83ln>>; /** * 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, or `None` to disable. */ force_default_xcm_version: TxDescriptor<Anonymize<Ic76kfh5ebqkpl>>; /** * 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. */ force_subscribe_version_notify: TxDescriptor<Anonymize<Icscpmubum33bq>>; /** * 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. */ force_unsubscribe_version_notify: TxDescriptor<Anonymize<Icscpmubum33bq>>; /** * Transfer some assets from the local chain to the destination chain through their local, * destination or remote reserve. * * `assets` must have same reserve location and may not be teleportable to `dest`. * - `assets` have local reserve: transfer assets to sovereign account of destination * chain and forward a notification XCM to `dest` to mint and deposit reserve-based * assets to `beneficiary`. * - `assets` have destination reserve: burn local assets and forward a notification to * `dest` chain to withdraw the reserve assets from this chain's sovereign account and * deposit them to `beneficiary`. * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` * to mint and deposit reserve-based assets to `beneficiary`. * * Fee payment on the destination side is made from the asset in the `assets` vector of * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight * is needed than `weight_limit`, then the operation will fail and the sent assets may be * at risk. * * - `origin`: Must be capable of withdrawing the `assets` and 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 of `dest`. Will * generally be an `AccountId32` value. * - `assets`: The assets to be withdrawn. This should include the assets used to pay the * fee on the `dest` (and possibly reserve) chains. * - `fee_asset_item`: The index into `assets` of the item which should be used to pay * fees. * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. */ limited_reserve_transfer_assets: TxDescriptor<Anonymize<I21d2olof7eb60>>; /** * Teleport some assets from the local chain to some destination chain. * * Fee payment on the destination side is made from the asset in the `assets` vector of * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight * is needed than `weight_limit`, then the operation will fail and the sent assets may be * at risk. * * - `origin`: Must be capable of withdrawing the `assets` and 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 of `dest`. Will * generally be an `AccountId32` value. * - `assets`: The assets to be withdrawn. This should include the assets used to pay the * fee on the `dest` chain. * - `fee_asset_item`: The index into `assets` of the item which should be used to pay * fees. * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. */ limited_teleport_assets: TxDescriptor<Anonymize<I21d2olof7eb60>>; /** * Set or unset the global suspension state of the XCM executor. * * - `origin`: Must be an origin specified by AdminOrigin. * - `suspended`: `true` to suspend, `false` to resume. */ force_suspension: TxDescriptor<Anonymize<Ibgm4rnf22lal1>>; /** * 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 `assets` vector of * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the * operation will fail and the sent assets may be at risk. * * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable * to `dest`, no limitations imposed on `fees`. * - for local reserve: transfer assets to sovereign account of destination chain and * forward a notification XCM to `dest` to mint and deposit reserve-based assets to * `beneficiary`. * - for destination reserve: burn local assets and forward a notification to `dest` chain * to withdraw the reserve assets from this chain's sovereign account and deposit them * to `beneficiary`. * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint * and deposit reserve-based assets to `beneficiary`. * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport * assets and deposit them to `beneficiary`. * * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. * - `dest`: Destination context for the assets. Will typically be `X2(Parent, * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send * from relay to parachain. * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will * generally be an `AccountId32` value. * - `assets`: The assets to be withdrawn. This should include the assets used to pay the * fee on the `dest` (and possibly reserve) chains. * - `fee_asset_item`: The index into `assets` of the item which should be used to pay * fees. * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. */ transfer_assets: TxDescriptor<Anonymize<I21d2olof7eb60>>; /** * 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. */ claim_assets: TxDescriptor<Anonymize<Ie68np0vpihith>>; /** * Transfer assets from the local chain to the destination chain using explicit transfer * types for assets and fees. * * `assets` must have same reserve location or may be teleportable to `dest`. Caller must * provide the `assets_transfer_type` to be used for `assets`: * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination * chain and forward a notification XCM to `dest` to mint and deposit reserve-based * assets to `beneficiary`. * - `TransferType::DestinationReserve`: burn local assets and forward a notification to * `dest` chain to withdraw the reserve assets from this chain's sovereign account and * deposit them to `beneficiary`. * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically * the remote `reserve` is Asset Hub. * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to * mint/teleport assets and deposit them to `beneficiary`. * * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to * buy execution using transferred `assets` identified by `remote_fees_id`. * Make sure enough of the specified `remote_fees_id` asset is included in the given list * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight * is needed than `weight_limit`, then the operation will fail and the sent assets may be * at risk. * * `remote_fees_id` may use different transfer type than rest of `assets` and can be * specified through `fees_transfer_type`. * * The caller needs to specify what should happen to the transferred assets once they reach * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which * contains the instructions to execute on `dest` as 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 the `assets` even further. * * - `origin`: Must be capable of withdrawing the `assets` and 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 the `dest` (and possibly reserve) chains. * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. * - `remote_fees_id`: One of the included `assets` to be used to pay fees. * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain 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. */ transfer_assets_using_type_and_then: TxDescriptor<Anonymize<I9bnv6lu0crf1q>>; /** * Authorize another `aliaser` location to alias into the local `origin` making this call. * The `aliaser` is only authorized until the provided `expiry` block number. * The call can also be used for a previously authorized alias in order to update its * `expiry` block 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 the `aliaser` location to act in * their/your name. Once authorized using this call, the `aliaser` can freely impersonate * `origin` in XCM programs executed on the local chain. */ add_authorized_alias: TxDescriptor<Anonymize<Iauhjqifrdklq7>>; /** * Remove a previously authorized `aliaser` from the list of locations that can alias into * the local `origin` making this call. */ remove_authorized_alias: TxDescriptor<Anonymize<Ie1uso9m8rt5cf>>; /** * Remove all previously authorized `aliaser`s that can alias into the local `origin` * making this call. */ remove_all_authorized_aliases: TxDescriptor<undefined>; }; Assets: { /** * 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 `CreateOrigin` and 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 `Created` event when successful. * * Weight: `O(1)` */ create: TxDescriptor<Anonymize<Ic357tcepuvo5c>>; /** * 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 using * `transfer_ownership` and `set_team`. * - `min_balance`: The minimum balance of this new asset that any single account must * have. If an account's balance is reduced below this, then it collapses to zero. * * Emits `ForceCreated` event when successful. * * Weight: `O(1)` */ force_create: TxDescriptor<Anonymize<I2rnoam876ruhj>>; /** * Start the process of destroying a fungible asset class. * * `start_destroy` is the first in a series of extrinsics that should be called, to allow * destruction of an asset class. * * The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`. * * - `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. */ start_destroy: TxDescriptor<Anonymize<Ic5b47dj4coa3r>>; /** * Destroy all accounts associated with a given asset. * * `destroy_accounts` should only be called after `start_destroy` has been called, and the * asset is in a `Destroying` state. * * Due to weight restrictions, this function may need to be called multiple times to fully * destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time. * * - `id`: The identifier of the asset to be destroyed. This must identify an existing * asset. * * Each call emits the `Event::DestroyedAccounts` event. */ destroy_accounts: TxDescriptor<Anonymize<Ic5b47dj4coa3r>>; /** * Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit). * * `destroy_approvals` should only be called after `start_destroy` has been called, and the * asset is in a `Destroying` state. * * Due to weight restrictions, this function may need to be called multiple times to fully * destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time. * * - `id`: The identifier of the asset to be destroyed. This must identify an existing * asset. * * Each call emits the `Event::DestroyedApprovals` event. */ destroy_approvals: TxDescriptor<Anonymize<Ic5b47dj4coa3r>>; /** * Complete destroying asset and unreserve currency. * * `finish_destroy` should only be called after `start_destroy` has been called, and the * asset is in a `Destroying` state. 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::Destroyed` event. */ finish_destroy: TxDescriptor<Anonymize<Ic5b47dj4coa3r>>; /** * Mint assets of a particular class. * * The origin must be Signed and the sender must be the Issuer of the asset `id`. * * - `id`: The identifier of the asset to have some amount minted. * - `beneficiary`: The account to be credited with the minted assets. * - `amount`: The amount of the asset to be minted. * * Emits `Issued` event when successful. * * Weight: `O(1)` * Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`. */ mint: TxDescriptor<Anonymize<Ib3qnc19gu633c>>; /** * Reduce the balance of `who` by as much as possible up to `amount` assets of `id`. * * Origin must be Signed and the sender should be the Manager of the asset `id`. * * Bails with `NoAccount` if the `who` is already dead. * * - `id`: The identifier of the asset to have some amount burned. * - `who`: The account to be debited from. * - `amount`: The maximum amount by which `who`'s balance should be reduced. * * Emits `Burned` with the actual amount burned. If this takes the balance to below the * minimum for the asset, then the amount burned is increased to take it to zero. * * Weight: `O(1)` * Modes: Post-existence of `who`; Pre & post Zombie-status of `who`. */ burn: TxDescriptor<Anonymize<Ifira6u9hi7cu1>>; /** * Move some assets from the sender account to another. * * Origin must be Signed. * * - `id`: The identifier of the asset to have some amount transferred. * - `target`: The account to be credited. * - `amount`: The amount by which the sender's balance of assets should be reduced and * `target`'s balance increased. The amount actually transferred may be slightly greater in * the case that the transfer would otherwise take the sender balance above zero but below * the minimum balance. Must be greater than zero. * * Emits `Transferred` with the actual amount transferred. If this takes the source balance * to below the minimum for the asset, then the amount transferred is increased to take it * to zero. * * Weight: `O(1)` * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of * `target`. */ transfer: TxDescriptor<Anonymize<I72tqocvdoqfff>>; /** * Move some assets from the sender account to another, keeping the sender account alive. * * Origin must be Signed. * * - `id`: The identifier of the asset to have some amount transferred. * - `target`: The account to be credited. * - `amount`: The amount by which the sender's balance of assets should be reduced and * `target`'s balance increased. The amount actually transferred may be slightly greater in * the case that the transfer would otherwise take the sender balance above zero but below * the minimum balance. Must be greater than zero. * * Emits `Transferred` with the actual amount transferred. If this takes the source balance * to below the minimum for the asset, then the amount transferred is increased to take it * to zero. * * Weight: `O(1)` * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of * `target`. */ transfer_keep_alive: TxDescriptor<Anonymize<I72tqocvdoqfff>>; /** * Move some assets from one account to another. * * Origin must be Signed and the sender should be the Admin of the asset `id`. * * - `id`: The identifier of the asset to have some amount transferred. * - `source`: The account to be debited. * - `dest`: The account to be credited. * - `amount`: The amount by which the `source`'s balance of assets should be reduced and * `dest`'s balance increased. The amount actually transferred may be slightly greater in * the case that the transfer would otherwise take the `source` balance above zero but * below the minimum balance. Must be greater than zero. * * Emits `Transferred` with the actual amount transferred. If this takes the source balance * to below the minimum for the asset, then the amount transferred is increased to take it * to zero. * * Weight: `O(1)` * Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of * `dest`. */ force_transfer: TxDescriptor<Anonymize<I2i27f3sfmvc05>>; /** * Disallow further unprivileged transfers of an asset `id` from an account `who`. `who` * must already exist as an entry in `Account`s of the asset. If you want to freeze an * account that does not have an entry, use `touch_other` first. * * 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)` */ freeze: TxDescriptor<Anonymize<I1nlrtd1epki2d>>; /** * 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)` */ thaw: TxDescriptor<Anonymize<I1nlrtd1epki2d>>; /** * 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)` */ freeze_asset: TxDescriptor<Anonymize<Ic5b47dj4coa3r>>; /** * 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)` */ thaw_asset: TxDescriptor<Anonymize<Ic5b47dj4coa3r>>; /** * 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)` */ transfer_ownership: TxDescriptor<Anonymize<I3abtumcmempjs>>; /** * 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)` */ set_team: TxDescriptor<Anonymize<Id81m8flopt8ha>>; /** * Set the metadata for an asset. * * Origin must be Signed and the sender should be the Owner of the asset `id`. * * Funds of sender are reserved according to the formula: * `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into * account any already reserved funds. * * - `id`: The identifier of the asset to update. * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. * - `decimals`: The number of decimals this asset uses to represent one unit. * * Emits `MetadataSet`. * * Weight: `O(1)` */ set_metadata: TxDescriptor<Anonymize<I8hff7chabggkd>>; /** * 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)` */ clear_metadata: TxDescriptor<Anonymize<Ic5b47dj4coa3r>>; /** * Force the metadata for an asset to some value. * * Origin must be ForceOrigin. * * Any deposit is left alone. * * - `id`: The identifier of the asset to update. * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. * - `decimals`: The number of decimals this asset uses to represent one unit. * * Emits `MetadataSet`. * * Weight: `O(N + S)` where N and S are the length of the name and symbol respectively. */ force_set_metadata: TxDescriptor<Anonymize<I49i39mtj1ivbs>>; /** * 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)` */ force_clear_metadata: TxDescriptor<Anonymize<Ic5b47dj4coa3r>>; /** * Alter the attributes of a given asset. * * Origin must be `ForceOrigin`. * * - `id`: The identifier of the asset. * - `owner`: The new Owner of this asset. * - `issuer`: The new Issuer of this asset. * - `admin`: The new Admin of this asset. * - `freezer`: The new Freezer of this asset. * - `min_balance`: The minimum balance of this new asset that any single account must * have. If an account's balance is reduced below this, then it collapses to zero. * - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient * value to account for the state bloat associated with its balance storage. If set to * `true`, then non-zero balances may be stored without a `consumer` reference (and thus * an ED in the Balances pallet or whatever else is used to control user-account state * growth). * - `is_frozen`: Whether this asset class is frozen except for permissioned/admin * instructions. * * Emits `AssetStatusChanged` with the identity of the asset. * * Weight: `O(1)` */ force_asset_status: TxDescriptor<Anonymize<Ifkr2kcak2vto1>>; /** * Approve an amount of asset for transfer by a delegated third-party account. * * Origin must be Signed. * * Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account * for the purpose of holding the approval. If some non-zero amount of assets is already * approved from signing account to `delegate`, then it is topped up or unreserved to * meet the right value. * * NOTE: The signing account does not need to own `amount` of assets at the point of * making this call. * * - `id`: The identifier of the asset. * - `delegate`: The account to delegate permission to transfer asset. * - `amount`: The amount of asset that may be transferred by `delegate`. If there is * already an approval in place, then this acts additively. * * Emits `ApprovedTransfer` on success. * * Weight: `O(1)` */ approve_transfer: TxDescriptor<Anonymize<I1ju6r8q0cs9jt>>; /** * Cancel all of some asset approved for delegated transfer by a third-party account. * * Origin must be Signed and there must be an approval in place between signer and * `delegate`. * * Unreserves any deposit previously reserved by `approve_transfer` for the approval. * * - `id`: The identifier of the asset. * - `delegate`: The account delegated permission to transfer asset. * * Emits `ApprovalCancelled` on success. * * Weight: `O(1)` */ cancel_approval: TxDescriptor<Anonymize<I4kpeq6j7cd5bu>>; /** * Cancel all of some asset approved for delegated transfer by a third-party account. * * Origin must be either ForceOrigin or Signed origin with the signer being the Admin * account of the asset `id`. * * Unreserves any deposit previously reserved by `approve_transfer` for the approval. * * - `id`: The identifier of the asset. * - `delegate`: The account delegated permission to transfer asset. * * Emits `ApprovalCancelled` on success. * * Weight: `O(1)` */ force_cancel_approval: TxDescriptor<Anonymize<I5na1ka76k6811>>; /** * Transfer some asset balance from a previously delegated account to some third-party * account. * * Origin must be Signed and there must be an approval in place by the `owner` to the * signer. * * If the entire amount approved for transfer is transferred, then any deposit previously * reserved by `approve_transfer` is unreserved. * * - `id`: The identifier of the asset. * - `owner`: The account which previously approved for a transfer of at least `amount` and * from which the asset balance will be withdrawn. * - `destination`: The account to which the asset balance of `amount` will be transferred. * - `amount`: The amount of assets to transfer. * * Emits `TransferredApproved` on success. * * Weight: `O(1)` */ transfer_approved: TxDescriptor<Anonymize<I59mhdb9omdqfa>>; /** * Create an asset account for non-provider assets. * * A deposit will be taken from the signer account. * * - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit * to be taken. * - `id`: The identifier of the asset for the account to be created. * * Emits `Touched` event when successful. */ touch: TxDescriptor<Anonymize<Ic5b47dj4coa3r>>; /** * 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`: If `true` then 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 `Refunded` event when successful. */ refund: TxDescriptor<Anonymize<I9vl5kpk0fpakt>>; /** * 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_balance` is 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 of `min_balance`. * * Emits `AssetMinBalanceChanged` event when successful. */ set_min_balance: TxDescriptor<Anonymize<I717jt61hu19b4>>; /** * Create an asset account for `who`. * * 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, the asset status must * be live. * - `who`: The account to be created. * * Emits `Touched` event when successful. */ touch_other: TxDescriptor<Anonymize<I1nlrtd1epki2d>>; /** * Return the deposit (if any) of a target asset account. Useful if you are the depositor. * * The origin must be Signed and