@moonbeam-network/xcm-sdk 0.0.2
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/LICENSE +674 -0
- package/README.md +1 -0
- package/build/cjs/src/contracts/XTokensContract/XTokensABI.json +94 -0
- package/build/cjs/src/contracts/XTokensContract/XTokensContract.d.ts +11 -0
- package/build/cjs/src/contracts/XTokensContract/XTokensContract.js +44 -0
- package/build/cjs/src/contracts/XTokensContract/XTokensContract.js.map +1 -0
- package/build/cjs/src/contracts/XTokensContract/index.d.ts +1 -0
- package/build/cjs/src/contracts/XTokensContract/index.js +6 -0
- package/build/cjs/src/contracts/XTokensContract/index.js.map +1 -0
- package/build/cjs/src/contracts/index.d.ts +1 -0
- package/build/cjs/src/contracts/index.js +18 -0
- package/build/cjs/src/contracts/index.js.map +1 -0
- package/build/cjs/src/index.d.ts +3 -0
- package/build/cjs/src/index.js +20 -0
- package/build/cjs/src/index.js.map +1 -0
- package/build/cjs/src/polkadot/PolkadotService.d.ts +29 -0
- package/build/cjs/src/polkadot/PolkadotService.js +132 -0
- package/build/cjs/src/polkadot/PolkadotService.js.map +1 -0
- package/build/cjs/src/polkadot/index.d.ts +3 -0
- package/build/cjs/src/polkadot/index.js +20 -0
- package/build/cjs/src/polkadot/index.js.map +1 -0
- package/build/cjs/src/polkadot/polkadot.api.d.ts +2 -0
- package/build/cjs/src/polkadot/polkadot.api.js +30 -0
- package/build/cjs/src/polkadot/polkadot.api.js.map +1 -0
- package/build/cjs/src/polkadot/polkadot.interfaces.d.ts +12 -0
- package/build/cjs/src/polkadot/polkadot.interfaces.js +3 -0
- package/build/cjs/src/polkadot/polkadot.interfaces.js.map +1 -0
- package/build/cjs/src/polkadot/polkadot.utils.d.ts +4 -0
- package/build/cjs/src/polkadot/polkadot.utils.js +26 -0
- package/build/cjs/src/polkadot/polkadot.utils.js.map +1 -0
- package/build/cjs/src/sdk/index.d.ts +3 -0
- package/build/cjs/src/sdk/index.js +23 -0
- package/build/cjs/src/sdk/index.js.map +1 -0
- package/build/cjs/src/sdk/sdk.d.ts +2 -0
- package/build/cjs/src/sdk/sdk.interfaces.d.ts +94 -0
- package/build/cjs/src/sdk/sdk.interfaces.js +10 -0
- package/build/cjs/src/sdk/sdk.interfaces.js.map +1 -0
- package/build/cjs/src/sdk/sdk.js +164 -0
- package/build/cjs/src/sdk/sdk.js.map +1 -0
- package/build/cjs/src/sdk/sdk.utils.d.ts +18 -0
- package/build/cjs/src/sdk/sdk.utils.js +93 -0
- package/build/cjs/src/sdk/sdk.utils.js.map +1 -0
- package/build/mjs/src/contracts/XTokensContract/XTokensABI.json +94 -0
- package/build/mjs/src/contracts/XTokensContract/XTokensContract.d.ts +11 -0
- package/build/mjs/src/contracts/XTokensContract/XTokensContract.js +37 -0
- package/build/mjs/src/contracts/XTokensContract/XTokensContract.js.map +1 -0
- package/build/mjs/src/contracts/XTokensContract/index.d.ts +1 -0
- package/build/mjs/src/contracts/XTokensContract/index.js +2 -0
- package/build/mjs/src/contracts/XTokensContract/index.js.map +1 -0
- package/build/mjs/src/contracts/index.d.ts +1 -0
- package/build/mjs/src/contracts/index.js +2 -0
- package/build/mjs/src/contracts/index.js.map +1 -0
- package/build/mjs/src/index.d.ts +3 -0
- package/build/mjs/src/index.js +4 -0
- package/build/mjs/src/index.js.map +1 -0
- package/build/mjs/src/polkadot/PolkadotService.d.ts +29 -0
- package/build/mjs/src/polkadot/PolkadotService.js +128 -0
- package/build/mjs/src/polkadot/PolkadotService.js.map +1 -0
- package/build/mjs/src/polkadot/index.d.ts +3 -0
- package/build/mjs/src/polkadot/index.js +4 -0
- package/build/mjs/src/polkadot/index.js.map +1 -0
- package/build/mjs/src/polkadot/polkadot.api.d.ts +2 -0
- package/build/mjs/src/polkadot/polkadot.api.js +23 -0
- package/build/mjs/src/polkadot/polkadot.api.js.map +1 -0
- package/build/mjs/src/polkadot/polkadot.interfaces.d.ts +12 -0
- package/build/mjs/src/polkadot/polkadot.interfaces.js +2 -0
- package/build/mjs/src/polkadot/polkadot.interfaces.js.map +1 -0
- package/build/mjs/src/polkadot/polkadot.utils.d.ts +4 -0
- package/build/mjs/src/polkadot/polkadot.utils.js +21 -0
- package/build/mjs/src/polkadot/polkadot.utils.js.map +1 -0
- package/build/mjs/src/sdk/index.d.ts +3 -0
- package/build/mjs/src/sdk/index.js +4 -0
- package/build/mjs/src/sdk/index.js.map +1 -0
- package/build/mjs/src/sdk/sdk.d.ts +2 -0
- package/build/mjs/src/sdk/sdk.interfaces.d.ts +94 -0
- package/build/mjs/src/sdk/sdk.interfaces.js +7 -0
- package/build/mjs/src/sdk/sdk.interfaces.js.map +1 -0
- package/build/mjs/src/sdk/sdk.js +160 -0
- package/build/mjs/src/sdk/sdk.js.map +1 -0
- package/build/mjs/src/sdk/sdk.utils.d.ts +18 -0
- package/build/mjs/src/sdk/sdk.utils.js +85 -0
- package/build/mjs/src/sdk/sdk.utils.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"inputs": [
|
|
4
|
+
{
|
|
5
|
+
"internalType": "address",
|
|
6
|
+
"name": "currency_address",
|
|
7
|
+
"type": "address"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"internalType": "uint256",
|
|
11
|
+
"name": "amount",
|
|
12
|
+
"type": "uint256"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"components": [
|
|
16
|
+
{
|
|
17
|
+
"internalType": "uint8",
|
|
18
|
+
"name": "parents",
|
|
19
|
+
"type": "uint8"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"internalType": "bytes[]",
|
|
23
|
+
"name": "interior",
|
|
24
|
+
"type": "bytes[]"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"internalType": "struct Xtokens.Multilocation",
|
|
28
|
+
"name": "destination",
|
|
29
|
+
"type": "tuple"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"internalType": "uint64",
|
|
33
|
+
"name": "weight",
|
|
34
|
+
"type": "uint64"
|
|
35
|
+
}
|
|
36
|
+
],
|
|
37
|
+
"name": "transfer",
|
|
38
|
+
"outputs": [],
|
|
39
|
+
"stateMutability": "nonpayable",
|
|
40
|
+
"type": "function"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"inputs": [
|
|
44
|
+
{
|
|
45
|
+
"components": [
|
|
46
|
+
{
|
|
47
|
+
"internalType": "uint8",
|
|
48
|
+
"name": "parents",
|
|
49
|
+
"type": "uint8"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"internalType": "bytes[]",
|
|
53
|
+
"name": "interior",
|
|
54
|
+
"type": "bytes[]"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"internalType": "struct Xtokens.Multilocation",
|
|
58
|
+
"name": "asset",
|
|
59
|
+
"type": "tuple"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"internalType": "uint256",
|
|
63
|
+
"name": "amount",
|
|
64
|
+
"type": "uint256"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"components": [
|
|
68
|
+
{
|
|
69
|
+
"internalType": "uint8",
|
|
70
|
+
"name": "parents",
|
|
71
|
+
"type": "uint8"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"internalType": "bytes[]",
|
|
75
|
+
"name": "interior",
|
|
76
|
+
"type": "bytes[]"
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"internalType": "struct Xtokens.Multilocation",
|
|
80
|
+
"name": "destination",
|
|
81
|
+
"type": "tuple"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"internalType": "uint64",
|
|
85
|
+
"name": "weight",
|
|
86
|
+
"type": "uint64"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"name": "transfer_multiasset",
|
|
90
|
+
"outputs": [],
|
|
91
|
+
"stateMutability": "nonpayable",
|
|
92
|
+
"type": "function"
|
|
93
|
+
}
|
|
94
|
+
]
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
2
|
+
import { Asset, AssetConfig, WithdrawXTokensConfig } from '@moonbeam-network/xcm-config';
|
|
3
|
+
import { Signer } from 'ethers';
|
|
4
|
+
export declare class XTokensContract<Assets extends Asset = Asset> {
|
|
5
|
+
#private;
|
|
6
|
+
readonly address: string;
|
|
7
|
+
constructor(signer: Signer);
|
|
8
|
+
transfer(account: string, amount: bigint, asset: AssetConfig<Assets>, config: WithdrawXTokensConfig<Assets>): Promise<TransactionResponse>;
|
|
9
|
+
getTransferFees(account: string, amount: bigint, asset: AssetConfig<Assets>, config: WithdrawXTokensConfig<Assets>): Promise<bigint>;
|
|
10
|
+
private getGasPrice;
|
|
11
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
var _XTokensContract_contract, _XTokensContract_signer;
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.XTokensContract = void 0;
|
|
19
|
+
const ethers_1 = require("ethers");
|
|
20
|
+
const XTokensABI_json_1 = __importDefault(require("./XTokensABI.json"));
|
|
21
|
+
class XTokensContract {
|
|
22
|
+
constructor(signer) {
|
|
23
|
+
this.address = '0x0000000000000000000000000000000000000804';
|
|
24
|
+
_XTokensContract_contract.set(this, void 0);
|
|
25
|
+
_XTokensContract_signer.set(this, void 0);
|
|
26
|
+
__classPrivateFieldSet(this, _XTokensContract_signer, signer, "f");
|
|
27
|
+
__classPrivateFieldSet(this, _XTokensContract_contract, new ethers_1.Contract(this.address, XTokensABI_json_1.default, signer), "f");
|
|
28
|
+
}
|
|
29
|
+
async transfer(account, amount, asset, config) {
|
|
30
|
+
return __classPrivateFieldGet(this, _XTokensContract_contract, "f").transfer(asset.erc20Id, amount, config.getParams(account), config.weight);
|
|
31
|
+
}
|
|
32
|
+
async getTransferFees(account, amount, asset, config) {
|
|
33
|
+
const estimatedGas = (await __classPrivateFieldGet(this, _XTokensContract_contract, "f").estimateGas.transfer(asset.erc20Id, amount, config.getParams(account), config.weight)).toBigInt();
|
|
34
|
+
const gasPrice = await this.getGasPrice();
|
|
35
|
+
return estimatedGas * gasPrice;
|
|
36
|
+
}
|
|
37
|
+
async getGasPrice() {
|
|
38
|
+
const { gasPrice, maxPriorityFeePerGas } = await __classPrivateFieldGet(this, _XTokensContract_signer, "f").getFeeData();
|
|
39
|
+
return ((gasPrice?.toBigInt() || 0n) + (maxPriorityFeePerGas?.toBigInt() || 0n));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.XTokensContract = XTokensContract;
|
|
43
|
+
_XTokensContract_contract = new WeakMap(), _XTokensContract_signer = new WeakMap();
|
|
44
|
+
//# sourceMappingURL=XTokensContract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"XTokensContract.js","sourceRoot":"","sources":["../../../../../src/contracts/XTokensContract/XTokensContract.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAMA,mCAA0C;AAE1C,wEAAkD;AAElD,MAAa,eAAe;IAO1B,YAAY,MAAc;QANjB,YAAO,GAAW,4CAA4C,CAAC;QAExE,4CAA6B;QAE7B,0CAAyB;QAGvB,uBAAA,IAAI,2BAAW,MAAM,MAAA,CAAC;QACtB,uBAAA,IAAI,6BAAa,IAAI,iBAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,yBAAiB,EAAE,MAAM,CAAC,MAAA,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,OAAe,EACf,MAAc,EACd,KAA0B,EAC1B,MAAqC;QAErC,OAAO,uBAAA,IAAI,iCAAU,CAAC,QAAQ,CAC5B,KAAK,CAAC,OAAO,EACb,MAAM,EACN,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,MAAM,CACd,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,OAAe,EACf,MAAc,EACd,KAA0B,EAC1B,MAAqC;QAErC,MAAM,YAAY,GAAG,CACnB,MAAM,uBAAA,IAAI,iCAAU,CAAC,WAAW,CAAC,QAAQ,CACvC,KAAK,CAAC,OAAO,EACb,MAAM,EACN,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EACzB,MAAM,CAAC,MAAM,CACd,CACF,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAE1C,OAAO,YAAY,GAAG,QAAQ,CAAC;IACjC,CAAC;IAEO,KAAK,CAAC,WAAW;QACvB,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,GAAG,MAAM,uBAAA,IAAI,+BAAQ,CAAC,UAAU,EAAE,CAAC;QAE3E,OAAO,CACL,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CACxE,CAAC;IACJ,CAAC;CACF;AApDD,0CAoDC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { XTokensContract } from './XTokensContract';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.XTokensContract = void 0;
|
|
4
|
+
var XTokensContract_1 = require("./XTokensContract");
|
|
5
|
+
Object.defineProperty(exports, "XTokensContract", { enumerable: true, get: function () { return XTokensContract_1.XTokensContract; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/contracts/XTokensContract/index.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;AAA3C,kHAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './XTokensContract';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./XTokensContract"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/contracts/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./contracts"), exports);
|
|
18
|
+
__exportStar(require("./polkadot"), exports);
|
|
19
|
+
__exportStar(require("./sdk"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,6CAA2B;AAC3B,wCAAsB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import '@moonbeam-network/api-augment';
|
|
2
|
+
import { Asset, BalanceConfig, Chain, ConfigGetter, ExtrinsicConfig, MinBalanceConfig } from '@moonbeam-network/xcm-config';
|
|
3
|
+
import { ApiPromise } from '@polkadot/api';
|
|
4
|
+
import { SubmittableExtrinsic, UnsubscribePromise } from '@polkadot/api/types';
|
|
5
|
+
import { AccountInfo } from '@polkadot/types/interfaces';
|
|
6
|
+
import { MoonbeamRuntimeXcmConfigAssetType, PalletAssetsAssetAccount, PalletAssetsAssetMetadata } from '@polkadot/types/lookup';
|
|
7
|
+
import { AssetBalanceInfo } from './polkadot.interfaces';
|
|
8
|
+
export declare class PolkadotService<Assets extends Asset = Asset, Chains extends Chain = Chain> {
|
|
9
|
+
#private;
|
|
10
|
+
constructor(api: ApiPromise);
|
|
11
|
+
static create<Assets extends Asset = Asset, Chains extends Chain = Chain>(ws: string): Promise<PolkadotService<Assets, Chains>>;
|
|
12
|
+
static getChainMin(weight: number, unitsPerSecond: bigint): bigint;
|
|
13
|
+
getMetadata(): {
|
|
14
|
+
decimals: number;
|
|
15
|
+
symbol: Assets;
|
|
16
|
+
};
|
|
17
|
+
getExistentialDeposit(): bigint;
|
|
18
|
+
getAssetDecimals(assetId: string): Promise<number>;
|
|
19
|
+
getAssetMeta(assetId: string): Promise<PalletAssetsAssetMetadata>;
|
|
20
|
+
subscribeToAccountInfo(account: string, callback: (info: AccountInfo) => void): UnsubscribePromise;
|
|
21
|
+
subscribeToBalance(account: string, callback: (balance: bigint) => void): UnsubscribePromise;
|
|
22
|
+
getGenericBalance(account: string, { pallet, function: fn, getParams, path, calc }: BalanceConfig<Assets>): Promise<bigint>;
|
|
23
|
+
getAssetMinBalance({ pallet, function: fn, params, path, }: MinBalanceConfig): Promise<bigint>;
|
|
24
|
+
getXcmExtrinsic(account: string, amount: bigint, { pallet, extrinsic, getParams }: ExtrinsicConfig<Assets>, fee?: bigint, primaryAccount?: string): SubmittableExtrinsic<'promise'>;
|
|
25
|
+
getAssetFee(id: string, weight: number): Promise<bigint>;
|
|
26
|
+
getAssetType(id: string): Promise<MoonbeamRuntimeXcmConfigAssetType | undefined>;
|
|
27
|
+
subscribeToAssetsBalanceInfo(account: string, configGetter: ConfigGetter<Assets, Chains>, callback: (data: AssetBalanceInfo<Assets>[]) => void): UnsubscribePromise;
|
|
28
|
+
subscribeToAccountBalances(account: string, ids: string[], callback: (balances: PalletAssetsAssetAccount[]) => void): UnsubscribePromise;
|
|
29
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _PolkadotService_api;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.PolkadotService = void 0;
|
|
16
|
+
require("@moonbeam-network/api-augment");
|
|
17
|
+
const lodash_1 = require("lodash");
|
|
18
|
+
const polkadot_api_1 = require("./polkadot.api");
|
|
19
|
+
const polkadot_utils_1 = require("./polkadot.utils");
|
|
20
|
+
class PolkadotService {
|
|
21
|
+
constructor(api) {
|
|
22
|
+
_PolkadotService_api.set(this, void 0);
|
|
23
|
+
__classPrivateFieldSet(this, _PolkadotService_api, api, "f");
|
|
24
|
+
}
|
|
25
|
+
static async create(ws) {
|
|
26
|
+
return new PolkadotService(await (0, polkadot_api_1.getPolkadotApi)(ws));
|
|
27
|
+
}
|
|
28
|
+
static getChainMin(weight, unitsPerSecond) {
|
|
29
|
+
return (0, polkadot_utils_1.calculateMin)(weight, unitsPerSecond);
|
|
30
|
+
}
|
|
31
|
+
getMetadata() {
|
|
32
|
+
return {
|
|
33
|
+
decimals: __classPrivateFieldGet(this, _PolkadotService_api, "f").registry.chainDecimals.at(0) || 12,
|
|
34
|
+
symbol: __classPrivateFieldGet(this, _PolkadotService_api, "f").registry.chainTokens.at(0),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
getExistentialDeposit() {
|
|
38
|
+
return __classPrivateFieldGet(this, _PolkadotService_api, "f").consts.balances?.existentialDeposit.toBigInt() || 0n;
|
|
39
|
+
}
|
|
40
|
+
async getAssetDecimals(assetId) {
|
|
41
|
+
const meta = await this.getAssetMeta(assetId);
|
|
42
|
+
return meta.decimals.toNumber();
|
|
43
|
+
}
|
|
44
|
+
async getAssetMeta(assetId) {
|
|
45
|
+
// TODO: how to fix any?
|
|
46
|
+
return __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assets.metadata(assetId);
|
|
47
|
+
}
|
|
48
|
+
async subscribeToAccountInfo(account, callback) {
|
|
49
|
+
return __classPrivateFieldGet(this, _PolkadotService_api, "f").query.system.account(account, callback);
|
|
50
|
+
}
|
|
51
|
+
async subscribeToBalance(account, callback) {
|
|
52
|
+
return this.subscribeToAccountInfo(account, ({ data }) => callback(data.free.toBigInt() - data.miscFrozen.toBigInt()));
|
|
53
|
+
}
|
|
54
|
+
async getGenericBalance(account, { pallet, function: fn, getParams, path, calc }) {
|
|
55
|
+
const response = await __classPrivateFieldGet(this, _PolkadotService_api, "f").query[pallet][fn](...getParams(account));
|
|
56
|
+
if (response.isEmpty) {
|
|
57
|
+
return 0n;
|
|
58
|
+
}
|
|
59
|
+
// TODO: improve types here and in balance interfaces
|
|
60
|
+
const unwrapped = response.unwrap?.() || response;
|
|
61
|
+
return calc(path.length ? (0, lodash_1.get)(unwrapped, path) : unwrapped);
|
|
62
|
+
}
|
|
63
|
+
async getAssetMinBalance({ pallet, function: fn, params, path, }) {
|
|
64
|
+
const details = await __classPrivateFieldGet(this, _PolkadotService_api, "f").query[pallet][fn](...params);
|
|
65
|
+
if (details.isEmpty) {
|
|
66
|
+
return 0n;
|
|
67
|
+
}
|
|
68
|
+
return (0, lodash_1.get)(details, path).toBigInt();
|
|
69
|
+
}
|
|
70
|
+
getXcmExtrinsic(account, amount, { pallet, extrinsic, getParams }, fee, primaryAccount) {
|
|
71
|
+
let transferExtrinsic = __classPrivateFieldGet(this, _PolkadotService_api, "f").tx[pallet][extrinsic](
|
|
72
|
+
// TODO: check issue with types and if we can fix it
|
|
73
|
+
// @ts-ignore
|
|
74
|
+
...getParams(account, amount, fee));
|
|
75
|
+
if (primaryAccount) {
|
|
76
|
+
transferExtrinsic = __classPrivateFieldGet(this, _PolkadotService_api, "f").tx.proxy.proxy(primaryAccount, null, transferExtrinsic);
|
|
77
|
+
}
|
|
78
|
+
return transferExtrinsic;
|
|
79
|
+
}
|
|
80
|
+
async getAssetFee(id, weight) {
|
|
81
|
+
const type = await this.getAssetType(id);
|
|
82
|
+
if (!type) {
|
|
83
|
+
return 0n;
|
|
84
|
+
}
|
|
85
|
+
const unitsPerSecond = await __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assetManager.assetTypeUnitsPerSecond(type);
|
|
86
|
+
return (0, polkadot_utils_1.calculateMin)(weight, unitsPerSecond.unwrapOrDefault().toBigInt());
|
|
87
|
+
}
|
|
88
|
+
async getAssetType(id) {
|
|
89
|
+
const type = await __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assetManager.assetIdType(id);
|
|
90
|
+
return type.unwrapOr(undefined);
|
|
91
|
+
}
|
|
92
|
+
async subscribeToAssetsBalanceInfo(account, configGetter, callback) {
|
|
93
|
+
const assetsArray = Object.values(configGetter.assets);
|
|
94
|
+
const ids = assetsArray.map((asset) => asset.id);
|
|
95
|
+
const metadata = (await __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assets.metadata.multi(ids));
|
|
96
|
+
return this.subscribeToAccountBalances(account, ids, (data) => {
|
|
97
|
+
callback(data.map((balance, index) => {
|
|
98
|
+
const asset = assetsArray[index];
|
|
99
|
+
const meta = metadata[index];
|
|
100
|
+
const { chains: [chain], from, } = configGetter.deposit(asset.originSymbol);
|
|
101
|
+
// TODO: remove as
|
|
102
|
+
const { origin } = from(chain.chain);
|
|
103
|
+
return {
|
|
104
|
+
asset,
|
|
105
|
+
balance: balance.balance.toBigInt(),
|
|
106
|
+
meta: {
|
|
107
|
+
decimals: asset.isNative
|
|
108
|
+
? origin.decimals
|
|
109
|
+
: meta.decimals.toNumber(),
|
|
110
|
+
symbol: asset.isNative
|
|
111
|
+
? asset.originSymbol
|
|
112
|
+
: meta.symbol.toHuman()?.toString() || '',
|
|
113
|
+
originSymbol: asset.isNative
|
|
114
|
+
? asset.originSymbol
|
|
115
|
+
: meta.name.toHuman()?.toString(),
|
|
116
|
+
},
|
|
117
|
+
origin,
|
|
118
|
+
};
|
|
119
|
+
}));
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
async subscribeToAccountBalances(account, ids, callback) {
|
|
123
|
+
const keys = ids.map((x) => [x, account]);
|
|
124
|
+
return __classPrivateFieldGet(this, _PolkadotService_api, "f").query.assets.account.multi(keys, (res) => {
|
|
125
|
+
const response = res.map((balance) => balance.unwrapOrDefault());
|
|
126
|
+
callback(response);
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
exports.PolkadotService = PolkadotService;
|
|
131
|
+
_PolkadotService_api = new WeakMap();
|
|
132
|
+
//# sourceMappingURL=PolkadotService.js.map
|
|
@@ -0,0 +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,CAAW;SACvD,CAAC;IACJ,CAAC;IAED,qBAAqB;QACnB,OAAO,uBAAA,IAAI,4BAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,wBAAwB;QACxB,OAAO,uBAAA,IAAI,4BAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAQ,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,OAAe,EACf,QAAqC;QAErC,OAAO,uBAAA,IAAI,4BAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAc,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,OAAe,EACf,QAAmC;QAEnC,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACvD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAC5D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,OAAe,EACf,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAyB;QAEtE,MAAM,QAAQ,GAAG,MAAM,uBAAA,IAAI,4BAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAE1E,IAAI,QAAQ,CAAC,OAAO,EAAE;YACpB,OAAO,EAAE,CAAC;SACX;QAED,qDAAqD;QACrD,MAAM,SAAS,GAAI,QAAgB,CAAC,MAAM,EAAE,EAAE,IAAI,QAAQ,CAAC;QAE3D,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,YAAG,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EACvB,MAAM,EACN,QAAQ,EAAE,EAAE,EACZ,MAAM,EACN,IAAI,GACa;QACjB,MAAM,OAAO,GAAG,MAAM,uBAAA,IAAI,4BAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAE7D,IAAI,OAAO,CAAC,OAAO,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QAED,OAAO,IAAA,YAAG,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;IACvC,CAAC;IAED,eAAe,CACb,OAAe,EACf,MAAc,EACd,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAA2B,EACzD,GAAY,EACZ,cAAuB;QAEvB,IAAI,iBAAiB,GAAG,uBAAA,IAAI,4BAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC;QACrD,oDAAoD;QACpD,aAAa;QACb,GAAG,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CACnC,CAAC;QAEF,IAAI,cAAc,EAAE;YAClB,iBAAiB,GAAG,uBAAA,IAAI,4BAAK,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAC1C,cAAc,EACd,IAAI,EACJ,iBAAiB,CAClB,CAAC;SACH;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,EAAU,EAAE,MAAc;QAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;QAEzC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,EAAE,CAAC;SACX;QAED,MAAM,cAAc,GAClB,MAAM,uBAAA,IAAI,4BAAK,CAAC,KAAK,CAAC,YAAY,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAEnE,OAAO,IAAA,6BAAY,EAAC,MAAM,EAAE,cAAc,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,EAAU;QAEV,MAAM,IAAI,GAAG,MAAM,uBAAA,IAAI,4BAAK,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEhE,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,4BAA4B,CAChC,OAAe,EACf,YAA0C,EAC1C,QAAoD;QAEpD,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAsB,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAa,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC3D,MAAM,QAAQ,GACZ,CAAC,MAAM,uBAAA,IAAI,4BAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAQ,CAAC;QAE5D,OAAO,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;YAC5D,QAAQ,CACN,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAA4B,EAAE;gBACpD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC7B,MAAM,EACJ,MAAM,EAAE,CAAC,KAAK,CAAC,EACf,IAAI,GACL,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAC7C,kBAAkB;gBAClB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC;gBAE/C,OAAO;oBACL,KAAK;oBACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;oBACnC,IAAI,EAAE;wBACJ,QAAQ,EAAE,KAAK,CAAC,QAAQ;4BACtB,CAAC,CAAE,MAA0B,CAAC,QAAQ;4BACtC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;wBAC5B,MAAM,EAAE,KAAK,CAAC,QAAQ;4BACpB,CAAC,CAAC,KAAK,CAAC,YAAY;4BACpB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;wBAC3C,YAAY,EAAE,KAAK,CAAC,QAAQ;4BAC1B,CAAC,CAAC,KAAK,CAAC,YAAY;4BACpB,CAAC,CAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAa;qBAChD;oBACD,MAAM;iBACP,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,OAAe,EACf,GAAa,EACb,QAAwD;QAExD,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;QAE1C,OAAO,uBAAA,IAAI,4BAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE;YACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;YAEjE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA/LD,0CA+LC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./polkadot.api"), exports);
|
|
18
|
+
__exportStar(require("./polkadot.interfaces"), exports);
|
|
19
|
+
__exportStar(require("./PolkadotService"), exports);
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/polkadot/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,wDAAsC;AACtC,oDAAkC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
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: (api) => api.isConnected && api.disconnect(),
|
|
16
|
+
});
|
|
17
|
+
async function getPolkadotApi(ws) {
|
|
18
|
+
const cached = cache.get(ws);
|
|
19
|
+
if (cached) {
|
|
20
|
+
return cached;
|
|
21
|
+
}
|
|
22
|
+
const newApi = await api_1.ApiPromise.create({
|
|
23
|
+
provider: new api_1.WsProvider(ws),
|
|
24
|
+
});
|
|
25
|
+
await newApi.isReady;
|
|
26
|
+
cache.set(ws, newApi);
|
|
27
|
+
return newApi;
|
|
28
|
+
}
|
|
29
|
+
exports.getPolkadotApi = getPolkadotApi;
|
|
30
|
+
//# sourceMappingURL=polkadot.api.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,CAAqB;IACxC,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,MAAM;IACX,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,CAAC,GAAe,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,UAAU,EAAE;CAClE,CAAC,CAAC;AAEI,KAAK,UAAU,cAAc,CAAC,EAAU;IAC7C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE7B,IAAI,MAAM,EAAE;QACV,OAAO,MAAM,CAAC;KACf;IAED,MAAM,MAAM,GAAG,MAAM,gBAAU,CAAC,MAAM,CAAC;QACrC,QAAQ,EAAE,IAAI,gBAAU,CAAC,EAAE,CAAC;KAC7B,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,OAAO,CAAC;IAErB,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAEtB,OAAO,MAAM,CAAC;AAChB,CAAC;AAhBD,wCAgBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Asset, AssetConfig, ChainConfig, MoonChainConfig } from '@moonbeam-network/xcm-config';
|
|
2
|
+
export interface AssetMetadata<Assets extends Asset = Asset> {
|
|
3
|
+
decimals: number;
|
|
4
|
+
symbol: string;
|
|
5
|
+
originSymbol?: Assets;
|
|
6
|
+
}
|
|
7
|
+
export interface AssetBalanceInfo<Assets extends Asset = Asset> {
|
|
8
|
+
asset: AssetConfig<Assets>;
|
|
9
|
+
balance: bigint;
|
|
10
|
+
meta: AssetMetadata<Assets>;
|
|
11
|
+
origin: ChainConfig | MoonChainConfig;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polkadot.interfaces.js","sourceRoot":"","sources":["../../../../src/polkadot/polkadot.interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Asset } from '@moonbeam-network/xcm-config';
|
|
2
|
+
import { AssetBalanceInfo } from './polkadot.interfaces';
|
|
3
|
+
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;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.sortByBalanceAndChainName = 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
|
+
function sortByBalanceAndChainName(a, b) {
|
|
10
|
+
const aBalance = Number((a.balance * 1000000n) / 10n ** BigInt(a.meta.decimals)) / 1000000;
|
|
11
|
+
const bBalance = Number((b.balance * 1000000n) / 10n ** BigInt(b.meta.decimals)) / 1000000;
|
|
12
|
+
if (aBalance || bBalance) {
|
|
13
|
+
return bBalance - aBalance;
|
|
14
|
+
}
|
|
15
|
+
if ((a.origin.name + a.asset.originSymbol).toLowerCase() <
|
|
16
|
+
(b.origin.name + b.asset.originSymbol).toLowerCase()) {
|
|
17
|
+
return -1;
|
|
18
|
+
}
|
|
19
|
+
if ((a.origin.name + a.asset.originSymbol).toLowerCase() >
|
|
20
|
+
(b.origin.name + b.asset.originSymbol).toLowerCase()) {
|
|
21
|
+
return 1;
|
|
22
|
+
}
|
|
23
|
+
return 0;
|
|
24
|
+
}
|
|
25
|
+
exports.sortByBalanceAndChainName = sortByBalanceAndChainName;
|
|
26
|
+
//# sourceMappingURL=polkadot.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polkadot.utils.js","sourceRoot":"","sources":["../../../../src/polkadot/polkadot.utils.ts"],"names":[],"mappings":";;;AAGA,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;AAED,SAAgB,yBAAyB,CACvC,CAA2B,EAC3B,CAA2B;IAE3B,MAAM,QAAQ,GACZ,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC;IAC5E,MAAM,QAAQ,GACZ,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,OAAO,CAAC;IAE5E,IAAI,QAAQ,IAAI,QAAQ,EAAE;QACxB,OAAO,QAAQ,GAAG,QAAQ,CAAC;KAC5B;IAED,IACE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;QACpD,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EACpD;QACA,OAAO,CAAC,CAAC,CAAC;KACX;IAED,IACE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE;QACpD,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,EACpD;QACA,OAAO,CAAC,CAAC;KACV;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AA5BD,8DA4BC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
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.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
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/sdk/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,wCAAsB;AACtB,mDAAiC;AACjC,yCAAgE;AAAvD,4GAAA,eAAe,OAAA;AAAE,6GAAA,gBAAgB,OAAA"}
|