diff --git a/packages/types-augment/src/registry/interfaces.ts b/packages/types-augment/src/registry/interfaces.ts index 48e045ac7459..3a28ca1ca0b5 100644 --- a/packages/types-augment/src/registry/interfaces.ts +++ b/packages/types-augment/src/registry/interfaces.ts @@ -30,6 +30,7 @@ import type { FundIndex, FundInfo, LastContribution, TrieIndex } from '@polkadot import type { CollationInfo, CollationInfoV1, ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@polkadot/types/interfaces/cumulus'; import type { AccountVote, AccountVoteSplit, AccountVoteStandard, Conviction, Delegations, PreimageStatus, PreimageStatusAvailable, PriorLock, PropIndex, Proposal, ProxyState, ReferendumIndex, ReferendumInfo, ReferendumInfoFinished, ReferendumInfoTo239, ReferendumStatus, Tally, Voting, VotingDelegating, VotingDirect, VotingDirectVote } from '@polkadot/types/interfaces/democracy'; import type { BlockStats } from '@polkadot/types/interfaces/dev'; +import type { CallDryRunEffects, DispatchResultWithPostInfo, PostDispatchInfo, XcmDryRunApiError, XcmDryRunEffects } from '@polkadot/types/interfaces/dryRunApi'; import type { ApprovalFlag, DefunctVoter, Renouncing, SetIndex, Vote, VoteIndex, VoteThreshold, VoterInfo } from '@polkadot/types/interfaces/elections'; import type { CreatedBlock, ImportedAux } from '@polkadot/types/interfaces/engine'; import type { BlockV0, BlockV1, BlockV2, EIP1559Transaction, EIP2930Transaction, EthAccessList, EthAccessListItem, EthAccount, EthAddress, EthBlock, EthBloom, EthCallRequest, EthFeeHistory, EthFilter, EthFilterAddress, EthFilterChanges, EthFilterTopic, EthFilterTopicEntry, EthFilterTopicInner, EthHeader, EthLog, EthReceipt, EthReceiptV0, EthReceiptV3, EthRichBlock, EthRichHeader, EthStorageProof, EthSubKind, EthSubParams, EthSubResult, EthSyncInfo, EthSyncStatus, EthTransaction, EthTransactionAction, EthTransactionCondition, EthTransactionRequest, EthTransactionSignature, EthTransactionStatus, EthWork, EthereumAccountId, EthereumAddress, EthereumLookupSource, EthereumSignature, LegacyTransaction, TransactionV0, TransactionV1, TransactionV2 } from '@polkadot/types/interfaces/eth'; @@ -73,7 +74,7 @@ import type { TransactionSource, TransactionValidity, ValidTransaction } from '@ import type { ClassDetails, ClassId, ClassMetadata, DepositBalance, DepositBalanceOf, DestroyWitness, InstanceDetails, InstanceId, InstanceMetadata } from '@polkadot/types/interfaces/uniques'; import type { Multisig, Timepoint } from '@polkadot/types/interfaces/utility'; import type { VestingInfo } from '@polkadot/types/interfaces/vesting'; -import type { AssetInstance, AssetInstanceV0, AssetInstanceV1, AssetInstanceV2, BodyId, BodyPart, DoubleEncodedCall, Fungibility, FungibilityV0, FungibilityV1, FungibilityV2, InboundStatus, InstructionV2, InteriorMultiLocation, Junction, JunctionV0, JunctionV1, JunctionV2, Junctions, JunctionsV1, JunctionsV2, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetFilterV2, MultiAssetV0, MultiAssetV1, MultiAssetV2, MultiAssets, MultiAssetsV1, MultiAssetsV2, MultiLocation, MultiLocationV0, MultiLocationV1, MultiLocationV2, NetworkId, OriginKindV0, OriginKindV1, OriginKindV2, OutboundStatus, Outcome, QueryId, QueryStatus, QueueConfigData, Response, ResponseV0, ResponseV1, ResponseV2, ResponseV2Error, ResponseV2Result, VersionMigrationStage, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedResponse, VersionedXcm, WeightLimitV2, WildFungibility, WildFungibilityV0, WildFungibilityV1, WildFungibilityV2, WildMultiAsset, WildMultiAssetV1, WildMultiAssetV2, Xcm, XcmAssetId, XcmError, XcmErrorV0, XcmErrorV1, XcmErrorV2, XcmOrder, XcmOrderV0, XcmOrderV1, XcmOrderV2, XcmOrigin, XcmOriginKind, XcmV0, XcmV1, XcmV2, XcmVersion, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm'; +import type { AssetIdV2, AssetIdV3, AssetIdV4, AssetInstance, AssetInstanceV0, AssetInstanceV1, AssetInstanceV2, AssetInstanceV3, AssetInstanceV4, BodyId, BodyIdV2, BodyIdV3, BodyPart, BodyPartV2, BodyPartV3, DoubleEncodedCall, Fungibility, FungibilityV0, FungibilityV1, FungibilityV2, FungibilityV3, FungibilityV4, InboundStatus, InstructionV2, InstructionV3, InstructionV4, InteriorMultiLocation, InteriorMultiLocationV2, InteriorMultiLocationV3, Junction, JunctionV0, JunctionV1, JunctionV2, JunctionV3, JunctionV4, Junctions, JunctionsV1, JunctionsV2, JunctionsV3, JunctionsV4, MaxPalletNameLen, MaxPalletsInfo, MaybeErrorCodeV3, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetFilterV2, MultiAssetFilterV3, MultiAssetFilterV4, MultiAssetV0, MultiAssetV1, MultiAssetV2, MultiAssetV3, MultiAssetV4, MultiAssets, MultiAssetsV1, MultiAssetsV2, MultiAssetsV3, MultiAssetsV4, MultiLocation, MultiLocationV0, MultiLocationV1, MultiLocationV2, MultiLocationV3, MultiLocationV4, NetworkId, NetworkIdV2, NetworkIdV3, NetworkIdV4, OriginKindV0, OriginKindV1, OriginKindV2, OriginKindV3, OriginKindV4, OutboundStatus, Outcome, OutcomeV4, PalletInfoV3, PalletInfoV4, QueryId, QueryResponseInfoV3, QueryResponseInfoV4, QueryStatus, QueueConfigData, Response, ResponseV0, ResponseV1, ResponseV2, ResponseV2Error, ResponseV3, ResponseV3Error, ResponseV3Result, ResponseV4, UncheckedFungibilityV4, VersionMigrationStage, VersionV3, VersionV4, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedResponse, VersionedXcm, WeightLimitV2, WeightLimitV3, WildFungibility, WildFungibilityV0, WildFungibilityV1, WildFungibilityV2, WildFungibilityV3, WildFungibilityV4, WildMultiAsset, WildMultiAssetV1, WildMultiAssetV2, WildMultiAssetV3, WildMultiAssetV4, Xcm, XcmAssetId, XcmError, XcmErrorV0, XcmErrorV1, XcmErrorV2, XcmErrorV3, XcmErrorV4, XcmOrderV0, XcmOrderV1, XcmOrigin, XcmOriginKind, XcmV0, XcmV1, XcmV2, XcmV3, XcmV4, XcmVersion, XcmpMessageFormat } from '@polkadot/types/interfaces/xcm'; import type { XcmPaymentApiError } from '@polkadot/types/interfaces/xcmPaymentApi'; import type { Error } from '@polkadot/types/interfaces/xcmRuntimeApi'; @@ -122,10 +123,15 @@ declare module '@polkadot/types/types/registry' { AssetDestroyWitness: AssetDestroyWitness; AssetDetails: AssetDetails; AssetId: AssetId; + AssetIdV2: AssetIdV2; + AssetIdV3: AssetIdV3; + AssetIdV4: AssetIdV4; AssetInstance: AssetInstance; AssetInstanceV0: AssetInstanceV0; AssetInstanceV1: AssetInstanceV1; AssetInstanceV2: AssetInstanceV2; + AssetInstanceV3: AssetInstanceV3; + AssetInstanceV4: AssetInstanceV4; AssetMetadata: AssetMetadata; AssetOptions: AssetOptions; AssignmentId: AssignmentId; @@ -198,7 +204,11 @@ declare module '@polkadot/types/types/registry' { BlockV2: BlockV2; BlockWeights: BlockWeights; BodyId: BodyId; + BodyIdV2: BodyIdV2; + BodyIdV3: BodyIdV3; BodyPart: BodyPart; + BodyPartV2: BodyPartV2; + BodyPartV3: BodyPartV3; bool: bool; Bool: Bool; Bounty: Bounty; @@ -214,6 +224,7 @@ declare module '@polkadot/types/types/registry' { BufferedSessionChange: BufferedSessionChange; Bytes: Bytes; Call: Call; + CallDryRunEffects: CallDryRunEffects; CallHash: CallHash; CallHashOf: CallHashOf; CallIndex: CallIndex; @@ -373,6 +384,7 @@ declare module '@polkadot/types/types/registry' { DispatchResult: DispatchResult; DispatchResultOf: DispatchResultOf; DispatchResultTo198: DispatchResultTo198; + DispatchResultWithPostInfo: DispatchResultWithPostInfo; DisputeLocation: DisputeLocation; DisputeProof: DisputeProof; DisputeResult: DisputeResult; @@ -533,6 +545,8 @@ declare module '@polkadot/types/types/registry' { FungibilityV0: FungibilityV0; FungibilityV1: FungibilityV1; FungibilityV2: FungibilityV2; + FungibilityV3: FungibilityV3; + FungibilityV4: FungibilityV4; FungiblesAccessError: FungiblesAccessError; Gas: Gas; GenesisBuildErr: GenesisBuildErr; @@ -619,8 +633,12 @@ declare module '@polkadot/types/types/registry' { InstantiateReturnValueOk: InstantiateReturnValueOk; InstantiateReturnValueTo267: InstantiateReturnValueTo267; InstructionV2: InstructionV2; + InstructionV3: InstructionV3; + InstructionV4: InstructionV4; InstructionWeights: InstructionWeights; InteriorMultiLocation: InteriorMultiLocation; + InteriorMultiLocationV2: InteriorMultiLocationV2; + InteriorMultiLocationV3: InteriorMultiLocationV3; InvalidDisputeStatementKind: InvalidDisputeStatementKind; InvalidTransaction: InvalidTransaction; isize: isize; @@ -630,9 +648,13 @@ declare module '@polkadot/types/types/registry' { Junctions: Junctions; JunctionsV1: JunctionsV1; JunctionsV2: JunctionsV2; + JunctionsV3: JunctionsV3; + JunctionsV4: JunctionsV4; JunctionV0: JunctionV0; JunctionV1: JunctionV1; JunctionV2: JunctionV2; + JunctionV3: JunctionV3; + JunctionV4: JunctionV4; Justification: Justification; JustificationNotification: JustificationNotification; Justifications: Justifications; @@ -657,6 +679,9 @@ declare module '@polkadot/types/types/registry' { LookupSource: LookupSource; LookupTarget: LookupTarget; LotteryConfig: LotteryConfig; + MaxPalletNameLen: MaxPalletNameLen; + MaxPalletsInfo: MaxPalletsInfo; + MaybeErrorCodeV3: MaybeErrorCodeV3; MaybeRandomness: MaybeRandomness; MaybeVrf: MaybeVrf; MemberCount: MemberCount; @@ -713,22 +738,33 @@ declare module '@polkadot/types/types/registry' { MultiAssetFilter: MultiAssetFilter; MultiAssetFilterV1: MultiAssetFilterV1; MultiAssetFilterV2: MultiAssetFilterV2; + MultiAssetFilterV3: MultiAssetFilterV3; + MultiAssetFilterV4: MultiAssetFilterV4; MultiAssets: MultiAssets; MultiAssetsV1: MultiAssetsV1; MultiAssetsV2: MultiAssetsV2; + MultiAssetsV3: MultiAssetsV3; + MultiAssetsV4: MultiAssetsV4; MultiAssetV0: MultiAssetV0; MultiAssetV1: MultiAssetV1; MultiAssetV2: MultiAssetV2; + MultiAssetV3: MultiAssetV3; + MultiAssetV4: MultiAssetV4; MultiDisputeStatementSet: MultiDisputeStatementSet; MultiLocation: MultiLocation; MultiLocationV0: MultiLocationV0; MultiLocationV1: MultiLocationV1; MultiLocationV2: MultiLocationV2; + MultiLocationV3: MultiLocationV3; + MultiLocationV4: MultiLocationV4; Multiplier: Multiplier; Multisig: Multisig; MultiSignature: MultiSignature; MultiSigner: MultiSigner; NetworkId: NetworkId; + NetworkIdV2: NetworkIdV2; + NetworkIdV3: NetworkIdV3; + NetworkIdV4: NetworkIdV4; NetworkState: NetworkState; NetworkStatePeerset: NetworkStatePeerset; NetworkStatePeersetInfo: NetworkStatePeersetInfo; @@ -772,6 +808,8 @@ declare module '@polkadot/types/types/registry' { OriginKindV0: OriginKindV0; OriginKindV1: OriginKindV1; OriginKindV2: OriginKindV2; + OriginKindV3: OriginKindV3; + OriginKindV4: OriginKindV4; OutboundHrmpChannelLimitations: OutboundHrmpChannelLimitations; OutboundHrmpMessage: OutboundHrmpMessage; OutboundLaneData: OutboundLaneData; @@ -779,6 +817,7 @@ declare module '@polkadot/types/types/registry' { OutboundPayload: OutboundPayload; OutboundStatus: OutboundStatus; Outcome: Outcome; + OutcomeV4: OutcomeV4; OuterEnums15: OuterEnums15; OverweightIndex: OverweightIndex; Owner: Owner; @@ -793,6 +832,8 @@ declare module '@polkadot/types/types/registry' { PalletEventMetadataLatest: PalletEventMetadataLatest; PalletEventMetadataV14: PalletEventMetadataV14; PalletId: PalletId; + PalletInfoV3: PalletInfoV3; + PalletInfoV4: PalletInfoV4; PalletMetadataLatest: PalletMetadataLatest; PalletMetadataV14: PalletMetadataV14; PalletMetadataV15: PalletMetadataV15; @@ -845,6 +886,7 @@ declare module '@polkadot/types/types/registry' { Points: Points; PortableType: PortableType; PortableTypeV14: PortableTypeV14; + PostDispatchInfo: PostDispatchInfo; Precommits: Precommits; PrefabWasmModule: PrefabWasmModule; PrefixedStorageKey: PrefixedStorageKey; @@ -865,6 +907,8 @@ declare module '@polkadot/types/types/registry' { PvfExecTimeoutKind: PvfExecTimeoutKind; PvfPrepTimeoutKind: PvfPrepTimeoutKind; QueryId: QueryId; + QueryResponseInfoV3: QueryResponseInfoV3; + QueryResponseInfoV4: QueryResponseInfoV4; QueryStatus: QueryStatus; QueueConfigData: QueueConfigData; QueuedParathread: QueuedParathread; @@ -922,7 +966,10 @@ declare module '@polkadot/types/types/registry' { ResponseV1: ResponseV1; ResponseV2: ResponseV2; ResponseV2Error: ResponseV2Error; - ResponseV2Result: ResponseV2Result; + ResponseV3: ResponseV3; + ResponseV3Error: ResponseV3Error; + ResponseV3Result: ResponseV3Result; + ResponseV4: ResponseV4; Retriable: Retriable; RewardDestination: RewardDestination; RewardPoint: RewardPoint; @@ -1159,6 +1206,7 @@ declare module '@polkadot/types/types/registry' { U8: U8; UnappliedSlash: UnappliedSlash; UnappliedSlashOther: UnappliedSlashOther; + UncheckedFungibilityV4: UncheckedFungibilityV4; UncleEntryItem: UncleEntryItem; UnknownTransaction: UnknownTransaction; UnlockChunk: UnlockChunk; @@ -1197,6 +1245,8 @@ declare module '@polkadot/types/types/registry' { VersionedResponse: VersionedResponse; VersionedXcm: VersionedXcm; VersionMigrationStage: VersionMigrationStage; + VersionV3: VersionV3; + VersionV4: VersionV4; VestingInfo: VestingInfo; VestingSchedule: VestingSchedule; Vote: Vote; @@ -1217,6 +1267,7 @@ declare module '@polkadot/types/types/registry' { VrfProof: VrfProof; Weight: Weight; WeightLimitV2: WeightLimitV2; + WeightLimitV3: WeightLimitV3; WeightMultiplier: WeightMultiplier; WeightPerClass: WeightPerClass; WeightToFeeCoefficient: WeightToFeeCoefficient; @@ -1227,9 +1278,13 @@ declare module '@polkadot/types/types/registry' { WildFungibilityV0: WildFungibilityV0; WildFungibilityV1: WildFungibilityV1; WildFungibilityV2: WildFungibilityV2; + WildFungibilityV3: WildFungibilityV3; + WildFungibilityV4: WildFungibilityV4; WildMultiAsset: WildMultiAsset; WildMultiAssetV1: WildMultiAssetV1; WildMultiAssetV2: WildMultiAssetV2; + WildMultiAssetV3: WildMultiAssetV3; + WildMultiAssetV4: WildMultiAssetV4; WinnersData: WinnersData; WinnersData10: WinnersData10; WinnersDataTuple: WinnersDataTuple; @@ -1240,14 +1295,16 @@ declare module '@polkadot/types/types/registry' { WithdrawReasons: WithdrawReasons; Xcm: Xcm; XcmAssetId: XcmAssetId; + XcmDryRunApiError: XcmDryRunApiError; + XcmDryRunEffects: XcmDryRunEffects; XcmError: XcmError; XcmErrorV0: XcmErrorV0; XcmErrorV1: XcmErrorV1; XcmErrorV2: XcmErrorV2; - XcmOrder: XcmOrder; + XcmErrorV3: XcmErrorV3; + XcmErrorV4: XcmErrorV4; XcmOrderV0: XcmOrderV0; XcmOrderV1: XcmOrderV1; - XcmOrderV2: XcmOrderV2; XcmOrigin: XcmOrigin; XcmOriginKind: XcmOriginKind; XcmPaymentApiError: XcmPaymentApiError; @@ -1255,6 +1312,8 @@ declare module '@polkadot/types/types/registry' { XcmV0: XcmV0; XcmV1: XcmV1; XcmV2: XcmV2; + XcmV3: XcmV3; + XcmV4: XcmV4; XcmVersion: XcmVersion; } // InterfaceTypes } // declare module diff --git a/packages/types-create/src/util/xcm.ts b/packages/types-create/src/util/xcm.ts index 673242341d5b..7f9004e89d65 100644 --- a/packages/types-create/src/util/xcm.ts +++ b/packages/types-create/src/util/xcm.ts @@ -3,9 +3,9 @@ import { objectSpread } from '@polkadot/util'; -export const XCM_MAPPINGS = ['AssetInstance', 'Fungibility', 'Junction', 'Junctions', 'MultiAsset', 'MultiAssetFilter', 'MultiLocation', 'Response', 'WildFungibility', 'WildMultiAsset', 'Xcm', 'XcmError', 'XcmOrder']; +export const XCM_MAPPINGS = ['AssetInstance', 'Fungibility', 'Junction', 'Junctions', 'MultiAsset', 'MultiAssetFilter', 'MultiLocation', 'Response', 'WildFungibility', 'WildMultiAsset', 'Xcm', 'XcmError']; -export function mapXcmTypes (version: 'V0' | 'V1' | 'V2'): Record { +export function mapXcmTypes (version: 'V0' | 'V1' | 'V2' | 'V3' | 'V4'): Record { return XCM_MAPPINGS.reduce>((all, key) => objectSpread(all, { [key]: `${key}${version}` }), {} ); diff --git a/packages/types/src/interfaces/definitions.spec.ts b/packages/types/src/interfaces/definitions.spec.ts index dfac68c234fc..a2842b3da110 100644 --- a/packages/types/src/interfaces/definitions.spec.ts +++ b/packages/types/src/interfaces/definitions.spec.ts @@ -122,7 +122,7 @@ describe('runtime definitions', (): void => { for (const { methods, version } of versions) { describe(`version ${version}`, (): void => { const methodsEntries = Object.entries(methods); - const skipInspectTypes = ['StagingXcmV3MultiLocation', 'StagingXcmV4Location', 'Result, FungiblesAccessError>', 'Result', 'XcmVersionedLocation', 'XcmVersionedAssetId', 'XcmVersionedXcm', 'Result, XcmPaymentApiError>']; + const skipInspectTypes = ['StagingXcmV3MultiLocation', 'StagingXcmV4Location', 'Result, FungiblesAccessError>', 'Result', 'XcmVersionedLocation', 'XcmVersionedAssetId', 'XcmVersionedXcm', 'Result, XcmPaymentApiError>', 'VersionedMultiLocation', 'VersionedXcm', 'PostDispatchInfo', 'DispatchResultWithPostInfo', 'CallDryRunEffects', 'XcmDryRunEffects', 'XcmDryRunApiError', 'Result', 'Result']; for (const [key, { params, type }] of methodsEntries) { describe(`${key}`, (): void => { diff --git a/packages/types/src/interfaces/definitions.ts b/packages/types/src/interfaces/definitions.ts index 10b5236b63a7..c0bd68bcc731 100644 --- a/packages/types/src/interfaces/definitions.ts +++ b/packages/types/src/interfaces/definitions.ts @@ -66,6 +66,7 @@ export { default as poll } from './poll/definitions.js'; export { default as purchase } from './purchase/definitions.js'; // XCM related types +export { default as dryRunApi } from './dryRunApi/definitions.js'; export { default as xcm } from './xcm/definitions.js'; export { default as xcmPaymentApi } from './xcmPaymentApi/definitions.js'; export { default as xcmRuntimeApi } from './xcmRuntimeApi/definitions.js'; diff --git a/packages/types/src/interfaces/dryRunApi/definitions.ts b/packages/types/src/interfaces/dryRunApi/definitions.ts new file mode 100644 index 000000000000..3fc0779b9a23 --- /dev/null +++ b/packages/types/src/interfaces/dryRunApi/definitions.ts @@ -0,0 +1,38 @@ +// Copyright 2017-2024 @polkadot/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + PostDispatchInfo: { + actualWeight: 'Option', + paysFee: 'Pays' + }, + DispatchResultWithPostInfo: 'Result', + CallDryRunEffects: { + executionResult: 'DispatchResultWithPostInfo', + emittedEvents: 'Vec', + localXcm: 'Option', + forwardedXcms: 'Vec<(VersionedMultiLocation, Vec)>' + }, + XcmDryRunEffects: { + executionResult: 'OutcomeV4', + emittedEvents: 'Vec', + forwardedXcms: 'Vec<(VersionedMultiLocation, Vec)>' + }, + XcmDryRunApiError: { + _enum: [ + 'Unimplemented', + 'VersionedConversionFailed' + ] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/dryRunApi/index.ts b/packages/types/src/interfaces/dryRunApi/index.ts new file mode 100644 index 000000000000..7f1de782f76f --- /dev/null +++ b/packages/types/src/interfaces/dryRunApi/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/dryRunApi/runtime.ts b/packages/types/src/interfaces/dryRunApi/runtime.ts new file mode 100644 index 000000000000..029fcb842e97 --- /dev/null +++ b/packages/types/src/interfaces/dryRunApi/runtime.ts @@ -0,0 +1,42 @@ +// Copyright 2017-2024 @polkadot/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + DryRunApi: [ + { + methods: { + dry_run_call: { + description: 'Dry run call', + params: [ + { + name: 'origin', + type: 'OriginCaller' + }, + { + name: 'call', + type: 'RuntimeCall' + } + ], + type: 'Result' + }, + dry_run_xcm: { + description: 'Dry run XCM program', + params: [ + { + name: 'originLocation', + type: 'VersionedMultiLocation' + }, + { + name: 'xcm', + type: 'VersionedXcm' + } + ], + type: 'Result' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/dryRunApi/types.ts b/packages/types/src/interfaces/dryRunApi/types.ts new file mode 100644 index 000000000000..25bdfa2f2c25 --- /dev/null +++ b/packages/types/src/interfaces/dryRunApi/types.ts @@ -0,0 +1,46 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, Option, Result, Struct, Vec } from '@polkadot/types-codec'; +import type { ITuple } from '@polkadot/types-codec/types'; +import type { Pays, Weight } from '@polkadot/types/interfaces/runtime'; +import type { DispatchError, Event } from '@polkadot/types/interfaces/system'; +import type { OutcomeV4, VersionedMultiLocation, VersionedXcm } from '@polkadot/types/interfaces/xcm'; + +/** @name CallDryRunEffects */ +export interface CallDryRunEffects extends Struct { + readonly executionResult: DispatchResultWithPostInfo; + readonly emittedEvents: Vec; + readonly localXcm: Option; + readonly forwardedXcms: Vec]>>; +} + +/** @name DispatchResultWithPostInfo */ +export interface DispatchResultWithPostInfo extends Result { + readonly isErr: boolean; + readonly asErr: DispatchError; + readonly isOk: boolean; + readonly asOk: PostDispatchInfo; +} + +/** @name PostDispatchInfo */ +export interface PostDispatchInfo extends Struct { + readonly actualWeight: Option; + readonly paysFee: Pays; +} + +/** @name XcmDryRunApiError */ +export interface XcmDryRunApiError extends Enum { + readonly isUnimplemented: boolean; + readonly isVersionedConversionFailed: boolean; + readonly type: 'Unimplemented' | 'VersionedConversionFailed'; +} + +/** @name XcmDryRunEffects */ +export interface XcmDryRunEffects extends Struct { + readonly executionResult: OutcomeV4; + readonly emittedEvents: Vec; + readonly forwardedXcms: Vec]>>; +} + +export type PHANTOM_DRYRUNAPI = 'dryRunApi'; diff --git a/packages/types/src/interfaces/types.ts b/packages/types/src/interfaces/types.ts index f37d23118749..caa7c4ac03ee 100644 --- a/packages/types/src/interfaces/types.ts +++ b/packages/types/src/interfaces/types.ts @@ -25,6 +25,7 @@ export * from './cumulus/types.js'; export * from './democracy/types.js'; export * from './dev/types.js'; export * from './discovery/types.js'; +export * from './dryRunApi/types.js'; export * from './elections/types.js'; export * from './engine/types.js'; export * from './eth/types.js'; diff --git a/packages/types/src/interfaces/xcm/definitions.ts b/packages/types/src/interfaces/xcm/definitions.ts index 2cafb2f834ab..e1ccdc0a2b83 100644 --- a/packages/types/src/interfaces/xcm/definitions.ts +++ b/packages/types/src/interfaces/xcm/definitions.ts @@ -11,8 +11,10 @@ import { mapXcmTypes } from '@polkadot/types-create'; import { v0 } from './v0.js'; import { v1 } from './v1.js'; import { v2 } from './v2.js'; +import { v3 } from './v3.js'; +import { v4 } from './v4.js'; -const XCM_LATEST = 'V2'; +const XCM_LATEST = 'V4'; const xcm = { XcmOrigin: { @@ -87,9 +89,11 @@ export default { ...v0, ...v1, ...v2, + ...v3, + ...v4, ...mapXcmTypes(XCM_LATEST), DoubleEncodedCall: { - encoded: 'Vec' + encoded: 'Bytes' }, XcmOriginKind: { _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm'] @@ -134,33 +138,43 @@ export default { _enum: { V0: 'MultiAssetV0', V1: 'MultiAssetV1', - V2: 'MultiAssetV2' + V2: 'MultiAssetV2', + V3: 'MultiAssetV3', + V4: 'MultiAssetV4' } }, VersionedMultiAssets: { _enum: { V0: 'Vec', V1: 'MultiAssetsV1', - V2: 'MultiAssetsV2' + V2: 'MultiAssetsV2', + V3: 'MultiAssetsV3', + V4: 'MultiAssetsV4' } }, VersionedMultiLocation: { _enum: { V0: 'MultiLocationV0', V1: 'MultiLocationV1', - V2: 'MultiLocationV2' + V2: 'MultiLocationV2', + V3: 'MultiLocationV3', + V4: 'MultiLocationV4' } }, VersionedResponse: { V0: 'ResponseV0', V1: 'ResponseV1', - V2: 'ResponseV2' + V2: 'ResponseV2', + V3: 'ResponseV3', + V4: 'ResponseV4' }, VersionedXcm: { _enum: { V0: 'XcmV0', V1: 'XcmV1', - V2: 'XcmV2' + V2: 'XcmV2', + V3: 'XcmV3', + V4: 'XcmV4' } }, XcmVersion: 'u32' diff --git a/packages/types/src/interfaces/xcm/types.ts b/packages/types/src/interfaces/xcm/types.ts index 1273e2a97d63..39146b5d310c 100644 --- a/packages/types/src/interfaces/xcm/types.ts +++ b/packages/types/src/interfaces/xcm/types.ts @@ -1,12 +1,33 @@ // Auto-generated via `yarn polkadot-types-from-defs`, do not edit /* eslint-disable */ -import type { Bytes, Compact, Enum, Null, Option, Result, Struct, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; +import type { Bytes, Compact, Enum, Option, Struct, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@polkadot/types-codec'; import type { ITuple } from '@polkadot/types-codec/types'; -import type { AccountId, BlockNumber, Weight } from '@polkadot/types/interfaces/runtime'; +import type { AccountId, BlockNumber, Weight, WeightV2 } from '@polkadot/types/interfaces/runtime'; + +/** @name AssetIdV2 */ +export interface AssetIdV2 extends Enum { + readonly isConcrete: boolean; + readonly asConcrete: MultiLocationV2; + readonly isAbstract: boolean; + readonly asAbstract: Bytes; + readonly type: 'Concrete' | 'Abstract'; +} + +/** @name AssetIdV3 */ +export interface AssetIdV3 extends Enum { + readonly isConcrete: boolean; + readonly asConcrete: MultiLocationV3; + readonly isAbstract: boolean; + readonly asAbstract: Bytes; + readonly type: 'Concrete' | 'Abstract'; +} + +/** @name AssetIdV4 */ +export interface AssetIdV4 extends MultiLocationV4 {} /** @name AssetInstance */ -export interface AssetInstance extends AssetInstanceV2 {} +export interface AssetInstance extends AssetInstanceV4 {} /** @name AssetInstanceV0 */ export interface AssetInstanceV0 extends Enum { @@ -53,7 +74,54 @@ export interface AssetInstanceV1 extends Enum { } /** @name AssetInstanceV2 */ -export interface AssetInstanceV2 extends AssetInstanceV1 {} +export interface AssetInstanceV2 extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly isBlob: boolean; + readonly asBlob: Bytes; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob'; +} + +/** @name AssetInstanceV3 */ +export interface AssetInstanceV3 extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32'; +} + +/** @name AssetInstanceV4 */ +export interface AssetInstanceV4 extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32'; +} /** @name BodyId */ export interface BodyId extends Enum { @@ -69,6 +137,40 @@ export interface BodyId extends Enum { readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial'; } +/** @name BodyIdV2 */ +export interface BodyIdV2 extends Enum { + readonly isUnit: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isExecutive: boolean; + readonly isTechnical: boolean; + readonly isLegislative: boolean; + readonly isJudicial: boolean; + readonly isDefense: boolean; + readonly isAdministration: boolean; + readonly isTreasury: boolean; + readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial' | 'Defense' | 'Administration' | 'Treasury'; +} + +/** @name BodyIdV3 */ +export interface BodyIdV3 extends Enum { + readonly isUnit: boolean; + readonly isMoniker: boolean; + readonly asMoniker: U8aFixed; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isExecutive: boolean; + readonly isTechnical: boolean; + readonly isLegislative: boolean; + readonly isJudicial: boolean; + readonly isDefense: boolean; + readonly isAdministration: boolean; + readonly isTreasury: boolean; + readonly type: 'Unit' | 'Moniker' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial' | 'Defense' | 'Administration' | 'Treasury'; +} + /** @name BodyPart */ export interface BodyPart extends Enum { readonly isVoice: boolean; @@ -92,13 +194,63 @@ export interface BodyPart extends Enum { readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion'; } +/** @name BodyPartV2 */ +export interface BodyPartV2 extends Enum { + readonly isVoice: boolean; + readonly isMembers: boolean; + readonly asMembers: { + readonly count: Compact; + } & Struct; + readonly isFraction: boolean; + readonly asFraction: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isAtLeastProportion: boolean; + readonly asAtLeastProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isMoreThanProportion: boolean; + readonly asMoreThanProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion'; +} + +/** @name BodyPartV3 */ +export interface BodyPartV3 extends Enum { + readonly isVoice: boolean; + readonly isMembers: boolean; + readonly asMembers: { + readonly count: Compact; + } & Struct; + readonly isFraction: boolean; + readonly asFraction: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isAtLeastProportion: boolean; + readonly asAtLeastProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isMoreThanProportion: boolean; + readonly asMoreThanProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion'; +} + /** @name DoubleEncodedCall */ export interface DoubleEncodedCall extends Struct { readonly encoded: Bytes; } /** @name Fungibility */ -export interface Fungibility extends FungibilityV2 {} +export interface Fungibility extends FungibilityV4 {} /** @name FungibilityV0 */ export interface FungibilityV0 extends FungibilityV1 {} @@ -113,7 +265,31 @@ export interface FungibilityV1 extends Enum { } /** @name FungibilityV2 */ -export interface FungibilityV2 extends FungibilityV1 {} +export interface FungibilityV2 extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: AssetInstanceV2; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name FungibilityV3 */ +export interface FungibilityV3 extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: AssetInstanceV3; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name FungibilityV4 */ +export interface FungibilityV4 extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: AssetInstanceV4; + readonly type: 'Fungible' | 'NonFungible'; +} /** @name InboundStatus */ export interface InboundStatus extends Enum { @@ -149,8 +325,8 @@ export interface InstructionV2 extends Enum { } & Struct; readonly isTransact: boolean; readonly asTransact: { - readonly originType: OriginKindV2; - readonly requireWeightAtMost: u64; + readonly originType: XcmOriginKind; + readonly requireWeightAtMost: Compact; readonly call: DoubleEncodedCall; } & Struct; readonly isHrmpNewChannelOpenRequest: boolean; @@ -171,7 +347,7 @@ export interface InstructionV2 extends Enum { } & Struct; readonly isClearOrigin: boolean; readonly isDescendOrigin: boolean; - readonly asDescendOrigin: InteriorMultiLocation; + readonly asDescendOrigin: InteriorMultiLocationV2; readonly isReportError: boolean; readonly asReportError: { readonly queryId: Compact; @@ -181,13 +357,13 @@ export interface InstructionV2 extends Enum { readonly isDepositAsset: boolean; readonly asDepositAsset: { readonly assets: MultiAssetFilterV2; - readonly maxAssets: u32; + readonly maxAssets: Compact; readonly beneficiary: MultiLocationV2; } & Struct; readonly isDepositReserveAsset: boolean; readonly asDepositReserveAsset: { readonly assets: MultiAssetFilterV2; - readonly maxAssets: u32; + readonly maxAssets: Compact; readonly dest: MultiLocationV2; readonly xcm: XcmV2; } & Struct; @@ -210,10 +386,10 @@ export interface InstructionV2 extends Enum { } & Struct; readonly isQueryHolding: boolean; readonly asQueryHolding: { - readonly query_id: Compact; + readonly queryId: Compact; readonly dest: MultiLocationV2; readonly assets: MultiAssetFilterV2; - readonly maxResponse_Weight: Compact; + readonly maxResponseWeight: Compact; } & Struct; readonly isBuyExecution: boolean; readonly asBuyExecution: { @@ -232,18 +408,394 @@ export interface InstructionV2 extends Enum { readonly ticket: MultiLocationV2; } & Struct; readonly isTrap: boolean; - readonly asTrap: u64; - readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap'; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: Compact; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion'; +} + +/** @name InstructionV3 */ +export interface InstructionV3 extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: MultiAssetsV3; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: MultiAssetsV3; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: MultiAssetsV3; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: ResponseV3; + readonly maxWeight: WeightV2; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: MultiAssetsV3; + readonly beneficiary: MultiLocationV3; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: MultiAssetsV3; + readonly dest: MultiLocationV3; + readonly xcm: XcmV3; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: XcmOriginKind; + readonly requireWeightAtMost: WeightV2; + readonly call: DoubleEncodedCall; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: JunctionsV3; + readonly isReportError: boolean; + readonly asReportError: QueryResponseInfoV3; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: MultiAssetFilterV3; + readonly beneficiary: MultiLocationV3; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: MultiAssetFilterV3; + readonly dest: MultiLocationV3; + readonly xcm: XcmV3; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: MultiAssetFilterV3; + readonly want: MultiAssetsV3; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: MultiAssetFilterV3; + readonly reserve: MultiLocationV3; + readonly xcm: XcmV3; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: MultiAssetFilterV3; + readonly dest: MultiLocationV3; + readonly xcm: XcmV3; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: QueryResponseInfoV3; + readonly assets: MultiAssetFilterV3; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: MultiAssetV3; + readonly weightLimit: WeightLimitV3; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV3; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV3; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: MultiAssetsV3; + readonly ticket: MultiLocationV3; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: WeightV2; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: MultiAssetsV3; + readonly isExpectAsset: boolean; + readonly asExpectAsset: MultiAssetsV3; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: MaybeErrorCodeV3; + readonly isQueryPallet: boolean; + readonly asQueryPallet: { + readonly moduleName: Bytes; + readonly responseInfo: QueryResponseInfoV3; + } & Struct; + readonly isExpectPallet: boolean; + readonly asExpectPallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: QueryResponseInfoV3; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: JunctionV3; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: NetworkIdV3; + readonly destination: JunctionsV3; + readonly xcm: XcmV3; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: MultiAssetV3; + readonly unlocker: MultiLocationV3; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: MultiAssetV3; + readonly target: MultiLocationV3; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: MultiAssetV3; + readonly owner: MultiLocationV3; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: MultiAssetV3; + readonly locker: MultiLocationV3; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: MultiLocationV3; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: WeightLimitV3; + readonly checkOrigin: Option; + } & Struct; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'ReportHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion' | 'BurnAsset' | 'ExpectAsset' | 'ExpectOrigin' | 'ExpectError' | 'ExpectTransactStatus' | 'QueryPallet' | 'ExpectPallet' | 'ReportTransactStatus' | 'ClearTransactStatus' | 'UniversalOrigin' | 'ExportMessage' | 'LockAsset' | 'UnlockAsset' | 'NoteUnlockable' | 'RequestUnlock' | 'SetFeesMode' | 'SetTopic' | 'ClearTopic' | 'AliasOrigin' | 'UnpaidExecution'; +} + +/** @name InstructionV4 */ +export interface InstructionV4 extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: MultiAssetsV4; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: MultiAssetsV4; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: MultiAssetsV4; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: ResponseV4; + readonly maxWeight: WeightV2; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: MultiAssetsV4; + readonly beneficiary: MultiLocationV4; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: MultiAssetsV4; + readonly dest: MultiLocationV4; + readonly xcm: XcmV4; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: OriginKindV4; + readonly requireWeightAtMost: WeightV2; + readonly call: DoubleEncodedCall; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: JunctionsV4; + readonly isReportError: boolean; + readonly asReportError: QueryResponseInfoV4; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: MultiAssetFilterV4; + readonly beneficiary: MultiLocationV4; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: MultiAssetFilterV4; + readonly dest: MultiLocationV4; + readonly xcm: XcmV4; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: MultiAssetFilterV4; + readonly want: MultiAssetsV4; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: MultiAssetFilterV4; + readonly reserve: MultiLocationV4; + readonly xcm: XcmV4; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: MultiAssetFilterV4; + readonly dest: MultiLocationV4; + readonly xcm: XcmV4; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: QueryResponseInfoV4; + readonly assets: MultiAssetFilterV4; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: MultiAssetV4; + readonly weightLimit: WeightLimitV3; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV4; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV4; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: MultiAssetsV4; + readonly ticket: MultiLocationV4; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: WeightV2; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: MultiAssetsV4; + readonly isExpectAsset: boolean; + readonly asExpectAsset: MultiAssetsV4; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: MaybeErrorCodeV3; + readonly isQueryPallet: boolean; + readonly asQueryPallet: { + readonly moduleName: Bytes; + readonly responseInfo: QueryResponseInfoV4; + } & Struct; + readonly isExpectPallet: boolean; + readonly asExpectPallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: QueryResponseInfoV4; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: JunctionV4; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: NetworkIdV4; + readonly destination: JunctionsV4; + readonly xcm: XcmV4; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: MultiAssetV4; + readonly unlocker: MultiLocationV4; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: MultiAssetV4; + readonly target: MultiLocationV4; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: MultiAssetV4; + readonly owner: MultiLocationV4; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: MultiAssetV4; + readonly locker: MultiLocationV4; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: MultiLocationV4; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: WeightLimitV3; + readonly checkOrigin: Option; + } & Struct; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'ReportHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion' | 'BurnAsset' | 'ExpectAsset' | 'ExpectOrigin' | 'ExpectError' | 'ExpectTransactStatus' | 'QueryPallet' | 'ExpectPallet' | 'ReportTransactStatus' | 'ClearTransactStatus' | 'UniversalOrigin' | 'ExportMessage' | 'LockAsset' | 'UnlockAsset' | 'NoteUnlockable' | 'RequestUnlock' | 'SetFeesMode' | 'SetTopic' | 'ClearTopic' | 'AliasOrigin' | 'UnpaidExecution'; } /** @name InteriorMultiLocation */ export interface InteriorMultiLocation extends Junctions {} +/** @name InteriorMultiLocationV2 */ +export interface InteriorMultiLocationV2 extends JunctionsV2 {} + +/** @name InteriorMultiLocationV3 */ +export interface InteriorMultiLocationV3 extends JunctionsV3 {} + /** @name Junction */ -export interface Junction extends JunctionV2 {} +export interface Junction extends JunctionV4 {} /** @name Junctions */ -export interface Junctions extends JunctionsV2 {} +export interface Junctions extends JunctionsV4 {} /** @name JunctionsV1 */ export interface JunctionsV1 extends Enum { @@ -251,25 +803,88 @@ export interface JunctionsV1 extends Enum { readonly isX1: boolean; readonly asX1: JunctionV1; readonly isX2: boolean; - readonly asX2: ITuple<[JunctionV1, JunctionV1]>; + readonly asX2: ITuple<[JunctionV1, JunctionV1]>; + readonly isX3: boolean; + readonly asX3: ITuple<[JunctionV1, JunctionV1, JunctionV1]>; + readonly isX4: boolean; + readonly asX4: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly isX5: boolean; + readonly asX5: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly isX6: boolean; + readonly asX6: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly isX7: boolean; + readonly asX7: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly isX8: boolean; + readonly asX8: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; +} + +/** @name JunctionsV2 */ +export interface JunctionsV2 extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: JunctionV2; + readonly isX2: boolean; + readonly asX2: ITuple<[JunctionV2, JunctionV2]>; + readonly isX3: boolean; + readonly asX3: ITuple<[JunctionV2, JunctionV2, JunctionV2]>; + readonly isX4: boolean; + readonly asX4: ITuple<[JunctionV2, JunctionV2, JunctionV2, JunctionV2]>; + readonly isX5: boolean; + readonly asX5: ITuple<[JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2]>; + readonly isX6: boolean; + readonly asX6: ITuple<[JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2]>; + readonly isX7: boolean; + readonly asX7: ITuple<[JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2]>; + readonly isX8: boolean; + readonly asX8: ITuple<[JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2]>; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; +} + +/** @name JunctionsV3 */ +export interface JunctionsV3 extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: JunctionV3; + readonly isX2: boolean; + readonly asX2: ITuple<[JunctionV3, JunctionV3]>; + readonly isX3: boolean; + readonly asX3: ITuple<[JunctionV3, JunctionV3, JunctionV3]>; + readonly isX4: boolean; + readonly asX4: ITuple<[JunctionV3, JunctionV3, JunctionV3, JunctionV3]>; + readonly isX5: boolean; + readonly asX5: ITuple<[JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3]>; + readonly isX6: boolean; + readonly asX6: ITuple<[JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3]>; + readonly isX7: boolean; + readonly asX7: ITuple<[JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3]>; + readonly isX8: boolean; + readonly asX8: ITuple<[JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3]>; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; +} + +/** @name JunctionsV4 */ +export interface JunctionsV4 extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: Vec; + readonly isX2: boolean; + readonly asX2: Vec; readonly isX3: boolean; - readonly asX3: ITuple<[JunctionV1, JunctionV1, JunctionV1]>; + readonly asX3: Vec; readonly isX4: boolean; - readonly asX4: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly asX4: Vec; readonly isX5: boolean; - readonly asX5: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly asX5: Vec; readonly isX6: boolean; - readonly asX6: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly asX6: Vec; readonly isX7: boolean; - readonly asX7: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly asX7: Vec; readonly isX8: boolean; - readonly asX8: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly asX8: Vec; readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; } -/** @name JunctionsV2 */ -export interface JunctionsV2 extends JunctionsV1 {} - /** @name JunctionV0 */ export interface JunctionV0 extends Enum { readonly isParent: boolean; @@ -340,13 +955,138 @@ export interface JunctionV1 extends Enum { } /** @name JunctionV2 */ -export interface JunctionV2 extends JunctionV1 {} +export interface JunctionV2 extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: NetworkIdV2; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: NetworkIdV2; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: NetworkIdV2; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: Bytes; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: BodyIdV2; + readonly part: BodyPartV2; + } & Struct; + readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality'; +} + +/** @name JunctionV3 */ +export interface JunctionV3 extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: BodyIdV3; + readonly part: BodyPartV3; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: NetworkIdV3; + readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality' | 'GlobalConsensus'; +} + +/** @name JunctionV4 */ +export interface JunctionV4 extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: BodyIdV3; + readonly part: BodyPartV3; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: NetworkIdV4; + readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality' | 'GlobalConsensus'; +} + +/** @name MaxPalletNameLen */ +export interface MaxPalletNameLen extends u32 {} + +/** @name MaxPalletsInfo */ +export interface MaxPalletsInfo extends u32 {} + +/** @name MaybeErrorCodeV3 */ +export interface MaybeErrorCodeV3 extends Enum { + readonly isSuccess: boolean; + readonly isError: boolean; + readonly asError: Bytes; + readonly isTruncatedError: boolean; + readonly asTruncatedError: Bytes; + readonly type: 'Success' | 'Error' | 'TruncatedError'; +} /** @name MultiAsset */ -export interface MultiAsset extends MultiAssetV2 {} +export interface MultiAsset extends MultiAssetV4 {} /** @name MultiAssetFilter */ -export interface MultiAssetFilter extends MultiAssetFilterV2 {} +export interface MultiAssetFilter extends MultiAssetFilterV4 {} /** @name MultiAssetFilterV1 */ export interface MultiAssetFilterV1 extends Enum { @@ -358,7 +1098,31 @@ export interface MultiAssetFilterV1 extends Enum { } /** @name MultiAssetFilterV2 */ -export interface MultiAssetFilterV2 extends MultiAssetFilterV1 {} +export interface MultiAssetFilterV2 extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: MultiAssetsV2; + readonly isWild: boolean; + readonly asWild: WildMultiAssetV2; + readonly type: 'Definite' | 'Wild'; +} + +/** @name MultiAssetFilterV3 */ +export interface MultiAssetFilterV3 extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: MultiAssetsV3; + readonly isWild: boolean; + readonly asWild: WildMultiAssetV3; + readonly type: 'Definite' | 'Wild'; +} + +/** @name MultiAssetFilterV4 */ +export interface MultiAssetFilterV4 extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: MultiAssetsV4; + readonly isWild: boolean; + readonly asWild: WildMultiAssetV4; + readonly type: 'Definite' | 'Wild'; +} /** @name MultiAssets */ export interface MultiAssets extends Vec {} @@ -367,7 +1131,13 @@ export interface MultiAssets extends Vec {} export interface MultiAssetsV1 extends Vec {} /** @name MultiAssetsV2 */ -export interface MultiAssetsV2 extends MultiAssetsV1 {} +export interface MultiAssetsV2 extends Vec {} + +/** @name MultiAssetsV3 */ +export interface MultiAssetsV3 extends Vec {} + +/** @name MultiAssetsV4 */ +export interface MultiAssetsV4 extends Vec {} /** @name MultiAssetV0 */ export interface MultiAssetV0 extends Enum { @@ -413,10 +1183,25 @@ export interface MultiAssetV1 extends Struct { } /** @name MultiAssetV2 */ -export interface MultiAssetV2 extends MultiAssetV1 {} +export interface MultiAssetV2 extends Struct { + readonly id: AssetIdV2; + readonly fun: FungibilityV2; +} + +/** @name MultiAssetV3 */ +export interface MultiAssetV3 extends Struct { + readonly id: AssetIdV3; + readonly fun: FungibilityV3; +} + +/** @name MultiAssetV4 */ +export interface MultiAssetV4 extends Struct { + readonly id: AssetIdV4; + readonly fun: FungibilityV4; +} /** @name MultiLocation */ -export interface MultiLocation extends MultiLocationV2 {} +export interface MultiLocation extends MultiLocationV4 {} /** @name MultiLocationV0 */ export interface MultiLocationV0 extends Enum { @@ -447,7 +1232,22 @@ export interface MultiLocationV1 extends Struct { } /** @name MultiLocationV2 */ -export interface MultiLocationV2 extends MultiLocationV1 {} +export interface MultiLocationV2 extends Struct { + readonly parents: u8; + readonly interior: JunctionsV2; +} + +/** @name MultiLocationV3 */ +export interface MultiLocationV3 extends Struct { + readonly parents: u8; + readonly interior: JunctionsV3; +} + +/** @name MultiLocationV4 */ +export interface MultiLocationV4 extends Struct { + readonly parents: u8; + readonly interior: JunctionsV4; +} /** @name NetworkId */ export interface NetworkId extends Enum { @@ -459,6 +1259,43 @@ export interface NetworkId extends Enum { readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama'; } +/** @name NetworkIdV2 */ +export interface NetworkIdV2 extends Enum { + readonly isAny: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly type: 'Any' | 'Named' | 'Polkadot' | 'Kusama'; +} + +/** @name NetworkIdV3 */ +export interface NetworkIdV3 extends Enum { + readonly isByGenesis: boolean; + readonly asByGenesis: U8aFixed; + readonly isByFork: boolean; + readonly asByFork: { + readonly blockNumber: u64; + readonly blockHash: U8aFixed; + } & Struct; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly isWestend: boolean; + readonly isRococo: boolean; + readonly isWococo: boolean; + readonly isEthereum: boolean; + readonly asEthereum: { + readonly chainId: Compact; + } & Struct; + readonly isBitcoinCore: boolean; + readonly isBitcoinCash: boolean; + readonly isPolkadotBulletin: boolean; + readonly type: 'ByGenesis' | 'ByFork' | 'Polkadot' | 'Kusama' | 'Westend' | 'Rococo' | 'Wococo' | 'Ethereum' | 'BitcoinCore' | 'BitcoinCash' | 'PolkadotBulletin'; +} + +/** @name NetworkIdV4 */ +export interface NetworkIdV4 extends NetworkIdV3 {} + /** @name OriginKindV0 */ export interface OriginKindV0 extends Enum { readonly isNative: boolean; @@ -472,7 +1309,19 @@ export interface OriginKindV0 extends Enum { export interface OriginKindV1 extends OriginKindV0 {} /** @name OriginKindV2 */ -export interface OriginKindV2 extends OriginKindV1 {} +export interface OriginKindV2 extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm'; +} + +/** @name OriginKindV3 */ +export interface OriginKindV3 extends OriginKindV2 {} + +/** @name OriginKindV4 */ +export interface OriginKindV4 extends XcmOriginKind {} /** @name OutboundStatus */ export interface OutboundStatus extends Enum { @@ -492,9 +1341,54 @@ export interface Outcome extends Enum { readonly type: 'Complete' | 'Incomplete' | 'Error'; } +/** @name OutcomeV4 */ +export interface OutcomeV4 extends Enum { + readonly isComplete: boolean; + readonly asComplete: { + readonly used: WeightV2; + } & Struct; + readonly isIncomplete: boolean; + readonly asIncomplete: { + readonly used: WeightV2; + readonly error: XcmErrorV3; + } & Struct; + readonly isError: boolean; + readonly asError: { + readonly error: XcmErrorV3; + } & Struct; + readonly type: 'Complete' | 'Incomplete' | 'Error'; +} + +/** @name PalletInfoV3 */ +export interface PalletInfoV3 extends Struct { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly major: Compact; + readonly minor: Compact; + readonly patch: Compact; +} + +/** @name PalletInfoV4 */ +export interface PalletInfoV4 extends PalletInfoV3 {} + /** @name QueryId */ export interface QueryId extends u64 {} +/** @name QueryResponseInfoV3 */ +export interface QueryResponseInfoV3 extends Struct { + readonly destination: MultiLocationV3; + readonly queryId: Compact; + readonly maxWeight: WeightV2; +} + +/** @name QueryResponseInfoV4 */ +export interface QueryResponseInfoV4 extends Struct { + readonly destination: MultiLocationV4; + readonly queryId: Compact; + readonly maxWeight: WeightV2; +} + /** @name QueryStatus */ export interface QueryStatus extends Enum { readonly isPending: boolean; @@ -521,7 +1415,7 @@ export interface QueueConfigData extends Struct { } /** @name Response */ -export interface Response extends ResponseV2 {} +export interface Response extends ResponseV4 {} /** @name ResponseV0 */ export interface ResponseV0 extends Enum { @@ -543,18 +1437,60 @@ export interface ResponseV2 extends Enum { readonly isAssets: boolean; readonly asAssets: MultiAssetsV2; readonly isExecutionResult: boolean; - readonly asExecutionResult: ResponseV2Result; - readonly type: 'Null' | 'Assets' | 'ExecutionResult'; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version'; } /** @name ResponseV2Error */ export interface ResponseV2Error extends ITuple<[u32, XcmErrorV2]> {} -/** @name ResponseV2Result */ -export interface ResponseV2Result extends Result { - readonly isErr: boolean; - readonly asErr: ResponseV2Error; - readonly isOk: boolean; +/** @name ResponseV3 */ +export interface ResponseV3 extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: MultiAssetsV3; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPalletsInfo: boolean; + readonly asPalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: MaybeErrorCodeV3; + readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version' | 'PalletsInfo' | 'DispatchResult'; +} + +/** @name ResponseV3Error */ +export interface ResponseV3Error extends ITuple<[u32, XcmErrorV3]> {} + +/** @name ResponseV3Result */ +export interface ResponseV3Result extends Option> {} + +/** @name ResponseV4 */ +export interface ResponseV4 extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: MultiAssetsV4; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPalletsInfo: boolean; + readonly asPalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: MaybeErrorCodeV3; + readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version' | 'PalletsInfo' | 'DispatchResult'; +} + +/** @name UncheckedFungibilityV4 */ +export interface UncheckedFungibilityV4 extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: AssetInstanceV4; + readonly type: 'Fungible' | 'NonFungible'; } /** @name VersionedMultiAsset */ @@ -565,7 +1501,11 @@ export interface VersionedMultiAsset extends Enum { readonly asV1: MultiAssetV1; readonly isV2: boolean; readonly asV2: MultiAssetV2; - readonly type: 'V0' | 'V1' | 'V2'; + readonly isV3: boolean; + readonly asV3: MultiAssetV3; + readonly isV4: boolean; + readonly asV4: MultiAssetV4; + readonly type: 'V0' | 'V1' | 'V2' | 'V3' | 'V4'; } /** @name VersionedMultiAssets */ @@ -576,7 +1516,11 @@ export interface VersionedMultiAssets extends Enum { readonly asV1: MultiAssetsV1; readonly isV2: boolean; readonly asV2: MultiAssetsV2; - readonly type: 'V0' | 'V1' | 'V2'; + readonly isV3: boolean; + readonly asV3: MultiAssetsV3; + readonly isV4: boolean; + readonly asV4: MultiAssetsV4; + readonly type: 'V0' | 'V1' | 'V2' | 'V3' | 'V4'; } /** @name VersionedMultiLocation */ @@ -587,7 +1531,11 @@ export interface VersionedMultiLocation extends Enum { readonly asV1: MultiLocationV1; readonly isV2: boolean; readonly asV2: MultiLocationV2; - readonly type: 'V0' | 'V1' | 'V2'; + readonly isV3: boolean; + readonly asV3: MultiLocationV3; + readonly isV4: boolean; + readonly asV4: MultiLocationV4; + readonly type: 'V0' | 'V1' | 'V2' | 'V3' | 'V4'; } /** @name VersionedResponse */ @@ -595,6 +1543,8 @@ export interface VersionedResponse extends Struct { readonly V0: ResponseV0; readonly V1: ResponseV1; readonly V2: ResponseV2; + readonly V3: ResponseV3; + readonly V4: ResponseV4; } /** @name VersionedXcm */ @@ -605,7 +1555,11 @@ export interface VersionedXcm extends Enum { readonly asV1: XcmV1; readonly isV2: boolean; readonly asV2: XcmV2; - readonly type: 'V0' | 'V1' | 'V2'; + readonly isV3: boolean; + readonly asV3: XcmV3; + readonly isV4: boolean; + readonly asV4: XcmV4; + readonly type: 'V0' | 'V1' | 'V2' | 'V3' | 'V4'; } /** @name VersionMigrationStage */ @@ -618,6 +1572,12 @@ export interface VersionMigrationStage extends Enum { readonly type: 'MigrateSupportedVersion' | 'MigrateVersionNotifiers' | 'NotifyCurrentTargets' | 'MigrateAndNotifyOldTargets'; } +/** @name VersionV3 */ +export interface VersionV3 extends u32 {} + +/** @name VersionV4 */ +export interface VersionV4 extends u32 {} + /** @name WeightLimitV2 */ export interface WeightLimitV2 extends Enum { readonly isUnlimited: boolean; @@ -626,8 +1586,16 @@ export interface WeightLimitV2 extends Enum { readonly type: 'Unlimited' | 'Limited'; } +/** @name WeightLimitV3 */ +export interface WeightLimitV3 extends Enum { + readonly isUnlimited: boolean; + readonly isLimited: boolean; + readonly asLimited: WeightV2; + readonly type: 'Unlimited' | 'Limited'; +} + /** @name WildFungibility */ -export interface WildFungibility extends WildFungibilityV2 {} +export interface WildFungibility extends WildFungibilityV4 {} /** @name WildFungibilityV0 */ export interface WildFungibilityV0 extends WildFungibilityV1 {} @@ -640,10 +1608,20 @@ export interface WildFungibilityV1 extends Enum { } /** @name WildFungibilityV2 */ -export interface WildFungibilityV2 extends WildFungibilityV1 {} +export interface WildFungibilityV2 extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name WildFungibilityV3 */ +export interface WildFungibilityV3 extends WildFungibilityV2 {} + +/** @name WildFungibilityV4 */ +export interface WildFungibilityV4 extends WildFungibilityV2 {} /** @name WildMultiAsset */ -export interface WildMultiAsset extends WildMultiAssetV2 {} +export interface WildMultiAsset extends WildMultiAssetV4 {} /** @name WildMultiAssetV1 */ export interface WildMultiAssetV1 extends Enum { @@ -657,10 +1635,56 @@ export interface WildMultiAssetV1 extends Enum { } /** @name WildMultiAssetV2 */ -export interface WildMultiAssetV2 extends WildMultiAssetV1 {} +export interface WildMultiAssetV2 extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: AssetIdV2; + readonly fun: WildFungibilityV2; + } & Struct; + readonly type: 'All' | 'AllOf'; +} + +/** @name WildMultiAssetV3 */ +export interface WildMultiAssetV3 extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: AssetIdV3; + readonly fun: WildFungibilityV2; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: AssetIdV3; + readonly fun: WildFungibilityV2; + readonly count: Compact; + } & Struct; + readonly type: 'All' | 'AllOf' | 'AllCounted' | 'AllOfCounted'; +} + +/** @name WildMultiAssetV4 */ +export interface WildMultiAssetV4 extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: AssetIdV4; + readonly fun: WildFungibilityV4; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: AssetIdV4; + readonly fun: WildFungibilityV4; + readonly count: Compact; + } & Struct; + readonly type: 'All' | 'AllOf' | 'AllCounted' | 'AllOfCounted'; +} /** @name Xcm */ -export interface Xcm extends XcmV2 {} +export interface Xcm extends XcmV4 {} /** @name XcmAssetId */ export interface XcmAssetId extends Enum { @@ -672,7 +1696,7 @@ export interface XcmAssetId extends Enum { } /** @name XcmError */ -export interface XcmError extends XcmErrorV2 {} +export interface XcmError extends XcmErrorV4 {} /** @name XcmErrorV0 */ export interface XcmErrorV0 extends Enum { @@ -747,47 +1771,85 @@ export interface XcmErrorV1 extends Enum { /** @name XcmErrorV2 */ export interface XcmErrorV2 extends Enum { - readonly isUndefined: boolean; readonly isOverflow: boolean; readonly isUnimplemented: boolean; - readonly isUnhandledXcmVersion: boolean; - readonly isUnhandledXcmMessage: boolean; - readonly isUnhandledEffect: boolean; - readonly isEscalationOfPrivilege: boolean; readonly isUntrustedReserveLocation: boolean; readonly isUntrustedTeleportLocation: boolean; - readonly isDestinationBufferOverflow: boolean; readonly isMultiLocationFull: boolean; readonly isMultiLocationNotInvertible: boolean; - readonly isFailedToDecode: boolean; readonly isBadOrigin: boolean; - readonly isExceedsMaxMessageSize: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; readonly isFailedToTransactAsset: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isDestinationUnsupported: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; + readonly isTrap: boolean; + readonly asTrap: u64; + readonly isUnhandledXcmVersion: boolean; readonly isWeightLimitReached: boolean; readonly asWeightLimitReached: Weight; - readonly isWildcard: boolean; - readonly isTooMuchWeightRequired: boolean; - readonly isNotHoldingFees: boolean; - readonly isWeightNotComputable: boolean; readonly isBarrier: boolean; + readonly isWeightNotComputable: boolean; + readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable'; +} + +/** @name XcmErrorV3 */ +export interface XcmErrorV3 extends Enum { + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isLocationFull: boolean; + readonly isLocationNotInvertible: boolean; + readonly isBadOrigin: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; + readonly isFailedToTransactAsset: boolean; readonly isNotWithdrawable: boolean; readonly isLocationCannotHold: boolean; - readonly isTooExpensive: boolean; - readonly isAssetNotFound: boolean; + readonly isExceedsMaxMessageSize: boolean; readonly isDestinationUnsupported: boolean; - readonly isRecursionLimitReached: boolean; readonly isTransport: boolean; readonly isUnroutable: boolean; - readonly isUnknownWeightRequired: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; readonly isTrap: boolean; readonly asTrap: u64; - readonly isUnknownClaim: boolean; - readonly isInvalidLocation: boolean; - readonly type: 'Undefined' | 'Overflow' | 'Unimplemented' | 'UnhandledXcmVersion' | 'UnhandledXcmMessage' | 'UnhandledEffect' | 'EscalationOfPrivilege' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'DestinationBufferOverflow' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'FailedToDecode' | 'BadOrigin' | 'ExceedsMaxMessageSize' | 'FailedToTransactAsset' | 'WeightLimitReached' | 'Wildcard' | 'TooMuchWeightRequired' | 'NotHoldingFees' | 'WeightNotComputable' | 'Barrier' | 'NotWithdrawable' | 'LocationCannotHold' | 'TooExpensive' | 'AssetNotFound' | 'DestinationUnsupported' | 'RecursionLimitReached' | 'Transport' | 'Unroutable' | 'UnknownWeightRequired' | 'Trap' | 'UnknownClaim' | 'InvalidLocation'; + readonly isExpectationFalse: boolean; + readonly isPalletNotFound: boolean; + readonly isNameMismatch: boolean; + readonly isVersionIncompatible: boolean; + readonly isHoldingWouldOverflow: boolean; + readonly isExportError: boolean; + readonly isReanchorFailed: boolean; + readonly isNoDeal: boolean; + readonly isFeesNotMet: boolean; + readonly isLockError: boolean; + readonly isNoPermission: boolean; + readonly isUnanchored: boolean; + readonly isNotDepositable: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: WeightV2; + readonly isBarrier: boolean; + readonly isExceedsStackLimit: boolean; + readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'LocationFull' | 'LocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'ExpectationFalse' | 'PalletNotFound' | 'NameMismatch' | 'VersionIncompatible' | 'HoldingWouldOverflow' | 'ExportError' | 'ReanchorFailed' | 'NoDeal' | 'FeesNotMet' | 'LockError' | 'NoPermission' | 'Unanchored' | 'NotDepositable' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'ExceedsStackLimit'; } -/** @name XcmOrder */ -export interface XcmOrder extends XcmOrderV2 {} +/** @name XcmErrorV4 */ +export interface XcmErrorV4 extends XcmErrorV3 {} /** @name XcmOrderV0 */ export interface XcmOrderV0 extends Enum { @@ -887,9 +1949,6 @@ export interface XcmOrderV1 extends Enum { readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution'; } -/** @name XcmOrderV2 */ -export interface XcmOrderV2 extends XcmOrderV1 {} - /** @name XcmOrigin */ export interface XcmOrigin extends Enum { readonly isXcm: boolean; @@ -1043,6 +2102,12 @@ export interface XcmV1 extends Enum { /** @name XcmV2 */ export interface XcmV2 extends Vec {} +/** @name XcmV3 */ +export interface XcmV3 extends Vec {} + +/** @name XcmV4 */ +export interface XcmV4 extends Vec {} + /** @name XcmVersion */ export interface XcmVersion extends u32 {} diff --git a/packages/types/src/interfaces/xcm/v2.ts b/packages/types/src/interfaces/xcm/v2.ts index a73126671cb3..d5aa1419a2c8 100644 --- a/packages/types/src/interfaces/xcm/v2.ts +++ b/packages/types/src/interfaces/xcm/v2.ts @@ -7,25 +7,148 @@ import type { DefinitionsTypes } from '../../types/index.js'; export const v2: DefinitionsTypes = { - AssetInstanceV2: 'AssetInstanceV1', - FungibilityV2: 'FungibilityV1', - JunctionV2: 'JunctionV1', - JunctionsV2: 'JunctionsV1', - MultiAssetsV2: 'MultiAssetsV1', - MultiAssetV2: 'MultiAssetV1', - MultiAssetFilterV2: 'MultiAssetFilterV1', - MultiLocationV2: 'MultiLocationV1', - OriginKindV2: 'OriginKindV1', - WildFungibilityV2: 'WildFungibilityV1', + AssetIdV2: { + _enum: { + Concrete: 'MultiLocationV2', + Abstract: 'Bytes' + } + }, + AssetInstanceV2: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8;4]', + Array8: '[u8;8]', + Array16: '[u8;16]', + Array32: '[u8;32]', + Blob: 'Bytes' + } + }, + BodyIdV2: { + _enum: { + Unit: 'Null', + Named: 'Bytes', + Index: 'Compact', + Executive: 'Null', + Technical: 'Null', + Legislative: 'Null', + Judicial: 'Null', + Defense: 'Null', + Administration: 'Null', + Treasury: 'Null' + } + }, + BodyPartV2: { + _enum: { + Voice: 'Null', + Members: { + count: 'Compact' + }, + Fraction: { + nom: 'Compact', + denom: 'Compact' + }, + AtLeastProportion: { + nom: 'Compact', + denom: 'Compact' + }, + MoreThanProportion: { + nom: 'Compact', + denom: 'Compact' + } + } + }, + NetworkIdV2: { + _enum: { + Any: 'Null', + Named: 'Bytes', + Polkadot: 'Null', + Kusama: 'Null' + } + }, + JunctionV2: { + _enum: { + Parachain: 'Compact', + AccountId32: { + network: 'NetworkIdV2', + id: '[u8; 32]' + }, + AccountIndex64: { + network: 'NetworkIdV2', + index: 'Compact' + }, + AccountKey20: { + network: 'NetworkIdV2', + key: '[u8; 20]' + }, + PalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: 'Bytes', + OnlyChild: 'Null', + Plurality: { + id: 'BodyIdV2', + part: 'BodyPartV2' + } + } + }, + JunctionsV2: { + _enum: { + Here: 'Null', + X1: 'JunctionV2', + X2: '(JunctionV2, JunctionV2)', + X3: '(JunctionV2, JunctionV2, JunctionV2)', + X4: '(JunctionV2, JunctionV2, JunctionV2, JunctionV2)', + X5: '(JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2)', + X6: '(JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2)', + X7: '(JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2)', + X8: '(JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2)' + } + }, + FungibilityV2: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV2' + } + }, + InteriorMultiLocationV2: 'JunctionsV2', + MultiAssetV2: { + id: 'AssetIdV2', + fun: 'FungibilityV2' + }, + MultiAssetsV2: 'Vec', + MultiAssetFilterV2: { + _enum: { + Definite: 'MultiAssetsV2', + Wild: 'WildMultiAssetV2' + } + }, + MultiLocationV2: { + parents: 'u8', + interior: 'JunctionsV2' + }, + OriginKindV2: { + _enum: { + Native: 'Null', + SovereignAccount: 'Null', + Superuser: 'Null', + Xcm: 'Null' + } + }, + WildFungibilityV2: { + _enum: { + Fungible: 'Null', + NonFungible: 'Null' + } + }, ResponseV2: { _enum: { Null: 'Null', Assets: 'MultiAssetsV2', - ExecutionResult: 'ResponseV2Result' + ExecutionResult: 'Option<(u32, XcmErrorV2)>', + Version: 'u32' } }, ResponseV2Error: '(u32, XcmErrorV2)', - ResponseV2Result: 'Result', WeightLimitV2: { _enum: { Unlimited: 'Null', @@ -52,8 +175,8 @@ export const v2: DefinitionsTypes = { xcm: 'XcmV2' }, Transact: { - originType: 'OriginKindV2', - requireWeightAtMost: 'u64', + originType: 'XcmOriginKind', + requireWeightAtMost: 'Compact', call: 'DoubleEncodedCall' }, HrmpNewChannelOpenRequest: { @@ -70,7 +193,7 @@ export const v2: DefinitionsTypes = { recipient: 'Compact' }, ClearOrigin: 'Null', - DescendOrigin: 'InteriorMultiLocation', + DescendOrigin: 'InteriorMultiLocationV2', ReportError: { queryId: 'Compact', dest: 'MultiLocationV2', @@ -78,12 +201,12 @@ export const v2: DefinitionsTypes = { }, DepositAsset: { assets: 'MultiAssetFilterV2', - maxAssets: 'u32', + maxAssets: 'Compact', beneficiary: 'MultiLocationV2' }, DepositReserveAsset: { assets: 'MultiAssetFilterV2', - maxAssets: 'u32', + maxAssets: 'Compact', dest: 'MultiLocationV2', xcm: 'XcmV2' }, @@ -102,65 +225,69 @@ export const v2: DefinitionsTypes = { xcm: 'XcmV2' }, QueryHolding: { - query_id: 'Compact', + queryId: 'Compact', dest: 'MultiLocationV2', assets: 'MultiAssetFilterV2', - maxResponse_Weight: 'Compact' + maxResponseWeight: 'Compact' }, BuyExecution: { fees: 'MultiAssetV2', weightLimit: 'WeightLimitV2' }, RefundSurplus: 'Null', - SetErrorHandler: 'XcmV2', - SetAppendix: 'XcmV2', + SetErrorHandler: 'XcmV2', + SetAppendix: 'XcmV2', ClearError: 'Null', ClaimAsset: { assets: 'MultiAssetsV2', ticket: 'MultiLocationV2' }, - Trap: 'u64' + Trap: 'Compact', + SubscribeVersion: { + queryId: 'Compact', + maxResponseWeight: 'Compact' + }, + UnsubscribeVersion: 'Null' + } + }, + WildMultiAssetV2: { + _enum: { + All: 'Null', + AllOf: { + id: 'AssetIdV2', + fun: 'WildFungibilityV2' + } } }, - WildMultiAssetV2: 'WildMultiAssetV1', XcmV2: 'Vec', XcmErrorV2: { _enum: { - Undefined: 'Null', Overflow: 'Null', Unimplemented: 'Null', - UnhandledXcmVersion: 'Null', - UnhandledXcmMessage: 'Null', - UnhandledEffect: 'Null', - EscalationOfPrivilege: 'Null', UntrustedReserveLocation: 'Null', UntrustedTeleportLocation: 'Null', - DestinationBufferOverflow: 'Null', MultiLocationFull: 'Null', MultiLocationNotInvertible: 'Null', - FailedToDecode: 'Null', BadOrigin: 'Null', - ExceedsMaxMessageSize: 'Null', + InvalidLocation: 'Null', + AssetNotFound: 'Null', FailedToTransactAsset: 'Null', - WeightLimitReached: 'Weight', - Wildcard: 'Null', - TooMuchWeightRequired: 'Null', - NotHoldingFees: 'Null', - WeightNotComputable: 'Null', - Barrier: 'Null', NotWithdrawable: 'Null', LocationCannotHold: 'Null', - TooExpensive: 'Null', - AssetNotFound: 'Null', + ExceedsMaxMessageSize: 'Null', DestinationUnsupported: 'Null', - RecursionLimitReached: 'Null', Transport: 'Null', Unroutable: 'Null', - UnknownWeightRequired: 'Null', - Trap: 'u64', UnknownClaim: 'Null', - InvalidLocation: 'Null' + FailedToDecode: 'Null', + MaxWeightInvalid: 'Null', + NotHoldingFees: 'Null', + TooExpensive: 'Null', + Trap: 'u64', + UnhandledXcmVersion: 'Null', + WeightLimitReached: 'Weight', + Barrier: 'Null', + WeightNotComputable: 'Null' } - }, - XcmOrderV2: 'XcmOrderV1' + } }; diff --git a/packages/types/src/interfaces/xcm/v3.ts b/packages/types/src/interfaces/xcm/v3.ts new file mode 100644 index 000000000000..ea30b9d25706 --- /dev/null +++ b/packages/types/src/interfaces/xcm/v3.ts @@ -0,0 +1,386 @@ +// Copyright 2017-2024 @polkadot/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v3: DefinitionsTypes = { + AssetIdV3: { + _enum: { + Concrete: 'MultiLocationV3', + Abstract: 'Bytes' + } + }, + BodyIdV3: { + _enum: { + Unit: 'Null', + Moniker: '[u8;4]', + Index: 'Compact', + Executive: 'Null', + Technical: 'Null', + Legislative: 'Null', + Judicial: 'Null', + Defense: 'Null', + Administration: 'Null', + Treasury: 'Null' + } + }, + BodyPartV3: { + _enum: { + Voice: 'Null', + Members: { + count: 'Compact' + }, + Fraction: { + nom: 'Compact', + denom: 'Compact' + }, + AtLeastProportion: { + nom: 'Compact', + denom: 'Compact' + }, + MoreThanProportion: { + nom: 'Compact', + denom: 'Compact' + } + } + }, + AssetInstanceV3: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8;4]', + Array8: '[u8;8]', + Array16: '[u8;16]', + Array32: '[u8;32]' + } + }, + FungibilityV3: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV3' + } + }, + InteriorMultiLocationV3: 'JunctionsV3', + JunctionV3: { + _enum: { + Parachain: 'Compact', + AccountId32: { + network: 'Option', + id: '[u8;32]' + }, + AccountIndex64: { + network: 'Option', + index: 'Compact' + }, + AccountKey20: { + network: 'Option', + key: '[u8;20]' + }, + PalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: { + length: 'u8', + data: '[u8;32]' + }, + OnlyChild: 'Null', + Plurality: { + id: 'BodyIdV3', + part: 'BodyPartV3' + }, + GlobalConsensus: 'NetworkIdV3' + } + }, + JunctionsV3: { + _enum: { + Here: 'Null', + X1: 'JunctionV3', + X2: '(JunctionV3, JunctionV3)', + X3: '(JunctionV3, JunctionV3, JunctionV3)', + X4: '(JunctionV3, JunctionV3, JunctionV3, JunctionV3)', + X5: '(JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3)', + X6: '(JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3)', + X7: '(JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3)', + X8: '(JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3)' + } + }, + MaybeErrorCodeV3: { + _enum: { + Success: 'Null', + Error: 'Bytes', + TruncatedError: 'Bytes' + } + }, + MaxPalletsInfo: 'u32', + MultiAssetV3: { + id: 'AssetIdV3', + fun: 'FungibilityV3' + }, + MultiAssetsV3: 'Vec', + MultiAssetFilterV3: { + _enum: { + Definite: 'MultiAssetsV3', + Wild: 'WildMultiAssetV3' + } + }, + MultiLocationV3: { + parents: 'u8', + interior: 'JunctionsV3' + }, + MaxPalletNameLen: 'u32', + NetworkIdV3: { + _enum: { + ByGenesis: '[u8;32]', + ByFork: { + blockNumber: 'u64', + blockHash: '[u8;32]' + }, + Polkadot: 'Null', + Kusama: 'Null', + Westend: 'Null', + Rococo: 'Null', + Wococo: 'Null', + Ethereum: { + chainId: 'Compact' + }, + BitcoinCore: 'Null', + BitcoinCash: 'Null', + PolkadotBulletin: 'Null' + } + + }, + OriginKindV3: 'OriginKindV2', + PalletInfoV3: { + index: 'Compact', + name: 'Bytes', + moduleName: 'Bytes', + major: 'Compact', + minor: 'Compact', + patch: 'Compact' + }, + WildFungibilityV3: 'WildFungibilityV2', + QueryResponseInfoV3: { + destination: 'MultiLocationV3', + queryId: 'Compact', + maxWeight: 'WeightV2' + }, + ResponseV3: { + _enum: { + Null: 'Null', + Assets: 'MultiAssetsV3', + ExecutionResult: 'Option<(u32,XcmErrorV3)>', + Version: 'u32', + PalletsInfo: 'Vec', + DispatchResult: 'MaybeErrorCodeV3' + } + }, + XcmErrorV3: { + _enum: { + Overflow: 'Null', + Unimplemented: 'Null', + UntrustedReserveLocation: 'Null', + UntrustedTeleportLocation: 'Null', + LocationFull: 'Null', + LocationNotInvertible: 'Null', + BadOrigin: 'Null', + InvalidLocation: 'Null', + AssetNotFound: 'Null', + FailedToTransactAsset: 'Null', + NotWithdrawable: 'Null', + LocationCannotHold: 'Null', + ExceedsMaxMessageSize: 'Null', + DestinationUnsupported: 'Null', + Transport: 'Null', + Unroutable: 'Null', + UnknownClaim: 'Null', + FailedToDecode: 'Null', + MaxWeightInvalid: 'Null', + NotHoldingFees: 'Null', + TooExpensive: 'Null', + Trap: 'u64', + ExpectationFalse: 'Null', + PalletNotFound: 'Null', + NameMismatch: 'Null', + VersionIncompatible: 'Null', + HoldingWouldOverflow: 'Null', + ExportError: 'Null', + ReanchorFailed: 'Null', + NoDeal: 'Null', + FeesNotMet: 'Null', + LockError: 'Null', + NoPermission: 'Null', + Unanchored: 'Null', + NotDepositable: 'Null', + UnhandledXcmVersion: 'Null', + WeightLimitReached: 'WeightV2', + Barrier: 'Null', + ExceedsStackLimit: 'Null' + } + }, + ResponseV3Error: '(u32, XcmErrorV3)', + ResponseV3Result: 'Option<(u32, ResponseV3Error)>', + WeightLimitV3: { + _enum: { + Unlimited: 'Null', + Limited: 'WeightV2' + } + }, + InstructionV3: { + _enum: { + WithdrawAsset: 'MultiAssetsV3', + ReserveAssetDeposited: 'MultiAssetsV3', + ReceiveTeleportedAsset: 'MultiAssetsV3', + QueryResponse: { + queryId: 'Compact', + response: 'ResponseV3', + maxWeight: 'WeightV2', + querier: 'Option' + }, + TransferAsset: { + assets: 'MultiAssetsV3', + beneficiary: 'MultiLocationV3' + }, + TransferReserveAsset: { + assets: 'MultiAssetsV3', + dest: 'MultiLocationV3', + xcm: 'XcmV3' + }, + Transact: { + originKind: 'XcmOriginKind', + requireWeightAtMost: 'WeightV2', + call: 'DoubleEncodedCall' + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact' + }, + HrmpChannelAccepted: { + recipient: 'Compact' + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact' + }, + ClearOrigin: 'Null', + DescendOrigin: 'JunctionsV3', + ReportError: 'QueryResponseInfoV3', + DepositAsset: { + assets: 'MultiAssetFilterV3', + beneficiary: 'MultiLocationV3' + }, + DepositReserveAsset: { + assets: 'MultiAssetFilterV3', + dest: 'MultiLocationV3', + xcm: 'XcmV3' + }, + ExchangeAsset: { + give: 'MultiAssetFilterV3', + want: 'MultiAssetsV3', + maximal: 'bool' + }, + InitiateReserveWithdraw: { + assets: 'MultiAssetFilterV3', + reserve: 'MultiLocationV3', + xcm: 'XcmV3' + }, + InitiateTeleport: { + assets: 'MultiAssetFilterV3', + dest: 'MultiLocationV3', + xcm: 'XcmV3' + }, + ReportHolding: { + responseInfo: 'QueryResponseInfoV3', + assets: 'MultiAssetFilterV3' + }, + BuyExecution: { + fees: 'MultiAssetV3', + weightLimit: 'WeightLimitV3' + }, + RefundSurplus: 'Null', + SetErrorHandler: 'XcmV3', + SetAppendix: 'XcmV3', + ClearError: 'Null', + ClaimAsset: { + assets: 'MultiAssetsV3', + ticket: 'MultiLocationV3' + }, + Trap: 'Compact', + SubscribeVersion: { + queryId: 'Compact', + maxResponseWeight: 'WeightV2' + }, + UnsubscribeVersion: 'Null', + BurnAsset: 'MultiAssetsV3', + ExpectAsset: 'MultiAssetsV3', + ExpectOrigin: 'Option', + ExpectError: 'Option<(u32, XcmErrorV3)>', + ExpectTransactStatus: 'MaybeErrorCodeV3', + QueryPallet: { + moduleName: 'Vec', + responseInfo: 'QueryResponseInfoV3' + }, + ExpectPallet: { + index: 'Compact', + name: 'Vec', + moduleName: 'Vec', + crateMajor: 'Compact', + minCrateMinor: 'Compact' + }, + ReportTransactStatus: 'QueryResponseInfoV3', + ClearTransactStatus: 'Null', + UniversalOrigin: 'JunctionV3', + ExportMessage: { + network: 'NetworkIdV3', + destination: 'JunctionsV3', + xcm: 'XcmV3' + }, + LockAsset: { + asset: 'MultiAssetV3', + unlocker: 'MultiLocationV3' + }, + UnlockAsset: { + asset: 'MultiAssetV3', + target: 'MultiLocationV3' + }, + NoteUnlockable: { + asset: 'MultiAssetV3', + owner: 'MultiLocationV3' + }, + RequestUnlock: { + asset: 'MultiAssetV3', + locker: 'MultiLocationV3' + }, + SetFeesMode: { + jitWithdraw: 'bool' + }, + SetTopic: '[u8; 32]', + ClearTopic: 'Null', + AliasOrigin: 'MultiLocationV3', + UnpaidExecution: { + weightLimit: 'WeightLimitV3', + checkOrigin: 'Option' + } + } + }, + WildMultiAssetV3: { + _enum: { + All: 'Null', + AllOf: { + id: 'AssetIdV3', + fun: 'WildFungibilityV2' + }, + AllCounted: 'Compact', + AllOfCounted: { + id: 'AssetIdV3', + fun: 'WildFungibilityV2', + count: 'Compact' + } + } + }, + VersionV3: 'u32', + XcmV3: 'Vec' +}; diff --git a/packages/types/src/interfaces/xcm/v4.ts b/packages/types/src/interfaces/xcm/v4.ts new file mode 100644 index 000000000000..cca7d711b037 --- /dev/null +++ b/packages/types/src/interfaces/xcm/v4.ts @@ -0,0 +1,281 @@ +// Copyright 2017-2024 @polkadot/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v4: DefinitionsTypes = { + AssetIdV4: 'MultiLocationV4', + AssetInstanceV4: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8;4]', + Array8: '[u8;8]', + Array16: '[u8;16]', + Array32: '[u8;32]' + } + }, + FungibilityV4: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV4' + } + }, + UncheckedFungibilityV4: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV4' + } + }, + JunctionV4: { + _enum: { + Parachain: 'Compact', + AccountId32: { + network: 'Option', + id: '[u8;32]' + }, + AccountIndex64: { + network: 'Option', + index: 'Compact' + }, + AccountKey20: { + network: 'Option', + key: '[u8;20]' + }, + PalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: { + length: 'u8', + data: '[u8;32]' + }, + OnlyChild: 'Null', + Plurality: { + id: 'BodyIdV3', + part: 'BodyPartV3' + }, + GlobalConsensus: 'NetworkIdV4' + } + }, + JunctionsV4: { + _enum: { + Here: 'Null', + X1: '[JunctionV4;1]', + X2: '[JunctionV4;2]', + X3: '[JunctionV4;3]', + X4: '[JunctionV4;4]', + X5: '[JunctionV4;5]', + X6: '[JunctionV4;6]', + X7: '[JunctionV4;7]', + X8: '[JunctionV4;8]' + } + }, + MaxPalletsInfo: 'u32', + NetworkIdV4: 'NetworkIdV3', + MultiAssetV4: { + id: 'AssetIdV4', + fun: 'FungibilityV4' + }, + MultiAssetsV4: 'Vec', + MultiAssetFilterV4: { + _enum: { + Definite: 'MultiAssetsV4', + Wild: 'WildMultiAssetV4' + } + }, + MultiLocationV4: { + parents: 'u8', + interior: 'JunctionsV4' + }, + OriginKindV4: 'XcmOriginKind', + PalletInfoV4: 'PalletInfoV3', + WildFungibilityV4: 'WildFungibilityV2', + QueryResponseInfoV4: { + destination: 'MultiLocationV4', + queryId: 'Compact', + maxWeight: 'WeightV2' + }, + ResponseV4: { + _enum: { + Null: 'Null', + Assets: 'MultiAssetsV4', + ExecutionResult: 'Option<(u32, XcmErrorV3)>', + Version: 'u32', + PalletsInfo: 'Vec', + DispatchResult: 'MaybeErrorCodeV3' + } + }, + InstructionV4: { + _enum: { + WithdrawAsset: 'MultiAssetsV4', + ReserveAssetDeposited: 'MultiAssetsV4', + ReceiveTeleportedAsset: 'MultiAssetsV4', + QueryResponse: { + queryId: 'Compact', + response: 'ResponseV4', + maxWeight: 'WeightV2', + querier: 'Option' + }, + TransferAsset: { + assets: 'MultiAssetsV4', + beneficiary: 'MultiLocationV4' + }, + TransferReserveAsset: { + assets: 'MultiAssetsV4', + dest: 'MultiLocationV4', + xcm: 'XcmV4' + }, + Transact: { + originKind: 'OriginKindV4', + requireWeightAtMost: 'WeightV2', + call: 'DoubleEncodedCall' + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact' + }, + HrmpChannelAccepted: { + recipient: 'Compact' + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact' + }, + ClearOrigin: 'Null', + DescendOrigin: 'JunctionsV4', + ReportError: 'QueryResponseInfoV4', + DepositAsset: { + assets: 'MultiAssetFilterV4', + beneficiary: 'MultiLocationV4' + }, + DepositReserveAsset: { + assets: 'MultiAssetFilterV4', + dest: 'MultiLocationV4', + xcm: 'XcmV4' + }, + ExchangeAsset: { + give: 'MultiAssetFilterV4', + want: 'MultiAssetsV4', + maximal: 'bool' + }, + InitiateReserveWithdraw: { + assets: 'MultiAssetFilterV4', + reserve: 'MultiLocationV4', + xcm: 'XcmV4' + }, + InitiateTeleport: { + assets: 'MultiAssetFilterV4', + dest: 'MultiLocationV4', + xcm: 'XcmV4' + }, + ReportHolding: { + responseInfo: 'QueryResponseInfoV4', + assets: 'MultiAssetFilterV4' + }, + BuyExecution: { + fees: 'MultiAssetV4', + weightLimit: 'WeightLimitV3' + }, + RefundSurplus: 'Null', + SetErrorHandler: 'XcmV4', + SetAppendix: 'XcmV4', + ClearError: 'Null', + ClaimAsset: { + assets: 'MultiAssetsV4', + ticket: 'MultiLocationV4' + }, + Trap: 'Compact', + SubscribeVersion: { + queryId: 'Compact', + maxResponseWeight: 'WeightV2' + }, + UnsubscribeVersion: 'Null', + BurnAsset: 'MultiAssetsV4', + ExpectAsset: 'MultiAssetsV4', + ExpectOrigin: 'Option', + ExpectError: 'Option<(u32, XcmErrorV3)>', + ExpectTransactStatus: 'MaybeErrorCodeV3', + QueryPallet: { + moduleName: 'Vec', + responseInfo: 'QueryResponseInfoV4' + }, + ExpectPallet: { + index: 'Compact', + name: 'Vec', + moduleName: 'Vec', + crateMajor: 'Compact', + minCrateMinor: 'Compact' + }, + ReportTransactStatus: 'QueryResponseInfoV4', + ClearTransactStatus: 'Null', + UniversalOrigin: 'JunctionV4', + ExportMessage: { + network: 'NetworkIdV4', + destination: 'JunctionsV4', + xcm: 'XcmV4' + }, + LockAsset: { + asset: 'MultiAssetV4', + unlocker: 'MultiLocationV4' + }, + UnlockAsset: { + asset: 'MultiAssetV4', + target: 'MultiLocationV4' + }, + NoteUnlockable: { + asset: 'MultiAssetV4', + owner: 'MultiLocationV4' + }, + RequestUnlock: { + asset: 'MultiAssetV4', + locker: 'MultiLocationV4' + }, + SetFeesMode: { + jitWithdraw: 'bool' + }, + SetTopic: '[u8;32]', + ClearTopic: 'Null', + AliasOrigin: 'MultiLocationV4', + UnpaidExecution: { + weightLimit: 'WeightLimitV3', + checkOrigin: 'Option' + } + } + }, + OutcomeV4: { + _enum: { + Complete: { + used: 'WeightV2' + }, + Incomplete: { + used: 'WeightV2', + error: 'XcmErrorV3' + }, + Error: { + error: 'XcmErrorV3' + } + } + }, + WildMultiAssetV4: { + _enum: { + All: 'Null', + AllOf: { + id: 'AssetIdV4', + fun: 'WildFungibilityV4' + }, + AllCounted: 'Compact', + AllOfCounted: { + id: 'AssetIdV4', + fun: 'WildFungibilityV4', + count: 'Compact' + } + } + }, + VersionV4: 'u32', + XcmV4: 'Vec', + XcmErrorV4: 'XcmErrorV3' +};