@paraspell/sdk-core 11.8.5 → 11.9.0

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/dist/index.d.ts CHANGED
@@ -121,7 +121,9 @@ type TSendBaseOptions = {
121
121
  /**
122
122
  * Options for transferring from a parachain to another parachain or relay chain
123
123
  */
124
- type TSendOptions<TApi, TRes> = WithApi<TSendBaseOptions, TApi, TRes>;
124
+ type TSendOptions<TApi, TRes> = WithApi<TSendBaseOptions, TApi, TRes> & {
125
+ isAmountAll: boolean;
126
+ };
125
127
  type WithRequiredSenderAddress<TBase> = Omit<TBase, 'senderAddress'> & {
126
128
  /**
127
129
  * The sender address. A SS58 or H160 format.
@@ -136,6 +138,7 @@ type TSendInternalOptions<TApi, TRes> = Omit<TSendBaseOptions, 'from' | 'feeAsse
136
138
  feeCurrency?: TCurrencyInput;
137
139
  overriddenAsset?: TLocation | TAssetWithFee[];
138
140
  version: Version;
141
+ isAmountAll: boolean;
139
142
  };
140
143
  type TRelayToParaBaseOptions = {
141
144
  /**
@@ -150,6 +153,10 @@ type TRelayToParaBaseOptions = {
150
153
  * The destination address. A SS58 or H160 format.
151
154
  */
152
155
  address: TAddress;
156
+ /**
157
+ * The sender address. A SS58 or H160 format.
158
+ */
159
+ senderAddress?: string;
153
160
  /**
154
161
  * The optional destination parachain ID
155
162
  */
@@ -216,6 +223,7 @@ type TCreateBeneficiaryXTokensOptions<TApi, TRes> = {
216
223
  type TBridgeStatus = 'Normal' | 'Halted';
217
224
  type TTransferLocalOptions<TApi, TRes> = Omit<TSendInternalOptions<TApi, TRes>, 'address'> & {
218
225
  address: string;
226
+ balance: bigint;
219
227
  };
220
228
  type TTransferFeeEstimates = {
221
229
  originFee: bigint;
@@ -322,8 +330,8 @@ declare class AssetClaimBuilder<TApi, TRes, T extends Partial<TAssetClaimOptions
322
330
  }
323
331
 
324
332
  declare class BatchTransactionManager<TApi, TRes> {
325
- transactionOptions: TSendOptions<TApi, TRes>[];
326
- addTransaction(options: TSendOptions<TApi, TRes>): void;
333
+ transactionOptions: TBatchedSendOptions<TApi, TRes>[];
334
+ addTransaction(options: TBatchedSendOptions<TApi, TRes>): void;
327
335
  isEmpty(): boolean;
328
336
  buildBatch(api: IPolkadotApi<TApi, TRes>, from: TSubstrateChain, options?: TBatchOptions): Promise<TRes>;
329
337
  }
@@ -443,7 +451,7 @@ declare class GeneralBuilder<TApi, TRes, T extends Partial<TSendBaseOptions> = o
443
451
  * @returns A Extrinsic representing the batched transactions.
444
452
  */
445
453
  buildBatch(this: GeneralBuilder<TApi, TRes, TSendBaseOptions>, options?: TBatchOptions): Promise<TRes>;
446
- protected buildInternal(this: GeneralBuilder<TApi, TRes, TSendBaseOptions>): Promise<TRes>;
454
+ protected buildInternal<TOptions extends TSendBaseOptions>(this: GeneralBuilder<TApi, TRes, TOptions>): Promise<TBuildInternalRes<TApi, TRes, TOptions>>;
447
455
  /**
448
456
  * Builds and returns the transfer extrinsic.
449
457
  *
@@ -453,7 +461,7 @@ declare class GeneralBuilder<TApi, TRes, T extends Partial<TSendBaseOptions> = o
453
461
  private buildCommon;
454
462
  private maybePerformXcmFormatCheck;
455
463
  dryRun(this: GeneralBuilder<TApi, TRes, TSendBaseOptionsWithSenderAddress>): Promise<TDryRunResult>;
456
- dryRunPreview(this: GeneralBuilder<TApi, TRes, TSendBaseOptionsWithSenderAddress>, options?: TDryRunPreviewOptions): Promise<TDryRunResult>;
464
+ dryRunPreview(this: GeneralBuilder<TApi, TRes, TSendBaseOptionsWithSenderAddress>, dryRunOptions?: TDryRunPreviewOptions): Promise<TDryRunResult>;
457
465
  private createTxFactory;
458
466
  /**
459
467
  * Returns the XCM fee for the transfer using dryRun or paymentInfo function.
@@ -893,6 +901,13 @@ type TBuilderConfig<TApi> = {
893
901
  xcmFormatCheck?: boolean;
894
902
  };
895
903
  type TCreateTxsOptions<TApi, TRes> = Pick<TSendOptions<TApi, TRes>, 'api' | 'from' | 'to' | 'currency'>;
904
+ type TBatchedSendOptions<TApi, TRes> = Omit<TSendOptions<TApi, TRes>, 'isAmountAll'> & {
905
+ buildTx: TTxFactory<TRes>;
906
+ };
907
+ type TBuildInternalRes<TApi, TRes, TOptions extends TSendBaseOptions = TSendBaseOptions> = {
908
+ tx: TRes;
909
+ options: TSendOptions<TApi, TRes> & TOptions;
910
+ };
896
911
 
897
912
  type TProviderEntry = {
898
913
  name: string;
@@ -1434,7 +1449,7 @@ interface IPolkadotApi<TApi, TRes> {
1434
1449
  getEvmStorage(contract: string, slot: string): Promise<string>;
1435
1450
  getBalanceNative(address: string): Promise<bigint>;
1436
1451
  getBalanceNativeAcala(address: string, symbol: string): Promise<bigint>;
1437
- getBalanceForeignPolkadotXcm(address: string, id?: string): Promise<bigint>;
1452
+ getBalanceForeignPolkadotXcm(chain: TSubstrateChain, address: string, asset: TAssetInfo): Promise<bigint>;
1438
1453
  getMythosForeignBalance(address: string): Promise<bigint>;
1439
1454
  getBalanceForeignAssetsPallet(address: string, location: TLocation): Promise<bigint>;
1440
1455
  getForeignAssetsByIdBalance(address: string, assetId: string): Promise<bigint>;
@@ -1451,6 +1466,10 @@ interface IPolkadotApi<TApi, TRes> {
1451
1466
  setDisconnectAllowed(allowed: boolean): void;
1452
1467
  getDisconnectAllowed(): boolean;
1453
1468
  disconnect(force?: boolean): Promise<void>;
1469
+ /**
1470
+ * Convert a location to a chain account address using the runtime LocationToAccount API, if available.
1471
+ */
1472
+ convertLocationToAccount(location: TLocation): Promise<string | undefined>;
1454
1473
  }
1455
1474
 
1456
1475
  declare const blake2b256: (msg: Uint8Array) => Uint8Array<ArrayBufferLike>;
@@ -1494,24 +1513,24 @@ declare abstract class Parachain<TApi, TRes> {
1494
1513
  throwIfCantReceive(destChain: TChain | undefined): void;
1495
1514
  throwIfTempDisabled(options: TSendInternalOptions<TApi, TRes>, destChain?: TChain): void;
1496
1515
  isSendingTempDisabled(_options: TSendInternalOptions<TApi, TRes>): boolean;
1497
- isReceivingTempDisabled(_options: TSendInternalOptions<TApi, TRes>): boolean;
1516
+ isReceivingTempDisabled(_scenario: TScenario): boolean;
1498
1517
  canReceiveFrom(_origin: TChain): boolean;
1499
1518
  shouldUseNativeAssetTeleport({ assetInfo: asset, to }: TSendInternalOptions<TApi, TRes>): boolean;
1500
1519
  getRelayToParaOverrides(): TRelayToParaOverrides;
1501
1520
  transferRelayToPara(options: TRelayToParaOptions<TApi, TRes>): Promise<TSerializedApiCall>;
1502
1521
  createCurrencySpec(amount: bigint, scenario: TScenario, version: Version, asset?: TAssetInfo, _isOverridenAsset?: boolean): TAsset;
1503
1522
  getNativeAssetSymbol(): string;
1504
- transferLocal(options: TSendInternalOptions<TApi, TRes>): TRes;
1505
- transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1523
+ transferLocal(options: TSendInternalOptions<TApi, TRes>): Promise<TRes>;
1524
+ transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): Promise<TRes>;
1506
1525
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1507
1526
  protected transferToEthereum<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>, useOnlyDepositInstruction?: boolean): Promise<TRes>;
1508
1527
  }
