@dedot/chaintypes 0.0.1-alpha.66 → 0.0.1-alpha.67

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dedot/chaintypes",
3
- "version": "0.0.1-alpha.66",
3
+ "version": "0.0.1-alpha.67",
4
4
  "description": "Types for substrate-based chains",
5
5
  "author": "Thang X. Vu <thang@coongcrafts.io>",
6
6
  "main": "",
@@ -20,7 +20,7 @@
20
20
  "directory": "dist"
21
21
  },
22
22
  "license": "Apache-2.0",
23
- "gitHead": "496e067e850866bccf0f901e759c43486cf09c30",
23
+ "gitHead": "d4d37014615c2e4ceab107c709d3b1e062c40313",
24
24
  "module": "./index.js",
25
25
  "types": "./index.d.ts"
26
26
  }
@@ -775,4 +775,13 @@ export interface ChainConsts extends GenericChainConsts {
775
775
  **/
776
776
  [name: string]: any;
777
777
  };
778
+ /**
779
+ * Pallet `AssetConversionMigration`'s constants
780
+ **/
781
+ assetConversionMigration: {
782
+ /**
783
+ * Generic pallet constant
784
+ **/
785
+ [name: string]: any;
786
+ };
778
787
  }
@@ -439,11 +439,6 @@ export interface ChainErrors extends GenericChainErrors {
439
439
  **/
440
440
  InUse: GenericPalletError;
441
441
 
442
- /**
443
- * Invalid non-concrete asset.
444
- **/
445
- InvalidAssetNotConcrete: GenericPalletError;
446
-
447
442
  /**
448
443
  * Invalid asset, reserve chain could not be determined for it.
449
444
  **/
@@ -464,17 +459,6 @@ export interface ChainErrors extends GenericChainErrors {
464
459
  **/
465
460
  LocalExecutionIncomplete: GenericPalletError;
466
461
 
467
- /**
468
- * Could not decode XCM.
469
- **/
470
- UnableToDecode: GenericPalletError;
471
-
472
- /**
473
- * XCM encoded length is too large.
474
- * Returned when an XCM encoded length is larger than `MaxXcmEncodedSize`.
475
- **/
476
- XcmTooLarge: GenericPalletError;
477
-
478
462
  /**
479
463
  * Generic pallet error
480
464
  **/
@@ -1502,6 +1486,35 @@ export interface ChainErrors extends GenericChainErrors {
1502
1486
  **/
1503
1487
  BelowMinimum: GenericPalletError;
1504
1488
 
1489
+ /**
1490
+ * Generic pallet error
1491
+ **/
1492
+ [error: string]: GenericPalletError;
1493
+ };
1494
+ /**
1495
+ * Pallet `AssetConversionMigration`'s errors
1496
+ **/
1497
+ assetConversionMigration: {
1498
+ /**
1499
+ * Provided asset pair is not supported for pool.
1500
+ **/
1501
+ InvalidAssetPair: GenericPalletError;
1502
+
1503
+ /**
1504
+ * The pool doesn't exist.
1505
+ **/
1506
+ PoolNotFound: GenericPalletError;
1507
+
1508
+ /**
1509
+ * Pool's balance cannot be zero.
1510
+ **/
1511
+ ZeroBalance: GenericPalletError;
1512
+
1513
+ /**
1514
+ * Indicates a partial transfer of balance to the new account during a migration.
1515
+ **/
1516
+ PartialTransfer: GenericPalletError;
1517
+
1505
1518
  /**
1506
1519
  * Generic pallet error
1507
1520
  **/
@@ -2244,6 +2244,58 @@ export interface ChainEvents extends GenericChainEvents {
2244
2244
  }
2245
2245
  >;
2246
2246
 
2247
+ /**
2248
+ * Pool has been touched in order to fulfill operational requirements.
2249
+ **/
2250
+ Touched: GenericPalletEvent<
2251
+ 'AssetConversion',
2252
+ 'Touched',
2253
+ {
2254
+ /**
2255
+ * The ID of the pool.
2256
+ **/
2257
+ poolId: [StagingXcmV3MultilocationMultiLocation, StagingXcmV3MultilocationMultiLocation];
2258
+
2259
+ /**
2260
+ * The account initiating the touch.
2261
+ **/
2262
+ who: AccountId32;
2263
+ }
2264
+ >;
2265
+
2266
+ /**
2267
+ * Generic pallet event
2268
+ **/
2269
+ [prop: string]: GenericPalletEvent;
2270
+ };
2271
+ /**
2272
+ * Pallet `AssetConversionMigration`'s events
2273
+ **/
2274
+ assetConversionMigration: {
2275
+ /**
2276
+ * Indicates that a pool has been migrated to the new account ID.
2277
+ **/
2278
+ MigratedToNewAccount: GenericPalletEvent<
2279
+ 'AssetConversionMigration',
2280
+ 'MigratedToNewAccount',
2281
+ {
2282
+ /**
2283
+ * Pool's ID.
2284
+ **/
2285
+ poolId: [StagingXcmV3MultilocationMultiLocation, StagingXcmV3MultilocationMultiLocation];
2286
+
2287
+ /**
2288
+ * Pool's prior account ID.
2289
+ **/
2290
+ priorAccount: AccountId32;
2291
+
2292
+ /**
2293
+ * Pool's new account ID.
2294
+ **/
2295
+ newAccount: AccountId32;
2296
+ }
2297
+ >;
2298
+
2247
2299
  /**
2248
2300
  * Generic pallet event
2249
2301
  **/
@@ -579,28 +579,51 @@ export interface RuntimeApis extends GenericRuntimeApis {
579
579
  **/
580
580
  genesisBuilder: {
581
581
  /**
582
- * Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob.
582
+ * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the
583
+ * storage.
583
584
  *
584
- * This function instantiates the default `RuntimeGenesisConfig` struct for the runtime and serializes it into a JSON
585
- * blob. It returns a `Vec<u8>` containing the JSON representation of the default `RuntimeGenesisConfig`.
585
+ * In the case of a FRAME-based runtime, this function deserializes the full `RuntimeGenesisConfig` from the given JSON blob and
586
+ * puts it into the storage. If the provided JSON blob is incorrect or incomplete or the
587
+ * deserialization fails, an error is returned.
586
588
  *
587
- * @callname: GenesisBuilder_create_default_config
589
+ * Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no
590
+ * defaults will be used.
591
+ *
592
+ * @callname: GenesisBuilder_build_state
593
+ * @param {BytesLike} json
588
594
  **/
589
- createDefaultConfig: GenericRuntimeApiMethod<() => Promise<Bytes>>;
595
+ buildState: GenericRuntimeApiMethod<(json: BytesLike) => Promise<Result<[], string>>>;
590
596
 
591
597
  /**
592
- * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage.
598
+ * Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by
599
+ * `id`.
593
600
  *
594
- * This function deserializes the full `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage.
595
- * If the provided JSON blob is incorrect or incomplete or the deserialization fails, an error is returned.
596
- * It is recommended to log any errors encountered during the process.
601
+ * If `id` is `None` the function returns JSON blob representation of the default
602
+ * `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default
603
+ * `RuntimeGenesisConfig`.
597
604
  *
598
- * Please note that provided json blob must contain all `RuntimeGenesisConfig` fields, no defaults will be used.
605
+ * Otherwise function returns a JSON representation of the built-in, named
606
+ * `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not
607
+ * exists. Returned `Vec<u8>` contains bytes of JSON blob (patch) which comprises a list of
608
+ * (potentially nested) key-value pairs that are intended for customizing the default
609
+ * runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation
610
+ * of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can
611
+ * be used in `build_state` method.
599
612
  *
600
- * @callname: GenesisBuilder_build_config
601
- * @param {BytesLike} json
613
+ * @callname: GenesisBuilder_get_preset
614
+ * @param {string | undefined} id
615
+ **/
616
+ getPreset: GenericRuntimeApiMethod<(id?: string | undefined) => Promise<Bytes | undefined>>;
617
+
618
+ /**
619
+ * Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.
620
+ *
621
+ * The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If
622
+ * no named presets are provided by the runtime the list is empty.
623
+ *
624
+ * @callname: GenesisBuilder_preset_names
602
625
  **/
603
- buildConfig: GenericRuntimeApiMethod<(json: BytesLike) => Promise<Result<[], string>>>;
626
+ presetNames: GenericRuntimeApiMethod<() => Promise<Array<string>>>;
604
627
 
605
628
  /**
606
629
  * Generic runtime api call
@@ -21,6 +21,8 @@ import type {
21
21
  SpWeightsWeightV2Weight,
22
22
  StagingXcmV4Location,
23
23
  XcmV3WeightLimit,
24
+ StagingXcmExecutorAssetTransferTransferType,
25
+ XcmVersionedAssetId,
24
26
  CumulusPrimitivesCoreAggregateMessageOrigin,
25
27
  AssetHubWestendRuntimeOriginCaller,
26
28
  PalletMultisigTimepoint,
@@ -956,7 +958,6 @@ export interface ChainTx extends GenericChainTx<TxCall> {
956
958
  **/
957
959
  polkadotXcm: {
958
960
  /**
959
- * WARNING: DEPRECATED. `send` will be removed after June 2024. Use `send_blob` instead.
960
961
  *
961
962
  * @param {XcmVersionedLocation} dest
962
963
  * @param {XcmVersionedXcm} message
@@ -1086,9 +1087,6 @@ export interface ChainTx extends GenericChainTx<TxCall> {
1086
1087
  * the maximum amount of weight that the message could take to be executed, then no
1087
1088
  * execution attempt will be made.
1088
1089
  *
1089
- * WARNING: DEPRECATED. `execute` will be removed after June 2024. Use `execute_blob`
1090
- * instead.
1091
- *
1092
1090
  * @param {XcmVersionedXcm} message
1093
1091
  * @param {SpWeightsWeightV2Weight} maxWeight
1094
1092
  **/
@@ -1400,53 +1398,85 @@ export interface ChainTx extends GenericChainTx<TxCall> {
1400
1398
  >;
1401
1399
 
1402
1400
  /**
1403
- * Execute an XCM from a local, signed, origin.
1401
+ * Transfer assets from the local chain to the destination chain using explicit transfer
1402
+ * types for assets and fees.
1404
1403
  *
1405
- * An event is deposited indicating whether the message could be executed completely
1406
- * or only partially.
1404
+ * `assets` must have same reserve location or may be teleportable to `dest`. Caller must
1405
+ * provide the `assets_transfer_type` to be used for `assets`:
1406
+ * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination
1407
+ * chain and forward a notification XCM to `dest` to mint and deposit reserve-based
1408
+ * assets to `beneficiary`.
1409
+ * - `TransferType::DestinationReserve`: burn local assets and forward a notification to
1410
+ * `dest` chain to withdraw the reserve assets from this chain's sovereign account and
1411
+ * deposit them to `beneficiary`.
1412
+ * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`
1413
+ * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another
1414
+ * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically
1415
+ * the remote `reserve` is Asset Hub.
1416
+ * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to
1417
+ * mint/teleport assets and deposit them to `beneficiary`.
1418
+ *
1419
+ * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to
1420
+ * buy execution using transferred `assets` identified by `remote_fees_id`.
1421
+ * Make sure enough of the specified `remote_fees_id` asset is included in the given list
1422
+ * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight
1423
+ * is needed than `weight_limit`, then the operation will fail and the sent assets may be
1424
+ * at risk.
1407
1425
  *
1408
- * No more than `max_weight` will be used in its attempted execution. If this is less than
1409
- * the maximum amount of weight that the message could take to be executed, then no
1410
- * execution attempt will be made.
1426
+ * `remote_fees_id` may use different transfer type than rest of `assets` and can be
1427
+ * specified through `fees_transfer_type`.
1411
1428
  *
1412
- * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`].
1429
+ * The caller needs to specify what should happen to the transferred assets once they reach
1430
+ * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which
1431
+ * contains the instructions to execute on `dest` as a final step.
1432
+ * This is usually as simple as:
1433
+ * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,
1434
+ * but could be something more exotic like sending the `assets` even further.
1413
1435
  *
1414
- * @param {BytesLike} encodedMessage
1415
- * @param {SpWeightsWeightV2Weight} maxWeight
1416
- **/
1417
- executeBlob: GenericTxCall<
1418
- (
1419
- encodedMessage: BytesLike,
1420
- maxWeight: SpWeightsWeightV2Weight,
1421
- ) => ChainSubmittableExtrinsic<{
1422
- pallet: 'PolkadotXcm';
1423
- palletCall: {
1424
- name: 'ExecuteBlob';
1425
- params: { encodedMessage: BytesLike; maxWeight: SpWeightsWeightV2Weight };
1426
- };
1427
- }>
1428
- >;
1429
-
1430
- /**
1431
- * Send an XCM from a local, signed, origin.
1432
- *
1433
- * The destination, `dest`, will receive this message with a `DescendOrigin` instruction
1434
- * that makes the origin of the message be the origin on this system.
1435
- *
1436
- * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`].
1436
+ * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.
1437
+ * - `dest`: Destination context for the assets. Will typically be `[Parent,
1438
+ * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from
1439
+ * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from
1440
+ * parachain across a bridge to another ecosystem destination.
1441
+ * - `assets`: The assets to be withdrawn. This should include the assets used to pay the
1442
+ * fee on the `dest` (and possibly reserve) chains.
1443
+ * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`.
1444
+ * - `remote_fees_id`: One of the included `assets` to be be used to pay fees.
1445
+ * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets.
1446
+ * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the
1447
+ * transfer, which also determines what happens to the assets on the destination chain.
1448
+ * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.
1437
1449
  *
1438
1450
  * @param {XcmVersionedLocation} dest
1439
- * @param {BytesLike} encodedMessage
1451
+ * @param {XcmVersionedAssets} assets
1452
+ * @param {StagingXcmExecutorAssetTransferTransferType} assetsTransferType
1453
+ * @param {XcmVersionedAssetId} remoteFeesId
1454
+ * @param {StagingXcmExecutorAssetTransferTransferType} feesTransferType
1455
+ * @param {XcmVersionedXcm} customXcmOnDest
1456
+ * @param {XcmV3WeightLimit} weightLimit
1440
1457
  **/
1441
- sendBlob: GenericTxCall<
1458
+ transferAssetsUsingTypeAndThen: GenericTxCall<
1442
1459
  (
1443
1460
  dest: XcmVersionedLocation,
1444
- encodedMessage: BytesLike,
1461
+ assets: XcmVersionedAssets,
1462
+ assetsTransferType: StagingXcmExecutorAssetTransferTransferType,
1463
+ remoteFeesId: XcmVersionedAssetId,
1464
+ feesTransferType: StagingXcmExecutorAssetTransferTransferType,
1465
+ customXcmOnDest: XcmVersionedXcm,
1466
+ weightLimit: XcmV3WeightLimit,
1445
1467
  ) => ChainSubmittableExtrinsic<{
1446
1468
  pallet: 'PolkadotXcm';
1447
1469
  palletCall: {
1448
- name: 'SendBlob';
1449
- params: { dest: XcmVersionedLocation; encodedMessage: BytesLike };
1470
+ name: 'TransferAssetsUsingTypeAndThen';
1471
+ params: {
1472
+ dest: XcmVersionedLocation;
1473
+ assets: XcmVersionedAssets;
1474
+ assetsTransferType: StagingXcmExecutorAssetTransferTransferType;
1475
+ remoteFeesId: XcmVersionedAssetId;
1476
+ feesTransferType: StagingXcmExecutorAssetTransferTransferType;
1477
+ customXcmOnDest: XcmVersionedXcm;
1478
+ weightLimit: XcmV3WeightLimit;
1479
+ };
1450
1480
  };
1451
1481
  }>
1452
1482
  >;
@@ -7879,6 +7909,66 @@ export interface ChainTx extends GenericChainTx<TxCall> {
7879
7909
  }>
7880
7910
  >;
7881
7911
 
7912
+ /**
7913
+ * Touch an existing pool to fulfill prerequisites before providing liquidity, such as
7914
+ * ensuring that the pool's accounts are in place. It is typically useful when a pool
7915
+ * creator removes the pool's accounts and does not provide a liquidity. This action may
7916
+ * involve holding assets from the caller as a deposit for creating the pool's accounts.
7917
+ *
7918
+ * The origin must be Signed.
7919
+ *
7920
+ * - `asset1`: The asset ID of an existing pool with a pair (asset1, asset2).
7921
+ * - `asset2`: The asset ID of an existing pool with a pair (asset1, asset2).
7922
+ *
7923
+ * Emits `Touched` event when successful.
7924
+ *
7925
+ * @param {StagingXcmV3MultilocationMultiLocation} asset1
7926
+ * @param {StagingXcmV3MultilocationMultiLocation} asset2
7927
+ **/
7928
+ touch: GenericTxCall<
7929
+ (
7930
+ asset1: StagingXcmV3MultilocationMultiLocation,
7931
+ asset2: StagingXcmV3MultilocationMultiLocation,
7932
+ ) => ChainSubmittableExtrinsic<{
7933
+ pallet: 'AssetConversion';
7934
+ palletCall: {
7935
+ name: 'Touch';
7936
+ params: { asset1: StagingXcmV3MultilocationMultiLocation; asset2: StagingXcmV3MultilocationMultiLocation };
7937
+ };
7938
+ }>
7939
+ >;
7940
+
7941
+ /**
7942
+ * Generic pallet tx call
7943
+ **/
7944
+ [callName: string]: GenericTxCall<TxCall>;
7945
+ };
7946
+ /**
7947
+ * Pallet `AssetConversionMigration`'s transaction calls
7948
+ **/
7949
+ assetConversionMigration: {
7950
+ /**
7951
+ * Migrates an existing pool to a new account ID derivation method for a given asset pair.
7952
+ * If the migration is successful, transaction fees are refunded to the caller.
7953
+ *
7954
+ * Must be signed.
7955
+ *
7956
+ * @param {StagingXcmV3MultilocationMultiLocation} asset1
7957
+ * @param {StagingXcmV3MultilocationMultiLocation} asset2
7958
+ **/
7959
+ migrateToNewAccount: GenericTxCall<
7960
+ (
7961
+ asset1: StagingXcmV3MultilocationMultiLocation,
7962
+ asset2: StagingXcmV3MultilocationMultiLocation,
7963
+ ) => ChainSubmittableExtrinsic<{
7964
+ pallet: 'AssetConversionMigration';
7965
+ palletCall: {
7966
+ name: 'MigrateToNewAccount';
7967
+ params: { asset1: StagingXcmV3MultilocationMultiLocation; asset2: StagingXcmV3MultilocationMultiLocation };
7968
+ };
7969
+ }>
7970
+ >;
7971
+
7882
7972
  /**
7883
7973
  * Generic pallet tx call
7884
7974
  **/
@@ -69,7 +69,8 @@ export type AssetHubWestendRuntimeRuntimeEvent =
69
69
  | { pallet: 'ForeignAssets'; palletEvent: PalletAssetsEvent002 }
70
70
  | { pallet: 'NftFractionalization'; palletEvent: PalletNftFractionalizationEvent }
71
71
  | { pallet: 'PoolAssets'; palletEvent: PalletAssetsEvent }
72
- | { pallet: 'AssetConversion'; palletEvent: PalletAssetConversionEvent };
72
+ | { pallet: 'AssetConversion'; palletEvent: PalletAssetConversionEvent }
73
+ | { pallet: 'AssetConversionMigration'; palletEvent: PalletAssetConversionOpsEvent };
73
74
 
74
75
  /**
75
76
  * Event for the System pallet.
@@ -2039,8 +2040,52 @@ export type PalletAssetConversionEvent =
2039
2040
  **/
2040
2041
  path: Array<[StagingXcmV3MultilocationMultiLocation, bigint]>;
2041
2042
  };
2043
+ }
2044
+ /**
2045
+ * Pool has been touched in order to fulfill operational requirements.
2046
+ **/
2047
+ | {
2048
+ name: 'Touched';
2049
+ data: {
2050
+ /**
2051
+ * The ID of the pool.
2052
+ **/
2053
+ poolId: [StagingXcmV3MultilocationMultiLocation, StagingXcmV3MultilocationMultiLocation];
2054
+
2055
+ /**
2056
+ * The account initiating the touch.
2057
+ **/
2058
+ who: AccountId32;
2059
+ };
2042
2060
  };
2043
2061
 
2062
+ /**
2063
+ * The `Event` enum of this pallet
2064
+ **/
2065
+ export type PalletAssetConversionOpsEvent =
2066
+ /**
2067
+ * Indicates that a pool has been migrated to the new account ID.
2068
+ **/
2069
+ {
2070
+ name: 'MigratedToNewAccount';
2071
+ data: {
2072
+ /**
2073
+ * Pool's ID.
2074
+ **/
2075
+ poolId: [StagingXcmV3MultilocationMultiLocation, StagingXcmV3MultilocationMultiLocation];
2076
+
2077
+ /**
2078
+ * Pool's prior account ID.
2079
+ **/
2080
+ priorAccount: AccountId32;
2081
+
2082
+ /**
2083
+ * Pool's new account ID.
2084
+ **/
2085
+ newAccount: AccountId32;
2086
+ };
2087
+ };
2088
+
2044
2089
  export type FrameSystemLastRuntimeUpgradeInfo = { specVersion: number; specName: string };
2045
2090
 
2046
2091
  export type FrameSystemCodeUpgradeAuthorization = { codeHash: H256; checkVersion: boolean };
@@ -3306,9 +3351,6 @@ export type PalletXcmRemoteLockedFungibleRecord = {
3306
3351
  * Contains a variant per dispatchable extrinsic that this pallet has.
3307
3352
  **/
3308
3353
  export type PalletXcmCall =
3309
- /**
3310
- * WARNING: DEPRECATED. `send` will be removed after June 2024. Use `send_blob` instead.
3311
- **/
3312
3354
  | { name: 'Send'; params: { dest: XcmVersionedLocation; message: XcmVersionedXcm } }
3313
3355
  /**
3314
3356
  * Teleport some assets from the local chain to some destination chain.
@@ -3389,9 +3431,6 @@ export type PalletXcmCall =
3389
3431
  * No more than `max_weight` will be used in its attempted execution. If this is less than
3390
3432
  * the maximum amount of weight that the message could take to be executed, then no
3391
3433
  * execution attempt will be made.
3392
- *
3393
- * WARNING: DEPRECATED. `execute` will be removed after June 2024. Use `execute_blob`
3394
- * instead.
3395
3434
  **/
3396
3435
  | { name: 'Execute'; params: { message: XcmVersionedXcm; maxWeight: SpWeightsWeightV2Weight } }
3397
3436
  /**
@@ -3561,32 +3600,69 @@ export type PalletXcmCall =
3561
3600
  **/
3562
3601
  | { name: 'ClaimAssets'; params: { assets: XcmVersionedAssets; beneficiary: XcmVersionedLocation } }
3563
3602
  /**
3564
- * Execute an XCM from a local, signed, origin.
3603
+ * Transfer assets from the local chain to the destination chain using explicit transfer
3604
+ * types for assets and fees.
3565
3605
  *
3566
- * An event is deposited indicating whether the message could be executed completely
3567
- * or only partially.
3606
+ * `assets` must have same reserve location or may be teleportable to `dest`. Caller must
3607
+ * provide the `assets_transfer_type` to be used for `assets`:
3608
+ * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination
3609
+ * chain and forward a notification XCM to `dest` to mint and deposit reserve-based
3610
+ * assets to `beneficiary`.
3611
+ * - `TransferType::DestinationReserve`: burn local assets and forward a notification to
3612
+ * `dest` chain to withdraw the reserve assets from this chain's sovereign account and
3613
+ * deposit them to `beneficiary`.
3614
+ * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`
3615
+ * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another
3616
+ * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically
3617
+ * the remote `reserve` is Asset Hub.
3618
+ * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to
3619
+ * mint/teleport assets and deposit them to `beneficiary`.
3620
+ *
3621
+ * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to
3622
+ * buy execution using transferred `assets` identified by `remote_fees_id`.
3623
+ * Make sure enough of the specified `remote_fees_id` asset is included in the given list
3624
+ * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight
3625
+ * is needed than `weight_limit`, then the operation will fail and the sent assets may be
3626
+ * at risk.
3568
3627
  *
3569
- * No more than `max_weight` will be used in its attempted execution. If this is less than
3570
- * the maximum amount of weight that the message could take to be executed, then no
3571
- * execution attempt will be made.
3628
+ * `remote_fees_id` may use different transfer type than rest of `assets` and can be
3629
+ * specified through `fees_transfer_type`.
3572
3630
  *
3573
- * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`].
3574
- **/
3575
- | { name: 'ExecuteBlob'; params: { encodedMessage: Bytes; maxWeight: SpWeightsWeightV2Weight } }
3576
- /**
3577
- * Send an XCM from a local, signed, origin.
3631
+ * The caller needs to specify what should happen to the transferred assets once they reach
3632
+ * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which
3633
+ * contains the instructions to execute on `dest` as a final step.
3634
+ * This is usually as simple as:
3635
+ * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,
3636
+ * but could be something more exotic like sending the `assets` even further.
3578
3637
  *
3579
- * The destination, `dest`, will receive this message with a `DescendOrigin` instruction
3580
- * that makes the origin of the message be the origin on this system.
3581
- *
3582
- * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`].
3638
+ * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.
3639
+ * - `dest`: Destination context for the assets. Will typically be `[Parent,
3640
+ * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from
3641
+ * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from
3642
+ * parachain across a bridge to another ecosystem destination.
3643
+ * - `assets`: The assets to be withdrawn. This should include the assets used to pay the
3644
+ * fee on the `dest` (and possibly reserve) chains.
3645
+ * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`.
3646
+ * - `remote_fees_id`: One of the included `assets` to be be used to pay fees.
3647
+ * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets.
3648
+ * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the
3649
+ * transfer, which also determines what happens to the assets on the destination chain.
3650
+ * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.
3583
3651
  **/
3584
- | { name: 'SendBlob'; params: { dest: XcmVersionedLocation; encodedMessage: Bytes } };
3652
+ | {
3653
+ name: 'TransferAssetsUsingTypeAndThen';
3654
+ params: {
3655
+ dest: XcmVersionedLocation;
3656
+ assets: XcmVersionedAssets;
3657
+ assetsTransferType: StagingXcmExecutorAssetTransferTransferType;
3658
+ remoteFeesId: XcmVersionedAssetId;
3659
+ feesTransferType: StagingXcmExecutorAssetTransferTransferType;
3660
+ customXcmOnDest: XcmVersionedXcm;
3661
+ weightLimit: XcmV3WeightLimit;
3662
+ };
3663
+ };
3585
3664
 
3586
3665
  export type PalletXcmCallLike =
3587
- /**
3588
- * WARNING: DEPRECATED. `send` will be removed after June 2024. Use `send_blob` instead.
3589
- **/
3590
3666
  | { name: 'Send'; params: { dest: XcmVersionedLocation; message: XcmVersionedXcm } }
3591
3667
  /**
3592
3668
  * Teleport some assets from the local chain to some destination chain.
@@ -3667,9 +3743,6 @@ export type PalletXcmCallLike =
3667
3743
  * No more than `max_weight` will be used in its attempted execution. If this is less than
3668
3744
  * the maximum amount of weight that the message could take to be executed, then no
3669
3745
  * execution attempt will be made.
3670
- *
3671
- * WARNING: DEPRECATED. `execute` will be removed after June 2024. Use `execute_blob`
3672
- * instead.
3673
3746
  **/
3674
3747
  | { name: 'Execute'; params: { message: XcmVersionedXcm; maxWeight: SpWeightsWeightV2Weight } }
3675
3748
  /**
@@ -3839,27 +3912,67 @@ export type PalletXcmCallLike =
3839
3912
  **/
3840
3913
  | { name: 'ClaimAssets'; params: { assets: XcmVersionedAssets; beneficiary: XcmVersionedLocation } }
3841
3914
  /**
3842
- * Execute an XCM from a local, signed, origin.
3843
- *
3844
- * An event is deposited indicating whether the message could be executed completely
3845
- * or only partially.
3915
+ * Transfer assets from the local chain to the destination chain using explicit transfer
3916
+ * types for assets and fees.
3846
3917
  *
3847
- * No more than `max_weight` will be used in its attempted execution. If this is less than
3848
- * the maximum amount of weight that the message could take to be executed, then no
3849
- * execution attempt will be made.
3918
+ * `assets` must have same reserve location or may be teleportable to `dest`. Caller must
3919
+ * provide the `assets_transfer_type` to be used for `assets`:
3920
+ * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination
3921
+ * chain and forward a notification XCM to `dest` to mint and deposit reserve-based
3922
+ * assets to `beneficiary`.
3923
+ * - `TransferType::DestinationReserve`: burn local assets and forward a notification to
3924
+ * `dest` chain to withdraw the reserve assets from this chain's sovereign account and
3925
+ * deposit them to `beneficiary`.
3926
+ * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`
3927
+ * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another
3928
+ * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically
3929
+ * the remote `reserve` is Asset Hub.
3930
+ * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to
3931
+ * mint/teleport assets and deposit them to `beneficiary`.
3932
+ *
3933
+ * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to
3934
+ * buy execution using transferred `assets` identified by `remote_fees_id`.
3935
+ * Make sure enough of the specified `remote_fees_id` asset is included in the given list
3936
+ * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight
3937
+ * is needed than `weight_limit`, then the operation will fail and the sent assets may be
3938
+ * at risk.
3850
3939
  *
3851
- * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`].
3852
- **/
3853
- | { name: 'ExecuteBlob'; params: { encodedMessage: BytesLike; maxWeight: SpWeightsWeightV2Weight } }
3854
- /**
3855
- * Send an XCM from a local, signed, origin.
3940
+ * `remote_fees_id` may use different transfer type than rest of `assets` and can be
3941
+ * specified through `fees_transfer_type`.
3856
3942
  *
3857
- * The destination, `dest`, will receive this message with a `DescendOrigin` instruction
3858
- * that makes the origin of the message be the origin on this system.
3943
+ * The caller needs to specify what should happen to the transferred assets once they reach
3944
+ * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which
3945
+ * contains the instructions to execute on `dest` as a final step.
3946
+ * This is usually as simple as:
3947
+ * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,
3948
+ * but could be something more exotic like sending the `assets` even further.
3859
3949
  *
3860
- * The message is passed in encoded. It needs to be decodable as a [`VersionedXcm`].
3950
+ * - `origin`: Must be capable of withdrawing the `assets` and executing XCM.
3951
+ * - `dest`: Destination context for the assets. Will typically be `[Parent,
3952
+ * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from
3953
+ * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from
3954
+ * parachain across a bridge to another ecosystem destination.
3955
+ * - `assets`: The assets to be withdrawn. This should include the assets used to pay the
3956
+ * fee on the `dest` (and possibly reserve) chains.
3957
+ * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`.
3958
+ * - `remote_fees_id`: One of the included `assets` to be be used to pay fees.
3959
+ * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets.
3960
+ * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the
3961
+ * transfer, which also determines what happens to the assets on the destination chain.
3962
+ * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase.
3861
3963
  **/
3862
- | { name: 'SendBlob'; params: { dest: XcmVersionedLocation; encodedMessage: BytesLike } };
3964
+ | {
3965
+ name: 'TransferAssetsUsingTypeAndThen';
3966
+ params: {
3967
+ dest: XcmVersionedLocation;
3968
+ assets: XcmVersionedAssets;
3969
+ assetsTransferType: StagingXcmExecutorAssetTransferTransferType;
3970
+ remoteFeesId: XcmVersionedAssetId;
3971
+ feesTransferType: StagingXcmExecutorAssetTransferTransferType;
3972
+ customXcmOnDest: XcmVersionedXcm;
3973
+ weightLimit: XcmV3WeightLimit;
3974
+ };
3975
+ };
3863
3976
 
3864
3977
  export type XcmVersionedXcm =
3865
3978
  | { tag: 'V2'; value: XcmV2Xcm }
@@ -4063,6 +4176,12 @@ export type XcmV3MultiassetWildMultiAsset =
4063
4176
 
4064
4177
  export type XcmV3MultiassetWildFungibility = 'Fungible' | 'NonFungible';
4065
4178
 
4179
+ export type StagingXcmExecutorAssetTransferTransferType =
4180
+ | { tag: 'Teleport' }
4181
+ | { tag: 'LocalReserve' }
4182
+ | { tag: 'DestinationReserve' }
4183
+ | { tag: 'RemoteReserve'; value: XcmVersionedLocation };
4184
+
4066
4185
  /**
4067
4186
  * The `Error` enum of this pallet.
4068
4187
  **/
@@ -4150,10 +4269,6 @@ export type PalletXcmError =
4150
4269
  * The unlock operation cannot succeed because there are still consumers of the lock.
4151
4270
  **/
4152
4271
  | 'InUse'
4153
- /**
4154
- * Invalid non-concrete asset.
4155
- **/
4156
- | 'InvalidAssetNotConcrete'
4157
4272
  /**
4158
4273
  * Invalid asset, reserve chain could not be determined for it.
4159
4274
  **/
@@ -4169,16 +4284,7 @@ export type PalletXcmError =
4169
4284
  /**
4170
4285
  * Local XCM execution incomplete.
4171
4286
  **/
4172
- | 'LocalExecutionIncomplete'
4173
- /**
4174
- * Could not decode XCM.
4175
- **/
4176
- | 'UnableToDecode'
4177
- /**
4178
- * XCM encoded length is too large.
4179
- * Returned when an XCM encoded length is larger than `MaxXcmEncodedSize`.
4180
- **/
4181
- | 'XcmTooLarge';
4287
+ | 'LocalExecutionIncomplete';
4182
4288
 
4183
4289
  /**
4184
4290
  * Contains a variant per dispatchable extrinsic that this pallet has.
@@ -4546,7 +4652,8 @@ export type AssetHubWestendRuntimeRuntimeCall =
4546
4652
  | { pallet: 'ForeignAssets'; palletCall: PalletAssetsCall002 }
4547
4653
  | { pallet: 'NftFractionalization'; palletCall: PalletNftFractionalizationCall }
4548
4654
  | { pallet: 'PoolAssets'; palletCall: PalletAssetsCall003 }
4549
- | { pallet: 'AssetConversion'; palletCall: PalletAssetConversionCall };
4655
+ | { pallet: 'AssetConversion'; palletCall: PalletAssetConversionCall }
4656
+ | { pallet: 'AssetConversionMigration'; palletCall: PalletAssetConversionOpsCall };
4550
4657
 
4551
4658
  export type AssetHubWestendRuntimeRuntimeCallLike =
4552
4659
  | { pallet: 'System'; palletCall: FrameSystemCallLike }
@@ -4570,7 +4677,8 @@ export type AssetHubWestendRuntimeRuntimeCallLike =
4570
4677
  | { pallet: 'ForeignAssets'; palletCall: PalletAssetsCallLike002 }
4571
4678
  | { pallet: 'NftFractionalization'; palletCall: PalletNftFractionalizationCallLike }
4572
4679
  | { pallet: 'PoolAssets'; palletCall: PalletAssetsCallLike003 }
4573
- | { pallet: 'AssetConversion'; palletCall: PalletAssetConversionCallLike };
4680
+ | { pallet: 'AssetConversion'; palletCall: PalletAssetConversionCallLike }
4681
+ | { pallet: 'AssetConversionMigration'; palletCall: PalletAssetConversionOpsCallLike };
4574
4682
 
4575
4683
  /**
4576
4684
  * Contains a variant per dispatchable extrinsic that this pallet has.
@@ -11164,6 +11272,23 @@ export type PalletAssetConversionCall =
11164
11272
  sendTo: AccountId32;
11165
11273
  keepAlive: boolean;
11166
11274
  };
11275
+ }
11276
+ /**
11277
+ * Touch an existing pool to fulfill prerequisites before providing liquidity, such as
11278
+ * ensuring that the pool's accounts are in place. It is typically useful when a pool
11279
+ * creator removes the pool's accounts and does not provide a liquidity. This action may
11280
+ * involve holding assets from the caller as a deposit for creating the pool's accounts.
11281
+ *
11282
+ * The origin must be Signed.
11283
+ *
11284
+ * - `asset1`: The asset ID of an existing pool with a pair (asset1, asset2).
11285
+ * - `asset2`: The asset ID of an existing pool with a pair (asset1, asset2).
11286
+ *
11287
+ * Emits `Touched` event when successful.
11288
+ **/
11289
+ | {
11290
+ name: 'Touch';
11291
+ params: { asset1: StagingXcmV3MultilocationMultiLocation; asset2: StagingXcmV3MultilocationMultiLocation };
11167
11292
  };
11168
11293
 
11169
11294
  export type PalletAssetConversionCallLike =
@@ -11256,8 +11381,52 @@ export type PalletAssetConversionCallLike =
11256
11381
  sendTo: AccountId32Like;
11257
11382
  keepAlive: boolean;
11258
11383
  };
11384
+ }
11385
+ /**
11386
+ * Touch an existing pool to fulfill prerequisites before providing liquidity, such as
11387
+ * ensuring that the pool's accounts are in place. It is typically useful when a pool
11388
+ * creator removes the pool's accounts and does not provide a liquidity. This action may
11389
+ * involve holding assets from the caller as a deposit for creating the pool's accounts.
11390
+ *
11391
+ * The origin must be Signed.
11392
+ *
11393
+ * - `asset1`: The asset ID of an existing pool with a pair (asset1, asset2).
11394
+ * - `asset2`: The asset ID of an existing pool with a pair (asset1, asset2).
11395
+ *
11396
+ * Emits `Touched` event when successful.
11397
+ **/
11398
+ | {
11399
+ name: 'Touch';
11400
+ params: { asset1: StagingXcmV3MultilocationMultiLocation; asset2: StagingXcmV3MultilocationMultiLocation };
11259
11401
  };
11260
11402
 
11403
+ /**
11404
+ * Pallet's callable functions.
11405
+ **/
11406
+ export type PalletAssetConversionOpsCall =
11407
+ /**
11408
+ * Migrates an existing pool to a new account ID derivation method for a given asset pair.
11409
+ * If the migration is successful, transaction fees are refunded to the caller.
11410
+ *
11411
+ * Must be signed.
11412
+ **/
11413
+ {
11414
+ name: 'MigrateToNewAccount';
11415
+ params: { asset1: StagingXcmV3MultilocationMultiLocation; asset2: StagingXcmV3MultilocationMultiLocation };
11416
+ };
11417
+
11418
+ export type PalletAssetConversionOpsCallLike =
11419
+ /**
11420
+ * Migrates an existing pool to a new account ID derivation method for a given asset pair.
11421
+ * If the migration is successful, transaction fees are refunded to the caller.
11422
+ *
11423
+ * Must be signed.
11424
+ **/
11425
+ {
11426
+ name: 'MigrateToNewAccount';
11427
+ params: { asset1: StagingXcmV3MultilocationMultiLocation; asset2: StagingXcmV3MultilocationMultiLocation };
11428
+ };
11429
+
11261
11430
  export type AssetHubWestendRuntimeOriginCaller =
11262
11431
  | { tag: 'System'; value: FrameSupportDispatchRawOrigin }
11263
11432
  | { tag: 'PolkadotXcm'; value: PalletXcmOrigin }
@@ -11987,6 +12156,27 @@ export type PalletAssetConversionError =
11987
12156
  **/
11988
12157
  | 'BelowMinimum';
11989
12158
 
12159
+ /**
12160
+ * The `Error` enum of this pallet.
12161
+ **/
12162
+ export type PalletAssetConversionOpsError =
12163
+ /**
12164
+ * Provided asset pair is not supported for pool.
12165
+ **/
12166
+ | 'InvalidAssetPair'
12167
+ /**
12168
+ * The pool doesn't exist.
12169
+ **/
12170
+ | 'PoolNotFound'
12171
+ /**
12172
+ * Pool's balance cannot be zero.
12173
+ **/
12174
+ | 'ZeroBalance'
12175
+ /**
12176
+ * Indicates a partial transfer of balance to the new account during a migration.
12177
+ **/
12178
+ | 'PartialTransfer';
12179
+
11990
12180
  export type FrameSystemExtensionsCheckNonZeroSender = {};
11991
12181
 
11992
12182
  export type FrameSystemExtensionsCheckSpecVersion = {};
@@ -12098,4 +12288,5 @@ export type AssetHubWestendRuntimeRuntimeError =
12098
12288
  | { tag: 'ForeignAssets'; value: PalletAssetsError }
12099
12289
  | { tag: 'NftFractionalization'; value: PalletNftFractionalizationError }
12100
12290
  | { tag: 'PoolAssets'; value: PalletAssetsError }
12101
- | { tag: 'AssetConversion'; value: PalletAssetConversionError };
12291
+ | { tag: 'AssetConversion'; value: PalletAssetConversionError }
12292
+ | { tag: 'AssetConversionMigration'; value: PalletAssetConversionOpsError };