diff --git a/packages/types/src/augment/registry.ts b/packages/types/src/augment/registry.ts index 12ec1a4f95..f128798388 100644 --- a/packages/types/src/augment/registry.ts +++ b/packages/types/src/augment/registry.ts @@ -57,7 +57,7 @@ import type { Multiplier } from '@polkadot/types/interfaces/txpayment'; 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, 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, 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 { 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'; declare module '@polkadot/types/types/registry' { export interface InterfaceTypes { @@ -407,6 +407,9 @@ declare module '@polkadot/types/types/registry' { FundIndex: FundIndex; FundInfo: FundInfo; Fungibility: Fungibility; + FungibilityV0: FungibilityV0; + FungibilityV1: FungibilityV1; + FungibilityV2: FungibilityV2; Gas: Gas; GiltBid: GiltBid; GlobalValidationData: GlobalValidationData; @@ -1021,6 +1024,9 @@ declare module '@polkadot/types/types/registry' { WeightPerClass: WeightPerClass; WeightToFeeCoefficient: WeightToFeeCoefficient; WildFungibility: WildFungibility; + WildFungibilityV0: WildFungibilityV0; + WildFungibilityV1: WildFungibilityV1; + WildFungibilityV2: WildFungibilityV2; WildMultiAsset: WildMultiAsset; WildMultiAssetV1: WildMultiAssetV1; WildMultiAssetV2: WildMultiAssetV2; diff --git a/packages/types/src/interfaces/xcm/definitions.ts b/packages/types/src/interfaces/xcm/definitions.ts index 3ea1020034..abc90bfba5 100644 --- a/packages/types/src/interfaces/xcm/definitions.ts +++ b/packages/types/src/interfaces/xcm/definitions.ts @@ -10,7 +10,7 @@ import { v0 } from './v0'; import { v1 } from './v1'; import { v2 } from './v2'; -export const XCM_MAPPINGS = ['AssetInstance', 'Junction', 'Junctions', 'MultiAsset', 'MultiAssetFilter', 'MultiLocation', 'Response', 'WildMultiAsset', 'Xcm', 'XcmError', 'XcmOrder']; +export const XCM_MAPPINGS = ['AssetInstance', 'Fungibility', 'Junction', 'Junctions', 'MultiAsset', 'MultiAssetFilter', 'MultiLocation', 'Response', 'WildFungibility', 'WildMultiAsset', 'Xcm', 'XcmError', 'XcmOrder']; const XCM_LATEST = 'V2'; @@ -36,22 +36,13 @@ const xcm = { Abstract: 'Bytes' } }, - Fungibility: { - _enum: { - Fungible: 'u128', - NonFungible: 'AssetInstance' - } - }, InboundStatus: { _enum: ['Ok', 'Suspended'] }, OutboundStatus: { _enum: ['Ok', 'Suspended'] }, - MultiAssets: 'Vec', - WildFungibility: { - _enum: ['Fungible', 'NonFungible'] - } + MultiAssets: 'Vec' }; const location = { diff --git a/packages/types/src/interfaces/xcm/types.ts b/packages/types/src/interfaces/xcm/types.ts index f3aa40717a..75f9d11e4c 100644 --- a/packages/types/src/interfaces/xcm/types.ts +++ b/packages/types/src/interfaces/xcm/types.ts @@ -94,13 +94,22 @@ export interface DoubleEncodedCall extends Struct { } /** @name Fungibility */ -export interface Fungibility extends Enum { +export interface Fungibility extends FungibilityV2 {} + +/** @name FungibilityV0 */ +export interface FungibilityV0 extends FungibilityV1 {} + +/** @name FungibilityV1 */ +export interface FungibilityV1 extends Enum { readonly isFungible: boolean; - readonly asFungible: u128; + readonly asFungible: Compact; readonly isNonFungible: boolean; - readonly asNonFungible: AssetInstance; + readonly asNonFungible: AssetInstanceV1; } +/** @name FungibilityV2 */ +export interface FungibilityV2 extends FungibilityV1 {} + /** @name InboundStatus */ export interface InboundStatus extends Enum { readonly isOk: boolean; @@ -388,7 +397,7 @@ export interface MultiAssetV0 extends Enum { /** @name MultiAssetV1 */ export interface MultiAssetV1 extends Struct { readonly id: XcmAssetId; - readonly fungibility: Fungibility; + readonly fungibility: FungibilityV1; } /** @name MultiAssetV2 */ @@ -595,11 +604,20 @@ export interface WeightLimitV2 extends Enum { } /** @name WildFungibility */ -export interface WildFungibility extends Enum { +export interface WildFungibility extends WildFungibilityV2 {} + +/** @name WildFungibilityV0 */ +export interface WildFungibilityV0 extends WildFungibilityV1 {} + +/** @name WildFungibilityV1 */ +export interface WildFungibilityV1 extends Enum { readonly isFungible: boolean; readonly isNonFungible: boolean; } +/** @name WildFungibilityV2 */ +export interface WildFungibilityV2 extends WildFungibilityV1 {} + /** @name WildMultiAsset */ export interface WildMultiAsset extends WildMultiAssetV2 {} @@ -609,7 +627,7 @@ export interface WildMultiAssetV1 extends Enum { readonly isAllOf: boolean; readonly asAllOf: { readonly id: XcmAssetId; - readonly fungibility: WildFungibility; + readonly fungibility: WildFungibilityV1; } & Struct; } diff --git a/packages/types/src/interfaces/xcm/v0.ts b/packages/types/src/interfaces/xcm/v0.ts index c689d07287..62667c40d3 100644 --- a/packages/types/src/interfaces/xcm/v0.ts +++ b/packages/types/src/interfaces/xcm/v0.ts @@ -7,6 +7,8 @@ import type { DefinitionsTypes } from '../../types'; export const v0: DefinitionsTypes = { + FungibilityV0: 'FungibilityV1', + WildFungibilityV0: 'WildFungibilityV1', AssetInstanceV0: { _enum: { Undefined: 'Null', diff --git a/packages/types/src/interfaces/xcm/v1.ts b/packages/types/src/interfaces/xcm/v1.ts index 05c4710ffa..4e8b0f4286 100644 --- a/packages/types/src/interfaces/xcm/v1.ts +++ b/packages/types/src/interfaces/xcm/v1.ts @@ -18,6 +18,12 @@ export const v1: DefinitionsTypes = { Blob: 'Bytes' } }, + FungibilityV1: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV1' + } + }, JunctionV1: { _enum: { Parachain: 'Compact', @@ -59,7 +65,7 @@ export const v1: DefinitionsTypes = { MultiAssetsV1: 'Vec', MultiAssetV1: { id: 'XcmAssetId', - fungibility: 'Fungibility' + fungibility: 'FungibilityV1' }, MultiAssetFilterV1: { _enum: { @@ -77,12 +83,15 @@ export const v1: DefinitionsTypes = { Assets: 'MultiAssetsV1' } }, + WildFungibilityV1: { + _enum: ['Fungible', 'NonFungible'] + }, WildMultiAssetV1: { _enum: { All: 'Null', AllOf: { id: 'XcmAssetId', - fungibility: 'WildFungibility' + fungibility: 'WildFungibilityV1' } } }, diff --git a/packages/types/src/interfaces/xcm/v2.ts b/packages/types/src/interfaces/xcm/v2.ts index 04d27def24..c85f220785 100644 --- a/packages/types/src/interfaces/xcm/v2.ts +++ b/packages/types/src/interfaces/xcm/v2.ts @@ -8,6 +8,7 @@ import type { DefinitionsTypes } from '../../types'; export const v2: DefinitionsTypes = { AssetInstanceV2: 'AssetInstanceV1', + FungibilityV2: 'FungibilityV1', JunctionV2: 'JunctionV1', JunctionsV2: 'JunctionsV1', MultiAssetsV2: 'MultiAssetsV1', @@ -15,6 +16,7 @@ export const v2: DefinitionsTypes = { MultiAssetFilterV2: 'MultiAssetFilterV1', MultiLocationV2: 'MultiLocationV1', OriginKindV2: 'OriginKindV1', + WildFungibilityV2: 'WildFungibilityV1', ResponseV2: { _enum: { Null: 'Null',