@moonbeam-network/xcm-config 1.0.0-dev.30 → 1.0.0-dev.300

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/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2022 PureStake
1
+ Copyright 2024 Moonbeam Foundation
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
4
 
package/README.md CHANGED
@@ -1,14 +1,44 @@
1
- ![Moonbeam](https://docs.moonbeam.network/images/builders/interoperability/xcm/sdk/xcm-sdk-banner.png)
1
+ # @moonbeam-network/xcm-config
2
2
 
3
- The Moonbeam XCM SDK enables developers to easily deposit and withdraw assets to Moonbeam/Moonriver from the relay chain and other parachains in the Polkadot/Kusama ecosystem. With the SDK, you don't need to worry about determining the multilocation of the origin or destination assets or which extrinsics are used on which networks to send XCM transfers. To deposit or withdraw assets, you simply define the asset and origin chain you want to deposit from or withdraw back to, along with the sending account's signer, and the amount to send.
3
+ Configuration for supported chains and XCM routing definitions used in the Moonbeam XCM SDK and MRL SDK.
4
4
 
5
- # Documentation
5
+ ## Package Information
6
6
 
7
- ## v1 (current)
7
+ **NPM Package:** [https://www.npmjs.com/package/@moonbeam-network/xcm-config](https://www.npmjs.com/package/@moonbeam-network/xcm-config)
8
8
 
9
- - TODO: (coming soon)
9
+ **Package Level:** Level 4
10
+ **Depends on:** `@moonbeam-network/xcm-utils`, `@moonbeam-network/xcm-types`, `@moonbeam-network/xcm-builder`
10
11
 
11
- ## v0 (previous)
12
+ ## Features
12
13
 
13
- - [usage](https://docs.moonbeam.network/builders/xcm/xcm-sdk/xcm-sdk/)
14
- - [references](https://docs.moonbeam.network/builders/xcm/xcm-sdk/reference/)
14
+ This package provides:
15
+
16
+ - **Chain configurations** - Definitions for all supported blockchain networks
17
+ - **Asset configurations** - Token and asset metadata
18
+ - **XCM routing definitions** - Cross-chain message routing rules and parameters
19
+
20
+ ## Documentation
21
+
22
+ ### v4 (current)
23
+
24
+ #### Usage
25
+
26
+ - [XCM SDK](https://moonbeam-foundation.github.io/xcm-sdk/latest/example-usage/xcm)
27
+ - [MRL SDK](https://moonbeam-foundation.github.io/xcm-sdk/latest/example-usage/mrl)
28
+
29
+ #### References
30
+
31
+ - [XCM SDK](https://moonbeam-foundation.github.io/xcm-sdk/latest/reference/xcm)
32
+ - [MRL SDK](https://moonbeam-foundation.github.io/xcm-sdk/latest/reference/mrl)
33
+
34
+ ### v3 (previous)
35
+
36
+ #### Usage
37
+
38
+ - [XCM SDK](https://moonbeam-foundation.github.io/xcm-sdk/v3/example-usage/xcm)
39
+ - [MRL SDK](https://moonbeam-foundation.github.io/xcm-sdk/v3/example-usage/mrl)
40
+
41
+ #### References
42
+
43
+ - [XCM SDK](https://moonbeam-foundation.github.io/xcm-sdk/v3/reference/xcm)
44
+ - [MRL SDK](https://moonbeam-foundation.github.io/xcm-sdk/v3/reference/mrl)
@@ -0,0 +1,317 @@
1
+ import { Asset, AnyChain, SetOptional, ChainAsset, AnyAsset, AnyParachain, Ecosystem, Parachain, EvmParachain, EvmChain } from '@moonbeam-network/xcm-types';
2
+ import { BalanceConfigBuilder, AssetMinConfigBuilder, FeeConfigBuilder, ContractConfigBuilder, ExtrinsicConfigBuilder, EventMonitoringConfig, MrlConfigBuilder, ProtocolFeeConfigBuilder } from '@moonbeam-network/xcm-builder';
3
+
4
+ declare const aca: Asset;
5
+ declare const agng: Asset;
6
+ declare const alan: Asset;
7
+ declare const ampe: Asset;
8
+ declare const apillon: Asset;
9
+ declare const aseed: Asset;
10
+ declare const astr: Asset;
11
+ declare const auq: Asset;
12
+ declare const axlusdc: Asset;
13
+ declare const bnc: Asset;
14
+ declare const cfg: Asset;
15
+ declare const csm: Asset;
16
+ declare const dai: Asset;
17
+ declare const ded: Asset;
18
+ declare const dev: Asset;
19
+ declare const devBeta: Asset;
20
+ declare const devStage: Asset;
21
+ declare const dot: Asset;
22
+ declare const eq: Asset;
23
+ declare const eqd: Asset;
24
+ declare const eth: Asset;
25
+ declare const eurc: Asset;
26
+ declare const fil: Asset;
27
+ declare const ftm: Asset;
28
+ declare const ftmwh: Asset;
29
+ declare const glmr: Asset;
30
+ declare const hdx: Asset;
31
+ declare const ibtc: Asset;
32
+ declare const intr: Asset;
33
+ declare const kar: Asset;
34
+ declare const kbtc: Asset;
35
+ declare const kint: Asset;
36
+ declare const ksm: Asset;
37
+ declare const lamaGLMR: Asset;
38
+ declare const laos: Asset;
39
+ declare const ldot: Asset;
40
+ declare const lit: Asset;
41
+ declare const manta: Asset;
42
+ declare const maos: Asset;
43
+ declare const movr: Asset;
44
+ declare const samaMOVR: Asset;
45
+ declare const neuro: Asset;
46
+ declare const nodl: Asset;
47
+ declare const otp: Asset;
48
+ declare const para: Asset;
49
+ declare const paring: Asset;
50
+ declare const peaq: Asset;
51
+ declare const pen: Asset;
52
+ declare const pha: Asset;
53
+ declare const pica: Asset;
54
+ declare const pink: Asset;
55
+ declare const pizza: Asset;
56
+ declare const pizzaUSDC: Asset;
57
+ declare const ring: Asset;
58
+ declare const rmrk: Asset;
59
+ declare const sdn: Asset;
60
+ declare const soon: Asset;
61
+ declare const stink: Asset;
62
+ declare const sub: Asset;
63
+ declare const teer: Asset;
64
+ declare const tnkr: Asset;
65
+ declare const tt1: Asset;
66
+ declare const tur: Asset;
67
+ declare const unit: Asset;
68
+ declare const usdc: Asset;
69
+ declare const usdcwh: Asset;
70
+ declare const usdt: Asset;
71
+ declare const usdtksm: Asset;
72
+ declare const usdtwh: Asset;
73
+ declare const vastr: Asset;
74
+ declare const vbnc: Asset;
75
+ declare const vdot: Asset;
76
+ declare const vfil: Asset;
77
+ declare const vglmr: Asset;
78
+ declare const vksm: Asset;
79
+ declare const vmanta: Asset;
80
+ declare const vmovr: Asset;
81
+ declare const wbtc: Asset;
82
+ declare const weth: Asset;
83
+ declare const wftm: Asset;
84
+ declare const wifd: Asset;
85
+ declare const xrt: Asset;
86
+ declare const ztg: Asset;
87
+ declare const wbtce: Asset;
88
+ declare const wstethe: Asset;
89
+ declare const wethe: Asset;
90
+ declare const assetsList: Asset[];
91
+ declare const assetsMap: Map<string, Asset>;
92
+
93
+ interface AssetRouteConstructorParams {
94
+ source: SourceConfig;
95
+ destination: DestinationConfig;
96
+ contract?: ContractConfigBuilder;
97
+ extrinsic?: ExtrinsicConfigBuilder;
98
+ monitoring?: EventMonitoringConfig;
99
+ }
100
+ interface SourceConfig {
101
+ asset: Asset;
102
+ chain: AnyChain;
103
+ balance: BalanceConfigBuilder;
104
+ fee: FeeConfig;
105
+ destinationFee?: {
106
+ asset?: Asset;
107
+ balance: BalanceConfigBuilder;
108
+ };
109
+ min?: AssetMinConfigBuilder;
110
+ }
111
+ interface DestinationConfig extends Omit<SourceConfig, 'fee'> {
112
+ fee: FeeAmountConfig;
113
+ }
114
+ interface FeeConfig {
115
+ asset: Asset;
116
+ balance: BalanceConfigBuilder;
117
+ extra?: number;
118
+ }
119
+ interface FeeAmountConfig extends SetOptional<FeeConfig, 'balance'> {
120
+ amount: number | FeeConfigBuilder;
121
+ }
122
+ declare class AssetRoute {
123
+ readonly source: SourceConfig;
124
+ readonly destination: DestinationConfig;
125
+ readonly contract?: ContractConfigBuilder;
126
+ readonly extrinsic?: ExtrinsicConfigBuilder;
127
+ readonly monitoring?: EventMonitoringConfig;
128
+ constructor({ source, destination, contract, extrinsic, monitoring, }: AssetRouteConstructorParams);
129
+ getDestinationFeeAssetOnSource(): ChainAsset;
130
+ }
131
+
132
+ interface ChainRoutesConstructorParams {
133
+ chain: AnyChain;
134
+ routes: RoutesParam[];
135
+ }
136
+ interface RoutesParam extends Omit<AssetRouteConstructorParams, 'source'> {
137
+ source: Omit<SourceConfig, 'chain'>;
138
+ }
139
+ declare class ChainRoutes {
140
+ readonly chain: AnyChain;
141
+ protected routes: Map<string, AssetRoute>;
142
+ constructor({ chain, routes }: ChainRoutesConstructorParams);
143
+ getRoutes(): AssetRoute[];
144
+ getAssetRoutes(keyOrAsset: string | AnyAsset): AssetRoute[];
145
+ getAssetDestinations(keyOrAsset: string | AnyAsset): AnyChain[];
146
+ getDestinationAssets(keyOrChain: string | AnyChain): Asset[];
147
+ getAssetRoute(asset: string | AnyAsset, destination: string | AnyChain): AssetRoute;
148
+ }
149
+
150
+ interface MrlAssetRouteConstructorParams extends AssetRouteConstructorParams {
151
+ source: MrlSourceConfig;
152
+ mrl: MrlConfig;
153
+ }
154
+ interface MrlConfig {
155
+ isAutomaticPossible?: boolean;
156
+ transfer: MrlConfigBuilder;
157
+ bridgeChain: BridgeChainConfig;
158
+ }
159
+ interface ProtocolFeeConfig {
160
+ amount: number | ProtocolFeeConfigBuilder;
161
+ asset: Asset;
162
+ balance: BalanceConfigBuilder;
163
+ }
164
+ interface MrlSourceConfig extends SourceConfig {
165
+ /** Protocol bridge fee (e.g., Snowbridge fee) */
166
+ protocolFee?: ProtocolFeeConfig;
167
+ bridgeChainFee?: {
168
+ asset: Asset;
169
+ balance: BalanceConfigBuilder;
170
+ };
171
+ }
172
+ interface BridgeChainConfig {
173
+ asset: Asset;
174
+ balance: BalanceConfigBuilder;
175
+ chain: AnyParachain;
176
+ fee: BridgeChainFeeConfig;
177
+ }
178
+ interface BridgeChainFeeConfig extends FeeConfig {
179
+ amount: number | FeeConfigBuilder;
180
+ }
181
+ declare class MrlAssetRoute extends AssetRoute {
182
+ readonly mrl: MrlConfig & {
183
+ isAutomaticPossible: boolean;
184
+ };
185
+ readonly source: MrlSourceConfig;
186
+ constructor({ source, destination, contract, extrinsic, mrl, }: MrlAssetRouteConstructorParams & {
187
+ source: MrlSourceConfig;
188
+ });
189
+ }
190
+
191
+ interface MrlChainRoutesConstructorParams extends ChainRoutesConstructorParams {
192
+ routes: MrlRoutesParam[];
193
+ }
194
+ interface MrlRoutesParam extends Omit<MrlAssetRouteConstructorParams, 'source'> {
195
+ source: Omit<MrlSourceConfig, 'chain'>;
196
+ }
197
+ declare class MrlChainRoutes extends ChainRoutes {
198
+ protected routes: Map<string, MrlAssetRoute>;
199
+ constructor({ chain, routes }: MrlChainRoutesConstructorParams);
200
+ getRoutes(): MrlAssetRoute[];
201
+ getAssetRoute(asset: string | AnyAsset, destination: string | AnyChain): MrlAssetRoute;
202
+ }
203
+
204
+ /**
205
+ * Configuration options for initializing the ConfigService.
206
+ * This interface defines the structure for configuring assets, chains, routes, and endpoints.
207
+ */
208
+ interface ConfigServiceOptions {
209
+ /**
210
+ * Optional map of assets where the key is the asset identifier and the value is the Asset object.
211
+ * If not provided, defaults to the predefined assetsMap.
212
+ */
213
+ assets?: Map<string, Asset>;
214
+ /**
215
+ * Optional map of chains where the key is the chain identifier and the value is the Chain object.
216
+ * If not provided, defaults to the predefined chainsMap.
217
+ */
218
+ chains?: Map<string, AnyChain>;
219
+ /**
220
+ * Routes configuration.
221
+ */
222
+ routes: Map<string, ChainRoutes | MrlChainRoutes>;
223
+ }
224
+ declare class ConfigService {
225
+ protected assets: Map<string, Asset>;
226
+ protected chains: Map<string, AnyChain>;
227
+ protected routes: Map<string, ChainRoutes | MrlChainRoutes>;
228
+ constructor(options: ConfigServiceOptions);
229
+ getAsset(keyOrAsset: string | Asset): Asset;
230
+ getEcosystemAssets(ecosystem?: Ecosystem): Asset[];
231
+ getChain(keyOrChain: string | AnyChain): AnyChain;
232
+ getChainRoutes(keyOrChain: string | AnyChain): ChainRoutes | MrlChainRoutes;
233
+ getSourceChains({ asset, ecosystem, }: {
234
+ asset?: string | Asset;
235
+ ecosystem?: Ecosystem;
236
+ }): AnyChain[];
237
+ getDestinationChains({ asset, source, }: {
238
+ asset?: string | AnyAsset;
239
+ source: string | AnyChain;
240
+ }): AnyChain[];
241
+ getAssetRoute({ asset, source, destination, }: {
242
+ asset: string | AnyAsset;
243
+ source: string | AnyChain;
244
+ destination: string | AnyChain;
245
+ }): AssetRoute | MrlAssetRoute;
246
+ getRouteAssets({ source, destination, }: {
247
+ source: string | AnyChain;
248
+ destination: string | AnyChain;
249
+ }): Asset[];
250
+ updateAsset(asset: Asset): void;
251
+ updateChain(chain: AnyChain): void;
252
+ updateChainRoute(route: ChainRoutes): void;
253
+ updateEndpoints(endpoints: {
254
+ [key: string]: {
255
+ rpc: string;
256
+ ws: string[];
257
+ };
258
+ }): void;
259
+ }
260
+
261
+ declare const acala: Parachain;
262
+ declare const alphanetAssetHub: Parachain;
263
+ declare const alphanetRelay: Parachain;
264
+ declare const astar: Parachain;
265
+ declare const bifrostKusama: Parachain;
266
+ declare const bifrostPolkadot: Parachain;
267
+ declare const centrifuge: Parachain;
268
+ declare const crustShadow: Parachain;
269
+ declare const darwinia: EvmParachain;
270
+ declare const ethereum: EvmChain;
271
+ declare const fantomTestnet: EvmChain;
272
+ declare const hydration: Parachain;
273
+ declare const hydrationAlphanet: Parachain;
274
+ declare const interlay: Parachain;
275
+ declare const karura: Parachain;
276
+ declare const kintsugi: Parachain;
277
+ declare const kusama: Parachain;
278
+ declare const kusamaAssetHub: Parachain;
279
+ declare const mantaParachain: Parachain;
280
+ declare const laosAlphanet: EvmParachain;
281
+ declare const laosMainnet: EvmParachain;
282
+ declare const moonbaseAlpha: EvmParachain;
283
+ declare const moonbaseBeta: EvmParachain;
284
+ declare const moonbaseStage: EvmParachain;
285
+ declare const moonlama: EvmParachain;
286
+ declare const moonsama: EvmParachain;
287
+ declare const moonbeam: EvmParachain;
288
+ declare const moonriver: EvmParachain;
289
+ declare const neuroweb: Parachain;
290
+ declare const originTrailAlphanet: Parachain;
291
+ declare const peaqAlphanet: Parachain;
292
+ declare const peaqChain: Parachain;
293
+ declare const peaqEvm: EvmParachain;
294
+ declare const peaqEvmAlphanet: EvmParachain;
295
+ declare const pendulum: Parachain;
296
+ declare const polkadot: Parachain;
297
+ declare const polkadotAssetHub: Parachain;
298
+ declare const robonomics: Parachain;
299
+ declare const shiden: Parachain;
300
+ declare const turingAlphanet: Parachain;
301
+ declare const uniqueAlpha: Parachain;
302
+ declare const zeitgeist: Parachain;
303
+ declare const chainsList: AnyChain[];
304
+ declare const chainsMap: Map<string, AnyChain>;
305
+
306
+ declare function getKey(keyOrModel: string | AnyAsset | AnyChain): string;
307
+
308
+ declare const crossEcosystemsRoutesList: ChainRoutes[];
309
+ declare const crossEcosystemsRoutesMap: Map<string, ChainRoutes>;
310
+
311
+ declare const mrlRoutesList: MrlChainRoutes[];
312
+ declare const mrlRoutesMap: Map<string, MrlChainRoutes>;
313
+
314
+ declare const xcmRoutesList: ChainRoutes[];
315
+ declare const xcmRoutesMap: Map<string, ChainRoutes>;
316
+
317
+ export { AssetRoute, type AssetRouteConstructorParams, type BridgeChainConfig, type BridgeChainFeeConfig, ChainRoutes, type ChainRoutesConstructorParams, ConfigService, type ConfigServiceOptions, type DestinationConfig, type FeeAmountConfig, type FeeConfig, MrlAssetRoute, type MrlAssetRouteConstructorParams, MrlChainRoutes, type MrlChainRoutesConstructorParams, type MrlConfig, type MrlSourceConfig, type ProtocolFeeConfig, type SourceConfig, aca, acala, agng, alan, alphanetAssetHub, alphanetRelay, ampe, apillon, aseed, assetsList, assetsMap, astar, astr, auq, axlusdc, bifrostKusama, bifrostPolkadot, bnc, centrifuge, cfg, chainsList, chainsMap, crossEcosystemsRoutesList, crossEcosystemsRoutesMap, crustShadow, csm, dai, darwinia, ded, dev, devBeta, devStage, dot, eq, eqd, eth, ethereum, eurc, fantomTestnet, fil, ftm, ftmwh, getKey, glmr, hdx, hydration, hydrationAlphanet, ibtc, interlay, intr, kar, karura, kbtc, kint, kintsugi, ksm, kusama, kusamaAssetHub, lamaGLMR, laos, laosAlphanet, laosMainnet, ldot, lit, manta, mantaParachain, maos, moonbaseAlpha, moonbaseBeta, moonbaseStage, moonbeam, moonlama, moonriver, moonsama, movr, mrlRoutesList, mrlRoutesMap, neuro, neuroweb, nodl, originTrailAlphanet, otp, para, paring, peaq, peaqAlphanet, peaqChain, peaqEvm, peaqEvmAlphanet, pen, pendulum, pha, pica, pink, pizza, pizzaUSDC, polkadot, polkadotAssetHub, ring, rmrk, robonomics, samaMOVR, sdn, shiden, soon, stink, sub, teer, tnkr, tt1, tur, turingAlphanet, uniqueAlpha, unit, usdc, usdcwh, usdt, usdtksm, usdtwh, vastr, vbnc, vdot, vfil, vglmr, vksm, vmanta, vmovr, wbtc, wbtce, weth, wethe, wftm, wifd, wstethe, xcmRoutesList, xcmRoutesMap, xrt, zeitgeist, ztg };