@moonbeam-network/xcm-sdk 0.0.13 → 0.0.16

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.
Files changed (59) hide show
  1. package/build/cjs/src/contracts/XTokensContract/XTokensContract.d.ts +4 -4
  2. package/build/cjs/src/contracts/XTokensContract/XTokensContract.js.map +1 -1
  3. package/build/cjs/src/polkadot/PolkadotService.d.ts +7 -7
  4. package/build/cjs/src/polkadot/PolkadotService.js +4 -7
  5. package/build/cjs/src/polkadot/PolkadotService.js.map +1 -1
  6. package/build/cjs/src/polkadot/index.d.ts +1 -0
  7. package/build/cjs/src/polkadot/index.js +1 -0
  8. package/build/cjs/src/polkadot/index.js.map +1 -1
  9. package/build/cjs/src/polkadot/polkadot.factory.d.ts +3 -0
  10. package/build/cjs/src/polkadot/polkadot.factory.js +9 -0
  11. package/build/cjs/src/polkadot/polkadot.factory.js.map +1 -0
  12. package/build/cjs/src/polkadot/polkadot.interfaces.d.ts +7 -7
  13. package/build/cjs/src/polkadot/polkadot.utils.d.ts +0 -3
  14. package/build/cjs/src/polkadot/polkadot.utils.js +1 -24
  15. package/build/cjs/src/polkadot/polkadot.utils.js.map +1 -1
  16. package/build/cjs/src/sdk/sdk.d.ts +1 -1
  17. package/build/cjs/src/sdk/sdk.deposit.d.ts +35 -0
  18. package/build/cjs/src/sdk/sdk.deposit.js +122 -0
  19. package/build/cjs/src/sdk/sdk.deposit.js.map +1 -0
  20. package/build/cjs/src/sdk/sdk.interfaces.d.ts +31 -31
  21. package/build/cjs/src/sdk/sdk.interfaces.js.map +1 -1
  22. package/build/cjs/src/sdk/sdk.js +53 -121
  23. package/build/cjs/src/sdk/sdk.js.map +1 -1
  24. package/build/cjs/src/sdk/sdk.utils.d.ts +10 -14
  25. package/build/cjs/src/sdk/sdk.utils.js +41 -74
  26. package/build/cjs/src/sdk/sdk.utils.js.map +1 -1
  27. package/build/cjs/src/sdk/sdk.withdraw.d.ts +19 -0
  28. package/build/cjs/src/sdk/sdk.withdraw.js +62 -0
  29. package/build/cjs/src/sdk/sdk.withdraw.js.map +1 -0
  30. package/build/mjs/src/contracts/XTokensContract/XTokensContract.d.ts +4 -4
  31. package/build/mjs/src/contracts/XTokensContract/XTokensContract.js.map +1 -1
  32. package/build/mjs/src/polkadot/PolkadotService.d.ts +7 -7
  33. package/build/mjs/src/polkadot/PolkadotService.js +4 -7
  34. package/build/mjs/src/polkadot/PolkadotService.js.map +1 -1
  35. package/build/mjs/src/polkadot/index.d.ts +1 -0
  36. package/build/mjs/src/polkadot/index.js +1 -0
  37. package/build/mjs/src/polkadot/index.js.map +1 -1
  38. package/build/mjs/src/polkadot/polkadot.factory.d.ts +3 -0
  39. package/build/mjs/src/polkadot/polkadot.factory.js +9 -0
  40. package/build/mjs/src/polkadot/polkadot.factory.js.map +1 -0
  41. package/build/mjs/src/polkadot/polkadot.interfaces.d.ts +7 -7
  42. package/build/mjs/src/polkadot/polkadot.utils.d.ts +0 -3
  43. package/build/mjs/src/polkadot/polkadot.utils.js +1 -24
  44. package/build/mjs/src/polkadot/polkadot.utils.js.map +1 -1
  45. package/build/mjs/src/sdk/sdk.d.ts +1 -1
  46. package/build/mjs/src/sdk/sdk.deposit.d.ts +35 -0
  47. package/build/mjs/src/sdk/sdk.deposit.js +122 -0
  48. package/build/mjs/src/sdk/sdk.deposit.js.map +1 -0
  49. package/build/mjs/src/sdk/sdk.interfaces.d.ts +31 -31
  50. package/build/mjs/src/sdk/sdk.interfaces.js.map +1 -1
  51. package/build/mjs/src/sdk/sdk.js +53 -121
  52. package/build/mjs/src/sdk/sdk.js.map +1 -1
  53. package/build/mjs/src/sdk/sdk.utils.d.ts +10 -14
  54. package/build/mjs/src/sdk/sdk.utils.js +41 -74
  55. package/build/mjs/src/sdk/sdk.utils.js.map +1 -1
  56. package/build/mjs/src/sdk/sdk.withdraw.d.ts +19 -0
  57. package/build/mjs/src/sdk/sdk.withdraw.js +62 -0
  58. package/build/mjs/src/sdk/sdk.withdraw.js.map +1 -0
  59. package/package.json +5 -5
