@moonbeam-network/xcm-sdk 0.0.1-dev.2 → 0.0.1-dev.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -13
- package/build/index.cjs +2 -0
- package/build/index.cjs.map +1 -0
- package/build/index.d.ts +319 -0
- package/build/index.mjs +2 -0
- package/build/index.mjs.map +1 -0
- package/package.json +28 -18
- package/build/cjs/examples/simple/package-lock.json +0 -3464
- package/build/cjs/examples/simple/package.json +0 -21
- package/build/cjs/examples/simple/tsconfig.json +0 -10
- package/build/cjs/src/contracts/XTokensContract/XTokensABI.json +0 -94
- package/build/cjs/src/contracts/XTokensContract/XTokensContract.d.ts +0 -11
- package/build/cjs/src/contracts/XTokensContract/XTokensContract.js +0 -44
- package/build/cjs/src/contracts/XTokensContract/XTokensContract.js.map +0 -1
- package/build/cjs/src/contracts/XTokensContract/index.d.ts +0 -1
- package/build/cjs/src/contracts/XTokensContract/index.js +0 -6
- package/build/cjs/src/contracts/XTokensContract/index.js.map +0 -1
- package/build/cjs/src/contracts/index.d.ts +0 -1
- package/build/cjs/src/contracts/index.js +0 -18
- package/build/cjs/src/contracts/index.js.map +0 -1
- package/build/cjs/src/index.d.ts +0 -3
- package/build/cjs/src/index.js +0 -20
- package/build/cjs/src/index.js.map +0 -1
- package/build/cjs/src/polkadot/PolkadotService.d.ts +0 -29
- package/build/cjs/src/polkadot/PolkadotService.js +0 -126
- package/build/cjs/src/polkadot/PolkadotService.js.map +0 -1
- package/build/cjs/src/polkadot/index.d.ts +0 -4
- package/build/cjs/src/polkadot/index.js +0 -21
- package/build/cjs/src/polkadot/index.js.map +0 -1
- package/build/cjs/src/polkadot/polkadot.api.d.ts +0 -2
- package/build/cjs/src/polkadot/polkadot.api.js +0 -33
- package/build/cjs/src/polkadot/polkadot.api.js.map +0 -1
- package/build/cjs/src/polkadot/polkadot.factory.d.ts +0 -3
- package/build/cjs/src/polkadot/polkadot.factory.js +0 -9
- package/build/cjs/src/polkadot/polkadot.factory.js.map +0 -1
- package/build/cjs/src/polkadot/polkadot.interfaces.d.ts +0 -7
- package/build/cjs/src/polkadot/polkadot.interfaces.js +0 -3
- package/build/cjs/src/polkadot/polkadot.interfaces.js.map +0 -1
- package/build/cjs/src/polkadot/polkadot.utils.d.ts +0 -1
- package/build/cjs/src/polkadot/polkadot.utils.js +0 -9
- package/build/cjs/src/polkadot/polkadot.utils.js.map +0 -1
- package/build/cjs/src/sdk/index.d.ts +0 -3
- package/build/cjs/src/sdk/index.js +0 -24
- package/build/cjs/src/sdk/index.js.map +0 -1
- package/build/cjs/src/sdk/sdk.d.ts +0 -2
- package/build/cjs/src/sdk/sdk.deposit.d.ts +0 -36
- package/build/cjs/src/sdk/sdk.deposit.js +0 -123
- package/build/cjs/src/sdk/sdk.deposit.js.map +0 -1
- package/build/cjs/src/sdk/sdk.interfaces.d.ts +0 -105
- package/build/cjs/src/sdk/sdk.interfaces.js +0 -10
- package/build/cjs/src/sdk/sdk.interfaces.js.map +0 -1
- package/build/cjs/src/sdk/sdk.js +0 -109
- package/build/cjs/src/sdk/sdk.js.map +0 -1
- package/build/cjs/src/sdk/sdk.utils.d.ts +0 -15
- package/build/cjs/src/sdk/sdk.utils.js +0 -69
- package/build/cjs/src/sdk/sdk.utils.js.map +0 -1
- package/build/cjs/src/sdk/sdk.withdraw.d.ts +0 -21
- package/build/cjs/src/sdk/sdk.withdraw.js +0 -77
- package/build/cjs/src/sdk/sdk.withdraw.js.map +0 -1
- package/build/mjs/examples/simple/package-lock.json +0 -3464
- package/build/mjs/examples/simple/package.json +0 -21
- package/build/mjs/examples/simple/tsconfig.json +0 -10
- package/build/mjs/src/contracts/XTokensContract/XTokensABI.json +0 -94
- package/build/mjs/src/contracts/XTokensContract/XTokensContract.d.ts +0 -11
- package/build/mjs/src/contracts/XTokensContract/XTokensContract.js +0 -44
- package/build/mjs/src/contracts/XTokensContract/XTokensContract.js.map +0 -1
- package/build/mjs/src/contracts/XTokensContract/index.d.ts +0 -1
- package/build/mjs/src/contracts/XTokensContract/index.js +0 -6
- package/build/mjs/src/contracts/XTokensContract/index.js.map +0 -1
- package/build/mjs/src/contracts/index.d.ts +0 -1
- package/build/mjs/src/contracts/index.js +0 -18
- package/build/mjs/src/contracts/index.js.map +0 -1
- package/build/mjs/src/index.d.ts +0 -3
- package/build/mjs/src/index.js +0 -20
- package/build/mjs/src/index.js.map +0 -1
- package/build/mjs/src/polkadot/PolkadotService.d.ts +0 -29
- package/build/mjs/src/polkadot/PolkadotService.js +0 -126
- package/build/mjs/src/polkadot/PolkadotService.js.map +0 -1
- package/build/mjs/src/polkadot/index.d.ts +0 -4
- package/build/mjs/src/polkadot/index.js +0 -21
- package/build/mjs/src/polkadot/index.js.map +0 -1
- package/build/mjs/src/polkadot/polkadot.api.d.ts +0 -2
- package/build/mjs/src/polkadot/polkadot.api.js +0 -33
- package/build/mjs/src/polkadot/polkadot.api.js.map +0 -1
- package/build/mjs/src/polkadot/polkadot.factory.d.ts +0 -3
- package/build/mjs/src/polkadot/polkadot.factory.js +0 -9
- package/build/mjs/src/polkadot/polkadot.factory.js.map +0 -1
- package/build/mjs/src/polkadot/polkadot.interfaces.d.ts +0 -7
- package/build/mjs/src/polkadot/polkadot.interfaces.js +0 -3
- package/build/mjs/src/polkadot/polkadot.interfaces.js.map +0 -1
- package/build/mjs/src/polkadot/polkadot.utils.d.ts +0 -1
- package/build/mjs/src/polkadot/polkadot.utils.js +0 -9
- package/build/mjs/src/polkadot/polkadot.utils.js.map +0 -1
- package/build/mjs/src/sdk/index.d.ts +0 -3
- package/build/mjs/src/sdk/index.js +0 -24
- package/build/mjs/src/sdk/index.js.map +0 -1
- package/build/mjs/src/sdk/sdk.d.ts +0 -2
- package/build/mjs/src/sdk/sdk.deposit.d.ts +0 -36
- package/build/mjs/src/sdk/sdk.deposit.js +0 -123
- package/build/mjs/src/sdk/sdk.deposit.js.map +0 -1
- package/build/mjs/src/sdk/sdk.interfaces.d.ts +0 -105
- package/build/mjs/src/sdk/sdk.interfaces.js +0 -10
- package/build/mjs/src/sdk/sdk.interfaces.js.map +0 -1
- package/build/mjs/src/sdk/sdk.js +0 -109
- package/build/mjs/src/sdk/sdk.js.map +0 -1
- package/build/mjs/src/sdk/sdk.utils.d.ts +0 -15
- package/build/mjs/src/sdk/sdk.utils.js +0 -69
- package/build/mjs/src/sdk/sdk.utils.js.map +0 -1
- package/build/mjs/src/sdk/sdk.withdraw.d.ts +0 -21
- package/build/mjs/src/sdk/sdk.withdraw.js +0 -77
- package/build/mjs/src/sdk/sdk.withdraw.js.map +0 -1
|
@@ -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: (symbol: Symbols) => XcmSdkDeposit<Symbols, ChainKeys>;
|
|
23
|
-
withdraw: (symbol: Symbols) => XcmSdkWithdraw<Symbols, ChainKeys>;
|
|
24
|
-
}
|
|
25
|
-
export interface XcmSdkDeposit<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
26
|
-
chains: Chain<ChainKeys>[];
|
|
27
|
-
from: (chain: ChainKeys) => XcmSdkDepositFrom<Symbols>;
|
|
28
|
-
}
|
|
29
|
-
export interface XcmSdkWithdraw<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
30
|
-
chains: Chain<ChainKeys>[];
|
|
31
|
-
to: (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":";;;AAuKA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,sCAAmB,CAAA;AACrB,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B"}
|
package/build/cjs/src/sdk/sdk.js
DELETED
|
@@ -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: (symbol) => {
|
|
39
|
-
const { chains, from } = configBuilder.deposit(symbol);
|
|
40
|
-
return {
|
|
41
|
-
chains,
|
|
42
|
-
from: (chain) => {
|
|
43
|
-
const { asset, origin, config } = from(chain);
|
|
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: (symbol) => {
|
|
72
|
-
const { chains, to } = configBuilder.withdraw(symbol);
|
|
73
|
-
return {
|
|
74
|
-
chains,
|
|
75
|
-
to: (chain) => {
|
|
76
|
-
const { asset, origin, config } = to(chain);
|
|
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":"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"}
|
|
@@ -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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"}
|