1509
1528
 
1510
1529
  declare class Acala<TApi, TRes> extends Parachain<TApi, TRes> implements IXTokensTransfer {
1511
- constructor();
1530
+ constructor(chain?: TParachain, info?: string, ecosystem?: TRelaychain, version?: Version);
1512
1531
  getCurrencySelection(asset: TAssetInfo): TForeignOrTokenAsset;
1513
1532
  transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1514
- transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1533
+ transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): Promise<TRes>;
1515
1534
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1516
1535
  }
1517
1536
 
@@ -1582,7 +1601,7 @@ declare class Astar<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkad
1582
1601
  declare class Basilisk<TApi, TRes> extends Parachain<TApi, TRes> implements IXTokensTransfer {
1583
1602
  constructor();
1584
1603
  transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1585
- transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1604
+ transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): Promise<TRes>;
1586
1605
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1587
1606
  }
1588
1607
 
@@ -1688,6 +1707,8 @@ declare class CollectivesWestend<TApi, TRes> extends Collectives<TApi, TRes> {
1688
1707
  declare class ComposableFinance<TApi, TRes> extends Parachain<TApi, TRes> implements IXTokensTransfer {
1689
1708
  constructor();
1690
1709
  transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1710
+ isSendingTempDisabled(_options: TSendInternalOptions<TApi, TRes>): boolean;
1711
+ isReceivingTempDisabled(_scenario: TScenario): boolean;
1691
1712
  }
1692
1713
 
1693
1714
  declare class CoretimeKusama<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
@@ -1699,6 +1720,7 @@ declare class CoretimeKusama<TApi, TRes> extends Parachain<TApi, TRes> implement
1699
1720
  declare class CoretimePolkadot<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
1700
1721
  constructor(chain?: TParachain, info?: string, ecosystem?: TRelaychain, version?: Version);
1701
1722
  transferPolkadotXCM<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1723
+ canReceiveFrom(origin: TChain): boolean;
1702
1724
  getRelayToParaOverrides(): TRelayToParaOverrides;
1703
1725
  }
