@moonbeam-network/xcm-sdk 2.7.8 → 3.0.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/build/index.d.ts CHANGED
@@ -1,328 +1,195 @@
1
- import {
2
- SubstrateQueryConfig,
3
- ExtrinsicConfig,
4
- BalanceConfigBuilder,
5
- ContractConfig,
6
- } from '@moonbeam-network/xcm-builder';
7
- import {
8
- IConfigService,
9
- AssetConfig,
10
- FeeAssetConfig,
11
- TransferConfig,
12
- DestinationFeeConfig,
13
- } from '@moonbeam-network/xcm-config';
14
- import {
15
- AnyParachain,
16
- Asset,
17
- AssetAmount,
18
- ChainAssetId,
19
- AnyChain,
20
- EvmParachain,
21
- Ecosystem,
22
- } from '@moonbeam-network/xcm-types';
1
+ import { ContractConfig, ExtrinsicConfig, BalanceConfigBuilder, AssetMinConfigBuilder, FeeConfigBuilder, SubstrateQueryConfig, EvmQueryConfig } from '@moonbeam-network/xcm-builder';
2
+ import { AssetRoute, FeeConfig, ConfigService } from '@moonbeam-network/xcm-config';
3
+ import * as _moonbeam_network_xcm_types from '@moonbeam-network/xcm-types';
4
+ import { AssetAmount, AnyChain, AnyParachain, ChainAsset, Asset, EvmChain, EvmParachain, Ecosystem, AnyAsset } from '@moonbeam-network/xcm-types';
5
+ import { Signer, SubmittableExtrinsic } from '@polkadot/api/types';
6
+ import { IKeyringPair, ISubmittableResult } from '@polkadot/types/types';
7
+ import { WalletClient, PublicClient, HttpTransport, Hash } from 'viem';
23
8
  import { ApiPromise } from '@polkadot/api';
24
- import { Signer } from '@polkadot/api/types';
25
- import { IKeyringPair } from '@polkadot/types/types';
26
- import { Signer as Signer$1 } from 'ethers';
27
- import { WalletClient } from 'viem';
9
+ import { RuntimeDispatchInfo } from '@polkadot/types/interfaces';
10
+ import { HexString } from '@polkadot/util/types';
28
11
 
29
- declare class PolkadotService {
30
- #private;
31
- readonly api: ApiPromise;
32
- readonly chain: AnyParachain;
33
- readonly configService: IConfigService;
34
- constructor(
35
- api: ApiPromise,
36
- chain: AnyParachain,
37
- configService: IConfigService,
38
- );
39
- static create(
40
- chain: AnyParachain,
41
- configService: IConfigService,
42
- ): Promise<PolkadotService>;
43
- static createMulti(
44
- chains: AnyParachain[],
45
- configService: IConfigService,
46
- ): Promise<PolkadotService[]>;
47
- get decimals(): number;
48
- get asset(): Asset;
49
- get existentialDeposit(): AssetAmount;
50
- getAssetMeta(asset: ChainAssetId): Promise<
51
- | {
52
- symbol: string;
53
- decimals: number;
54
- }
55
- | undefined
56
- >;
57
- getAssetDecimalsFromQuery(asset: ChainAssetId): Promise<number | undefined>;
58
- getAssetDecimals(asset: Asset): Promise<number>;
59
- query(config: SubstrateQueryConfig): Promise<bigint>;
60
- getFee(account: string, config: ExtrinsicConfig): Promise<bigint>;
61
- transfer(
62
- account: string,
63
- config: ExtrinsicConfig,
64
- signer: Signer | IKeyringPair,
65
- ): Promise<string>;
66
- }
67
-
68
- type EvmSigner = Signer$1 | WalletClient;
12
+ type EvmSigner = WalletClient;
69
13
  interface Signers {
70
- /**
71
- * @deprecated ethersSigner - is deprecated and will be removed in v2, use evmSigner instead
72
- */
73
- ethersSigner?: Signer$1;
74
- evmSigner?: EvmSigner;
75
- polkadotSigner: Signer | IKeyringPair;
14
+ evmSigner?: EvmSigner;
15
+ polkadotSigner?: Signer | IKeyringPair;
76
16
  }