@@ -1,161 +1,93 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.create = void 0;
3
+ exports.init = void 0;
4
4
  /* eslint-disable @typescript-eslint/no-use-before-define */
5
5
  const xcm_config_1 = require("@moonbeam-network/xcm-config");
6
- const util_1 = require("@polkadot/util");
7
- const XTokensContract_1 = require("../contracts/XTokensContract");
6
+ const contracts_1 = require("../contracts");
8
7
  const polkadot_1 = require("../polkadot");
9
- const polkadot_utils_1 = require("../polkadot/polkadot.utils");
8
+ const sdk_deposit_1 = require("./sdk.deposit");
10
9
  const sdk_utils_1 = require("./sdk.utils");
11
- async function create(options) {
10
+ const sdk_withdraw_1 = require("./sdk.withdraw");
11
+ function init(options) {
12
12
  return {
13
- moonbase: await createChainSdk(xcm_config_1.moonbase, options),
14
- moonbeam: await createChainSdk(xcm_config_1.moonbeam, options),
15
- moonriver: await createChainSdk(xcm_config_1.moonriver, options),
13
+ moonbase: initByChain(xcm_config_1.moonbase, options),
14
+ moonbeam: initByChain(xcm_config_1.moonbeam, options),
15
+ moonriver: initByChain(xcm_config_1.moonriver, options),
16
16
  };
17
17
  }
18
- exports.create = create;
19
- async function createChainSdk(configGetter, options) {
20
- const contract = new XTokensContract_1.XTokensContract(options.ethersSigner);
18
+ exports.init = init;
19
+ function initByChain(configBuilder, options) {
20
+ const { moonAsset, moonChain } = configBuilder;
21
21
  return {
22
- asset: configGetter.asset,
23
- chain: configGetter.chain,
22
+ moonAsset,
23
+ moonChain,
24
24
  subscribeToAssetsBalanceInfo: async (account, cb) => {
25
- let lastBalance = 0n;
26
- let lastInfo = [];
27
- const polkadot = await polkadot_1.PolkadotService.create(configGetter.chain.ws);
28
- const handler = (data) => {
29
- const isBalance = typeof data === 'bigint';
30
- lastBalance = isBalance ? data : lastBalance;
31
- lastInfo = (isBalance ? lastInfo : data)
32
- .map((info) => {
33
- if (info.asset.isNative) {
34
- // eslint-disable-next-line no-param-reassign
35
- info.balance = lastBalance;
36
- }
37
- return info;
38
- })
39
- .sort(polkadot_utils_1.sortByBalanceAndChainName);
40
- cb(lastInfo);
41
- };
42
- const unsubscribeBalance = await polkadot.subscribeToBalance(account, handler);
43
- const unsubscribeInfo = await polkadot.subscribeToAssetsBalanceInfo(account, configGetter, handler);
44
- return () => {
45
- unsubscribeBalance();
46
- unsubscribeInfo();
47
- };
25
+ const [polkadot] = await (0, polkadot_1.createPolkadotServices)([
26
+ configBuilder.moonChain.ws,
27
+ ]);
28
+ return (0, sdk_utils_1.subscribeToAssetsBalanceInfo)({
29
+ account,
30
+ polkadot,
31
+ configBuilder,
32
+ cb,
33
+ });
48
34
  },
49
- deposit: (asset) => {
50
- const { chains, from } = configGetter.deposit(asset);
35
+ deposit: (symbol) => {
36
+ const { chains, from } = configBuilder.deposit(symbol);
51
37
  return {
52
38
  chains,
53
39
  from: (chain) => {
54
- const { asset: assetConfig, origin, config } = from(chain);
40
+ const { asset, origin, config } = from(chain);
55
41
  return {
56
42
  get: async (account, sourceAccount, primaryAccount) => {
57
- const polkadot = await polkadot_1.PolkadotService.create(configGetter.chain.ws);
58
- const foreignPolkadot = await polkadot_1.PolkadotService.create(config.origin.ws);
43
+ const [polkadot, foreignPolkadot] = await (0, polkadot_1.createPolkadotServices)([configBuilder.moonChain.ws, config.origin.ws]);
59
44
  const meta = foreignPolkadot.getMetadata();
60
- const nativeAsset = configGetter.assets[meta.symbol];
61
- const createExtrinsic = (0, sdk_utils_1.getCreateExtrinsic)({
45
+ const nativeAsset = configBuilder.assets[meta.symbol];
46
+ return (0, sdk_deposit_1.getDepositData)({
62
47
  account,
48
+ asset,
63
49
  config,
64
50
  foreignPolkadot,
51
+ moonChain,
65
52
  nativeAsset,
53
+ options,
54
+ origin,
66
55
  polkadot,
67
56
  primaryAccount,
57
+ sourceAccount,
68
58
  });
69
- const [decimals, sourceBalance, existentialDeposit, sourceFeeBalance, moonChainFee, sourceMinBalance = 0n, min,] = await Promise.all([
70
- polkadot.getAssetDecimals(assetConfig.id),
71
- foreignPolkadot.getGenericBalance(primaryAccount || sourceAccount, config.balance),
72
- foreignPolkadot.getExistentialDeposit(),
73
- config.sourceFeeBalance
74
- ? foreignPolkadot.getGenericBalance(sourceAccount, config.sourceFeeBalance)
75
- : undefined,
76
- config.isNativeAssetPayingMoonFee
77
- ? polkadot.getAssetFee(nativeAsset.id, config.origin.weight)
78
- : undefined,
79
- config.sourceMinBalance
80
- ? foreignPolkadot.getAssetMinBalance(config.sourceMinBalance)
81
- : undefined,
82
- // eslint-disable-next-line no-nested-ternary
83
- config.sourceFeeBalance
84
- ? 0n
85
- : assetConfig.isNative
86
- ? polkadot_1.PolkadotService.getChainMin(config.origin.weight, configGetter.chain.unitsPerSecond)
87
- : polkadot.getAssetFee(assetConfig.id, config.origin.weight),
88
- ]);
89
- return {
90
- asset: { ...assetConfig, decimals },
91
- existentialDeposit,
92
- min,
93
- moonChainFee,
94
- native: { ...nativeAsset, decimals: meta.decimals },
95
- origin,
96
- source: config.origin,
97
- sourceBalance,
98
- sourceFeeBalance: !(0, util_1.isUndefined)(sourceFeeBalance)
99
- ? { ...meta, balance: sourceFeeBalance }
100
- : undefined,
101
- sourceMinBalance,
102
- getFee: async (amount = sourceBalance) => {
103
- const extrinsic = await createExtrinsic(amount);
104
- const info = await extrinsic.paymentInfo(sourceAccount);
105
- return info.partialFee.toBigInt();
106
- },
107
- send: async (amount, cb) => {
108
- const extrinsic = await createExtrinsic(amount);
109
- const hash = await extrinsic.signAndSend(sourceAccount, {
110
- signer: options.polkadotSigner,
111
- }, cb && (0, sdk_utils_1.createExtrinsicEventHandler)(config, cb));
112
- return hash.toString();
113
- },
114
- };
115
59
  },
116
60
  };
117
61
  },
118
62
  };
119
63
  },
120
- withdraw: (asset) => {
121
- const { chains, to } = configGetter.withdraw(asset);
64
+ withdraw: (symbol) => {
65
+ const { chains, to } = configBuilder.withdraw(symbol);
122
66
  return {
123
67
  chains,
124
68
  to: (chain) => {
125
- const { asset: assetConfig, origin, config } = to(chain);
69
+ const { asset, origin, config } = to(chain);
126
70
  return {
127
71
  get: async (destinationAccount) => {
128
- const polkadot = await polkadot_1.PolkadotService.create(configGetter.chain.ws);
129
- const destinationPolkadot = await polkadot_1.PolkadotService.create(config.destination.ws);
130
- const meta = destinationPolkadot.getMetadata();
131
- const nativeAsset = configGetter.assets[meta.symbol];
132
- const [decimals, destinationBalance, existentialDeposit] = await Promise.all([
133
- assetConfig.isNative
134
- ? configGetter.chain.decimals
135
- : polkadot.getAssetDecimals(assetConfig.id),
136
- destinationPolkadot.getGenericBalance(destinationAccount, config.balance),
137
- destinationPolkadot.getExistentialDeposit(),
72
+ const contract = new contracts_1.XTokensContract(options.ethersSigner);
73
+ const [polkadot, destinationPolkadot] = await (0, polkadot_1.createPolkadotServices)([
74
+ configBuilder.moonChain.ws,
75
+ config.destination.ws,
138
76
  ]);
139
- const destinationFee = BigInt(config.weight * config.feePerWeight);
140
- const min = destinationFee + existentialDeposit;
141
- return {
142
- asset: { ...assetConfig, decimals },
143
- destination: config.destination,
144
- destinationBalance,
145
- destinationFee,
146
- existentialDeposit,
147
- min,
148
- native: { ...nativeAsset, decimals: meta.decimals },
77
+ const meta = destinationPolkadot.getMetadata();
78
+ const nativeAsset = configBuilder.assets[meta.symbol];
79
+ return (0, sdk_withdraw_1.getWithdrawData)({
80
+ asset,
81
+ config,
82
+ contract,
83
+ destinationAccount,
84
+ destinationPolkadot,
85
+ moonChain,
86
+ nativeAsset,
87
+ options,
149
88
  origin,
150
- getFee: async (amount) => contract.getTransferFees(destinationAccount, amount, assetConfig, config),
151
- send: async (amount, cb) => {
152
- const tx = await contract.transfer(destinationAccount, amount, assetConfig, config);
153
- if (cb) {
154
- (0, sdk_utils_1.createTransactionEventHandler)(options.ethersSigner, tx.hash, cb);
155
- }
156
- return tx.hash;
157
- },
158
- };
89
+ polkadot,
90
+ });
159
91
  },
160
92
  };
161
93
  },
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,14 @@
1
- import { Asset, AssetConfig, Chain, DepositConfig } from '@moonbeam-network/xcm-config';
2
- import { ISubmittableResult } from '@polkadot/types/types';
3
- import { Signer as EthersSigner } from 'ethers';
4
- import { PolkadotService } from '../polkadot';
5
- import { ExtrinsicEvent, Hash, XcmSdkDeposit, XcmSdkWithdraw } from './sdk.interfaces';
1
+ import { AssetSymbol, ChainKey, XcmConfigBuilder } from '@moonbeam-network/xcm-config';
2
+ import { UnsubscribePromise } from '@polkadot/api/types';
3
+ import { AssetBalanceInfo, PolkadotService } from '../polkadot';
4
+ import { XcmSdkDeposit, XcmSdkWithdraw } from './sdk.interfaces';
6
5
  export declare function isXcmSdkDeposit(config: XcmSdkDeposit | XcmSdkWithdraw): config is XcmSdkDeposit;
7
6
  export declare function isXcmSdkWithdraw(config: XcmSdkDeposit | XcmSdkWithdraw): config is XcmSdkWithdraw;
8
- export declare function createExtrinsicEventHandler<Assets extends Asset = Asset>(config: DepositConfig<Assets>, cb: (event: ExtrinsicEvent) => void): ({ events, status, txHash }: ISubmittableResult) => void;
9
- export declare function createTransactionEventHandler(ethersSigner: EthersSigner, txHash: Hash, cb: (event: ExtrinsicEvent) => void, skipSentEvent?: boolean): Promise<void>;
10
- export interface CreateExtrinsicOptions<Assets extends Asset = Asset, Chains extends Chain = Chain> {
7
+ export declare function sortByBalanceAndChainName<Symbols extends AssetSymbol>(a: AssetBalanceInfo<Symbols>, b: AssetBalanceInfo<Symbols>): number;
8
+ export interface SubscribeToAssetsBalanceInfoParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
11
9
  account: string;
12
- config: DepositConfig<Assets>;
13
- foreignPolkadot: PolkadotService<Assets, Chains>;
14
- nativeAsset: AssetConfig<Assets>;
15
- polkadot: PolkadotService<Assets, Chains>;
16
- primaryAccount?: string;
10
+ polkadot: PolkadotService<Symbols, ChainKeys>;
11
+ configBuilder: XcmConfigBuilder<Symbols, ChainKeys>;
12
+ cb: (data: AssetBalanceInfo<Symbols>[]) => void;
17
13
  }
18
- export declare function getCreateExtrinsic<Assets extends Asset = Asset>({ account, config, foreignPolkadot, nativeAsset, polkadot, primaryAccount, }: CreateExtrinsicOptions<Assets>): (amount: bigint) => Promise<import("@polkadot/api-base/types").SubmittableExtrinsic<"promise", ISubmittableResult>>;
14
+ export declare function subscribeToAssetsBalanceInfo<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ account, polkadot, configBuilder, cb, }: SubscribeToAssetsBalanceInfoParams<Symbols, ChainKeys>): UnsubscribePromise;
@@ -1,8 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getCreateExtrinsic = exports.createTransactionEventHandler = exports.createExtrinsicEventHandler = exports.isXcmSdkWithdraw = exports.isXcmSdkDeposit = void 0;
4
- const xcm_config_1 = require("@moonbeam-network/xcm-config");
5
- const sdk_interfaces_1 = require("./sdk.interfaces");
3
+ exports.subscribeToAssetsBalanceInfo = exports.sortByBalanceAndChainName = exports.isXcmSdkWithdraw = exports.isXcmSdkDeposit = void 0;
6
4
  function isXcmSdkDeposit(config) {
7
5
  return !!config.from;
8
6
  }
@@ -11,83 +9,52 @@ function isXcmSdkWithdraw(config) {
11
9
  return !!config.to;
12
10
  }
13
11
  exports.isXcmSdkWithdraw = isXcmSdkWithdraw;
14
- function createExtrinsicEventHandler(config, cb) {
15
- return ({ events = [], status, txHash }) => {
16
- const hash = txHash.toHex();
17
- if (status.isReady) {
18
- cb({ status: sdk_interfaces_1.ExtrinsicStatus.Sent, txHash: hash });
19
- }
20
- if (status.isInBlock) {
21
- const block = status.asInBlock.toString();
22
- events.forEach(({ event: { data, method, section } }) => {
23
- if (section === config.extrinsic.pallet &&
24
- method === config.extrinsic.successEvent) {
25
- if (method === xcm_config_1.PolkadotXcmExtrinsicSuccessEvent.Attempted) {
26
- const eventData = data.at(0);
27
- if (eventData.isIncomplete) {
28
- cb({
29
- status: sdk_interfaces_1.ExtrinsicStatus.Failed,
30
- blockHash: block,
31
- txHash: hash,
32
- message: eventData.asIncomplete.toHuman().join('; '),
33
- });
34
- return;
35
- }
36
- }
37
- cb({
38
- status: sdk_interfaces_1.ExtrinsicStatus.Success,
39
- blockHash: block,
40
- txHash: hash,
41
- });
42
- }
43
- if (section === 'system' && method === 'ExtrinsicFailed') {
44
- cb({
45
- status: sdk_interfaces_1.ExtrinsicStatus.Failed,
46
- blockHash: block,
47
- txHash: hash,
48
- message: data.join('; '),
49
- });
50
- }
51
- });
52
- }
53
- };
54
- }
55
- exports.createExtrinsicEventHandler = createExtrinsicEventHandler;
56
- async function createTransactionEventHandler(ethersSigner, txHash, cb, skipSentEvent = false) {
57
- if (!ethersSigner.provider) {
58
- throw new Error('options.ethersSigner has not provider');
12
+ function sortByBalanceAndChainName(a, b) {
13
+ if (a.asset.isNative) {
14
+ return -1;
59
15
  }
60
- if (!skipSentEvent) {
61
- cb({ status: sdk_interfaces_1.ExtrinsicStatus.Sent, txHash });
16
+ if (b.asset.isNative) {
17
+ return 1;
62
18
  }
63
- const tx = await ethersSigner.provider.getTransactionReceipt(txHash);
64
- if (!tx) {
65
- setTimeout(() => createTransactionEventHandler(ethersSigner, txHash, cb, true), 2000);
66
- return;
19
+ const aBalance = Number((a.balance * 1000000n) / 10n ** BigInt(a.meta.decimals)) / 1000000;
20
+ const bBalance = Number((b.balance * 1000000n) / 10n ** BigInt(b.meta.decimals)) / 1000000;
21
+ if (aBalance || bBalance) {
22
+ return bBalance - aBalance;
67
23
  }
68
- if (tx.status === 1) {
69
- cb({
70
- status: sdk_interfaces_1.ExtrinsicStatus.Success,
71
- blockHash: tx.blockHash,
72
- txHash,
73
- });
24
+ const aName = (a.origin.name + a.asset.originSymbol).toLowerCase();
25
+ const bName = (b.origin.name + b.asset.originSymbol).toLowerCase();
26
+ if (aName < bName) {
27
+ return -1;
74
28
  }
75
- else {
76
- cb({
77
- status: sdk_interfaces_1.ExtrinsicStatus.Failed,
78
- blockHash: tx.blockHash,
79
- txHash,
80
- });
29
+ if (aName > bName) {
30
+ return 1;
81
31
  }
32
+ return 0;
82
33
  }
83
- exports.createTransactionEventHandler = createTransactionEventHandler;
84
- function getCreateExtrinsic({ account, config, foreignPolkadot, nativeAsset, polkadot, primaryAccount, }) {
85
- return async (amount) => {
86
- const fee = (0, xcm_config_1.isMultiCurrency)(config.extrinsic)
87
- ? await polkadot.getAssetFee(nativeAsset.id, config.origin.weight)
88
- : 0n;
89
- return foreignPolkadot.getXcmExtrinsic(account, amount, config.extrinsic, fee, primaryAccount);
34
+ exports.sortByBalanceAndChainName = sortByBalanceAndChainName;
35
+ async function subscribeToAssetsBalanceInfo({ account, polkadot, configBuilder, cb, }) {
36
+ let lastBalance = 0n;
37
+ let lastInfo = [];
38
+ const handler = (data) => {
39
+ const isBalance = typeof data === 'bigint';
40
+ lastBalance = isBalance ? data : lastBalance;
41
+ lastInfo = (isBalance ? lastInfo : data)
42
+ .map((info) => {
43
+ if (info.asset.isNative) {
44
+ // eslint-disable-next-line no-param-reassign
45
+ info.balance = lastBalance;
46
+ }
47
+ return info;
48
+ })
49
+ .sort(sortByBalanceAndChainName);
50
+ cb(lastInfo);
51
+ };
52
+ const unsubscribeBalance = await polkadot.subscribeToBalance(account, handler);
53
+ const unsubscribeInfo = await polkadot.subscribeToAssetsBalanceInfo(account, configBuilder, handler);
54
+ return () => {
55
+ unsubscribeBalance();
56
+ unsubscribeInfo();
90
57
  };
91
58
  }
92
- exports.getCreateExtrinsic = getCreateExtrinsic;
59
+ exports.subscribeToAssetsBalanceInfo = subscribeToAssetsBalanceInfo;
93
60
  //# sourceMappingURL=sdk.utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.utils.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.utils.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.utils.ts"],"names":[],"mappings":";;;AASA,SAAgB,eAAe,CAC7B,MAAsC;IAEtC,OAAO,CAAC,CAAE,MAAwB,CAAC,IAAI,CAAC;AAC1C,CAAC;AAJD,0CAIC;AAED,SAAgB,gBAAgB,CAC9B,MAAsC;IAEtC,OAAO,CAAC,CAAE,MAAyB,CAAC,EAAE,CAAC;AACzC,CAAC;AAJD,4CAIC;AAED,SAAgB,yBAAyB,CACvC,CAA4B,EAC5B,CAA4B;IAE5B,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;QACpB,OAAO,CAAC,CAAC,CAAC;KACX;IAED,IAAI,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;QACpB,OAAO,CAAC,CAAC;KACV;IAED,MAAM,QAAQ,GACZ,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC;IAC5E,MAAM,QAAQ,GACZ,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC;IAE5E,IAAI,QAAQ,IAAI,QAAQ,EAAE;QACxB,OAAO,QAAQ,GAAG,QAAQ,CAAC;KAC5B;IAED,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;IACnE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;IAEnE,IAAI,KAAK,GAAG,KAAK,EAAE;QACjB,OAAO,CAAC,CAAC,CAAC;KACX;IAED,IAAI,KAAK,GAAG,KAAK,EAAE;QACjB,OAAO,CAAC,CAAC;KACV;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAjCD,8DAiCC;AAYM,KAAK,UAAU,4BAA4B,CAGhD,EACA,OAAO,EACP,QAAQ,EACR,aAAa,EACb,EAAE,GACqD;IACvD,IAAI,WAAW,GAAG,EAAE,CAAC;IACrB,IAAI,QAAQ,GAAgC,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAG,CAAC,IAA0C,EAAE,EAAE;QAC7D,MAAM,SAAS,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC;QAE3C,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC;QAC7C,QAAQ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;aACrC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACvB,6CAA6C;gBAC7C,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC;aAC5B;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAEnC,EAAE,CAAC,QAAQ,CAAC,CAAC;IACf,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAC1D,OAAO,EACP,OAAO,CACR,CAAC;IACF,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,4BAA4B,CACjE,OAAO,EACP,aAAa,EACb,OAAO,CACR,CAAC;IAEF,OAAO,GAAG,EAAE;QACV,kBAAkB,EAAE,CAAC;QACrB,eAAe,EAAE,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AA3CD,oEA2CC"}
@@ -0,0 +1,19 @@
1
+ import { Asset, AssetSymbol, Chain, ChainKey, MoonChain, WithdrawConfig } from '@moonbeam-network/xcm-config';
2
+ import { Signer as EthersSigner } from 'ethers';
3
+ import { XTokensContract } from '../contracts';
4
+ import { PolkadotService } from '../polkadot';
5
+ import { ExtrinsicEvent, Hash, SdkOptions, WithdrawTransferData } from './sdk.interfaces';
6
+ export declare function createTransactionEventHandler(ethersSigner: EthersSigner, txHash: Hash, cb: (event: ExtrinsicEvent) => void, skipSentEvent?: boolean): Promise<void>;
7
+ export interface GetWithdrawDataParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
8
+ asset: Asset<Symbols>;
9
+ config: WithdrawConfig<Symbols>;
10
+ contract: XTokensContract;
11
+ destinationAccount: string;
12
+ destinationPolkadot: PolkadotService<Symbols, ChainKeys>;
13
+ moonChain: MoonChain;
14
+ nativeAsset: Asset<Symbols>;
15
+ options: SdkOptions;
16
+ origin: MoonChain | Chain<ChainKeys>;
17
+ polkadot: PolkadotService<Symbols, ChainKeys>;
18
+ }
19
+ export declare function getWithdrawData<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ asset, config, contract, destinationAccount, destinationPolkadot, moonChain, nativeAsset, options, origin, polkadot, }: GetWithdrawDataParams<Symbols, ChainKeys>): Promise<WithdrawTransferData<Symbols>>;
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWithdrawData = exports.createTransactionEventHandler = void 0;
4
+ const sdk_interfaces_1 = require("./sdk.interfaces");
5
+ async function createTransactionEventHandler(ethersSigner, txHash, cb, skipSentEvent = false) {
6
+ if (!ethersSigner.provider) {
7
+ throw new Error('options.ethersSigner has not provider');
8
+ }
9
+ if (!skipSentEvent) {
10
+ cb({ status: sdk_interfaces_1.ExtrinsicStatus.Sent, txHash });
11
+ }
12
+ const tx = await ethersSigner.provider.getTransactionReceipt(txHash);
13
+ if (!tx) {
14
+ setTimeout(() => createTransactionEventHandler(ethersSigner, txHash, cb, true), 2000);
15
+ return;
16
+ }
17
+ if (tx.status === 1) {
18
+ cb({
19
+ status: sdk_interfaces_1.ExtrinsicStatus.Success,
20
+ blockHash: tx.blockHash,
21
+ txHash,
22
+ });
23
+ }
24
+ else {
25
+ cb({
26
+ status: sdk_interfaces_1.ExtrinsicStatus.Failed,
27
+ blockHash: tx.blockHash,
28
+ txHash,
29
+ });
30
+ }
31
+ }
32
+ exports.createTransactionEventHandler = createTransactionEventHandler;
33
+ async function getWithdrawData({ asset, config, contract, destinationAccount, destinationPolkadot, moonChain, nativeAsset, options, origin, polkadot, }) {
34
+ const meta = destinationPolkadot.getMetadata();
35
+ const [decimals, destinationBalance, existentialDeposit] = await Promise.all([
36
+ asset.isNative ? moonChain.decimals : polkadot.getAssetDecimals(asset.id),
37
+ destinationPolkadot.getGenericBalance(destinationAccount, config.balance),
38
+ destinationPolkadot.getExistentialDeposit(),
39
+ ]);
40
+ const destinationFee = BigInt(config.weight * config.feePerWeight);
41
+ const min = destinationFee + existentialDeposit;
42
+ return {
43
+ asset: { ...asset, decimals },
44
+ destination: config.destination,
45
+ destinationBalance,
46
+ destinationFee,
47
+ existentialDeposit,
48
+ min,
49
+ native: { ...nativeAsset, decimals: meta.decimals },
50
+ origin,
51
+ getFee: async (amount) => contract.getTransferFees(destinationAccount, amount, asset, config),
52
+ send: async (amount, cb) => {
53
+ const tx = await contract.transfer(destinationAccount, amount, asset, config);
54
+ if (cb) {
55
+ createTransactionEventHandler(options.ethersSigner, tx.hash, cb);
56
+ }
57
+ return tx.hash;
58
+ },
59
+ };
60
+ }
61
+ exports.getWithdrawData = getWithdrawData;
62
+ //# sourceMappingURL=sdk.withdraw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk.withdraw.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.withdraw.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import type { TransactionResponse } from '@ethersproject/abstract-provider';
2
- import { Asset, AssetConfig, WithdrawXTokensConfig } from '@moonbeam-network/xcm-config';
2
+ import { Asset, AssetSymbol, WithdrawXTokensConfig } from '@moonbeam-network/xcm-config';
3
3
  import { Signer } from 'ethers';
4
- export declare class XTokensContract<Assets extends Asset = Asset> {
4
+ export declare class XTokensContract<Symbols extends AssetSymbol = AssetSymbol> {
5
5
  #private;
6
6
  readonly address: string;
7
7
  constructor(signer: Signer);
8
- transfer(account: string, amount: bigint, asset: AssetConfig<Assets>, config: WithdrawXTokensConfig<Assets>): Promise<TransactionResponse>;
9
- getTransferFees(account: string, amount: bigint, asset: AssetConfig<Assets>, config: WithdrawXTokensConfig<Assets>): Promise<bigint>;
8
+ transfer(account: string, amount: bigint, asset: Asset<Symbols>, config: WithdrawXTokensConfig<Symbols>): Promise<TransactionResponse>;
9
+ getTransferFees(account: string, amount: bigint, asset: Asset<Symbols>, config: WithdrawXTokensConfig<Symbols>): Promise<bigint>;
10
10
  private getGasPrice;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"XTokensContract.js","sourceRoot":"","sources":["../../../../../src/contracts/XTokensContract/XTokensContract.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAMA,mCAA0C;AAE1C,wEAAkD;AAElD,MAAa,eAAe;IAO1B,YAAY,MAAc;QANjB,YAAO,GAAW,4CAA4C,CAAC;QAExE,4CAA6B;QAE7B,0CAAyB;QAGvB,uBAAA,IAAI,2BAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,6BAAa,IAAI,iBAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAiB,EAAE,MAAM,CAAC,MAAA,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAe,EACf,MAAc,EACd,KAA0B,EAC1B,MAAqC;QAErC,OAAO,uBAAA,IAAI,iCAAU,CAAC,QAAQ,CAC5B,KAAK,CAAC,OAAO,EACb,MAAM,EACN,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,MAAM,CACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,MAAc,EACd,KAA0B,EAC1B,MAAqC;QAErC,MAAM,YAAY,GAAG,CACnB,MAAM,uBAAA,IAAI,iCAAU,CAAC,WAAW,CAAC,QAAQ,CACvC,KAAK,CAAC,OAAO,EACb,MAAM,EACN,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,MAAM,CACd,CACF,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE1C,OAAO,YAAY,GAAG,QAAQ,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,MAAM,uBAAA,IAAI,+BAAQ,CAAC,UAAU,EAAE,CAAC;QAE3E,OAAO,CACL,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACxE,CAAC;IACJ,CAAC;CACF;AApDD,0CAoDC"}
1
+ {"version":3,"file":"XTokensContract.js","sourceRoot":"","sources":["../../../../../src/contracts/XTokensContract/XTokensContract.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAMA,mCAA0C;AAE1C,wEAAkD;AAElD,MAAa,eAAe;IAO1B,YAAY,MAAc;QANjB,YAAO,GAAW,4CAA4C,CAAC;QAExE,4CAA6B;QAE7B,0CAAyB;QAGvB,uBAAA,IAAI,2BAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,6BAAa,IAAI,iBAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAiB,EAAE,MAAM,CAAC,MAAA,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAe,EACf,MAAc,EACd,KAAqB,EACrB,MAAsC;QAEtC,OAAO,uBAAA,IAAI,iCAAU,CAAC,QAAQ,CAC5B,KAAK,CAAC,OAAO,EACb,MAAM,EACN,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,MAAM,CACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,MAAc,EACd,KAAqB,EACrB,MAAsC;QAEtC,MAAM,YAAY,GAAG,CACnB,MAAM,uBAAA,IAAI,iCAAU,CAAC,WAAW,CAAC,QAAQ,CACvC,KAAK,CAAC,OAAO,EACb,MAAM,EACN,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,MAAM,CACd,CACF,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE1C,OAAO,YAAY,GAAG,QAAQ,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,MAAM,uBAAA,IAAI,+BAAQ,CAAC,UAAU,EAAE,CAAC;QAE3E,OAAO,CACL,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACxE,CAAC;IACJ,CAAC;CACF;AApDD,0CAoDC"}
@@ -1,29 +1,29 @@
1
1
  import '@moonbeam-network/api-augment';
2
- import { Asset, BalanceConfig, Chain, ConfigGetter, ExtrinsicConfig, MinBalanceConfig } from '@moonbeam-network/xcm-config';
2
+ import { AssetSymbol, BalanceConfig, ChainKey, ExtrinsicConfig, MinBalanceConfig, XcmConfigBuilder } from '@moonbeam-network/xcm-config';
3
3
  import { ApiPromise } from '@polkadot/api';
4
4
  import { SubmittableExtrinsic, UnsubscribePromise } from '@polkadot/api/types';
5
5
  import { AccountInfo } from '@polkadot/types/interfaces';
6
6
  import { MoonbeamRuntimeXcmConfigAssetType, PalletAssetsAssetAccount, PalletAssetsAssetMetadata } from '@polkadot/types/lookup';
7
7
  import { AssetBalanceInfo } from './polkadot.interfaces';
8
- export declare class PolkadotService<Assets extends Asset = Asset, Chains extends Chain = Chain> {
8
+ export declare class PolkadotService<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
9
9
  #private;
10
10
  constructor(api: ApiPromise);
11
- static create<Assets extends Asset = Asset, Chains extends Chain = Chain>(ws: string): Promise<PolkadotService<Assets, Chains>>;
11
+ static create<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey>(ws: string): Promise<PolkadotService<Symbols, ChainKeys>>;
12
12
  static getChainMin(weight: number, unitsPerSecond: bigint): bigint;
13
13
  getMetadata(): {
14
14
  decimals: number;
15
- symbol: Assets;
15
+ symbol: Symbols;
16
16
  };
17
17
  getExistentialDeposit(): bigint;
18
18
  getAssetDecimals(assetId: string): Promise<number>;
19
19
  getAssetMeta(assetId: string): Promise<PalletAssetsAssetMetadata>;
20
20
  subscribeToAccountInfo(account: string, callback: (info: AccountInfo) => void): UnsubscribePromise;
21
21
  subscribeToBalance(account: string, callback: (balance: bigint) => void): UnsubscribePromise;
22
- getGenericBalance(account: string, { pallet, function: fn, getParams, path, calc }: BalanceConfig<Assets>): Promise<bigint>;
22
+ getGenericBalance(account: string, { pallet, function: fn, getParams, path, calc }: BalanceConfig<Symbols>): Promise<bigint>;
23
23
  getAssetMinBalance({ pallet, function: fn, params, path, }: MinBalanceConfig): Promise<bigint>;
24
- getXcmExtrinsic(account: string, amount: bigint, { pallet, extrinsic, getParams }: ExtrinsicConfig<Assets>, fee?: bigint, primaryAccount?: string): SubmittableExtrinsic<'promise'>;
24
+ getXcmExtrinsic(account: string, amount: bigint, { pallet, extrinsic, getParams }: ExtrinsicConfig<Symbols>, fee?: bigint, primaryAccount?: string): SubmittableExtrinsic<'promise'>;
25
25
  getAssetFee(id: string, weight: number): Promise<bigint>;
26
26
  getAssetType(id: string): Promise<MoonbeamRuntimeXcmConfigAssetType | undefined>;
27
- subscribeToAssetsBalanceInfo(account: string, configGetter: ConfigGetter<Assets, Chains>, callback: (data: AssetBalanceInfo<Assets>[]) => void): UnsubscribePromise;
27
+ subscribeToAssetsBalanceInfo(account: string, config: XcmConfigBuilder<Symbols, ChainKeys>, callback: (data: AssetBalanceInfo<Symbols>[]) => void): UnsubscribePromise;
28
28
  subscribeToAccountBalances(account: string, ids: string[], callback: (balances: PalletAssetsAssetAccount[]) => void): UnsubscribePromise;
29
29
  }