Skip to content

Commit

Permalink
implement xcm dry run api (#5970)
Browse files Browse the repository at this point in the history
* add definitions for xcm dry run api

* replace ITuple with Tuple

* replace ITuple with tuple syntax

* update types for xcm v3 and v4

* remove console log

* revert enum ts error logging

* fix dry run call param type name

* lint
  • Loading branch information
marshacb committed Sep 16, 2024
1 parent 50332da commit b04e7b0
Show file tree
Hide file tree
Showing 14 changed files with 2,201 additions and 137 deletions.
67 changes: 63 additions & 4 deletions packages/types-augment/src/registry/interfaces.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -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';

Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand All @@ -214,6 +224,7 @@ declare module '@polkadot/types/types/registry' {
BufferedSessionChange: BufferedSessionChange;
Bytes: Bytes;
Call: Call;
CallDryRunEffects: CallDryRunEffects;
CallHash: CallHash;
CallHashOf: CallHashOf;
CallIndex: CallIndex;
Expand Down Expand Up @@ -373,6 +384,7 @@ declare module '@polkadot/types/types/registry' {
DispatchResult: DispatchResult;
DispatchResultOf: DispatchResultOf;
DispatchResultTo198: DispatchResultTo198;
DispatchResultWithPostInfo: DispatchResultWithPostInfo;
DisputeLocation: DisputeLocation;
DisputeProof: DisputeProof;
DisputeResult: DisputeResult;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand All @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -772,13 +808,16 @@ declare module '@polkadot/types/types/registry' {
OriginKindV0: OriginKindV0;
OriginKindV1: OriginKindV1;
OriginKindV2: OriginKindV2;
OriginKindV3: OriginKindV3;
OriginKindV4: OriginKindV4;
OutboundHrmpChannelLimitations: OutboundHrmpChannelLimitations;
OutboundHrmpMessage: OutboundHrmpMessage;
OutboundLaneData: OutboundLaneData;
OutboundMessageFee: OutboundMessageFee;
OutboundPayload: OutboundPayload;
OutboundStatus: OutboundStatus;
Outcome: Outcome;
OutcomeV4: OutcomeV4;
OuterEnums15: OuterEnums15;
OverweightIndex: OverweightIndex;
Owner: Owner;
Expand All @@ -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;
Expand Down Expand Up @@ -845,6 +886,7 @@ declare module '@polkadot/types/types/registry' {
Points: Points;
PortableType: PortableType;
PortableTypeV14: PortableTypeV14;
PostDispatchInfo: PostDispatchInfo;
Precommits: Precommits;
PrefabWasmModule: PrefabWasmModule;
PrefixedStorageKey: PrefixedStorageKey;
Expand All @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -1159,6 +1206,7 @@ declare module '@polkadot/types/types/registry' {
U8: U8;
UnappliedSlash: UnappliedSlash;
UnappliedSlashOther: UnappliedSlashOther;
UncheckedFungibilityV4: UncheckedFungibilityV4;
UncleEntryItem: UncleEntryItem;
UnknownTransaction: UnknownTransaction;
UnlockChunk: UnlockChunk;
Expand Down Expand Up @@ -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;
Expand All @@ -1217,6 +1267,7 @@ declare module '@polkadot/types/types/registry' {
VrfProof: VrfProof;
Weight: Weight;
WeightLimitV2: WeightLimitV2;
WeightLimitV3: WeightLimitV3;
WeightMultiplier: WeightMultiplier;
WeightPerClass: WeightPerClass;
WeightToFeeCoefficient: WeightToFeeCoefficient;
Expand All @@ -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;
Expand All @@ -1240,21 +1295,25 @@ 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;
XcmpMessageFormat: XcmpMessageFormat;
XcmV0: XcmV0;
XcmV1: XcmV1;
XcmV2: XcmV2;
XcmV3: XcmV3;
XcmV4: XcmV4;
XcmVersion: XcmVersion;
} // InterfaceTypes
} // declare module
4 changes: 2 additions & 2 deletions packages/types-create/src/util/xcm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<string, string> {
export function mapXcmTypes (version: 'V0' | 'V1' | 'V2' | 'V3' | 'V4'): Record<string, string> {
return XCM_MAPPINGS.reduce<Record<string, string>>((all, key) =>
objectSpread(all, { [key]: `${key}${version}` }), {}
);
Expand Down
2 changes: 1 addition & 1 deletion packages/types/src/interfaces/definitions.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ describe('runtime definitions', (): void => {
for (const { methods, version } of versions) {
describe(`version ${version}`, (): void => {
const methodsEntries = Object.entries<DefinitionCall>(methods);
const skipInspectTypes = ['StagingXcmV3MultiLocation', 'StagingXcmV4Location', 'Result<Vec<XcmV3MultiAsset>, FungiblesAccessError>', 'Result<XcmVersionedAssets, FungiblesAccessError>', 'XcmVersionedLocation', 'XcmVersionedAssetId', 'XcmVersionedXcm', 'Result<Vec<XcmVersionedAssetId>, XcmPaymentApiError>'];
const skipInspectTypes = ['StagingXcmV3MultiLocation', 'StagingXcmV4Location', 'Result<Vec<XcmV3MultiAsset>, FungiblesAccessError>', 'Result<XcmVersionedAssets, FungiblesAccessError>', 'XcmVersionedLocation', 'XcmVersionedAssetId', 'XcmVersionedXcm', 'Result<Vec<XcmVersionedAssetId>, XcmPaymentApiError>', 'VersionedMultiLocation', 'VersionedXcm', 'PostDispatchInfo', 'DispatchResultWithPostInfo', 'CallDryRunEffects', 'XcmDryRunEffects', 'XcmDryRunApiError', 'Result<CallDryRunEffects, XcmDryRunApiError>', 'Result<XcmDryRunEffects, XcmDryRunApiError>'];

for (const [key, { params, type }] of methodsEntries) {
describe(`${key}`, (): void => {
Expand Down
1 change: 1 addition & 0 deletions packages/types/src/interfaces/definitions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down
38 changes: 38 additions & 0 deletions packages/types/src/interfaces/dryRunApi/definitions.ts
Original file line number Diff line number Diff line change
@@ -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<Weight>',
paysFee: 'Pays'
},
DispatchResultWithPostInfo: 'Result<PostDispatchInfo, DispatchError>',
CallDryRunEffects: {
executionResult: 'DispatchResultWithPostInfo',
emittedEvents: 'Vec<Event>',
localXcm: 'Option<VersionedXcm>',
forwardedXcms: 'Vec<(VersionedMultiLocation, Vec<VersionedXcm>)>'
},
XcmDryRunEffects: {
executionResult: 'OutcomeV4',
emittedEvents: 'Vec<Event>',
forwardedXcms: 'Vec<(VersionedMultiLocation, Vec<VersionedXcm>)>'
},
XcmDryRunApiError: {
_enum: [
'Unimplemented',
'VersionedConversionFailed'
]
}
}
} as Definitions;
4 changes: 4 additions & 0 deletions packages/types/src/interfaces/dryRunApi/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// Auto-generated via `yarn polkadot-types-from-defs`, do not edit
/* eslint-disable */

export * from './types.js';
42 changes: 42 additions & 0 deletions packages/types/src/interfaces/dryRunApi/runtime.ts
Original file line number Diff line number Diff line change
@@ -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<CallDryRunEffects, XcmDryRunApiError>'
},
dry_run_xcm: {
description: 'Dry run XCM program',
params: [
{
name: 'originLocation',
type: 'VersionedMultiLocation'
},
{
name: 'xcm',
type: 'VersionedXcm'
}
],
type: 'Result<XcmDryRunEffects, XcmDryRunApiError>'
}
},
version: 1
}
]
};
Loading

0 comments on commit b04e7b0

Please sign in to comment.