77
17
  interface TransferData {
78
- destination: DestinationChainTransferData;
79
- getEstimate(amount: number | string): AssetAmount;
80
- isSwapPossible: boolean;
81
- max: AssetAmount;
82
- min: AssetAmount;
83
- source: SourceChainTransferData;
84
- swap(): Promise<TransferData | undefined>;
85
- transfer(amount: bigint | number | string): Promise<string>;
18
+ destination: DestinationChainTransferData;
19
+ getEstimate(amount: number | string): AssetAmount;
20
+ max: AssetAmount;
21
+ min: AssetAmount;
22
+ source: SourceChainTransferData;
23
+ transfer(amount: bigint | number | string, signers: Signers): Promise<string>;
86
24
  }
87
25
  interface SourceChainTransferData extends ChainTransferData {
88
- destinationFee: AssetAmount;
89
- destinationFeeBalance: AssetAmount;
90
- feeBalance: AssetAmount;
91
- max: AssetAmount;
26
+ destinationFee: AssetAmount;
27
+ destinationFeeBalance: AssetAmount;
28
+ feeBalance: AssetAmount;
29
+ max: AssetAmount;
92
30
  }
93
31
  interface SovereignAccountBalance {
94
- feeAssetBalance: bigint | undefined;
95
- transferAssetBalance: bigint;
32
+ feeAssetBalance: bigint | undefined;
33
+ transferAssetBalance: bigint;
96
34
  }
97
35
  interface DestinationChainTransferData extends ChainTransferData {
98
- sovereignAccountBalances?: SovereignAccountBalance;
36
+ sovereignAccountBalances?: SovereignAccountBalance;
99
37
  }
100
38
  interface ChainTransferData {
101
- balance: AssetAmount;
102
- chain: AnyChain;
103
- existentialDeposit: AssetAmount;
104
- fee: AssetAmount;
105
- min: AssetAmount;
106
- }
107
-
108
- interface BaseParams {
109
- address: string;
110
- chain: AnyChain;
111
- polkadot: PolkadotService;
112
- }
113
- interface GetBalancesParams extends BaseParams {
114
- asset: Asset;
115
- balanceBuilder: BalanceConfigBuilder;
116
- decimals: number;
39
+ balance: AssetAmount;
40
+ chain: AnyChain;
41
+ existentialDeposit?: AssetAmount;
42
+ fee: AssetAmount;
43
+ min: AssetAmount;
117
44
  }
118
- interface GetDecimalsParams extends BaseParams {
119
- asset?: Asset;
120
- config: AssetConfig | FeeAssetConfig;
121
- assetBuiltConfig?: SubstrateQueryConfig | ContractConfig;
122
- }
123
- declare function getBalance({
124
- address,
125
- chain,
126
- balanceBuilder,
127
- asset,
128
- decimals,
129
- polkadot,
130
- }: GetBalancesParams): Promise<bigint>;
131
- declare function getDecimals({
132
- address,
133
- asset,
134
- config,
135
- polkadot,
136
- chain,
137
- assetBuiltConfig,
138
- }: GetDecimalsParams): Promise<number>;
139
- declare function getMin(
140
- config: AssetConfig,
141
- polkadot: PolkadotService,
142
- ): Promise<bigint>;
143
- interface ValidateSovereignAccountBalancesProps {
144
- amount: bigint;
145
- destination: DestinationChainTransferData;
146
- source: SourceChainTransferData;
147
- }
148
- declare function validateSovereignAccountBalances({
149
- amount,
150
- source,
151
- destination,
152
- }: ValidateSovereignAccountBalancesProps): void;
153
45
 
154
46
  interface GetSourceDataParams {
155
- transferConfig: TransferConfig;
156
- destinationAddress: string;
157
- destinationFee: AssetAmount;
158
- evmSigner?: EvmSigner;
159
- polkadot: PolkadotService;
160
- sourceAddress: string;
47
+ route: AssetRoute;
48
+ destinationAddress: string;
49
+ destinationFee: AssetAmount;
50
+ sourceAddress: string;
161
51
  }
