@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 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/polkadot/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,qDAAmC;AACnC,wDAAsC;AACtC,oDAAkC"}
@@ -1,2 +0,0 @@
1
- import { ApiPromise } from '@polkadot/api';
2
- export declare function getPolkadotApi(ws: string): Promise<ApiPromise>;
@@ -1,33 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getPolkadotApi = void 0;
7
- const api_1 = require("@polkadot/api");
8
- const lru_cache_1 = __importDefault(require("lru-cache"));
9
- const tenMin = 10 * 60 * 1000;
10
- const cache = new lru_cache_1.default({
11
- max: 20,
12
- ttl: tenMin,
13
- updateAgeOnGet: true,
14
- ttlAutopurge: true,
15
- dispose: async (promise) => {
16
- const api = await promise;
17
- if (api.isConnected) {
18
- api.disconnect();
19
- }
20
- },
21
- });
22
- async function getPolkadotApi(ws) {
23
- const promise = cache.get(ws) ||
24
- api_1.ApiPromise.create({
25
- provider: new api_1.WsProvider(ws),
26
- });
27
- cache.set(ws, promise);
28
- const api = await promise;
29
- await api.isReady;
30
- return api;
31
- }
32
- exports.getPolkadotApi = getPolkadotApi;
33
- //# sourceMappingURL=polkadot.api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"polkadot.api.js","sourceRoot":"","sources":["../../../../src/polkadot/polkadot.api.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAuD;AACvD,0DAA4B;AAE5B,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE9B,MAAM,KAAK,GAAG,IAAI,mBAAG,CAA8B;IACjD,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,MAAM;IACX,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,KAAK,EAAE,OAA4B,EAAE,EAAE;QAC9C,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;QAE1B,IAAI,GAAG,CAAC,WAAW,EAAE;YACnB,GAAG,CAAC,UAAU,EAAE,CAAC;SAClB;IACH,CAAC;CACF,CAAC,CAAC;AAEI,KAAK,UAAU,cAAc,CAAC,EAAU;IAC7C,MAAM,OAAO,GACX,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACb,gBAAU,CAAC,MAAM,CAAC;YAChB,QAAQ,EAAE,IAAI,gBAAU,CAAC,EAAE,CAAC;SAC7B,CAAC,CAAC;IAEL,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IAEvB,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC;IAE1B,MAAM,GAAG,CAAC,OAAO,CAAC;IAElB,OAAO,GAAG,CAAC;AACb,CAAC;AAdD,wCAcC"}
@@ -1,3 +0,0 @@
1
- import { AssetSymbol, ChainKey } from '@moonbeam-network/xcm-config';
2
- import { PolkadotService } from './PolkadotService';
3
- export declare function createPolkadotServices<Symbols extends AssetSymbol, ChainKeys extends ChainKey>(ws: string[]): Promise<PolkadotService<Symbols, ChainKeys>[]>;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createPolkadotServices = void 0;
4
- const PolkadotService_1 = require("./PolkadotService");
5
- async function createPolkadotServices(ws) {
6
- return Promise.all(ws.map((url) => PolkadotService_1.PolkadotService.create(url)));
7
- }
8
- exports.createPolkadotServices = createPolkadotServices;
9
- //# sourceMappingURL=polkadot.factory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"polkadot.factory.js","sourceRoot":"","sources":["../../../../src/polkadot/polkadot.factory.ts"],"names":[],"mappings":";;;AACA,uDAAoD;AAE7C,KAAK,UAAU,sBAAsB,CAG1C,EAAY;IACZ,OAAO,OAAO,CAAC,GAAG,CAChB,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iCAAe,CAAC,MAAM,CAAqB,GAAG,CAAC,CAAC,CACjE,CAAC;AACJ,CAAC;AAPD,wDAOC"}
@@ -1,7 +0,0 @@
1
- import { Asset, AssetSymbol, Chain, ChainKey, MoonChain } from '@moonbeam-network/xcm-config';
2
- import { Balance } from '../sdk';
3
- export interface AssetBalanceInfo<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
4
- asset: Asset<Symbols>;
5
- balance: Balance<string>;
6
- origin: Chain<ChainKeys> | MoonChain;
7
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=polkadot.interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"polkadot.interfaces.js","sourceRoot":"","sources":["../../../../src/polkadot/polkadot.interfaces.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- export declare function calculateMin(weight: number, unitsPerSecond: bigint): bigint;
@@ -1,9 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.calculateMin = void 0;
4
- function calculateMin(weight, unitsPerSecond) {
5
- // 10**12 weight = 1 second
6
- return (BigInt(weight) * unitsPerSecond) / BigInt(10 ** 12);
7
- }
8
- exports.calculateMin = calculateMin;
9
- //# sourceMappingURL=polkadot.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"polkadot.utils.js","sourceRoot":"","sources":["../../../../src/polkadot/polkadot.utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,YAAY,CAAC,MAAc,EAAE,cAAsB;IACjE,2BAA2B;IAC3B,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9D,CAAC;AAHD,oCAGC"}
@@ -1,3 +0,0 @@
1
- export * from './sdk';
2
- export * from './sdk.interfaces';
3
- export { isXcmSdkDeposit, isXcmSdkWithdraw, toDecimal } from './sdk.utils';
@@ -1,24 +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
- exports.toDecimal = exports.isXcmSdkWithdraw = exports.isXcmSdkDeposit = void 0;
18
- __exportStar(require("./sdk"), exports);
19
- __exportStar(require("./sdk.interfaces"), exports);
20
- var sdk_utils_1 = require("./sdk.utils");
21
- Object.defineProperty(exports, "isXcmSdkDeposit", { enumerable: true, get: function () { return sdk_utils_1.isXcmSdkDeposit; } });
22
- Object.defineProperty(exports, "isXcmSdkWithdraw", { enumerable: true, get: function () { return sdk_utils_1.isXcmSdkWithdraw; } });
23
- Object.defineProperty(exports, "toDecimal", { enumerable: true, get: function () { return sdk_utils_1.toDecimal; } });
24
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sdk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,mDAAiC;AACjC,yCAA2E;AAAlE,4GAAA,eAAe,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AAAE,sGAAA,SAAS,OAAA"}
@@ -1,2 +0,0 @@
1
- import { SdkOptions, XcmSdkByChain } from './sdk.interfaces';
2
- export declare function init(options?: SdkOptions): XcmSdkByChain;
@@ -1,36 +0,0 @@
1
- import { Asset, AssetSymbol, Chain, ChainKey, DepositConfig, MoonChain } from '@moonbeam-network/xcm-config';
2
- import { Signer as PolkadotSigner } from '@polkadot/api/types';
3
- import { IKeyringPair, ISubmittableResult } from '@polkadot/types/types';
4
- import { PolkadotService } from '../polkadot';
5
- import { DepositTransferData, ExtrinsicEventsCallback } from './sdk.interfaces';
6
- export declare function createExtrinsicEventHandler<Symbols extends AssetSymbol>(config: DepositConfig<Symbols>, cb: ExtrinsicEventsCallback): ({ events, status, txHash }: ISubmittableResult) => void;
7
- export interface CreateExtrinsicOptions<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
8
- account: string;
9
- config: DepositConfig<Symbols>;
10
- foreignPolkadot: PolkadotService<Symbols, ChainKeys>;
11
- nativeAsset: Asset<Symbols>;
12
- polkadot: PolkadotService<Symbols, ChainKeys>;
13
- primaryAccount?: string;
14
- }
15
- export declare function getCreateExtrinsic<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ account, config, foreignPolkadot, nativeAsset, polkadot, primaryAccount, }: CreateExtrinsicOptions<Symbols, ChainKeys>): (amount: bigint) => Promise<import("@polkadot/api/types").SubmittableExtrinsic<"promise", ISubmittableResult>>;
16
- export interface GetDepositDataParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
17
- account: string;
18
- asset: Asset<Symbols>;
19
- config: DepositConfig<Symbols>;
20
- foreignPolkadot: PolkadotService<Symbols, ChainKeys>;
21
- moonChain: MoonChain;
22
- nativeAsset: Asset<Symbols>;
23
- origin: MoonChain | Chain<ChainKeys>;
24
- polkadot: PolkadotService<Symbols, ChainKeys>;
25
- polkadotSigner?: PolkadotSigner;
26
- primaryAccount?: string;
27
- sourceAccount: string | IKeyringPair;
28
- }
29
- export declare function getDepositData<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ account, asset, config, foreignPolkadot, moonChain, nativeAsset, origin, polkadot, polkadotSigner, primaryAccount, sourceAccount, }: GetDepositDataParams<Symbols, ChainKeys>): Promise<DepositTransferData<Symbols>>;
30
- export interface GetMinParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
31
- asset: Asset<Symbols>;
32
- config: DepositConfig<Symbols>;
33
- moonChain: MoonChain;
34
- polkadot: PolkadotService<Symbols, ChainKeys>;
35
- }
36
- export declare function getMin<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ asset, config, moonChain, polkadot, }: GetMinParams<Symbols, ChainKeys>): Promise<bigint>;
@@ -1,123 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getMin = exports.getDepositData = exports.getCreateExtrinsic = exports.createExtrinsicEventHandler = void 0;
4
- const xcm_config_1 = require("@moonbeam-network/xcm-config");
5
- const util_1 = require("@polkadot/util");
6
- const polkadot_1 = require("../polkadot");
7
- const sdk_interfaces_1 = require("./sdk.interfaces");
8
- function createExtrinsicEventHandler(config, cb) {
9
- return ({ events = [], status, txHash }) => {
10
- const hash = txHash.toHex();
11
- if (status.isReady) {
12
- cb({ status: sdk_interfaces_1.ExtrinsicStatus.Sent, txHash: hash });
13
- }
14
- if (status.isInBlock) {
15
- const block = status.asInBlock.toString();
16
- events.forEach(({ event: { data, method, section } }) => {
17
- if (section === config.extrinsic.pallet &&
18
- method === config.extrinsic.successEvent) {
19
- if (method === xcm_config_1.PolkadotXcmExtrinsicSuccessEvent.Attempted) {
20
- const eventData = data.at(0);
21
- if (eventData.isIncomplete) {
22
- cb({
23
- status: sdk_interfaces_1.ExtrinsicStatus.Failed,
24
- blockHash: block,
25
- txHash: hash,
26
- message: eventData.asIncomplete.toHuman().join('; '),
27
- });
28
- return;
29
- }
30
- }
31
- cb({
32
- status: sdk_interfaces_1.ExtrinsicStatus.Success,
33
- blockHash: block,
34
- txHash: hash,
35
- });
36
- }
37
- if (section === 'system' && method === 'ExtrinsicFailed') {
38
- cb({
39
- status: sdk_interfaces_1.ExtrinsicStatus.Failed,
40
- blockHash: block,
41
- txHash: hash,
42
- message: data.join('; '),
43
- });
44
- }
45
- });
46
- }
47
- };
48
- }
49
- exports.createExtrinsicEventHandler = createExtrinsicEventHandler;
50
- function getCreateExtrinsic({ account, config, foreignPolkadot, nativeAsset, polkadot, primaryAccount, }) {
51
- return async (amount) => {
52
- const fee = (0, xcm_config_1.isMultiCurrency)(config.extrinsic)
53
- ? await polkadot.getAssetFee(nativeAsset.id, config.origin.weight)
54
- : 0n;
55
- return foreignPolkadot.getXcmExtrinsic(account, amount, config.extrinsic, fee, primaryAccount);
56
- };
57
- }
58
- exports.getCreateExtrinsic = getCreateExtrinsic;
59
- async function getDepositData({ account, asset, config, foreignPolkadot, moonChain, nativeAsset, origin, polkadot, polkadotSigner, primaryAccount, sourceAccount, }) {
60
- const sourceAddress = typeof sourceAccount === 'string' ? sourceAccount : sourceAccount.address;
61
- const meta = foreignPolkadot.getMetadata();
62
- const createExtrinsic = getCreateExtrinsic({
63
- account,
64
- config,
65
- foreignPolkadot,
66
- nativeAsset,
67
- polkadot,
68
- primaryAccount,
69
- });
70
- const [decimals, sourceBalance, existentialDeposit, sourceFeeBalance, moonChainFee, sourceMinBalance = 0n, min,] = await Promise.all([
71
- polkadot.getAssetDecimals(asset.id),
72
- foreignPolkadot.getGenericBalance(primaryAccount || sourceAddress, config.balance),
73
- foreignPolkadot.getExistentialDeposit(),
74
- config.sourceFeeBalance
75
- ? foreignPolkadot.getGenericBalance(sourceAddress, config.sourceFeeBalance)
76
- : undefined,
77
- config.isNativeAssetPayingMoonFee
78
- ? polkadot.getAssetFee(nativeAsset.id, config.origin.weight)
79
- : undefined,
80
- config.sourceMinBalance
81
- ? foreignPolkadot.getAssetMinBalance(config.sourceMinBalance)
82
- : undefined,
83
- // eslint-disable-next-line @typescript-eslint/no-use-before-define
84
- getMin({ asset, config, moonChain, polkadot }),
85
- ]);
86
- return {
87
- asset: { ...asset, decimals },
88
- existentialDeposit,
89
- min,
90
- moonChainFee,
91
- native: { ...nativeAsset, decimals: meta.decimals },
92
- origin,
93
- source: config.origin,
94
- sourceBalance,
95
- sourceFeeBalance: !(0, util_1.isUndefined)(sourceFeeBalance)
96
- ? { ...meta, balance: sourceFeeBalance }
97
- : undefined,
98
- sourceMinBalance,
99
- getFee: async (amount = sourceBalance) => {
100
- const extrinsic = await createExtrinsic(amount);
101
- const info = await extrinsic.paymentInfo(sourceAccount);
102
- return info.partialFee.toBigInt();
103
- },
104
- send: async (amount, cb) => {
105
- const extrinsic = await createExtrinsic(amount);
106
- const hash = await extrinsic.signAndSend(sourceAccount, {
107
- signer: polkadotSigner,
108
- }, cb && createExtrinsicEventHandler(config, cb));
109
- return hash.toString();
110
- },
111
- };
112
- }
113
- exports.getDepositData = getDepositData;
114
- async function getMin({ asset, config, moonChain, polkadot, }) {
115
- if (config.sourceFeeBalance && config.isNativeAssetPayingMoonFee) {
116
- return 0n;
117
- }
118
- return asset.isNative
119
- ? polkadot_1.PolkadotService.getChainMin(config.origin.weight, moonChain.unitsPerSecond)
120
- : polkadot.getAssetFee(asset.id, config.origin.weight);
121
- }
122
- exports.getMin = getMin;
123
- //# sourceMappingURL=sdk.deposit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sdk.deposit.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.deposit.ts"],"names":[],"mappings":"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"}
@@ -1,105 +0,0 @@
1
- import { Asset, AssetsMap, AssetSymbol, Chain, ChainKey, MoonbaseAssets, MoonbaseChains, MoonbeamAssets, MoonbeamChains, MoonChain, MoonriverAssets, MoonriverChains } from '@moonbeam-network/xcm-config';
2
- import { Signer as PolkadotSigner, UnsubscribePromise } from '@polkadot/api/types';
3
- import { IKeyringPair } from '@polkadot/types/types';
4
- import { Signer as EthersSigner } from 'ethers';
5
- import { AssetBalanceInfo } from '../polkadot';
6
- export declare type Hash = string;
7
- export interface XcmSdkByChain {
8
- moonbase: MoonbaseXcmSdk;
9
- moonbeam: MoonbeamXcmSdk;
10
- moonriver: MoonriverXcmSdk;
11
- }
12
- export declare type MoonXcmSdk = MoonbaseXcmSdk | MoonbeamXcmSdk | MoonriverXcmSdk;
13
- export declare type MoonbaseXcmSdk = XcmSdk<MoonbaseAssets, MoonbaseChains>;
14
- export declare type MoonbeamXcmSdk = XcmSdk<MoonbeamAssets, MoonbeamChains>;
15
- export declare type MoonriverXcmSdk = XcmSdk<MoonriverAssets, MoonriverChains>;
16
- export interface XcmSdk<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
17
- symbols: Symbols[];
18
- assets: AssetsMap<Symbols>;
19
- moonAsset: Asset<Symbols>;
20
- moonChain: MoonChain;
21
- subscribeToAssetsBalanceInfo: (account: string, cb: (data: AssetBalanceInfo<Symbols>[]) => void) => UnsubscribePromise;
22
- deposit: (symbolOrAsset: Symbols | Asset<Symbols>) => XcmSdkDeposit<Symbols, ChainKeys>;
23
- withdraw: (symbolOrAsset: Symbols | Asset<Symbols>) => XcmSdkWithdraw<Symbols, ChainKeys>;
24
- }
25
- export interface XcmSdkDeposit<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
26
- chains: Chain<ChainKeys>[];
27
- from: (keyOrChain: ChainKeys | Chain<ChainKeys>) => XcmSdkDepositFrom<Symbols>;
28
- }
29
- export interface XcmSdkWithdraw<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
30
- chains: Chain<ChainKeys>[];
31
- to: (keyOrChain: ChainKeys | Chain<ChainKeys>) => XcmSdkWithdrawTo<Symbols>;
32
- }
33
- export interface XcmSdkDepositFrom<Symbols extends AssetSymbol = AssetSymbol> {
34
- get: (account: string, sourceAccount: string | IKeyringPair, params?: DepositGetParams) => Promise<DepositTransferData<Symbols>>;
35
- }
36
- export interface DepositGetParams {
37
- polkadotSigner?: PolkadotSigner;
38
- primaryAccount?: string;
39
- }
40
- export interface XcmSdkWithdrawTo<Symbols extends AssetSymbol = AssetSymbol> {
41
- get: (account: string, params?: WithdrawGetParams) => Promise<WithdrawTransferData<Symbols>>;
42
- }
43
- export interface WithdrawGetParams {
44
- ethersSigner?: EthersSigner;
45
- }
46
- export interface DepositTransferData<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
47
- asset: AssetWithDecimals<Symbols>;
48
- existentialDeposit: bigint;
49
- min: bigint;
50
- moonChainFee?: bigint;
51
- native: AssetWithDecimals<Symbols>;
52
- origin: MoonChain | Chain<ChainKeys>;
53
- source: Chain<ChainKeys>;
54
- sourceBalance: bigint;
55
- sourceFeeBalance?: Balance<Symbols>;
56
- sourceMinBalance: bigint;
57
- getFee: (amount?: bigint) => Promise<bigint>;
58
- send: (amount: bigint, cb?: ExtrinsicEventsCallback) => Promise<Hash>;
59
- }
60
- export interface WithdrawTransferData<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
61
- asset: AssetWithDecimals<Symbols>;
62
- destination: Chain<ChainKeys>;
63
- destinationBalance: bigint;
64
- destinationFee: bigint;
65
- existentialDeposit: bigint;
66
- min: bigint;
67
- native: AssetWithDecimals<Symbols>;
68
- origin: MoonChain | Chain<ChainKeys>;
69
- getFee: (amount: bigint) => Promise<bigint>;
70
- send: (amount: bigint, cb?: ExtrinsicEventsCallback) => Promise<Hash>;
71
- }
72
- export declare type ExtrinsicEventsCallback = (event: ExtrinsicEvent) => void;
73
- export interface AssetWithDecimals<Symbols extends AssetSymbol = AssetSymbol> extends Asset<Symbols> {
74
- decimals: number;
75
- }
76
- export interface Balance<Symbols extends string | AssetSymbol = AssetSymbol> {
77
- balance: bigint;
78
- decimals: number;
79
- symbol: Symbols;
80
- }
81
- export interface SdkOptions {
82
- ethersSigner?: EthersSigner;
83
- polkadotSigner?: PolkadotSigner;
84
- }
85
- export declare type ExtrinsicEvent = ExtrinsicFailedEvent | ExtrinsicSentEvent | ExtrinsicSuccessEvent;
86
- export interface ExtrinsicFailedEvent {
87
- blockHash: Hash;
88
- message?: string;
89
- status: ExtrinsicStatus.Failed;
90
- txHash: Hash;
91
- }
92
- export interface ExtrinsicSentEvent {
93
- status: ExtrinsicStatus.Sent;
94
- txHash: Hash;
95
- }
96
- export interface ExtrinsicSuccessEvent {
97
- blockHash: Hash;
98
- status: ExtrinsicStatus.Success;
99
- txHash: Hash;
100
- }
101
- export declare enum ExtrinsicStatus {
102
- Failed = "Failed",
103
- Sent = "Sent",
104
- Success = "Success"
105
- }
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ExtrinsicStatus = void 0;
4
- var ExtrinsicStatus;
5
- (function (ExtrinsicStatus) {
6
- ExtrinsicStatus["Failed"] = "Failed";
7
- ExtrinsicStatus["Sent"] = "Sent";
8
- ExtrinsicStatus["Success"] = "Success";
9
- })(ExtrinsicStatus = exports.ExtrinsicStatus || (exports.ExtrinsicStatus = {}));
10
- //# sourceMappingURL=sdk.interfaces.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sdk.interfaces.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.interfaces.ts"],"names":[],"mappings":";;;AA6KA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,sCAAmB,CAAA;AACrB,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B"}
@@ -1,109 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.init = void 0;
4
- /* eslint-disable @typescript-eslint/no-use-before-define */
5
- const xcm_config_1 = require("@moonbeam-network/xcm-config");
6
- const lodash_1 = require("lodash");
7
- const contracts_1 = require("../contracts");
8
- const polkadot_1 = require("../polkadot");
9
- const sdk_deposit_1 = require("./sdk.deposit");
10
- const sdk_utils_1 = require("./sdk.utils");
11
- const sdk_withdraw_1 = require("./sdk.withdraw");
12
- function init(options) {
13
- return {
14
- moonbase: initByChain(xcm_config_1.moonbase, options),
15
- moonbeam: initByChain(xcm_config_1.moonbeam, options),
16
- moonriver: initByChain(xcm_config_1.moonriver, options),
17
- };
18
- }
19
- exports.init = init;
20
- function initByChain(configBuilder, options) {
21
- const { symbols, assets, moonAsset, moonChain } = configBuilder;
22
- return {
23
- symbols,
24
- assets,
25
- moonAsset,
26
- moonChain,
27
- subscribeToAssetsBalanceInfo: async (account, cb) => {
28
- const [polkadot] = await (0, polkadot_1.createPolkadotServices)([
29
- configBuilder.moonChain.ws,
30
- ]);
31
- return (0, sdk_utils_1.subscribeToAssetsBalanceInfo)({
32
- account,
33
- polkadot,
34
- configBuilder,
35
- cb,
36
- });
37
- },
38
- deposit: (symbolOrAsset) => {
39
- const { chains, from } = configBuilder.deposit(symbolOrAsset);
40
- return {
41
- chains,
42
- from: (keyOrChain) => {
43
- const { asset, origin, config } = from(keyOrChain);
44
- return {
45
- get: async (account, sourceAccount, { primaryAccount, polkadotSigner } = {}) => {
46
- const signer = polkadotSigner || options?.polkadotSigner;
47
- if ((0, lodash_1.isString)(sourceAccount) && !signer) {
48
- throw new Error('Polkadot Signer/KeyringPair are not provided to XCM-SDK');
49
- }
50
- const [polkadot, foreignPolkadot] = await (0, polkadot_1.createPolkadotServices)([configBuilder.moonChain.ws, config.origin.ws]);
51
- const meta = foreignPolkadot.getMetadata();
52
- const nativeAsset = configBuilder.assets[meta.symbol];
53
- return (0, sdk_deposit_1.getDepositData)({
54
- account,
55
- asset,
56
- config,
57
- foreignPolkadot,
58
- moonChain,
59
- nativeAsset,
60
- origin,
61
- polkadot,
62
- polkadotSigner: signer,
63
- primaryAccount,
64
- sourceAccount,
65
- });
66
- },
67
- };
68
- },
69
- };
70
- },
71
- withdraw: (symbolOrAsset) => {
72
- const { chains, to } = configBuilder.withdraw(symbolOrAsset);
73
- return {
74
- chains,
75
- to: (keyOrChain) => {
76
- const { asset, origin, config } = to(keyOrChain);
77
- return {
78
- get: async (destinationAccount, { ethersSigner } = {}) => {
79
- const signer = ethersSigner || options?.ethersSigner;
80
- if (!signer) {
81
- throw new Error('Ethers signer is not provided to XCM-SDK');
82
- }
83
- const contract = new contracts_1.XTokensContract(signer);
84
- const [polkadot, destinationPolkadot] = await (0, polkadot_1.createPolkadotServices)([
85
- configBuilder.moonChain.ws,
86
- config.destination.ws,
87
- ]);
88
- const meta = destinationPolkadot.getMetadata();
89
- const nativeAsset = configBuilder.assets[meta.symbol];
90
- return (0, sdk_withdraw_1.getWithdrawData)({
91
- asset,
92
- config,
93
- contract,
94
- destinationAccount,
95
- destinationPolkadot,
96
- ethersSigner: signer,
97
- moonChain,
98
- nativeAsset,
99
- origin,
100
- polkadot,
101
- });
102
- },
103
- };
104
- },
105
- };
106
- },
107
- };
108
- }
109
- //# sourceMappingURL=sdk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
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';
5
- export declare function isXcmSdkDeposit(config: XcmSdkDeposit | XcmSdkWithdraw): config is XcmSdkDeposit;
6
- export declare function isXcmSdkWithdraw(config: XcmSdkDeposit | XcmSdkWithdraw): config is XcmSdkWithdraw;
7
- export declare function toDecimal(number: bigint, decimals: number, maxDecimal?: number): number;
8
- export declare function sortByBalanceAndChainName<Symbols extends AssetSymbol>(a: AssetBalanceInfo<Symbols>, b: AssetBalanceInfo<Symbols>): number;
9
- export interface SubscribeToAssetsBalanceInfoParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
10
- account: string;
11
- polkadot: PolkadotService<Symbols, ChainKeys>;
12
- configBuilder: XcmConfigBuilder<Symbols, ChainKeys>;
13
- cb: (data: AssetBalanceInfo<Symbols>[]) => void;
14
- }
15
- export declare function subscribeToAssetsBalanceInfo<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ account, polkadot, configBuilder, cb, }: SubscribeToAssetsBalanceInfoParams<Symbols, ChainKeys>): UnsubscribePromise;
@@ -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"}