1704
1726
 
@@ -1735,6 +1757,8 @@ declare class CrustShadow<TApi, TRes> extends Parachain<TApi, TRes> implements I
1735
1757
  declare class Curio<TApi, TRes> extends Parachain<TApi, TRes> implements IXTokensTransfer {
1736
1758
  constructor();
1737
1759
  transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1760
+ isSendingTempDisabled(_options: TSendInternalOptions<TApi, TRes>): boolean;
1761
+ isReceivingTempDisabled(_scenario: TScenario): boolean;
1738
1762
  }
1739
1763
 
1740
1764
  declare class Darwinia<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
@@ -1778,7 +1802,7 @@ declare class Hydration<TApi, TRes> extends Parachain<TApi, TRes> implements IXT
1778
1802
  transferMoonbeamWhAsset<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1779
1803
  transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1780
1804
  canUseXTokens(options: TSendInternalOptions<TApi, TRes>): boolean;
1781
- transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1805
+ transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): Promise<TRes>;
1782
1806
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1783
1807
  }
1784
1808
 
@@ -1805,7 +1829,7 @@ declare class Interlay<TApi, TRes> extends Parachain<TApi, TRes> implements IXTo
1805
1829
  constructor();
1806
1830
  getCurrencySelection(asset: TAssetInfo): TForeignOrTokenAsset;
1807
1831
  transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1808
- transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1832
+ transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): Promise<TRes>;
1809
1833
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1810
1834
  }
1811
1835
 
@@ -1815,11 +1839,8 @@ declare class Jamton<TApi, TRes> extends Parachain<TApi, TRes> implements IXToke
1815
1839
  transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1816
1840
  }
1817
1841
 
1818
- declare class Karura<TApi, TRes> extends Parachain<TApi, TRes> implements IXTokensTransfer {
1842
+ declare class Karura<TApi, TRes> extends Acala<TApi, TRes> {
1819
1843
  constructor();
1820
- transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1821
- transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1822
- transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1823
1844
  }
1824
1845
 
1825
1846
  declare class KiltSpiritnet<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
@@ -1836,7 +1857,7 @@ declare class Kintsugi<TApi, TRes> extends Parachain<TApi, TRes> implements IXTo
1836
1857
  constructor();
1837
1858
  getCurrencySelection(asset: TAssetInfo): TForeignOrTokenAsset;
1838
1859
  transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1839
- transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1860
+ transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): Promise<TRes>;
1840
1861
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1841
1862
  }
1842
1863
 
@@ -1862,7 +1883,7 @@ declare class Moonbeam<TApi, TRes> extends Parachain<TApi, TRes> implements IPol
1862
1883
  constructor(chain?: TParachain, info?: string, ecosystem?: TRelaychain, version?: Version);
1863
1884
  private getLocation;
1864
1885
  transferPolkadotXCM<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1865
- transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1886
+ transferLocalNonNativeAsset(_options: TTransferLocalOptions<TApi, TRes>): TRes;
1866
1887
  }
1867
1888
 
1868
1889
  declare class Moonriver<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
@@ -1882,6 +1903,8 @@ declare class Mythos<TApi, TRes> extends Parachain<TApi, TRes> implements IPolka
1882
1903
  declare class NeuroWeb<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
