@moonbeam-network/xcm-sdk 0.0.1-dev.3 → 0.0.1-dev.30

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 (109) hide show
  1. package/README.md +56 -16
  2. package/build/index.cjs +2 -0
  3. package/build/index.cjs.map +1 -0
  4. package/build/index.d.ts +319 -0
  5. package/build/index.mjs +2 -0
  6. package/build/index.mjs.map +1 -0
  7. package/package.json +30 -18
  8. package/build/cjs/examples/simple/package.json +0 -21
  9. package/build/cjs/examples/simple/tsconfig.json +0 -10
  10. package/build/cjs/src/contracts/XTokensContract/XTokensABI.json +0 -94
  11. package/build/cjs/src/contracts/XTokensContract/XTokensContract.d.ts +0 -11
  12. package/build/cjs/src/contracts/XTokensContract/XTokensContract.js +0 -44
  13. package/build/cjs/src/contracts/XTokensContract/XTokensContract.js.map +0 -1
  14. package/build/cjs/src/contracts/XTokensContract/index.d.ts +0 -1
  15. package/build/cjs/src/contracts/XTokensContract/index.js +0 -6
  16. package/build/cjs/src/contracts/XTokensContract/index.js.map +0 -1
  17. package/build/cjs/src/contracts/index.d.ts +0 -1
  18. package/build/cjs/src/contracts/index.js +0 -18
  19. package/build/cjs/src/contracts/index.js.map +0 -1
  20. package/build/cjs/src/index.d.ts +0 -3
  21. package/build/cjs/src/index.js +0 -20
  22. package/build/cjs/src/index.js.map +0 -1
  23. package/build/cjs/src/polkadot/PolkadotService.d.ts +0 -29
  24. package/build/cjs/src/polkadot/PolkadotService.js +0 -126
  25. package/build/cjs/src/polkadot/PolkadotService.js.map +0 -1
  26. package/build/cjs/src/polkadot/index.d.ts +0 -4
  27. package/build/cjs/src/polkadot/index.js +0 -21
  28. package/build/cjs/src/polkadot/index.js.map +0 -1
  29. package/build/cjs/src/polkadot/polkadot.api.d.ts +0 -2
  30. package/build/cjs/src/polkadot/polkadot.api.js +0 -33
  31. package/build/cjs/src/polkadot/polkadot.api.js.map +0 -1
  32. package/build/cjs/src/polkadot/polkadot.factory.d.ts +0 -3
  33. package/build/cjs/src/polkadot/polkadot.factory.js +0 -9
  34. package/build/cjs/src/polkadot/polkadot.factory.js.map +0 -1
  35. package/build/cjs/src/polkadot/polkadot.interfaces.d.ts +0 -7
  36. package/build/cjs/src/polkadot/polkadot.interfaces.js +0 -3
  37. package/build/cjs/src/polkadot/polkadot.interfaces.js.map +0 -1
  38. package/build/cjs/src/polkadot/polkadot.utils.d.ts +0 -1
  39. package/build/cjs/src/polkadot/polkadot.utils.js +0 -9
  40. package/build/cjs/src/polkadot/polkadot.utils.js.map +0 -1
  41. package/build/cjs/src/sdk/index.d.ts +0 -3
  42. package/build/cjs/src/sdk/index.js +0 -24
  43. package/build/cjs/src/sdk/index.js.map +0 -1
  44. package/build/cjs/src/sdk/sdk.d.ts +0 -2
  45. package/build/cjs/src/sdk/sdk.deposit.d.ts +0 -36
  46. package/build/cjs/src/sdk/sdk.deposit.js +0 -123
  47. package/build/cjs/src/sdk/sdk.deposit.js.map +0 -1
  48. package/build/cjs/src/sdk/sdk.interfaces.d.ts +0 -105
  49. package/build/cjs/src/sdk/sdk.interfaces.js +0 -10
  50. package/build/cjs/src/sdk/sdk.interfaces.js.map +0 -1
  51. package/build/cjs/src/sdk/sdk.js +0 -109
  52. package/build/cjs/src/sdk/sdk.js.map +0 -1
  53. package/build/cjs/src/sdk/sdk.utils.d.ts +0 -15
  54. package/build/cjs/src/sdk/sdk.utils.js +0 -69
  55. package/build/cjs/src/sdk/sdk.utils.js.map +0 -1
  56. package/build/cjs/src/sdk/sdk.withdraw.d.ts +0 -21
  57. package/build/cjs/src/sdk/sdk.withdraw.js +0 -77
  58. package/build/cjs/src/sdk/sdk.withdraw.js.map +0 -1
  59. package/build/mjs/examples/simple/package.json +0 -21
  60. package/build/mjs/examples/simple/tsconfig.json +0 -10
  61. package/build/mjs/src/contracts/XTokensContract/XTokensABI.json +0 -94
  62. package/build/mjs/src/contracts/XTokensContract/XTokensContract.d.ts +0 -11
  63. package/build/mjs/src/contracts/XTokensContract/XTokensContract.js +0 -44
  64. package/build/mjs/src/contracts/XTokensContract/XTokensContract.js.map +0 -1
  65. package/build/mjs/src/contracts/XTokensContract/index.d.ts +0 -1
  66. package/build/mjs/src/contracts/XTokensContract/index.js +0 -6
  67. package/build/mjs/src/contracts/XTokensContract/index.js.map +0 -1
  68. package/build/mjs/src/contracts/index.d.ts +0 -1
  69. package/build/mjs/src/contracts/index.js +0 -18
  70. package/build/mjs/src/contracts/index.js.map +0 -1
  71. package/build/mjs/src/index.d.ts +0 -3
  72. package/build/mjs/src/index.js +0 -20
  73. package/build/mjs/src/index.js.map +0 -1
  74. package/build/mjs/src/polkadot/PolkadotService.d.ts +0 -29
  75. package/build/mjs/src/polkadot/PolkadotService.js +0 -126
  76. package/build/mjs/src/polkadot/PolkadotService.js.map +0 -1
  77. package/build/mjs/src/polkadot/index.d.ts +0 -4
  78. package/build/mjs/src/polkadot/index.js +0 -21
  79. package/build/mjs/src/polkadot/index.js.map +0 -1
  80. package/build/mjs/src/polkadot/polkadot.api.d.ts +0 -2
  81. package/build/mjs/src/polkadot/polkadot.api.js +0 -33
  82. package/build/mjs/src/polkadot/polkadot.api.js.map +0 -1
  83. package/build/mjs/src/polkadot/polkadot.factory.d.ts +0 -3
  84. package/build/mjs/src/polkadot/polkadot.factory.js +0 -9
  85. package/build/mjs/src/polkadot/polkadot.factory.js.map +0 -1
  86. package/build/mjs/src/polkadot/polkadot.interfaces.d.ts +0 -7
  87. package/build/mjs/src/polkadot/polkadot.interfaces.js +0 -3
  88. package/build/mjs/src/polkadot/polkadot.interfaces.js.map +0 -1
  89. package/build/mjs/src/polkadot/polkadot.utils.d.ts +0 -1
  90. package/build/mjs/src/polkadot/polkadot.utils.js +0 -9
  91. package/build/mjs/src/polkadot/polkadot.utils.js.map +0 -1
  92. package/build/mjs/src/sdk/index.d.ts +0 -3
  93. package/build/mjs/src/sdk/index.js +0 -24
  94. package/build/mjs/src/sdk/index.js.map +0 -1
  95. package/build/mjs/src/sdk/sdk.d.ts +0 -2
  96. package/build/mjs/src/sdk/sdk.deposit.d.ts +0 -36
  97. package/build/mjs/src/sdk/sdk.deposit.js +0 -123
  98. package/build/mjs/src/sdk/sdk.deposit.js.map +0 -1
  99. package/build/mjs/src/sdk/sdk.interfaces.d.ts +0 -105
  100. package/build/mjs/src/sdk/sdk.interfaces.js +0 -10
  101. package/build/mjs/src/sdk/sdk.interfaces.js.map +0 -1
  102. package/build/mjs/src/sdk/sdk.js +0 -109
  103. package/build/mjs/src/sdk/sdk.js.map +0 -1
  104. package/build/mjs/src/sdk/sdk.utils.d.ts +0 -15
  105. package/build/mjs/src/sdk/sdk.utils.js +0 -69
  106. package/build/mjs/src/sdk/sdk.utils.js.map +0 -1
  107. package/build/mjs/src/sdk/sdk.withdraw.d.ts +0 -21
  108. package/build/mjs/src/sdk/sdk.withdraw.js +0 -77
  109. package/build/mjs/src/sdk/sdk.withdraw.js.map +0 -1
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.subscribeToAssetsBalanceInfo = exports.sortByBalanceAndChainName = exports.toDecimal = exports.isXcmSdkWithdraw = exports.isXcmSdkDeposit = void 0;
4
- function isXcmSdkDeposit(config) {
5
- return !!config.from;
6
- }
7
- exports.isXcmSdkDeposit = isXcmSdkDeposit;
8
- function isXcmSdkWithdraw(config) {
9
- return !!config.to;
10
- }
11
- exports.isXcmSdkWithdraw = isXcmSdkWithdraw;
12
- function toDecimal(number, decimals, maxDecimal = 6) {
13
- const decimalMultiplier = 10 ** maxDecimal;
14
- const dividend = number * BigInt(decimalMultiplier);
15
- const divisor = 10n ** BigInt(decimals);
16
- return Number(dividend / divisor) / decimalMultiplier;
17
- }
18
- exports.toDecimal = toDecimal;
19
- function sortByBalanceAndChainName(a, b) {
20
- if (a.asset.isNative) {
21
- return -1;
22
- }
23
- if (b.asset.isNative) {
24
- return 1;
25
- }
26
- const aDecimal = toDecimal(a.balance.balance, a.balance.decimals);
27
- const bDecimal = toDecimal(b.balance.balance, b.balance.decimals);
28
- if (aDecimal || bDecimal) {
29
- return bDecimal - aDecimal;
30
- }
31
- const aName = (a.origin.name + a.asset.originSymbol).toLowerCase();
32
- const bName = (b.origin.name + b.asset.originSymbol).toLowerCase();
33
- if (aName < bName) {
34
- return -1;
35
- }
36
- if (aName > bName) {
37
- return 1;
38
- }
39
- return 0;
40
- }
41
- exports.sortByBalanceAndChainName = sortByBalanceAndChainName;
42
- async function subscribeToAssetsBalanceInfo({ account, polkadot, configBuilder, cb, }) {
43
- let lastBalance = 0n;
44
- let lastInfo = [];
45
- const handler = (data) => {
46
- const isBalance = typeof data === 'bigint';
47
- lastBalance = isBalance ? data : lastBalance;
48
- lastInfo = (isBalance ? lastInfo : data)
49
- .map((info) => {
50
- if (info.asset.isNative) {
51
- // eslint-disable-next-line no-param-reassign
52
- info.balance.balance = lastBalance;
53
- }
54
- return info;
55
- })
56
- .sort(sortByBalanceAndChainName);
57
- if (lastInfo.length) {
58
- cb(lastInfo);
59
- }
60
- };
61
- const unsubscribeBalance = await polkadot.subscribeToBalance(account, handler);
62
- const unsubscribeInfo = await polkadot.subscribeToAssetsBalanceInfo(account, configBuilder, handler);
63
- return () => {
64
- unsubscribeBalance();
65
- unsubscribeInfo();
66
- };
67
- }
68
- exports.subscribeToAssetsBalanceInfo = subscribeToAssetsBalanceInfo;
69
- //# sourceMappingURL=sdk.utils.js.map
@@ -1 +0,0 @@
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,SAAS,CACvB,MAAc,EACd,QAAgB,EAChB,UAAU,GAAG,CAAC;IAEd,MAAM,iBAAiB,GAAG,EAAE,IAAI,UAAU,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;IAExC,OAAO,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,iBAAiB,CAAC;AACxD,CAAC;AAVD,8BAUC;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,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAElE,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;AA/BD,8DA+BC;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,CAAC,OAAO,GAAG,WAAW,CAAC;aACpC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAEnC,IAAI,QAAQ,CAAC,MAAM,EAAE;YACnB,EAAE,CAAC,QAAQ,CAAC,CAAC;SACd;IACH,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;AA7CD,oEA6CC"}
@@ -1,21 +0,0 @@
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 { ExtrinsicEventsCallback, Hash, WithdrawTransferData } from './sdk.interfaces';
6
- export declare function createTransactionEventHandler(ethersSigner: EthersSigner, txHash: Hash, cb: ExtrinsicEventsCallback, 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
- ethersSigner: EthersSigner;
14
- moonChain: MoonChain;
15
- nativeAsset: Asset<Symbols>;
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, ethersSigner, moonChain, nativeAsset, origin, polkadot, }: GetWithdrawDataParams<Symbols, ChainKeys>): Promise<WithdrawTransferData<Symbols>>;
20
- export declare function getFee<Symbols extends AssetSymbol>(assetMinBalance: bigint, config: WithdrawConfig<Symbols>): bigint;
21
- export declare function getMin(balanceNeeded: bigint, destinationBalance: bigint, destinationFee: bigint): bigint;
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMin = exports.getFee = 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, ethersSigner, moonChain, nativeAsset, origin, polkadot, }) {
34
- const meta = destinationPolkadot.getMetadata();
35
- const [decimals, destinationBalance, existentialDeposit, assetMinBalance] = await Promise.all([
36
- asset.isNative ? moonChain.decimals : polkadot.getAssetDecimals(asset.id),
37
- destinationPolkadot.getGenericBalance(destinationAccount, config.balance),
38
- destinationPolkadot.getExistentialDeposit(),
39
- config.sourceMinBalance
40
- ? destinationPolkadot.getAssetMinBalance(config.sourceMinBalance)
41
- : 0n,
42
- ]);
43
- const destinationFee = getFee(assetMinBalance, config);
44
- const min = getMin(assetMinBalance || existentialDeposit, destinationBalance, destinationFee);
45
- return {
46
- asset: { ...asset, decimals },
47
- destination: config.destination,
48
- destinationBalance,
49
- destinationFee,
50
- existentialDeposit,
51
- min,
52
- native: { ...nativeAsset, decimals: meta.decimals },
53
- origin,
54
- getFee: async (amount) => contract.getTransferFees(destinationAccount, amount, asset, config),
55
- send: async (amount, cb) => {
56
- const tx = await contract.transfer(destinationAccount, amount, asset, config);
57
- if (cb) {
58
- createTransactionEventHandler(ethersSigner, tx.hash, cb);
59
- }
60
- return tx.hash;
61
- },
62
- };
63
- }
64
- exports.getWithdrawData = getWithdrawData;
65
- function getFee(assetMinBalance, config) {
66
- const calculatedFee = BigInt(config.weight * config.feePerWeight);
67
- return assetMinBalance > calculatedFee ? assetMinBalance : calculatedFee;
68
- }
69
- exports.getFee = getFee;
70
- function getMin(balanceNeeded, destinationBalance, destinationFee) {
71
- const extra = destinationBalance >= balanceNeeded
72
- ? 0n
73
- : balanceNeeded - destinationBalance;
74
- return destinationFee + extra;
75
- }
76
- exports.getMin = getMin;
77
- //# sourceMappingURL=sdk.withdraw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sdk.withdraw.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.withdraw.ts"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- {
2
- "name": "simple",
3
- "version": "1.0.0",
4
- "description": "",
5
- "main": "src/index.js",
6
- "scripts": {
7
- "start": "ts-node index.ts"
8
- },
9
- "keywords": [],
10
- "author": "",
11
- "license": "MIT",
12
- "dependencies": {
13
- "@moonbeam-network/xcm-config": "^0.0.23",
14
- "@moonbeam-network/xcm-sdk": "^0.0.23",
15
- "@polkadot/api": "^9.3.2",
16
- "ethers": "^5.7.0"
17
- },
18
- "devDependencies": {
19
- "ts-node": "^10.9.1"
20
- }
21
- }
@@ -1,10 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ES2022",
4
- "module": "NodeNext",
5
- "moduleResolution": "node",
6
- "strict": true,
7
- "allowSyntheticDefaultImports": true,
8
- "esModuleInterop": true
9
- }
10
- }
@@ -1,94 +0,0 @@
1
- [
2
- {
3
- "inputs": [
4
- {
5
- "internalType": "address",
6
- "name": "currency_address",
7
- "type": "address"
8
- },
9
- {
10
- "internalType": "uint256",
11
- "name": "amount",
12
- "type": "uint256"
13
- },
14
- {
15
- "components": [
16
- {
17
- "internalType": "uint8",
18
- "name": "parents",
19
- "type": "uint8"
20
- },
21
- {
22
- "internalType": "bytes[]",
23
- "name": "interior",
24
- "type": "bytes[]"
25
- }
26
- ],
27
- "internalType": "struct Xtokens.Multilocation",
28
- "name": "destination",
29
- "type": "tuple"
30
- },
31
- {
32
- "internalType": "uint64",
33
- "name": "weight",
34
- "type": "uint64"
35
- }
36
- ],
37
- "name": "transfer",
38
- "outputs": [],
39
- "stateMutability": "nonpayable",
40
- "type": "function"
41
- },
42
- {
43
- "inputs": [
44
- {
45
- "components": [
46
- {
47
- "internalType": "uint8",
48
- "name": "parents",
49
- "type": "uint8"
50
- },
51
- {
52
- "internalType": "bytes[]",
53
- "name": "interior",
54
- "type": "bytes[]"
55
- }
56
- ],
57
- "internalType": "struct Xtokens.Multilocation",
58
- "name": "asset",
59
- "type": "tuple"
60
- },
61
- {
62
- "internalType": "uint256",
63
- "name": "amount",
64
- "type": "uint256"
65
- },
66
- {
67
- "components": [
68
- {
69
- "internalType": "uint8",
70
- "name": "parents",
71
- "type": "uint8"
72
- },
73
- {
74
- "internalType": "bytes[]",
75
- "name": "interior",
76
- "type": "bytes[]"
77
- }
78
- ],
79
- "internalType": "struct Xtokens.Multilocation",
80
- "name": "destination",
81
- "type": "tuple"
82
- },
83
- {
84
- "internalType": "uint64",
85
- "name": "weight",
86
- "type": "uint64"
87
- }
88
- ],
89
- "name": "transfer_multiasset",
90
- "outputs": [],
91
- "stateMutability": "nonpayable",
92
- "type": "function"
93
- }
94
- ]
@@ -1,11 +0,0 @@
1
- import type { TransactionResponse } from '@ethersproject/abstract-provider';
2
- import { Asset, AssetSymbol, WithdrawXTokensConfig } from '@moonbeam-network/xcm-config';
3
- import { Signer } from 'ethers';
4
- export declare class XTokensContract<Symbols extends AssetSymbol = AssetSymbol> {
5
- #private;
6
- readonly address: string;
7
- constructor(signer: Signer);
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
- private getGasPrice;
11
- }
@@ -1,44 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var __importDefault = (this && this.__importDefault) || function (mod) {
14
- return (mod && mod.__esModule) ? mod : { "default": mod };
15
- };
16
- var _XTokensContract_contract, _XTokensContract_signer;
17
- Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.XTokensContract = void 0;
19
- const ethers_1 = require("ethers");
20
- const XTokensABI_json_1 = __importDefault(require("./XTokensABI.json"));
21
- class XTokensContract {
22
- constructor(signer) {
23
- this.address = '0x0000000000000000000000000000000000000804';
24
- _XTokensContract_contract.set(this, void 0);
25
- _XTokensContract_signer.set(this, void 0);
26
- __classPrivateFieldSet(this, _XTokensContract_signer, signer, "f");
27
- __classPrivateFieldSet(this, _XTokensContract_contract, new ethers_1.Contract(this.address, XTokensABI_json_1.default, signer), "f");
28
- }
29
- async transfer(account, amount, asset, config) {
30
- return __classPrivateFieldGet(this, _XTokensContract_contract, "f").transfer(asset.erc20Id, amount, config.getParams(account), config.weight);
31
- }
32
- async getTransferFees(account, amount, asset, config) {
33
- const estimatedGas = (await __classPrivateFieldGet(this, _XTokensContract_contract, "f").estimateGas.transfer(asset.erc20Id, amount, config.getParams(account), config.weight)).toBigInt();
34
- const gasPrice = await this.getGasPrice();
35
- return estimatedGas * gasPrice;
36
- }
37
- async getGasPrice() {
38
- const { gasPrice, maxPriorityFeePerGas } = await __classPrivateFieldGet(this, _XTokensContract_signer, "f").getFeeData();
39
- return ((gasPrice?.toBigInt() || 0n) + (maxPriorityFeePerGas?.toBigInt() || 0n));
40
- }
41
- }
42
- exports.XTokensContract = XTokensContract;
43
- _XTokensContract_contract = new WeakMap(), _XTokensContract_signer = new WeakMap();
44
- //# sourceMappingURL=XTokensContract.js.map
@@ -1 +0,0 @@
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 +0,0 @@
1
- export { XTokensContract } from './XTokensContract';
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.XTokensContract = void 0;
4
- var XTokensContract_1 = require("./XTokensContract");
5
- Object.defineProperty(exports, "XTokensContract", { enumerable: true, get: function () { return XTokensContract_1.XTokensContract; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/contracts/XTokensContract/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
@@ -1 +0,0 @@
1
- export * from './XTokensContract';
@@ -1,18 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./XTokensContract"), exports);
18
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}
@@ -1,3 +0,0 @@
1
- export * from './contracts';
2
- export * from './polkadot';
3
- export * from './sdk';
@@ -1,20 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./contracts"), exports);
18
- __exportStar(require("./polkadot"), exports);
19
- __exportStar(require("./sdk"), exports);
20
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,6CAA2B;AAC3B,wCAAsB"}
@@ -1,29 +0,0 @@
1
- import '@moonbeam-network/api-augment';
2
- import { AssetSymbol, BalanceConfig, ChainKey, ExtrinsicConfig, MinBalanceConfig, XcmConfigBuilder } from '@moonbeam-network/xcm-config';
3
- import { ApiPromise } from '@polkadot/api';
4
- import { SubmittableExtrinsic, UnsubscribePromise } from '@polkadot/api/types';
5
- import { AccountInfo } from '@polkadot/types/interfaces';
6
- import { MoonbeamRuntimeXcmConfigAssetType, PalletAssetsAssetAccount, PalletAssetsAssetMetadata } from '@polkadot/types/lookup';
7
- import { AssetBalanceInfo } from './polkadot.interfaces';
8
- export declare class PolkadotService<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
9
- #private;
10
- constructor(api: ApiPromise);
11
- static create<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey>(ws: string): Promise<PolkadotService<Symbols, ChainKeys>>;
12
- static getChainMin(weight: number, unitsPerSecond: bigint): bigint;
13
- getMetadata(): {
14
- decimals: number;
15
- symbol: Symbols;
16
- };
17
- getExistentialDeposit(): bigint;
18
- getAssetDecimals(assetId: string): Promise<number>;
19
- getAssetMeta(assetId: string): Promise<PalletAssetsAssetMetadata>;
20
- subscribeToAccountInfo(account: string, callback: (info: AccountInfo) => void): UnsubscribePromise;
21
- subscribeToBalance(account: string, callback: (balance: bigint) => void): UnsubscribePromise;
22
- getGenericBalance(account: string, { pallet, function: fn, getParams, path, calc }: BalanceConfig<Symbols>): Promise<bigint>;
23
- getAssetMinBalance({ pallet, function: fn, params, path, }: MinBalanceConfig): Promise<bigint>;
24
- getXcmExtrinsic(account: string, amount: bigint, { pallet, extrinsic, getParams }: ExtrinsicConfig<Symbols>, fee?: bigint, primaryAccount?: string): SubmittableExtrinsic<'promise'>;
25
- getAssetFee(id: string, weight: number): Promise<bigint>;
26
- getAssetType(id: string): Promise<MoonbeamRuntimeXcmConfigAssetType | undefined>;
27
- subscribeToAssetsBalanceInfo(account: string, config: XcmConfigBuilder<Symbols, ChainKeys>, callback: (data: AssetBalanceInfo<Symbols>[]) => void): UnsubscribePromise;
28
- subscribeToAccountBalances(account: string, ids: string[], callback: (balances: PalletAssetsAssetAccount[]) => void): UnsubscribePromise;
29
- }
@@ -1,126 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _PolkadotService_api;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.PolkadotService = void 0;
16
- require("@moonbeam-network/api-augment");
17
- const lodash_1 = require("lodash");
18
- const polkadot_api_1 = require("./polkadot.api");
19
- const polkadot_utils_1 = require("./polkadot.utils");
20
- class PolkadotService {
21
- constructor(api) {
22
- _PolkadotService_api.set(this, void 0);
23
- __classPrivateFieldSet(this, _PolkadotService_api, api, "f");
24
- }
25
- static async create(ws) {
26
- return new PolkadotService(await (0, polkadot_api_1.getPolkadotApi)(ws));
27
- }
28
- static getChainMin(weight, unitsPerSecond) {
29
- return (0, polkadot_utils_1.calculateMin)(weight, unitsPerSecond);
30
- }
31
- getMetadata() {
32
- return {
33
- decimals: __classPrivateFieldGet(this, _PolkadotService_api, "f").registry.chainDecimals.at(0) || 12,
34
- symbol: __classPrivateFieldGet(this, _PolkadotService_api, "f").registry.chainTokens.at(0),
35
- };
36
- }
37
- getExistentialDeposit() {
38
- return __classPrivateFieldGet(this, _PolkadotService_api, "f").consts.balances?.existentialDeposit.toBigInt() || 0n;
39
- }
40
- async getAssetDecimals(assetId) {
41
- const meta = await this.getAssetMeta(assetId);
42
- return meta.decimals.toNumber();
43
- }
44
- async getAssetMeta(assetId) {
45
- return __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assets.metadata(assetId);
46
- }
47
- async subscribeToAccountInfo(account, callback) {
48
- return __classPrivateFieldGet(this, _PolkadotService_api, "f").query.system.account(account, callback);
49
- }
50
- async subscribeToBalance(account, callback) {
51
- return this.subscribeToAccountInfo(account, ({ data }) => callback(data.free.toBigInt() - data.miscFrozen.toBigInt()));
52
- }
53
- async getGenericBalance(account, { pallet, function: fn, getParams, path, calc }) {
54
- const response = await __classPrivateFieldGet(this, _PolkadotService_api, "f").query[pallet][fn](...getParams(account));
55
- if (response.isEmpty) {
56
- return 0n;
57
- }
58
- const unwrapped = response.unwrap?.() || response;
59
- return calc(path.length ? (0, lodash_1.get)(unwrapped, path) : unwrapped);
60
- }
61
- async getAssetMinBalance({ pallet, function: fn, params, path, }) {
62
- const details = await __classPrivateFieldGet(this, _PolkadotService_api, "f").query[pallet][fn](...params);
63
- if (details.isEmpty) {
64
- return 0n;
65
- }
66
- return (0, lodash_1.get)(details.value, path).toBigInt();
67
- }
68
- getXcmExtrinsic(account, amount, { pallet, extrinsic, getParams }, fee, primaryAccount) {
69
- let transferExtrinsic = __classPrivateFieldGet(this, _PolkadotService_api, "f").tx[pallet][extrinsic](
70
- // TODO: check issue with types and if we can fix it
71
- // @ts-ignore
72
- ...getParams(account, amount, fee));
73
- if (primaryAccount) {
74
- transferExtrinsic = __classPrivateFieldGet(this, _PolkadotService_api, "f").tx.proxy.proxy(primaryAccount, null, transferExtrinsic);
75
- }
76
- return transferExtrinsic;
77
- }
78
- async getAssetFee(id, weight) {
79
- const type = await this.getAssetType(id);
80
- if (!type) {
81
- return 0n;
82
- }
83
- const unitsPerSecond = await __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assetManager.assetTypeUnitsPerSecond(type);
84
- return (0, polkadot_utils_1.calculateMin)(weight, unitsPerSecond.unwrapOrDefault().toBigInt());
85
- }
86
- async getAssetType(id) {
87
- const type = await __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assetManager.assetIdType(id);
88
- return type.unwrapOr(undefined);
89
- }
90
- async subscribeToAssetsBalanceInfo(account, config, callback) {
91
- const assetsArray = Object.values(config.assets);
92
- const ids = assetsArray.map((asset) => asset.id);
93
- const metadata = (await __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assets.metadata.multi(ids));
94
- return this.subscribeToAccountBalances(account, ids, (data) => {
95
- callback(data.map((balance, index) => {
96
- const asset = assetsArray[index];
97
- const meta = metadata[index];
98
- const { chains: [chain], from, } = config.deposit(asset.originSymbol);
99
- const { origin } = from(chain.key);
100
- return {
101
- asset,
102
- balance: {
103
- balance: balance.balance.toBigInt(),
104
- decimals: asset.isNative
105
- ? origin.decimals
106
- : meta.decimals.toNumber(),
107
- symbol: asset.isNative
108
- ? asset.originSymbol
109
- : meta.symbol.toHuman()?.toString() || '',
110
- },
111
- origin,
112
- };
113
- }));
114
- });
115
- }
116
- async subscribeToAccountBalances(account, ids, callback) {
117
- const keys = ids.map((x) => [x, account]);
118
- return __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assets.account.multi(keys, (res) => {
119
- const response = res.map((balance) => balance.unwrapOrDefault());
120
- callback(response);
121
- });
122
- }
123
- }
124
- exports.PolkadotService = PolkadotService;
125
- _PolkadotService_api = new WeakMap();
126
- //# sourceMappingURL=PolkadotService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PolkadotService.js","sourceRoot":"","sources":["../../../../src/polkadot/PolkadotService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- export * from './polkadot.api';
2
- export * from './polkadot.factory';
3
- export * from './polkadot.interfaces';
4
- export * from './PolkadotService';
@@ -1,21 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./polkadot.api"), exports);
18
- __exportStar(require("./polkadot.factory"), exports);
19
- __exportStar(require("./polkadot.interfaces"), exports);
20
- __exportStar(require("./PolkadotService"), exports);
21
- //# sourceMappingURL=index.js.map