162
- declare function getSourceData({
163
- transferConfig,
164
- destinationAddress,
165
- destinationFee,
166
- polkadot,
167
- sourceAddress,
168
- evmSigner,
169
- }: GetSourceDataParams): Promise<SourceChainTransferData>;
170
- interface GetFeeBalanceParams extends BaseParams {
171
- balance: bigint;
172
- feeConfig: FeeAssetConfig | undefined;
173
- decimals: number;
174
- }
175
- declare function getFeeBalance({
176
- address,
177
- balance,
178
- chain,
179
- decimals,
180
- feeConfig,
181
- polkadot,
182
- }: GetFeeBalanceParams): Promise<bigint>;
52
+ declare function getSourceData({ route, destinationAddress, destinationFee, sourceAddress, }: GetSourceDataParams): Promise<SourceChainTransferData>;
183
53
  interface GetFeeParams {
184
- balance: bigint;
185
- contract?: ContractConfig;
186
- chain: AnyChain;
187
- decimals: number;
188
- evmSigner?: EvmSigner;
189
- extrinsic?: ExtrinsicConfig;
190
- feeConfig?: FeeAssetConfig;
191
- destinationFeeConfig?: DestinationFeeConfig;
192
- destinationFeeBalanceAmount?: AssetAmount;
193
- polkadot: PolkadotService;
194
- sourceAddress: string;
195
- }
196
- declare function getFee({
197
- balance,
198
- chain,
199
- contract,
200
- decimals,
201
- destinationFeeConfig,
202
- destinationFeeBalanceAmount,
203
- evmSigner,
204
- extrinsic,
205
- feeConfig,
206
- polkadot,
207
- sourceAddress,
208
- }: GetFeeParams): Promise<bigint>;
209
- declare function getContractFee({
210
- balance,
211
- config,
212
- decimals,
213
- evmSigner,
214
- chain,
215
- }: {
216
- balance: bigint;
217
- config: ContractConfig;
218
- decimals: number;
219
- evmSigner: EvmSigner;
220
- chain: EvmParachain;
221
- }): Promise<bigint>;
222
- declare function getExtrinsicFee(
223
- balance: bigint,
224
- extrinsic: ExtrinsicConfig,
225
- polkadot: PolkadotService,
226
- sourceAddress: string,
227
- ): Promise<bigint>;
228
- interface GetMaxParams {
229
- balanceAmount: AssetAmount;
230
- existentialDeposit: AssetAmount;
231
- feeAmount: AssetAmount;
232
- minAmount: AssetAmount;
233
- }
234
- declare function getMax({
235
- balanceAmount,
236
- existentialDeposit,
237
- feeAmount,
238
- minAmount,
239
- }: GetMaxParams): AssetAmount;
54
+ balance: AssetAmount;
55
+ feeBalance: AssetAmount;
56
+ contract?: ContractConfig;
57
+ chain: AnyParachain;
58
+ destinationFee: AssetAmount;
59
+ extrinsic?: ExtrinsicConfig;
60
+ feeConfig?: FeeConfig;
61
+ sourceAddress: string;
62
+ }
63
+ declare function getFee({ balance, feeBalance, chain, contract, destinationFee, extrinsic, feeConfig, sourceAddress, }: GetFeeParams): Promise<AssetAmount>;
240
64
  interface GetAssetsBalancesParams {
241
- address: string;
242
- chain: AnyChain;
243
- assets: AssetConfig[];
244
- evmSigner?: EvmSigner;
245
- polkadot: PolkadotService;
65
+ address: string;
66
+ chain: AnyParachain;
67
+ routes: AssetRoute[];
68
+ evmSigner?: EvmSigner;
69
+ }
70
+ declare function getAssetsBalances({ address, chain, routes, }: GetAssetsBalancesParams): Promise<AssetAmount[]>;
71
+
72
+ interface GetDestinationDataParams {
73
+ route: AssetRoute;
74
+ destinationAddress: string;
246
75
  }
247
- declare function getAssetsBalances({
248
- address,
249
- chain,
250
- assets,
251
- polkadot,
252
- }: GetAssetsBalancesParams): Promise<AssetAmount[]>;
76
+ declare function getDestinationData({ route, destinationAddress, }: GetDestinationDataParams): Promise<DestinationChainTransferData>;
253
77
 
