pub trait Config {
Show 24 associated items type RuntimeCall: Parameter + Dispatchable<PostInfo = PostDispatchInfo> + GetDispatchInfo; type XcmSender: SendXcm; type AssetTransactor: TransactAsset; type OriginConverter: ConvertOrigin<<Self::RuntimeCall as Dispatchable>::RuntimeOrigin>; type IsReserve: ContainsPair<MultiAsset, MultiLocation>; type IsTeleporter: ContainsPair<MultiAsset, MultiLocation>; type Aliasers: ContainsPair<MultiLocation, MultiLocation>; type UniversalLocation: Get<Junctions>; type Barrier: ShouldExecute; type Weigher: WeightBounds<Self::RuntimeCall>; type Trader: WeightTrader; type ResponseHandler: OnResponse; type AssetTrap: DropAssets; type AssetLocker: AssetLock; type AssetExchanger: AssetExchange; type AssetClaims: ClaimAssets; type SubscriptionService: VersionChangeNotifier; type PalletInstancesInfo: PalletsInfoAccess; type MaxAssetsIntoHolding: Get<u32>; type FeeManager: FeeManager; type MessageExporter: ExportXcm; type UniversalAliases: Contains<(MultiLocation, Junction)>; type CallDispatcher: CallDispatcher<Self::RuntimeCall>; type SafeCallFilter: Contains<Self::RuntimeCall>;
}
Expand description

The trait to parameterize the XcmExecutor.

Required Associated Types§

type RuntimeCall: Parameter + Dispatchable<PostInfo = PostDispatchInfo> + GetDispatchInfo

The outer call dispatch type.

type XcmSender: SendXcm

How to send an onward XCM message.

type AssetTransactor: TransactAsset

How to withdraw and deposit an asset.

type OriginConverter: ConvertOrigin<<Self::RuntimeCall as Dispatchable>::RuntimeOrigin>

How to get a call origin from a OriginKind value.

type IsReserve: ContainsPair<MultiAsset, MultiLocation>

Combinations of (Asset, Location) pairs which we trust as reserves.

type IsTeleporter: ContainsPair<MultiAsset, MultiLocation>

Combinations of (Asset, Location) pairs which we trust as teleporters.

type Aliasers: ContainsPair<MultiLocation, MultiLocation>

A list of (Origin, Target) pairs allowing a given Origin to be substituted with its corresponding Target pair.

type UniversalLocation: Get<Junctions>

This chain’s Universal Location.

type Barrier: ShouldExecute

Whether we should execute the given XCM at all.

type Weigher: WeightBounds<Self::RuntimeCall>

The means of determining an XCM message’s weight.

type Trader: WeightTrader

The means of purchasing weight credit for XCM execution.

type ResponseHandler: OnResponse

What to do when a response of a query is found.

type AssetTrap: DropAssets

The general asset trap - handler for when assets are left in the Holding Register at the end of execution.

type AssetLocker: AssetLock

Handler for asset locking.

type AssetExchanger: AssetExchange

Handler for exchanging assets.

type AssetClaims: ClaimAssets

The handler for when there is an instruction to claim assets.

type SubscriptionService: VersionChangeNotifier

How we handle version subscription requests.

type PalletInstancesInfo: PalletsInfoAccess

Information on all pallets.

type MaxAssetsIntoHolding: Get<u32>

The maximum number of assets we target to have in the Holding Register at any one time.

NOTE: In the worse case, the Holding Register may contain up to twice as many assets as this and any benchmarks should take that into account.

type FeeManager: FeeManager

Configure the fees.

type MessageExporter: ExportXcm

The method of exporting a message.

type UniversalAliases: Contains<(MultiLocation, Junction)>

The origin locations and specific universal junctions to which they are allowed to elevate themselves.

type CallDispatcher: CallDispatcher<Self::RuntimeCall>

The call dispatcher used by XCM.

XCM will use this to dispatch any calls. When no special call dispatcher is required, this can be set to the same type as Self::Call.

type SafeCallFilter: Contains<Self::RuntimeCall>

The safe call filter for Transact.

Use this type to explicitly whitelist calls that cannot undergo recursion. This is a temporary measure until we properly account for proof size weights for XCM instructions.

Implementors§