@moonbeam-network/xcm-sdk 0.0.14 → 0.0.15
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/build/cjs/src/contracts/XTokensContract/XTokensContract.d.ts +4 -4
- package/build/cjs/src/contracts/XTokensContract/XTokensContract.js.map +1 -1
- package/build/cjs/src/polkadot/PolkadotService.d.ts +7 -7
- package/build/cjs/src/polkadot/PolkadotService.js +4 -7
- package/build/cjs/src/polkadot/PolkadotService.js.map +1 -1
- package/build/cjs/src/polkadot/index.d.ts +1 -0
- package/build/cjs/src/polkadot/index.js +1 -0
- package/build/cjs/src/polkadot/index.js.map +1 -1
- package/build/cjs/src/polkadot/polkadot.factory.d.ts +3 -0
- package/build/cjs/src/polkadot/polkadot.factory.js +9 -0
- package/build/cjs/src/polkadot/polkadot.factory.js.map +1 -0
- package/build/cjs/src/polkadot/polkadot.interfaces.d.ts +7 -7
- package/build/cjs/src/polkadot/polkadot.utils.d.ts +0 -3
- package/build/cjs/src/polkadot/polkadot.utils.js +1 -24
- package/build/cjs/src/polkadot/polkadot.utils.js.map +1 -1
- package/build/cjs/src/sdk/sdk.d.ts +1 -1
- package/build/cjs/src/sdk/sdk.deposit.d.ts +35 -0
- package/build/cjs/src/sdk/sdk.deposit.js +122 -0
- package/build/cjs/src/sdk/sdk.deposit.js.map +1 -0
- package/build/cjs/src/sdk/sdk.interfaces.d.ts +31 -31
- package/build/cjs/src/sdk/sdk.interfaces.js.map +1 -1
- package/build/cjs/src/sdk/sdk.js +53 -121
- package/build/cjs/src/sdk/sdk.js.map +1 -1
- package/build/cjs/src/sdk/sdk.utils.d.ts +10 -14
- package/build/cjs/src/sdk/sdk.utils.js +41 -74
- package/build/cjs/src/sdk/sdk.utils.js.map +1 -1
- package/build/cjs/src/sdk/sdk.withdraw.d.ts +19 -0
- package/build/cjs/src/sdk/sdk.withdraw.js +62 -0
- package/build/cjs/src/sdk/sdk.withdraw.js.map +1 -0
- package/build/mjs/src/contracts/XTokensContract/XTokensContract.d.ts +4 -4
- package/build/mjs/src/contracts/XTokensContract/XTokensContract.js.map +1 -1
- package/build/mjs/src/polkadot/PolkadotService.d.ts +7 -7
- package/build/mjs/src/polkadot/PolkadotService.js +4 -7
- package/build/mjs/src/polkadot/PolkadotService.js.map +1 -1
- package/build/mjs/src/polkadot/index.d.ts +1 -0
- package/build/mjs/src/polkadot/index.js +1 -0
- package/build/mjs/src/polkadot/index.js.map +1 -1
- package/build/mjs/src/polkadot/polkadot.factory.d.ts +3 -0
- package/build/mjs/src/polkadot/polkadot.factory.js +9 -0
- package/build/mjs/src/polkadot/polkadot.factory.js.map +1 -0
- package/build/mjs/src/polkadot/polkadot.interfaces.d.ts +7 -7
- package/build/mjs/src/polkadot/polkadot.utils.d.ts +0 -3
- package/build/mjs/src/polkadot/polkadot.utils.js +1 -24
- package/build/mjs/src/polkadot/polkadot.utils.js.map +1 -1
- package/build/mjs/src/sdk/sdk.d.ts +1 -1
- package/build/mjs/src/sdk/sdk.deposit.d.ts +35 -0
- package/build/mjs/src/sdk/sdk.deposit.js +122 -0
- package/build/mjs/src/sdk/sdk.deposit.js.map +1 -0
- package/build/mjs/src/sdk/sdk.interfaces.d.ts +31 -31
- package/build/mjs/src/sdk/sdk.interfaces.js.map +1 -1
- package/build/mjs/src/sdk/sdk.js +53 -121
- package/build/mjs/src/sdk/sdk.js.map +1 -1
- package/build/mjs/src/sdk/sdk.utils.d.ts +10 -14
- package/build/mjs/src/sdk/sdk.utils.js +41 -74
- package/build/mjs/src/sdk/sdk.utils.js.map +1 -1
- package/build/mjs/src/sdk/sdk.withdraw.d.ts +19 -0
- package/build/mjs/src/sdk/sdk.withdraw.js +62 -0
- package/build/mjs/src/sdk/sdk.withdraw.js.map +1 -0
- package/package.json +2 -2
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
-
import { Asset,
|
|
2
|
+
import { Asset, AssetSymbol, WithdrawXTokensConfig } from '@moonbeam-network/xcm-config';
|
|
3
3
|
import { Signer } from 'ethers';
|
|
4
|
-
export declare class XTokensContract<
|
|
4
|
+
export declare class XTokensContract<Symbols extends AssetSymbol = AssetSymbol> {
|
|
5
5
|
#private;
|
|
6
6
|
readonly address: string;
|
|
7
7
|
constructor(signer: Signer);
|
|
8
|
-
transfer(account: string, amount: bigint, asset:
|
|
9
|
-
getTransferFees(account: string, amount: bigint, asset:
|
|
8
|
+
transfer(account: string, amount: bigint, asset: Asset<Symbols>, config: WithdrawXTokensConfig<Symbols>): Promise<TransactionResponse>;
|
|
9
|
+
getTransferFees(account: string, amount: bigint, asset: Asset<Symbols>, config: WithdrawXTokensConfig<Symbols>): Promise<bigint>;
|
|
10
10
|
private getGasPrice;
|
|
11
11
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XTokensContract.js","sourceRoot":"","sources":["../../../../../src/contracts/XTokensContract/XTokensContract.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAMA,mCAA0C;AAE1C,wEAAkD;AAElD,MAAa,eAAe;IAO1B,YAAY,MAAc;QANjB,YAAO,GAAW,4CAA4C,CAAC;QAExE,4CAA6B;QAE7B,0CAAyB;QAGvB,uBAAA,IAAI,2BAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,6BAAa,IAAI,iBAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAiB,EAAE,MAAM,CAAC,MAAA,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAe,EACf,MAAc,EACd,
|
|
1
|
+
{"version":3,"file":"XTokensContract.js","sourceRoot":"","sources":["../../../../../src/contracts/XTokensContract/XTokensContract.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAMA,mCAA0C;AAE1C,wEAAkD;AAElD,MAAa,eAAe;IAO1B,YAAY,MAAc;QANjB,YAAO,GAAW,4CAA4C,CAAC;QAExE,4CAA6B;QAE7B,0CAAyB;QAGvB,uBAAA,IAAI,2BAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,6BAAa,IAAI,iBAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAiB,EAAE,MAAM,CAAC,MAAA,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAe,EACf,MAAc,EACd,KAAqB,EACrB,MAAsC;QAEtC,OAAO,uBAAA,IAAI,iCAAU,CAAC,QAAQ,CAC5B,KAAK,CAAC,OAAO,EACb,MAAM,EACN,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,MAAM,CACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,MAAc,EACd,KAAqB,EACrB,MAAsC;QAEtC,MAAM,YAAY,GAAG,CACnB,MAAM,uBAAA,IAAI,iCAAU,CAAC,WAAW,CAAC,QAAQ,CACvC,KAAK,CAAC,OAAO,EACb,MAAM,EACN,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,MAAM,CACd,CACF,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE1C,OAAO,YAAY,GAAG,QAAQ,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,MAAM,uBAAA,IAAI,+BAAQ,CAAC,UAAU,EAAE,CAAC;QAE3E,OAAO,CACL,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACxE,CAAC;IACJ,CAAC;CACF;AApDD,0CAoDC"}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import '@moonbeam-network/api-augment';
|
|
2
|
-
import {
|
|
2
|
+
import { AssetSymbol, BalanceConfig, ChainKey, ExtrinsicConfig, MinBalanceConfig, XcmConfigBuilder } from '@moonbeam-network/xcm-config';
|
|
3
3
|
import { ApiPromise } from '@polkadot/api';
|
|
4
4
|
import { SubmittableExtrinsic, UnsubscribePromise } from '@polkadot/api/types';
|
|
5
5
|
import { AccountInfo } from '@polkadot/types/interfaces';
|
|
6
6
|
import { MoonbeamRuntimeXcmConfigAssetType, PalletAssetsAssetAccount, PalletAssetsAssetMetadata } from '@polkadot/types/lookup';
|
|
7
7
|
import { AssetBalanceInfo } from './polkadot.interfaces';
|
|
8
|
-
export declare class PolkadotService<
|
|
8
|
+
export declare class PolkadotService<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
9
9
|
#private;
|
|
10
10
|
constructor(api: ApiPromise);
|
|
11
|
-
static create<
|
|
11
|
+
static create<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey>(ws: string): Promise<PolkadotService<Symbols, ChainKeys>>;
|
|
12
12
|
static getChainMin(weight: number, unitsPerSecond: bigint): bigint;
|
|
13
13
|
getMetadata(): {
|
|
14
14
|
decimals: number;
|
|
15
|
-
symbol:
|
|
15
|
+
symbol: Symbols;
|
|
16
16
|
};
|
|
17
17
|
getExistentialDeposit(): bigint;
|
|
18
18
|
getAssetDecimals(assetId: string): Promise<number>;
|
|
19
19
|
getAssetMeta(assetId: string): Promise<PalletAssetsAssetMetadata>;
|
|
20
20
|
subscribeToAccountInfo(account: string, callback: (info: AccountInfo) => void): UnsubscribePromise;
|
|
21
21
|
subscribeToBalance(account: string, callback: (balance: bigint) => void): UnsubscribePromise;
|
|
22
|
-
getGenericBalance(account: string, { pallet, function: fn, getParams, path, calc }: BalanceConfig<
|
|
22
|
+
getGenericBalance(account: string, { pallet, function: fn, getParams, path, calc }: BalanceConfig<Symbols>): Promise<bigint>;
|
|
23
23
|
getAssetMinBalance({ pallet, function: fn, params, path, }: MinBalanceConfig): Promise<bigint>;
|
|
24
|
-
getXcmExtrinsic(account: string, amount: bigint, { pallet, extrinsic, getParams }: ExtrinsicConfig<
|
|
24
|
+
getXcmExtrinsic(account: string, amount: bigint, { pallet, extrinsic, getParams }: ExtrinsicConfig<Symbols>, fee?: bigint, primaryAccount?: string): SubmittableExtrinsic<'promise'>;
|
|
25
25
|
getAssetFee(id: string, weight: number): Promise<bigint>;
|
|
26
26
|
getAssetType(id: string): Promise<MoonbeamRuntimeXcmConfigAssetType | undefined>;
|
|
27
|
-
subscribeToAssetsBalanceInfo(account: string,
|
|
27
|
+
subscribeToAssetsBalanceInfo(account: string, config: XcmConfigBuilder<Symbols, ChainKeys>, callback: (data: AssetBalanceInfo<Symbols>[]) => void): UnsubscribePromise;
|
|
28
28
|
subscribeToAccountBalances(account: string, ids: string[], callback: (balances: PalletAssetsAssetAccount[]) => void): UnsubscribePromise;
|
|
29
29
|
}
|
|
@@ -42,7 +42,6 @@ class PolkadotService {
|
|
|
42
42
|
return meta.decimals.toNumber();
|
|
43
43
|
}
|
|
44
44
|
async getAssetMeta(assetId) {
|
|
45
|
-
// TODO: how to fix any?
|
|
46
45
|
return __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assets.metadata(assetId);
|
|
47
46
|
}
|
|
48
47
|
async subscribeToAccountInfo(account, callback) {
|
|
@@ -56,7 +55,6 @@ class PolkadotService {
|
|
|
56
55
|
if (response.isEmpty) {
|
|
57
56
|
return 0n;
|
|
58
57
|
}
|
|
59
|
-
// TODO: improve types here and in balance interfaces
|
|
60
58
|
const unwrapped = response.unwrap?.() || response;
|
|
61
59
|
return calc(path.length ? (0, lodash_1.get)(unwrapped, path) : unwrapped);
|
|
62
60
|
}
|
|
@@ -89,17 +87,16 @@ class PolkadotService {
|
|
|
89
87
|
const type = await __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assetManager.assetIdType(id);
|
|
90
88
|
return type.unwrapOr(undefined);
|
|
91
89
|
}
|
|
92
|
-
async subscribeToAssetsBalanceInfo(account,
|
|
93
|
-
const assetsArray = Object.values(
|
|
90
|
+
async subscribeToAssetsBalanceInfo(account, config, callback) {
|
|
91
|
+
const assetsArray = Object.values(config.assets);
|
|
94
92
|
const ids = assetsArray.map((asset) => asset.id);
|
|
95
93
|
const metadata = (await __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assets.metadata.multi(ids));
|
|
96
94
|
return this.subscribeToAccountBalances(account, ids, (data) => {
|
|
97
95
|
callback(data.map((balance, index) => {
|
|
98
96
|
const asset = assetsArray[index];
|
|
99
97
|
const meta = metadata[index];
|
|
100
|
-
const { chains: [chain], from, } =
|
|
101
|
-
|
|
102
|
-
const { origin } = from(chain.chain);
|
|
98
|
+
const { chains: [chain], from, } = config.deposit(asset.originSymbol);
|
|
99
|
+
const { origin } = from(chain.key);
|
|
103
100
|
return {
|
|
104
101
|
asset,
|
|
105
102
|
balance: balance.balance.toBigInt(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PolkadotService.js","sourceRoot":"","sources":["../../../../src/polkadot/PolkadotService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,yCAAuC;AAoBvC,mCAA6B;AAC7B,iDAAgD;AAEhD,qDAAgD;AAEhD,MAAa,eAAe;IAM1B,YAAY,GAAe;QAF3B,uCAA0B;QAGxB,uBAAA,IAAI,wBAAQ,GAAG,MAAA,CAAC;IAClB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAGjB,EAAU;QACV,OAAO,IAAI,eAAe,CAAC,MAAM,IAAA,6BAAc,EAAC,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,MAAc,EAAE,cAAsB;QACvD,OAAO,IAAA,6BAAY,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC9C,CAAC;IAED,WAAW;QACT,OAAO;YACL,QAAQ,EAAE,uBAAA,IAAI,4BAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;YACtD,MAAM,EAAE,uBAAA,IAAI,4BAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"PolkadotService.js","sourceRoot":"","sources":["../../../../src/polkadot/PolkadotService.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./polkadot.api"), exports);
|
|
18
|
+
__exportStar(require("./polkadot.factory"), exports);
|
|
18
19
|
__exportStar(require("./polkadot.interfaces"), exports);
|
|
19
20
|
__exportStar(require("./PolkadotService"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/polkadot/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,wDAAsC;AACtC,oDAAkC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/polkadot/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,qDAAmC;AACnC,wDAAsC;AACtC,oDAAkC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
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>[]>;
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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,12 +1,12 @@
|
|
|
1
|
-
import { Asset,
|
|
2
|
-
export interface AssetMetadata<
|
|
1
|
+
import { Asset, AssetSymbol, Chain, ChainKey, MoonChain } from '@moonbeam-network/xcm-config';
|
|
2
|
+
export interface AssetMetadata<Symbols extends AssetSymbol = AssetSymbol> {
|
|
3
3
|
decimals: number;
|
|
4
4
|
symbol: string;
|
|
5
|
-
originSymbol?:
|
|
5
|
+
originSymbol?: Symbols;
|
|
6
6
|
}
|
|
7
|
-
export interface AssetBalanceInfo<
|
|
8
|
-
asset:
|
|
7
|
+
export interface AssetBalanceInfo<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
8
|
+
asset: Asset<Symbols>;
|
|
9
9
|
balance: bigint;
|
|
10
|
-
meta: AssetMetadata<
|
|
11
|
-
origin:
|
|
10
|
+
meta: AssetMetadata<Symbols>;
|
|
11
|
+
origin: Chain<ChainKeys> | MoonChain;
|
|
12
12
|
}
|
|
@@ -1,4 +1 @@
|
|
|
1
|
-
import { Asset } from '@moonbeam-network/xcm-config';
|
|
2
|
-
import { AssetBalanceInfo } from './polkadot.interfaces';
|
|
3
1
|
export declare function calculateMin(weight: number, unitsPerSecond: bigint): bigint;
|
|
4
|
-
export declare function sortByBalanceAndChainName<Assets extends Asset = Asset>(a: AssetBalanceInfo<Assets>, b: AssetBalanceInfo<Assets>): number;
|
|
@@ -1,32 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.calculateMin = void 0;
|
|
4
4
|
function calculateMin(weight, unitsPerSecond) {
|
|
5
5
|
// 10**12 weight = 1 second
|
|
6
6
|
return (BigInt(weight) * unitsPerSecond) / BigInt(10 ** 12);
|
|
7
7
|
}
|
|
8
8
|
exports.calculateMin = calculateMin;
|
|
9
|
-
function sortByBalanceAndChainName(a, b) {
|
|
10
|
-
if (a.asset.isNative) {
|
|
11
|
-
return -1;
|
|
12
|
-
}
|
|
13
|
-
if (b.asset.isNative) {
|
|
14
|
-
return 1;
|
|
15
|
-
}
|
|
16
|
-
const aBalance = Number((a.balance * 1000000n) / 10n ** BigInt(a.meta.decimals)) / 1000000;
|
|
17
|
-
const bBalance = Number((b.balance * 1000000n) / 10n ** BigInt(b.meta.decimals)) / 1000000;
|
|
18
|
-
if (aBalance || bBalance) {
|
|
19
|
-
return bBalance - aBalance;
|
|
20
|
-
}
|
|
21
|
-
const aName = (a.origin.name + a.asset.originSymbol).toLowerCase();
|
|
22
|
-
const bName = (b.origin.name + b.asset.originSymbol).toLowerCase();
|
|
23
|
-
if (aName < bName) {
|
|
24
|
-
return -1;
|
|
25
|
-
}
|
|
26
|
-
if (aName > bName) {
|
|
27
|
-
return 1;
|
|
28
|
-
}
|
|
29
|
-
return 0;
|
|
30
|
-
}
|
|
31
|
-
exports.sortByBalanceAndChainName = sortByBalanceAndChainName;
|
|
32
9
|
//# sourceMappingURL=polkadot.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"polkadot.utils.js","sourceRoot":"","sources":["../../../../src/polkadot/polkadot.utils.ts"],"names":[],"mappings":";;;
|
|
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,2 +1,2 @@
|
|
|
1
1
|
import { SdkOptions, XcmSdkByChain } from './sdk.interfaces';
|
|
2
|
-
export declare function
|
|
2
|
+
export declare function init(options: SdkOptions): XcmSdkByChain;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Asset, AssetSymbol, Chain, ChainKey, DepositConfig, MoonChain } from '@moonbeam-network/xcm-config';
|
|
2
|
+
import { ISubmittableResult } from '@polkadot/types/types';
|
|
3
|
+
import { PolkadotService } from '../polkadot';
|
|
4
|
+
import { DepositTransferData, ExtrinsicEvent, SdkOptions } from './sdk.interfaces';
|
|
5
|
+
export declare function createExtrinsicEventHandler<Symbols extends AssetSymbol>(config: DepositConfig<Symbols>, cb: (event: ExtrinsicEvent) => void): ({ events, status, txHash }: ISubmittableResult) => void;
|
|
6
|
+
export interface CreateExtrinsicOptions<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
|
|
7
|
+
account: string;
|
|
8
|
+
config: DepositConfig<Symbols>;
|
|
9
|
+
foreignPolkadot: PolkadotService<Symbols, ChainKeys>;
|
|
10
|
+
nativeAsset: Asset<Symbols>;
|
|
11
|
+
polkadot: PolkadotService<Symbols, ChainKeys>;
|
|
12
|
+
primaryAccount?: string;
|
|
13
|
+
}
|
|
14
|
+
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-base/types").SubmittableExtrinsic<"promise", ISubmittableResult>>;
|
|
15
|
+
export interface GetDepositDataParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
|
|
16
|
+
account: string;
|
|
17
|
+
asset: Asset<Symbols>;
|
|
18
|
+
config: DepositConfig<Symbols>;
|
|
19
|
+
foreignPolkadot: PolkadotService<Symbols, ChainKeys>;
|
|
20
|
+
moonChain: MoonChain;
|
|
21
|
+
nativeAsset: Asset<Symbols>;
|
|
22
|
+
options: SdkOptions;
|
|
23
|
+
origin: MoonChain | Chain<ChainKeys>;
|
|
24
|
+
polkadot: PolkadotService<Symbols, ChainKeys>;
|
|
25
|
+
primaryAccount?: string;
|
|
26
|
+
sourceAccount: string;
|
|
27
|
+
}
|
|
28
|
+
export declare function getDepositData<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ account, asset, config, foreignPolkadot, moonChain, nativeAsset, options, origin, polkadot, primaryAccount, sourceAccount, }: GetDepositDataParams<Symbols, ChainKeys>): Promise<DepositTransferData<Symbols>>;
|
|
29
|
+
export interface GetMinParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
|
|
30
|
+
asset: Asset<Symbols>;
|
|
31
|
+
config: DepositConfig<Symbols>;
|
|
32
|
+
moonChain: MoonChain;
|
|
33
|
+
polkadot: PolkadotService<Symbols, ChainKeys>;
|
|
34
|
+
}
|
|
35
|
+
export declare function getMin<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ asset, config, moonChain, polkadot, }: GetMinParams<Symbols, ChainKeys>): Promise<bigint>;
|
|
@@ -0,0 +1,122 @@
|
|
|
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, options, origin, polkadot, primaryAccount, sourceAccount, }) {
|
|
60
|
+
const meta = foreignPolkadot.getMetadata();
|
|
61
|
+
const createExtrinsic = getCreateExtrinsic({
|
|
62
|
+
account,
|
|
63
|
+
config,
|
|
64
|
+
foreignPolkadot,
|
|
65
|
+
nativeAsset,
|
|
66
|
+
polkadot,
|
|
67
|
+
primaryAccount,
|
|
68
|
+
});
|
|
69
|
+
const [decimals, sourceBalance, existentialDeposit, sourceFeeBalance, moonChainFee, sourceMinBalance = 0n, min,] = await Promise.all([
|
|
70
|
+
polkadot.getAssetDecimals(asset.id),
|
|
71
|
+
foreignPolkadot.getGenericBalance(primaryAccount || sourceAccount, config.balance),
|
|
72
|
+
foreignPolkadot.getExistentialDeposit(),
|
|
73
|
+
config.sourceFeeBalance
|
|
74
|
+
? foreignPolkadot.getGenericBalance(sourceAccount, config.sourceFeeBalance)
|
|
75
|
+
: undefined,
|
|
76
|
+
config.isNativeAssetPayingMoonFee
|
|
77
|
+
? polkadot.getAssetFee(nativeAsset.id, config.origin.weight)
|
|
78
|
+
: undefined,
|
|
79
|
+
config.sourceMinBalance
|
|
80
|
+
? foreignPolkadot.getAssetMinBalance(config.sourceMinBalance)
|
|
81
|
+
: undefined,
|
|
82
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
83
|
+
getMin({ asset, config, moonChain, polkadot }),
|
|
84
|
+
]);
|
|
85
|
+
return {
|
|
86
|
+
asset: { ...asset, decimals },
|
|
87
|
+
existentialDeposit,
|
|
88
|
+
min,
|
|
89
|
+
moonChainFee,
|
|
90
|
+
native: { ...nativeAsset, decimals: meta.decimals },
|
|
91
|
+
origin,
|
|
92
|
+
source: config.origin,
|
|
93
|
+
sourceBalance,
|
|
94
|
+
sourceFeeBalance: !(0, util_1.isUndefined)(sourceFeeBalance)
|
|
95
|
+
? { ...meta, balance: sourceFeeBalance }
|
|
96
|
+
: undefined,
|
|
97
|
+
sourceMinBalance,
|
|
98
|
+
getFee: async (amount = sourceBalance) => {
|
|
99
|
+
const extrinsic = await createExtrinsic(amount);
|
|
100
|
+
const info = await extrinsic.paymentInfo(sourceAccount);
|
|
101
|
+
return info.partialFee.toBigInt();
|
|
102
|
+
},
|
|
103
|
+
send: async (amount, cb) => {
|
|
104
|
+
const extrinsic = await createExtrinsic(amount);
|
|
105
|
+
const hash = await extrinsic.signAndSend(sourceAccount, {
|
|
106
|
+
signer: options.polkadotSigner,
|
|
107
|
+
}, cb && createExtrinsicEventHandler(config, cb));
|
|
108
|
+
return hash.toString();
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
exports.getDepositData = getDepositData;
|
|
113
|
+
async function getMin({ asset, config, moonChain, polkadot, }) {
|
|
114
|
+
if (config.sourceFeeBalance && config.isNativeAssetPayingMoonFee) {
|
|
115
|
+
return 0n;
|
|
116
|
+
}
|
|
117
|
+
return asset.isNative
|
|
118
|
+
? polkadot_1.PolkadotService.getChainMin(config.origin.weight, moonChain.unitsPerSecond)
|
|
119
|
+
: polkadot.getAssetFee(asset.id, config.origin.weight);
|
|
120
|
+
}
|
|
121
|
+
exports.getMin = getMin;
|
|
122
|
+
//# sourceMappingURL=sdk.deposit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk.deposit.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.deposit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Asset,
|
|
1
|
+
import { Asset, AssetSymbol, Chain, ChainKey, MoonbaseAssets, MoonbaseChains, MoonbeamAssets, MoonbeamChains, MoonChain, MoonriverAssets, MoonriverChains } from '@moonbeam-network/xcm-config';
|
|
2
2
|
import { Signer as PolkadotSigner, UnsubscribePromise } from '@polkadot/api/types';
|
|
3
3
|
import { Signer as EthersSigner } from 'ethers';
|
|
4
4
|
import { AssetBalanceInfo } from '../polkadot';
|
|
@@ -12,60 +12,60 @@ export declare type MoonXcmSdk = MoonbaseXcmSdk | MoonbeamXcmSdk | MoonriverXcmS
|
|
|
12
12
|
export declare type MoonbaseXcmSdk = XcmSdk<MoonbaseAssets, MoonbaseChains>;
|
|
13
13
|
export declare type MoonbeamXcmSdk = XcmSdk<MoonbeamAssets, MoonbeamChains>;
|
|
14
14
|
export declare type MoonriverXcmSdk = XcmSdk<MoonriverAssets, MoonriverChains>;
|
|
15
|
-
export interface XcmSdk<
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
subscribeToAssetsBalanceInfo: (account: string, cb: (data: AssetBalanceInfo<
|
|
19
|
-
deposit: (
|
|
20
|
-
withdraw: (
|
|
15
|
+
export interface XcmSdk<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
16
|
+
moonAsset: Asset<Symbols>;
|
|
17
|
+
moonChain: MoonChain;
|
|
18
|
+
subscribeToAssetsBalanceInfo: (account: string, cb: (data: AssetBalanceInfo<Symbols>[]) => void) => UnsubscribePromise;
|
|
19
|
+
deposit: (symbol: Symbols) => XcmSdkDeposit<Symbols, ChainKeys>;
|
|
20
|
+
withdraw: (symbol: Symbols) => XcmSdkWithdraw<Symbols, ChainKeys>;
|
|
21
21
|
}
|
|
22
|
-
export interface XcmSdkDeposit<
|
|
23
|
-
chains:
|
|
24
|
-
from: (chain:
|
|
22
|
+
export interface XcmSdkDeposit<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
23
|
+
chains: Chain<ChainKeys>[];
|
|
24
|
+
from: (chain: ChainKeys) => XcmSdkDepositFrom<Symbols>;
|
|
25
25
|
}
|
|
26
|
-
export interface XcmSdkWithdraw<
|
|
27
|
-
chains:
|
|
28
|
-
to: (chain:
|
|
26
|
+
export interface XcmSdkWithdraw<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
27
|
+
chains: Chain<ChainKeys>[];
|
|
28
|
+
to: (chain: ChainKeys) => XcmSdkWithdrawTo<Symbols>;
|
|
29
29
|
}
|
|
30
|
-
export interface XcmSdkDepositFrom<
|
|
31
|
-
get: (account: string, sourceAccount: string, primaryAccount?: string) => Promise<DepositTransferData<
|
|
30
|
+
export interface XcmSdkDepositFrom<Symbols extends AssetSymbol = AssetSymbol> {
|
|
31
|
+
get: (account: string, sourceAccount: string, primaryAccount?: string) => Promise<DepositTransferData<Symbols>>;
|
|
32
32
|
}
|
|
33
|
-
export interface XcmSdkWithdrawTo<
|
|
34
|
-
get: (account: string) => Promise<WithdrawTransferData<
|
|
33
|
+
export interface XcmSdkWithdrawTo<Symbols extends AssetSymbol = AssetSymbol> {
|
|
34
|
+
get: (account: string) => Promise<WithdrawTransferData<Symbols>>;
|
|
35
35
|
}
|
|
36
|
-
export interface DepositTransferData<
|
|
37
|
-
asset: AssetConfigWithDecimals<
|
|
36
|
+
export interface DepositTransferData<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
37
|
+
asset: AssetConfigWithDecimals<Symbols>;
|
|
38
38
|
existentialDeposit: bigint;
|
|
39
39
|
min: bigint;
|
|
40
40
|
moonChainFee?: bigint;
|
|
41
|
-
native: AssetConfigWithDecimals<
|
|
42
|
-
origin:
|
|
43
|
-
source:
|
|
41
|
+
native: AssetConfigWithDecimals<Symbols>;
|
|
42
|
+
origin: MoonChain | Chain<ChainKeys>;
|
|
43
|
+
source: Chain<ChainKeys>;
|
|
44
44
|
sourceBalance: bigint;
|
|
45
|
-
sourceFeeBalance?: FeeBalance<
|
|
45
|
+
sourceFeeBalance?: FeeBalance<Symbols>;
|
|
46
46
|
sourceMinBalance: bigint;
|
|
47
47
|
getFee: (amount?: bigint) => Promise<bigint>;
|
|
48
48
|
send: (amount: bigint, cb?: (event: ExtrinsicEvent) => void) => Promise<Hash>;
|
|
49
49
|
}
|
|
50
|
-
export interface WithdrawTransferData<
|
|
51
|
-
asset: AssetConfigWithDecimals<
|
|
52
|
-
destination:
|
|
50
|
+
export interface WithdrawTransferData<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
51
|
+
asset: AssetConfigWithDecimals<Symbols>;
|
|
52
|
+
destination: Chain<ChainKeys>;
|
|
53
53
|
destinationBalance: bigint;
|
|
54
54
|
destinationFee: bigint;
|
|
55
55
|
existentialDeposit: bigint;
|
|
56
56
|
min: bigint;
|
|
57
|
-
native: AssetConfigWithDecimals<
|
|
58
|
-
origin:
|
|
57
|
+
native: AssetConfigWithDecimals<Symbols>;
|
|
58
|
+
origin: MoonChain | Chain<ChainKeys>;
|
|
59
59
|
getFee: (amount: bigint) => Promise<bigint>;
|
|
60
60
|
send: (amount: bigint, cb?: (event: ExtrinsicEvent) => void) => Promise<Hash>;
|
|
61
61
|
}
|
|
62
|
-
export interface AssetConfigWithDecimals<
|
|
62
|
+
export interface AssetConfigWithDecimals<Symbols extends AssetSymbol = AssetSymbol> extends Asset<Symbols> {
|
|
63
63
|
decimals: number;
|
|
64
64
|
}
|
|
65
|
-
export interface FeeBalance<
|
|
65
|
+
export interface FeeBalance<Symbols extends AssetSymbol = AssetSymbol> {
|
|
66
66
|
balance: bigint;
|
|
67
67
|
decimals: number;
|
|
68
|
-
symbol:
|
|
68
|
+
symbol: Symbols;
|
|
69
69
|
}
|
|
70
70
|
export interface SdkOptions {
|
|
71
71
|
ethersSigner: EthersSigner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.interfaces.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.interfaces.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"sdk.interfaces.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.interfaces.ts"],"names":[],"mappings":";;;AAsJA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,oCAAiB,CAAA;IACjB,gCAAa,CAAA;IACb,sCAAmB,CAAA;AACrB,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B"}
|