254
- interface SdkOptions extends Partial<Signers> {
255
- configService?: IConfigService;
78
+ interface GetBalancesParams {
79
+ address: string;
80
+ asset: ChainAsset;
81
+ builder: BalanceConfigBuilder;
82
+ chain: AnyChain;
83
+ }
84
+ declare function getBalance({ address, asset, builder, chain, }: GetBalancesParams): Promise<AssetAmount>;
85
+ interface GetMinParams {
86
+ asset: Asset;
87
+ builder?: AssetMinConfigBuilder;
88
+ chain: AnyChain;
89
+ }
90
+ declare function getAssetMin({ asset, builder, chain, }: GetMinParams): Promise<AssetAmount>;
91
+ declare function getMin({ balance, existentialDeposit, fee, min, }: DestinationChainTransferData): AssetAmount;
92
+ interface GetMaxParams {
93
+ balance: AssetAmount;
94
+ existentialDeposit?: AssetAmount;
95
+ fee: AssetAmount;
96
+ min: AssetAmount;
97
+ }
98
+ declare function getMax({ balance, existentialDeposit, fee, min, }: GetMaxParams): AssetAmount;
99
+ interface GetDestinationFeeParams {
100
+ address: string;
101
+ asset: Asset;
102
+ feeAsset: Asset;
103
+ destination: AnyChain;
104
+ fee: number | FeeConfigBuilder;
105
+ }
106
+ declare function getDestinationFee({ address, asset, destination, fee, feeAsset, }: GetDestinationFeeParams): Promise<AssetAmount>;
107
+ interface ConvertToChainDecimalsParams {
108
+ asset: AssetAmount;
109
+ target: ChainAsset;
110
+ }
111
+ declare function convertToChainDecimals({ asset, target, }: ConvertToChainDecimalsParams): AssetAmount;
112
+ declare function getExistentialDeposit(chain: AnyChain): Promise<AssetAmount | undefined>;
113
+ interface GetDestinationFeeBalanceParams {
114
+ balance: AssetAmount;
115
+ feeBalance: AssetAmount;
116
+ route: AssetRoute;
117
+ sourceAddress: string;
118
+ }
119
+ declare function getDestinationFeeBalance({ balance, feeBalance, route, sourceAddress, }: GetDestinationFeeBalanceParams): Promise<AssetAmount>;
120
+ interface GetExtrinsicFeeParams {
121
+ address: string;
122
+ balance: AssetAmount;
123
+ chain: AnyParachain;
124
+ extrinsic: ExtrinsicConfig;
125
+ feeBalance: AssetAmount;
126
+ feeConfig?: FeeConfig;
127
+ }
128
+ declare function getExtrinsicFee({ address, balance, chain, extrinsic, feeBalance, feeConfig, }: GetExtrinsicFeeParams): Promise<AssetAmount>;
129
+ interface GetContractFeeParams {
130
+ address: string;
131
+ balance: AssetAmount;
132
+ chain: EvmChain | EvmParachain;
133
+ contract: ContractConfig;
134
+ destinationFee: AssetAmount;
135
+ feeBalance: AssetAmount;
136
+ feeConfig?: FeeConfig;
137
+ }
138
+ declare function getContractFee({ address, balance, chain, contract, destinationFee, feeBalance, feeConfig, }: GetContractFeeParams): Promise<AssetAmount>;
139
+ interface ValidateSovereignAccountBalancesProps {
140
+ amount: bigint;
141
+ destinationData: DestinationChainTransferData;
142
+ sourceData: SourceChainTransferData;
256
143
  }
257
- declare function Sdk(options?: SdkOptions): {
258
- assets(ecosystem?: Ecosystem): {
259
- assets: Asset[];
260
- asset(keyOrAsset: string | Asset): {
261
- sourceChains: AnyChain[];
262
- source(keyOrChain: string | AnyChain): {
263
- destinationChains: AnyChain[];
264
- destination(destKeyOrChain: string | AnyChain): {
265
- accounts(
266
- sourceAddress: string,
267
- destinationAddress: string,
268
- signers?: Partial<Signers>,
269
- ): Promise<TransferData>;
144
+ declare function validateSovereignAccountBalances({ amount, sourceData, destinationData, }: ValidateSovereignAccountBalancesProps): void;
145
+
146
+ interface SdkOptions {
147
+ configService?: ConfigService;
148
+ ecosystem?: Ecosystem;
149
+ }
150
+ declare function Sdk({ configService, ecosystem }?: SdkOptions): {
151
+ assets: _moonbeam_network_xcm_types.Asset[];
152
+ setAsset(asset: string | AnyAsset): {
153
+ sources: AnyChain[];
154
+ setSource(source: string | AnyChain): {
155
+ destinations: AnyChain[];
156
+ setDestination(destination: string | AnyChain): {
157
+ setAddresses({ sourceAddress, destinationAddress, }: {
158
+ sourceAddress: string;
159
+ destinationAddress: string;
160
+ }): Promise<TransferData>;
161
+ };
270
162
  };
271
- };
272
163
  };
273
- };
274
- getTransferData({
275
- destinationAddress,
276
- destinationKeyOrChain,
277
- ethersSigner,
278
- evmSigner,
279
- keyOrAsset,
280
- polkadotSigner,
281
- sourceAddress,
282
- sourceKeyOrChain,
283
- }: SdkTransferParams): Promise<TransferData>;
284
164
  };
285
- declare function getParachainBalances(
286
- chain: AnyChain,
287
- address: string,
288
- ): Promise<AssetAmount[]>;
289
- interface SdkTransferParams extends Partial<Signers> {
290
- destinationAddress: string;
291
- destinationKeyOrChain: string | AnyChain;
292
- keyOrAsset: string | Asset;
293
- sourceAddress: string;
294
- sourceKeyOrChain: string | AnyChain;
165
+ declare function getParachainBalances(chain: AnyParachain, address: string, service?: ConfigService): Promise<AssetAmount[]>;
166
+
167
+ declare class PolkadotService {
168
+ #private;
169
+ readonly api: ApiPromise;
170
+ readonly chain: AnyParachain;
171
+ constructor(api: ApiPromise, chain: AnyParachain);
172
+ static create(chain: AnyParachain): Promise<PolkadotService>;
173
+ static createMulti(chains: AnyParachain[]): Promise<PolkadotService[]>;
174
+ get decimals(): number;
175
+ get existentialDeposit(): AssetAmount;
176
+ query(config: SubstrateQueryConfig): Promise<bigint>;
177
+ getExtrinsic(config: ExtrinsicConfig): SubmittableExtrinsic<'promise', ISubmittableResult>;
178
+ getExtrinsicCallHash(config: ExtrinsicConfig): HexString;
179
+ getPaymentInfo(account: string, config: ExtrinsicConfig): Promise<RuntimeDispatchInfo>;
180
+ getFee(account: string, config: ExtrinsicConfig): Promise<bigint>;
181
+ transfer(account: string, config: ExtrinsicConfig, signer: Signer | IKeyringPair, statusCallback?: (params: ISubmittableResult) => void): Promise<string>;
295
182
  }
296
183
 
297
- export {
298
- type BaseParams,
299
- type ChainTransferData,
300
- type DestinationChainTransferData,
301
- type EvmSigner,
302
- type GetAssetsBalancesParams,
303
- type GetBalancesParams,
304
- type GetDecimalsParams,
305
- type GetFeeBalanceParams,
306
- type GetFeeParams,
307
- type GetMaxParams,
308
- type GetSourceDataParams,
309
- Sdk,
310
- type SdkOptions,
311
- type SdkTransferParams,
312
- type Signers,
313
- type SourceChainTransferData,
314
- type SovereignAccountBalance,
315
- type TransferData,
316
- getAssetsBalances,
317
- getBalance,
318
- getContractFee,
319
- getDecimals,
320
- getExtrinsicFee,
321
- getFee,
322
- getFeeBalance,
323
- getMax,
324
- getMin,
325
- getParachainBalances,
326
- getSourceData,
327
- validateSovereignAccountBalances,
328
- };
184
+ declare class EvmService {
185
+ readonly chain: EvmChain | EvmParachain;
186
+ readonly client: PublicClient<HttpTransport>;
187
+ static create(chain: EvmChain | EvmParachain): EvmService;
188
+ constructor(chain: EvmChain | EvmParachain);
189
+ query(query: EvmQueryConfig): Promise<bigint>;
190
+ getFee(address: string, contract: ContractConfig): Promise<bigint>;
191
+ getBalance(address: string, contract: ContractConfig): Promise<bigint>;
192
+ transfer(signer: EvmSigner, contract: ContractConfig): Promise<Hash>;
193
+ }
194
+
195
+ export { type ChainTransferData, type ConvertToChainDecimalsParams, type DestinationChainTransferData, EvmService, type EvmSigner, type GetAssetsBalancesParams, type GetBalancesParams, type GetContractFeeParams, type GetDestinationDataParams, type GetDestinationFeeBalanceParams, type GetDestinationFeeParams, type GetExtrinsicFeeParams, type GetFeeParams, type GetMaxParams, type GetMinParams, type GetSourceDataParams, PolkadotService, Sdk, type SdkOptions, type Signers, type SourceChainTransferData, type SovereignAccountBalance, type TransferData, convertToChainDecimals, getAssetMin, getAssetsBalances, getBalance, getContractFee, getDestinationData, getDestinationFee, getDestinationFeeBalance, getExistentialDeposit, getExtrinsicFee, getFee, getMax, getMin, getParachainBalances, getSourceData, validateSovereignAccountBalances };