1883
1904
  constructor(chain?: TParachain, info?: string, ecosystem?: TRelaychain, version?: Version);
1884
1905
  transferPolkadotXCM<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1906
+ transferLocalNativeAsset(options: TTransferLocalOptions<TApi, TRes>): Promise<TRes>;
1907
+ transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1885
1908
  }
1886
1909
 
1887
1910
  declare class NeuroWebPaseo<TApi, TRes> extends NeuroWeb<TApi, TRes> {
@@ -1906,12 +1929,16 @@ declare class PeoplePolkadot<TApi, TRes> extends Parachain<TApi, TRes> implement
1906
1929
 
1907
1930
  declare class PAssetHub<TApi, TRes> extends PeoplePolkadot<TApi, TRes> {
1908
1931
  constructor();
1932
+ isSendingTempDisabled(_options: TSendInternalOptions<TApi, TRes>): boolean;
1933
+ isReceivingTempDisabled(_scenario: TScenario): boolean;
1909
1934
  }
1910
1935
 
1911
1936
  declare class Peaq<TApi, TRes> extends Parachain<TApi, TRes> implements IXTokensTransfer {
1912
1937
  constructor();
1913
1938
  transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
1914
1939
  transferRelayToPara(): Promise<TSerializedApiCall>;
1940
+ isSendingTempDisabled(_options: TSendInternalOptions<TApi, TRes>): boolean;
1941
+ isReceivingTempDisabled(_scenario: TScenario): boolean;
1915
1942
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1916
1943
  }
1917
1944
 
@@ -1948,6 +1975,7 @@ declare class Phala<TApi, TRes> extends Parachain<TApi, TRes> implements IXTrans
1948
1975
  declare class Polimec<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
1949
1976
  constructor();
1950
1977
  transferPolkadotXCM<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1978
+ isSendingTempDisabled({ assetInfo }: TSendInternalOptions<TApi, TRes>): boolean;
1951
1979
  transferRelayToPara(options: TRelayToParaOptions<TApi, TRes>): Promise<TSerializedApiCall>;
1952
1980
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1953
1981
  }
@@ -1967,6 +1995,7 @@ declare class RobonomicsKusama<TApi, TRes> extends Parachain<TApi, TRes> impleme
1967
1995
  declare class RobonomicsPolkadot<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
1968
1996
  constructor();
1969
1997
  transferPolkadotXCM<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
1998
+ isReceivingTempDisabled(scenario: TScenario): boolean;
1970
1999
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
1971
2000
  }
1972
2001
 
@@ -1981,6 +2010,8 @@ declare class Shiden<TApi, TRes> extends Parachain<TApi, TRes> implements IPolka
1981
2010
  declare class Subsocial<TApi, TRes> extends Parachain<TApi, TRes> implements IPolkadotXCMTransfer {
1982
2011
  constructor();
1983
2012
  transferPolkadotXCM<TApi, TRes>(input: TPolkadotXCMTransferOptions<TApi, TRes>): Promise<TRes>;
2013
+ isSendingTempDisabled(_options: TSendInternalOptions<TApi, TRes>): boolean;
2014
+ isReceivingTempDisabled(_scenario: TScenario): boolean;
1984
2015
  }
1985
2016
 
1986
2017
  declare class Unique<TApi, TRes> extends Parachain<TApi, TRes> implements IXTokensTransfer {
@@ -2000,6 +2031,7 @@ declare class Zeitgeist<TApi, TRes> extends Parachain<TApi, TRes> implements IXT
2000
2031
  constructor(chain?: TParachain, info?: string, ecosystem?: TRelaychain, version?: Version);
2001
2032
  private getCurrencySelection;
2002
2033
  transferXTokens<TApi, TRes>(input: TXTokensTransferOptions<TApi, TRes>): TRes;
2034
+ canReceiveFrom(origin: TChain): boolean;
2003
2035
  transferLocalNonNativeAsset(options: TTransferLocalOptions<TApi, TRes>): TRes;
2004
2036
  }
2005
2037
 
@@ -2095,11 +2127,13 @@ type TSetBalanceRes = {
2095
2127
  assetStatusTx?: TSerializedApiCall;
2096
2128
  balanceTx: TSerializedApiCall;
2097
2129
  };
2098
- interface IAssetsPallet {
2099
- mint<TApi, TRes>(address: string, assetInfo: WithAmount<TAssetInfo>, balance: bigint, chain: TSubstrateChain, api: IPolkadotApi<TApi, TRes>): Promise<TSetBalanceRes>;
2130
+ declare abstract class BaseAssetsPallet {
2131
+ protected palletName: TPallet;
2132
+ constructor(palletName: TPallet);
2133
+ abstract mint<TApi, TRes>(address: string, assetInfo: WithAmount<TAssetInfo>, balance: bigint, chain: TSubstrateChain, api: IPolkadotApi<TApi, TRes>): Promise<TSetBalanceRes>;
2100
2134
  }
2101
2135
 
2102
- declare class AssetsPallet implements IAssetsPallet {
2136
+ declare class AssetsPallet extends BaseAssetsPallet {
2103
2137
  mint(address: string, asset: WithAmount<TAssetInfo>, _balance: bigint, chain: TSubstrateChain): Promise<TSetBalanceRes>;
2104
2138
  }
2105
2139
 
@@ -2128,7 +2162,6 @@ declare const addEthereumBridgeFees: <TApi, TRes, TResult extends {
2128
2162
  fee?: bigint;
2129
2163
  }>(api: IPolkadotApi<TApi, TRes>, bridgeHubResult: TResult | undefined, destination: TChain, assetHubChain: TSubstrateChain) => Promise<TResult | undefined>;
2130
2164
 
2131
- declare const getCurrencySelection: (asset: TAssetInfo) => TCurrencyCore;
2132
2165
  declare const calcPreviewMintAmount: (balance: bigint, desired: bigint) => bigint | null;
2133
2166
  declare const wrapTxBypass: <TApi, TRes>(dryRunOptions: TDryRunBypassOptions<TApi, TRes>, options?: TBypassOptions) => Promise<TRes>;
2134
2167
 
@@ -2173,7 +2206,14 @@ declare const transferRelayToPara: <TApi, TRes>(options: TRelayToParaOptions<TAp
2173
2206
  /**
2174
2207
  * Creates a type and then call for transferring assets using XCM. Works only for DOT and snowbridge assets so far.
2175
2208
  */
2176
- declare const createTypeAndThenCall: <TApi, TRes>(chain: TSubstrateChain, options: TPolkadotXCMTransferOptions<TApi, TRes>) => Promise<TSerializedApiCall>;
2209
+ declare const createTypeAndThenCall: <TApi, TRes>(chain: TSubstrateChain, options: TPolkadotXCMTransferOptions<TApi, TRes>, overrideReserve?: TSubstrateChain) => Promise<TSerializedApiCall>;
2210
+
2211
+ /**
2212
+ * Creates a type-and-then call but auto-selects the asset reserve between AssetHub and the Relay chain
2213
+ * by dry-running both variants and preferring the one that succeeds. If both fail, returns the
2214
+ * AssetHub variant. Supports only relaychain assets.
2215
+ */
2216
+ declare const createTypeThenAutoReserve: <TApi, TRes>(chain: TSubstrateChain, options: TPolkadotXCMTransferOptions<TApi, TRes>) => Promise<TSerializedApiCall>;
2177
2217
 
2178
2218
  declare const verifyEdOnDestination: <TApi, TRes>(options: TVerifyEdOnDestinationOptions<TApi, TRes>) => Promise<boolean>;
2179
2219
 
@@ -2189,14 +2229,16 @@ declare const assertIsForeign: (asset: TAssetInfo) => asserts asset is TForeignA
2189
2229
  declare const createAsset: (version: Version, amount: bigint, location: TLocation) => TAsset;
2190
2230
  declare const createVersionedAssets: (version: Version, amount: bigint, location: TLocation) => OneKey<Version, TAsset[]>;
2191
2231
 
2232
+ declare const getCurrencySelection: (asset: TAssetInfo) => TCurrencyCore;
2233
+
2192
2234
  declare const maybeOverrideAssets: (version: Version, amount: bigint, assets: TAsset[], overriddenCurrency?: TLocation | TAsset[]) => TAsset[];
2193
2235
  declare const maybeOverrideAsset: (version: Version, amount: bigint, asset: TAsset, overriddenCurrency?: TLocation | TAsset[]) => TAsset;
2194
2236
 
2195
2237
  declare const sortAssets: (assets: TAsset[]) => TAsset[];
2196
2238
 
2197
2239
  declare const computeOverridenAmount: <TApi, TRes>(options: TCreateTxsOptions<TApi, TRes>, increaseAmount: string) => number | bigint;
2198
- declare const overrideTxAmount: <TApi, TRes>(options: TCreateTxsOptions<TApi, TRes>, builder: GeneralBuilder<TApi, TRes, TSendBaseOptionsWithSenderAddress>, amount: string) => Promise<TRes>;
2199
- declare const createTx: <TApi, TRes>(options: TCreateTxsOptions<TApi, TRes>, builder: GeneralBuilder<TApi, TRes, TSendBaseOptionsWithSenderAddress>, amount: string | undefined) => Promise<TRes>;
2240
+ declare const overrideTxAmount: <TApi, TRes>(options: TCreateTxsOptions<TApi, TRes>, builder: GeneralBuilder<TApi, TRes, TSendBaseOptions>, amount: string) => Promise<TRes>;
2241
+ declare const createTx: <TApi, TRes>(options: TCreateTxsOptions<TApi, TRes>, builder: GeneralBuilder<TApi, TRes, TSendBaseOptions>, amount: string | undefined) => Promise<TRes>;
2200
2242
 
2201
2243
  declare const isConfig: <TApi>(value: any) => value is TBuilderConfig<TApi>;
2202
2244
 
@@ -2285,5 +2327,5 @@ declare const handleToAhTeleport: <TApi, TRes>(origin: TParachain, input: TPolka
2285
2327
 
2286
2328
  declare const validateAddress: (address: TAddress, chain: TChain, isDestination?: boolean) => void;
2287
2329
 
2288
- export { AmountTooLowError, AssetClaimBuilder, AssetsPallet, BatchMode, BridgeHaltedError, Builder, ChainNotSupportedError, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, GeneralBuilder, IncompatibleChainsError, InvalidAddressError, InvalidParameterError, MissingChainApiError, NoXCMSupportImplementedError, PolkadotXcmError, ScenarioNotSupportedError, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, UnableToComputeError, XTokensError, abstractDecimals, addEthereumBridgeFees, addXcmVersionHeader, applyDecimalAbstraction, assertAddressIsString, assertHasId, assertHasLocation, assertIsForeign, assertSenderAddress, assertToIsString, blake2b256, blake2b512, calcPreviewMintAmount, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, computeOverridenAmount, convertSs58, createAsset, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createChainClient, createDirectExecuteXcm, createExecuteCall, createExecuteExchangeXcm, createTx, createTypeAndThenCall, createVersionedAssets, createX1Payload, deriveAccountId, dryRun, dryRunInternal, dryRunOrigin, encodeSs58, getAssetBalance, getAssetBalanceInternal, getAssetReserveChain, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChain, getChainConfig, getChainLocation, getChainProviders, getChainVersion, getCurrencySelection, getMinTransferableAmount, getMinTransferableAmountInternal, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getOriginXcmFeeInternal, getParaEthTransferFees, getParaId, getRelayChainOf, getTChain, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, getXcmFeeInternal, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, isConfig, localizeLocation, maybeOverrideAsset, maybeOverrideAssets, overrideTxAmount, padFee, padFeeBy, resolveDestChain, resolveModuleError, resolveParaId, reverseTransformLocation, send, sortAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, verifyEdOnDestination, wrapTxBypass };
2289
- export type { BuildHopInfoOptions, HopProcessParams, HopTraversalConfig, HopTraversalResult, IPolkadotApi, IPolkadotXCMTransfer, IXTokensTransfer, IXTransferTransfer, OneKey, TAddress, TApiOrUrl, TAssetClaimInternalOptions, TAssetClaimOptions, TAssetClaimOptionsBase, TBatchOptions, TBifrostToken, TBridgeStatus, TBuildDestInfoOptions, TBuilderConfig, TBuilderOptions, TBypassOptions, TChainConfig, TChainConfigMap, TChainWithApi, TConditionalXcmFeeDetail, TConditionalXcmFeeHopInfo, TCreateBaseSwapXcmOptions, TCreateBaseTransferXcmOptions, TCreateBeneficiaryOptions, TCreateBeneficiaryXTokensOptions, TCreateSwapXcmInternalOptions, TCreateSwapXcmOptions, TCreateTransferXcmOptions, TCreateTxsOptions, TDestWeight, TDestXcmFeeDetail, TDestination, TDryRunBaseOptions, TDryRunBypassOptions, TDryRunCallBaseOptions, TDryRunCallOptions, TDryRunChain, TDryRunChainFailure, TDryRunChainResult, TDryRunChainSuccess, TDryRunOptions, TDryRunPreviewOptions, TDryRunResBase, TDryRunResult, TDryRunXcmBaseOptions, TDryRunXcmOptions, TEvmBuilderOptions, TEvmBuilderOptionsBase, TEvmChainFrom, TFeeType, TForeignAssetId, TForeignOrNativeAsset, TForeignOrTokenAsset, TGetAssetBalanceOptions, TGetAssetBalanceOptionsBase, TGetBalanceForeignByAssetOptions, TGetBalanceForeignOptions, TGetBalanceForeignOptionsBase, TGetBalanceNativeOptions, TGetBalanceNativeOptionsBase, TGetFeeForDestChainBaseOptions, TGetFeeForDestChainOptions, TGetMinTransferableAmountOptions, TGetOriginFeeDetailsOptions, TGetOriginFeeDetailsOptionsBase, TGetOriginXcmFeeBaseOptions, TGetOriginXcmFeeEstimateOptions, TGetOriginXcmFeeInternalOptions, TGetOriginXcmFeeOptions, TGetReverseTxFeeOptions, TGetTransferInfoOptions, TGetTransferInfoOptionsBase, TGetTransferableAmountOptions, TGetTransferableAmountOptionsBase, TGetXcmFeeBaseOptions, TGetXcmFeeBuilderOptions, TGetXcmFeeEstimateDetail, TGetXcmFeeEstimateOptions, TGetXcmFeeEstimateResult, TGetXcmFeeInternalOptions, TGetXcmFeeOptions, TGetXcmFeeResult, THopInfo, THopTransferInfo, THubKey, TMantaAsset, TModuleError, TNativeTokenAsset, TNodleAsset, TOriginFeeDetails, TOtherReserveAsset, TPolkadotXCMTransferOptions, TPolkadotXcmMethod, TProviderEntry, TRelayToParaDestination, TRelayToParaOptions, TRelayToParaOverrides, TReserveAsset, TScenario, TSelfReserveAsset, TSendBaseOptions, TSendBaseOptionsWithSenderAddress, TSendInternalOptions, TSendOptions, TSerializeEthTransferOptions, TSerializedApiCall, TSerializedEthTransfer, TSwapConfig, TSwapFeeEstimates, TTransferFeeEstimates, TTransferInfo, TTransferLocalOptions, TTxFactory, TTypeAndThenCallContext, TTypeAndThenFees, TVerifyEdOnDestinationOptions, TVerifyEdOnDestinationOptionsBase, TWeight, TXTokensCurrencySelection, TXTokensMethod, TXTokensTransferOptions, TXTransferMethod, TXTransferTransferOptions, TXcmAsset, TXcmFeeBase, TXcmFeeChain, TXcmFeeDetail, TXcmFeeDetailError, TXcmFeeDetailSuccess, TXcmFeeDetailWithFallback, TXcmFeeHopInfo, TXcmFeeHopResult, TXcmForeignAsset, TXcmPalletMethod, TXcmVersioned, TZeitgeistAsset, WithApi, WithRequiredSenderAddress };
2330
+ export { AmountTooLowError, AssetClaimBuilder, AssetsPallet, BatchMode, BridgeHaltedError, Builder, ChainNotSupportedError, DRY_RUN_CLIENT_TIMEOUT_MS, DryRunFailedError, ETHEREUM_JUNCTION, ETH_CHAIN_ID, GeneralBuilder, IncompatibleChainsError, InvalidAddressError, InvalidParameterError, MissingChainApiError, NoXCMSupportImplementedError, PolkadotXcmError, ScenarioNotSupportedError, TX_CLIENT_TIMEOUT_MS, TransferToAhNotSupported, UnableToComputeError, XTokensError, abstractDecimals, addEthereumBridgeFees, addXcmVersionHeader, applyDecimalAbstraction, assertAddressIsString, assertHasId, assertHasLocation, assertIsForeign, assertSenderAddress, assertToIsString, blake2b256, blake2b512, calcPreviewMintAmount, claimAssets, computeFeeFromDryRun, computeFeeFromDryRunPjs, computeOverridenAmount, convertSs58, createAsset, createAssetsFilter, createBaseExecuteXcm, createBeneficiaryLocXTokens, createBeneficiaryLocation, createChainClient, createDirectExecuteXcm, createExecuteCall, createExecuteExchangeXcm, createTx, createTypeAndThenCall, createTypeThenAutoReserve, createVersionedAssets, createX1Payload, deriveAccountId, dryRun, dryRunInternal, dryRunOrigin, encodeSs58, getAssetBalance, getAssetBalanceInternal, getAssetReserveChain, getBalanceForeign, getBalanceForeignInternal, getBalanceNative, getBalanceNativeInternal, getBridgeStatus, getChain, getChainConfig, getChainLocation, getChainProviders, getChainVersion, getCurrencySelection, getMinTransferableAmount, getMinTransferableAmountInternal, getOriginFeeDetails, getOriginFeeDetailsInternal, getOriginXcmFee, getOriginXcmFeeEstimate, getOriginXcmFeeInternal, getParaEthTransferFees, getParaId, getRelayChainOf, getTChain, getTransferInfo, getTransferableAmount, getTransferableAmountInternal, getXcmFee, getXcmFeeEstimate, getXcmFeeInternal, handleExecuteTransfer, handleSwapExecuteTransfer, handleToAhTeleport, isConfig, localizeLocation, maybeOverrideAsset, maybeOverrideAssets, overrideTxAmount, padFee, padFeeBy, resolveDestChain, resolveModuleError, resolveParaId, reverseTransformLocation, send, sortAssets, transferMoonbeamEvm, transferMoonbeamToEth, transferRelayToPara, traverseXcmHops, validateAddress, verifyEdOnDestination, wrapTxBypass };
2331
+ export type { BuildHopInfoOptions, HopProcessParams, HopTraversalConfig, HopTraversalResult, IPolkadotApi, IPolkadotXCMTransfer, IXTokensTransfer, IXTransferTransfer, OneKey, TAddress, TApiOrUrl, TAssetClaimInternalOptions, TAssetClaimOptions, TAssetClaimOptionsBase, TBatchOptions, TBatchedSendOptions, TBifrostToken, TBridgeStatus, TBuildDestInfoOptions, TBuildInternalRes, TBuilderConfig, TBuilderOptions, TBypassOptions, TChainConfig, TChainConfigMap, TChainWithApi, TConditionalXcmFeeDetail, TConditionalXcmFeeHopInfo, TCreateBaseSwapXcmOptions, TCreateBaseTransferXcmOptions, TCreateBeneficiaryOptions, TCreateBeneficiaryXTokensOptions, TCreateSwapXcmInternalOptions, TCreateSwapXcmOptions, TCreateTransferXcmOptions, TCreateTxsOptions, TDestWeight, TDestXcmFeeDetail, TDestination, TDryRunBaseOptions, TDryRunBypassOptions, TDryRunCallBaseOptions, TDryRunCallOptions, TDryRunChain, TDryRunChainFailure, TDryRunChainResult, TDryRunChainSuccess, TDryRunOptions, TDryRunPreviewOptions, TDryRunResBase, TDryRunResult, TDryRunXcmBaseOptions, TDryRunXcmOptions, TEvmBuilderOptions, TEvmBuilderOptionsBase, TEvmChainFrom, TFeeType, TForeignAssetId, TForeignOrNativeAsset, TForeignOrTokenAsset, TGetAssetBalanceOptions, TGetAssetBalanceOptionsBase, TGetBalanceForeignByAssetOptions, TGetBalanceForeignOptions, TGetBalanceForeignOptionsBase, TGetBalanceNativeOptions, TGetBalanceNativeOptionsBase, TGetFeeForDestChainBaseOptions, TGetFeeForDestChainOptions, TGetMinTransferableAmountOptions, TGetOriginFeeDetailsOptions, TGetOriginFeeDetailsOptionsBase, TGetOriginXcmFeeBaseOptions, TGetOriginXcmFeeEstimateOptions, TGetOriginXcmFeeInternalOptions, TGetOriginXcmFeeOptions, TGetReverseTxFeeOptions, TGetTransferInfoOptions, TGetTransferInfoOptionsBase, TGetTransferableAmountOptions, TGetTransferableAmountOptionsBase, TGetXcmFeeBaseOptions, TGetXcmFeeBuilderOptions, TGetXcmFeeEstimateDetail, TGetXcmFeeEstimateOptions, TGetXcmFeeEstimateResult, TGetXcmFeeInternalOptions, TGetXcmFeeOptions, TGetXcmFeeResult, THopInfo, THopTransferInfo, THubKey, TMantaAsset, TModuleError, TNativeTokenAsset, TNodleAsset, TOriginFeeDetails, TOtherReserveAsset, TPolkadotXCMTransferOptions, TPolkadotXcmMethod, TProviderEntry, TRelayToParaDestination, TRelayToParaOptions, TRelayToParaOverrides, TReserveAsset, TScenario, TSelfReserveAsset, TSendBaseOptions, TSendBaseOptionsWithSenderAddress, TSendInternalOptions, TSendOptions, TSerializeEthTransferOptions, TSerializedApiCall, TSerializedEthTransfer, TSwapConfig, TSwapFeeEstimates, TTransferFeeEstimates, TTransferInfo, TTransferLocalOptions, TTxFactory, TTypeAndThenCallContext, TTypeAndThenFees, TVerifyEdOnDestinationOptions, TVerifyEdOnDestinationOptionsBase, TWeight, TXTokensCurrencySelection, TXTokensMethod, TXTokensTransferOptions, TXTransferMethod, TXTransferTransferOptions, TXcmAsset, TXcmFeeBase, TXcmFeeChain, TXcmFeeDetail, TXcmFeeDetailError, TXcmFeeDetailSuccess, TXcmFeeDetailWithFallback, TXcmFeeHopInfo, TXcmFeeHopResult, TXcmForeignAsset, TXcmPalletMethod, TXcmVersioned, TZeitgeistAsset, WithApi, WithRequiredSenderAddress };