@moonbeam-network/xcm-sdk 0.0.16 → 0.0.19
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/sdk/sdk.d.ts +1 -1
- package/build/cjs/src/sdk/sdk.deposit.d.ts +6 -5
- package/build/cjs/src/sdk/sdk.deposit.js +2 -2
- package/build/cjs/src/sdk/sdk.deposit.js.map +1 -1
- package/build/cjs/src/sdk/sdk.interfaces.d.ts +14 -6
- package/build/cjs/src/sdk/sdk.interfaces.js.map +1 -1
- package/build/cjs/src/sdk/sdk.js +13 -5
- package/build/cjs/src/sdk/sdk.js.map +1 -1
- package/build/cjs/src/sdk/sdk.withdraw.d.ts +4 -4
- package/build/cjs/src/sdk/sdk.withdraw.js +9 -5
- package/build/cjs/src/sdk/sdk.withdraw.js.map +1 -1
- package/build/mjs/src/sdk/sdk.d.ts +1 -1
- package/build/mjs/src/sdk/sdk.deposit.d.ts +6 -5
- package/build/mjs/src/sdk/sdk.deposit.js +2 -2
- package/build/mjs/src/sdk/sdk.deposit.js.map +1 -1
- package/build/mjs/src/sdk/sdk.interfaces.d.ts +14 -6
- package/build/mjs/src/sdk/sdk.interfaces.js.map +1 -1
- package/build/mjs/src/sdk/sdk.js +13 -5
- package/build/mjs/src/sdk/sdk.js.map +1 -1
- package/build/mjs/src/sdk/sdk.withdraw.d.ts +4 -4
- package/build/mjs/src/sdk/sdk.withdraw.js +9 -5
- package/build/mjs/src/sdk/sdk.withdraw.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { SdkOptions, XcmSdkByChain } from './sdk.interfaces';
|
|
2
|
-
export declare function init(options
|
|
2
|
+
export declare function init(options?: SdkOptions): XcmSdkByChain;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Asset, AssetSymbol, Chain, ChainKey, DepositConfig, MoonChain } from '@moonbeam-network/xcm-config';
|
|
2
|
+
import { Signer as PolkadotSigner } from '@polkadot/api/types';
|
|
2
3
|
import { ISubmittableResult } from '@polkadot/types/types';
|
|
3
4
|
import { PolkadotService } from '../polkadot';
|
|
4
|
-
import { DepositTransferData,
|
|
5
|
-
export declare function createExtrinsicEventHandler<Symbols extends AssetSymbol>(config: DepositConfig<Symbols>, cb:
|
|
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;
|
|
6
7
|
export interface CreateExtrinsicOptions<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
|
|
7
8
|
account: string;
|
|
8
9
|
config: DepositConfig<Symbols>;
|
|
@@ -11,7 +12,7 @@ export interface CreateExtrinsicOptions<Symbols extends AssetSymbol, ChainKeys e
|
|
|
11
12
|
polkadot: PolkadotService<Symbols, ChainKeys>;
|
|
12
13
|
primaryAccount?: string;
|
|
13
14
|
}
|
|
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
|
|
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>>;
|
|
15
16
|
export interface GetDepositDataParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
|
|
16
17
|
account: string;
|
|
17
18
|
asset: Asset<Symbols>;
|
|
@@ -19,13 +20,13 @@ export interface GetDepositDataParams<Symbols extends AssetSymbol, ChainKeys ext
|
|
|
19
20
|
foreignPolkadot: PolkadotService<Symbols, ChainKeys>;
|
|
20
21
|
moonChain: MoonChain;
|
|
21
22
|
nativeAsset: Asset<Symbols>;
|
|
22
|
-
options: SdkOptions;
|
|
23
23
|
origin: MoonChain | Chain<ChainKeys>;
|
|
24
24
|
polkadot: PolkadotService<Symbols, ChainKeys>;
|
|
25
|
+
polkadotSigner: PolkadotSigner;
|
|
25
26
|
primaryAccount?: string;
|
|
26
27
|
sourceAccount: string;
|
|
27
28
|
}
|
|
28
|
-
export declare function getDepositData<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ account, asset, config, foreignPolkadot, moonChain, nativeAsset,
|
|
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>>;
|
|
29
30
|
export interface GetMinParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
|
|
30
31
|
asset: Asset<Symbols>;
|
|
31
32
|
config: DepositConfig<Symbols>;
|
|
@@ -56,7 +56,7 @@ function getCreateExtrinsic({ account, config, foreignPolkadot, nativeAsset, pol
|
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
58
|
exports.getCreateExtrinsic = getCreateExtrinsic;
|
|
59
|
-
async function getDepositData({ account, asset, config, foreignPolkadot, moonChain, nativeAsset,
|
|
59
|
+
async function getDepositData({ account, asset, config, foreignPolkadot, moonChain, nativeAsset, origin, polkadot, polkadotSigner, primaryAccount, sourceAccount, }) {
|
|
60
60
|
const meta = foreignPolkadot.getMetadata();
|
|
61
61
|
const createExtrinsic = getCreateExtrinsic({
|
|
62
62
|
account,
|
|
@@ -103,7 +103,7 @@ async function getDepositData({ account, asset, config, foreignPolkadot, moonCha
|
|
|
103
103
|
send: async (amount, cb) => {
|
|
104
104
|
const extrinsic = await createExtrinsic(amount);
|
|
105
105
|
const hash = await extrinsic.signAndSend(sourceAccount, {
|
|
106
|
-
signer:
|
|
106
|
+
signer: polkadotSigner,
|
|
107
107
|
}, cb && createExtrinsicEventHandler(config, cb));
|
|
108
108
|
return hash.toString();
|
|
109
109
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.deposit.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.deposit.ts"],"names":[],"mappings":";;;AAAA,6DASsC;
|
|
1
|
+
{"version":3,"file":"sdk.deposit.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.deposit.ts"],"names":[],"mappings":";;;AAAA,6DASsC;AAGtC,yCAA6C;AAC7C,0CAA8C;AAC9C,qDAI0B;AAE1B,SAAgB,2BAA2B,CACzC,MAA8B,EAC9B,EAA2B;IAE3B,OAAO,CAAC,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,EAAE,MAAM,EAAsB,EAAE,EAAE;QAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;QAE5B,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,EAAE,CAAC,EAAE,MAAM,EAAE,gCAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;SACpD;QAED,IAAI,MAAM,CAAC,SAAS,EAAE;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAE1C,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE;gBACtD,IACE,OAAO,KAAK,MAAM,CAAC,SAAS,CAAC,MAAM;oBACnC,MAAM,KAAK,MAAM,CAAC,SAAS,CAAC,YAAY,EACxC;oBACA,IAAI,MAAM,KAAK,6CAAgC,CAAC,SAAS,EAAE;wBACzD,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAQ,CAAC;wBAEpC,IAAI,SAAS,CAAC,YAAY,EAAE;4BAC1B,EAAE,CAAC;gCACD,MAAM,EAAE,gCAAe,CAAC,MAAM;gCAC9B,SAAS,EAAE,KAAK;gCAChB,MAAM,EAAE,IAAI;gCACZ,OAAO,EAAE,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;6BACrD,CAAC,CAAC;4BAEH,OAAO;yBACR;qBACF;oBAED,EAAE,CAAC;wBACD,MAAM,EAAE,gCAAe,CAAC,OAAO;wBAC/B,SAAS,EAAE,KAAK;wBAChB,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC;iBACJ;gBAED,IAAI,OAAO,KAAK,QAAQ,IAAI,MAAM,KAAK,iBAAiB,EAAE;oBACxD,EAAE,CAAC;wBACD,MAAM,EAAE,gCAAe,CAAC,MAAM;wBAC9B,SAAS,EAAE,KAAK;wBAChB,MAAM,EAAE,IAAI;wBACZ,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;qBACzB,CAAC,CAAC;iBACJ;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC;AACJ,CAAC;AApDD,kEAoDC;AAcD,SAAgB,kBAAkB,CAGhC,EACA,OAAO,EACP,MAAM,EACN,eAAe,EACf,WAAW,EACX,QAAQ,EACR,cAAc,GAC6B;IAC3C,OAAO,KAAK,EAAE,MAAc,EAAE,EAAE;QAC9B,MAAM,GAAG,GAAG,IAAA,4BAAe,EAAC,MAAM,CAAC,SAAS,CAAC;YAC3C,CAAC,CAAC,MAAM,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAClE,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,eAAe,CAAC,eAAe,CACpC,OAAO,EACP,MAAM,EACN,MAAM,CAAC,SAAS,EAChB,GAAG,EACH,cAAc,CACf,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAxBD,gDAwBC;AAmBM,KAAK,UAAU,cAAc,CAGlC,EACA,OAAO,EACP,KAAK,EACL,MAAM,EACN,eAAe,EACf,SAAS,EACT,WAAW,EACX,MAAM,EACN,QAAQ,EACR,cAAc,EACd,cAAc,EACd,aAAa,GAC4B;IAGzC,MAAM,IAAI,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,eAAe,GAAG,kBAAkB,CAAC;QACzC,OAAO;QACP,MAAM;QACN,eAAe;QACf,WAAW;QACX,QAAQ;QACR,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,CACJ,QAAQ,EACR,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,GAAG,EAAE,EACrB,GAAG,EACJ,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,QAAQ,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,eAAe,CAAC,iBAAiB,CAC/B,cAAc,IAAI,aAAa,EAC/B,MAAM,CAAC,OAAO,CACf;QACD,eAAe,CAAC,qBAAqB,EAAE;QACvC,MAAM,CAAC,gBAAgB;YACrB,CAAC,CAAC,eAAe,CAAC,iBAAiB,CAC/B,aAAa,EACb,MAAM,CAAC,gBAAgB,CACxB;YACH,CAAC,CAAC,SAAS;QACb,MAAM,CAAC,0BAA0B;YAC/B,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC5D,CAAC,CAAC,SAAS;QACb,MAAM,CAAC,gBAAgB;YACrB,CAAC,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAC7D,CAAC,CAAC,SAAS;QACb,mEAAmE;QACnE,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;KAC/C,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE;QAC7B,kBAAkB;QAClB,GAAG;QACH,YAAY;QACZ,MAAM,EAAE,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;QACnD,MAAM;QACN,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa;QACb,gBAAgB,EAAE,CAAC,IAAA,kBAAW,EAAC,gBAAgB,CAAC;YAC9C,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE;YACxC,CAAC,CAAC,SAAS;QACb,gBAAgB;QAChB,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,EAAmB,EAAE;YACxD,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAExD,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAC;QACD,IAAI,EAAE,KAAK,EACT,MAAc,EACd,EAA4B,EACX,EAAE;YACnB,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,WAAW,CACtC,aAAa,EACb;gBACE,MAAM,EAAE,cAAc;aACvB,EACD,EAAE,IAAI,2BAA2B,CAAC,MAAM,EAAE,EAAE,CAAC,CAC9C,CAAC;YAEF,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AA9FD,wCA8FC;AAYM,KAAK,UAAU,MAAM,CAG1B,EACA,KAAK,EACL,MAAM,EACN,SAAS,EACT,QAAQ,GACyB;IACjC,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,0BAA0B,EAAE;QAChE,OAAO,EAAE,CAAC;KACX;IAED,OAAO,KAAK,CAAC,QAAQ;QACnB,CAAC,CAAC,0BAAe,CAAC,WAAW,CACzB,MAAM,CAAC,MAAM,CAAC,MAAM,EACpB,SAAS,CAAC,cAAc,CACzB;QACH,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC;AAnBD,wBAmBC"}
|
|
@@ -28,10 +28,17 @@ export interface XcmSdkWithdraw<Symbols extends AssetSymbol = AssetSymbol, Chain
|
|
|
28
28
|
to: (chain: ChainKeys) => XcmSdkWithdrawTo<Symbols>;
|
|
29
29
|
}
|
|
30
30
|
export interface XcmSdkDepositFrom<Symbols extends AssetSymbol = AssetSymbol> {
|
|
31
|
-
get: (account: string, sourceAccount: string,
|
|
31
|
+
get: (account: string, sourceAccount: string, params?: DepositGetParams) => Promise<DepositTransferData<Symbols>>;
|
|
32
|
+
}
|
|
33
|
+
export interface DepositGetParams {
|
|
34
|
+
polkadotSigner?: PolkadotSigner;
|
|
35
|
+
primaryAccount?: string;
|
|
32
36
|
}
|
|
33
37
|
export interface XcmSdkWithdrawTo<Symbols extends AssetSymbol = AssetSymbol> {
|
|
34
|
-
get: (account: string) => Promise<WithdrawTransferData<Symbols>>;
|
|
38
|
+
get: (account: string, params?: WithdrawGetParams) => Promise<WithdrawTransferData<Symbols>>;
|
|
39
|
+
}
|
|
40
|
+
export interface WithdrawGetParams {
|
|
41
|
+
ethersSigner?: EthersSigner;
|
|
35
42
|
}
|
|
36
43
|
export interface DepositTransferData<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
37
44
|
asset: AssetConfigWithDecimals<Symbols>;
|
|
@@ -45,7 +52,7 @@ export interface DepositTransferData<Symbols extends AssetSymbol = AssetSymbol,
|
|
|
45
52
|
sourceFeeBalance?: FeeBalance<Symbols>;
|
|
46
53
|
sourceMinBalance: bigint;
|
|
47
54
|
getFee: (amount?: bigint) => Promise<bigint>;
|
|
48
|
-
send: (amount: bigint, cb?:
|
|
55
|
+
send: (amount: bigint, cb?: ExtrinsicEventsCallback) => Promise<Hash>;
|
|
49
56
|
}
|
|
50
57
|
export interface WithdrawTransferData<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
51
58
|
asset: AssetConfigWithDecimals<Symbols>;
|
|
@@ -57,8 +64,9 @@ export interface WithdrawTransferData<Symbols extends AssetSymbol = AssetSymbol,
|
|
|
57
64
|
native: AssetConfigWithDecimals<Symbols>;
|
|
58
65
|
origin: MoonChain | Chain<ChainKeys>;
|
|
59
66
|
getFee: (amount: bigint) => Promise<bigint>;
|
|
60
|
-
send: (amount: bigint, cb?:
|
|
67
|
+
send: (amount: bigint, cb?: ExtrinsicEventsCallback) => Promise<Hash>;
|
|
61
68
|
}
|
|
69
|
+
export declare type ExtrinsicEventsCallback = (event: ExtrinsicEvent) => void;
|
|
62
70
|
export interface AssetConfigWithDecimals<Symbols extends AssetSymbol = AssetSymbol> extends Asset<Symbols> {
|
|
63
71
|
decimals: number;
|
|
64
72
|
}
|
|
@@ -68,8 +76,8 @@ export interface FeeBalance<Symbols extends AssetSymbol = AssetSymbol> {
|
|
|
68
76
|
symbol: Symbols;
|
|
69
77
|
}
|
|
70
78
|
export interface SdkOptions {
|
|
71
|
-
ethersSigner
|
|
72
|
-
polkadotSigner
|
|
79
|
+
ethersSigner?: EthersSigner;
|
|
80
|
+
polkadotSigner?: PolkadotSigner;
|
|
73
81
|
}
|
|
74
82
|
export declare type ExtrinsicEvent = ExtrinsicFailedEvent | ExtrinsicSentEvent | ExtrinsicSuccessEvent;
|
|
75
83
|
export interface ExtrinsicFailedEvent {
|
|
@@ -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":";;;AAoKA,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
CHANGED
|
@@ -39,7 +39,11 @@ function initByChain(configBuilder, options) {
|
|
|
39
39
|
from: (chain) => {
|
|
40
40
|
const { asset, origin, config } = from(chain);
|
|
41
41
|
return {
|
|
42
|
-
get: async (account, sourceAccount, primaryAccount) => {
|
|
42
|
+
get: async (account, sourceAccount, { primaryAccount, polkadotSigner } = {}) => {
|
|
43
|
+
const signer = polkadotSigner || options?.polkadotSigner;
|
|
44
|
+
if (!signer) {
|
|
45
|
+
throw new Error('Polkadot signer is not provided to XCM-SDK');
|
|
46
|
+
}
|
|
43
47
|
const [polkadot, foreignPolkadot] = await (0, polkadot_1.createPolkadotServices)([configBuilder.moonChain.ws, config.origin.ws]);
|
|
44
48
|
const meta = foreignPolkadot.getMetadata();
|
|
45
49
|
const nativeAsset = configBuilder.assets[meta.symbol];
|
|
@@ -50,9 +54,9 @@ function initByChain(configBuilder, options) {
|
|
|
50
54
|
foreignPolkadot,
|
|
51
55
|
moonChain,
|
|
52
56
|
nativeAsset,
|
|
53
|
-
options,
|
|
54
57
|
origin,
|
|
55
58
|
polkadot,
|
|
59
|
+
polkadotSigner: signer,
|
|
56
60
|
primaryAccount,
|
|
57
61
|
sourceAccount,
|
|
58
62
|
});
|
|
@@ -68,8 +72,12 @@ function initByChain(configBuilder, options) {
|
|
|
68
72
|
to: (chain) => {
|
|
69
73
|
const { asset, origin, config } = to(chain);
|
|
70
74
|
return {
|
|
71
|
-
get: async (destinationAccount) => {
|
|
72
|
-
const
|
|
75
|
+
get: async (destinationAccount, { ethersSigner } = {}) => {
|
|
76
|
+
const signer = ethersSigner || options?.ethersSigner;
|
|
77
|
+
if (!signer) {
|
|
78
|
+
throw new Error('Ethers signer is not provided to XCM-SDK');
|
|
79
|
+
}
|
|
80
|
+
const contract = new contracts_1.XTokensContract(signer);
|
|
73
81
|
const [polkadot, destinationPolkadot] = await (0, polkadot_1.createPolkadotServices)([
|
|
74
82
|
configBuilder.moonChain.ws,
|
|
75
83
|
config.destination.ws,
|
|
@@ -82,9 +90,9 @@ function initByChain(configBuilder, options) {
|
|
|
82
90
|
contract,
|
|
83
91
|
destinationAccount,
|
|
84
92
|
destinationPolkadot,
|
|
93
|
+
ethersSigner: signer,
|
|
85
94
|
moonChain,
|
|
86
95
|
nativeAsset,
|
|
87
|
-
options,
|
|
88
96
|
origin,
|
|
89
97
|
polkadot,
|
|
90
98
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC5D,6DAasC;AAEtC,4CAA+C;AAC/C,0CAAuE;AACvE,+CAA+C;
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,18 @@ import { Asset, AssetSymbol, Chain, ChainKey, MoonChain, WithdrawConfig } from '
|
|
|
2
2
|
import { Signer as EthersSigner } from 'ethers';
|
|
3
3
|
import { XTokensContract } from '../contracts';
|
|
4
4
|
import { PolkadotService } from '../polkadot';
|
|
5
|
-
import {
|
|
6
|
-
export declare function createTransactionEventHandler(ethersSigner: EthersSigner, txHash: Hash, cb:
|
|
5
|
+
import { ExtrinsicEventsCallback, Hash, WithdrawTransferData } from './sdk.interfaces';
|
|
6
|
+
export declare function createTransactionEventHandler(ethersSigner: EthersSigner, txHash: Hash, cb: ExtrinsicEventsCallback, skipSentEvent?: boolean): Promise<void>;
|
|
7
7
|
export interface GetWithdrawDataParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
|
|
8
8
|
asset: Asset<Symbols>;
|
|
9
9
|
config: WithdrawConfig<Symbols>;
|
|
10
10
|
contract: XTokensContract;
|
|
11
11
|
destinationAccount: string;
|
|
12
12
|
destinationPolkadot: PolkadotService<Symbols, ChainKeys>;
|
|
13
|
+
ethersSigner: EthersSigner;
|
|
13
14
|
moonChain: MoonChain;
|
|
14
15
|
nativeAsset: Asset<Symbols>;
|
|
15
|
-
options: SdkOptions;
|
|
16
16
|
origin: MoonChain | Chain<ChainKeys>;
|
|
17
17
|
polkadot: PolkadotService<Symbols, ChainKeys>;
|
|
18
18
|
}
|
|
19
|
-
export declare function getWithdrawData<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ asset, config, contract, destinationAccount, destinationPolkadot, moonChain, nativeAsset,
|
|
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>>;
|
|
@@ -30,15 +30,19 @@ async function createTransactionEventHandler(ethersSigner, txHash, cb, skipSentE
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
exports.createTransactionEventHandler = createTransactionEventHandler;
|
|
33
|
-
async function getWithdrawData({ asset, config, contract, destinationAccount, destinationPolkadot, moonChain, nativeAsset,
|
|
33
|
+
async function getWithdrawData({ asset, config, contract, destinationAccount, destinationPolkadot, ethersSigner, moonChain, nativeAsset, origin, polkadot, }) {
|
|
34
34
|
const meta = destinationPolkadot.getMetadata();
|
|
35
|
-
const [decimals, destinationBalance, existentialDeposit] = await Promise.all([
|
|
35
|
+
const [decimals, destinationBalance, existentialDeposit, assetMinBalance] = await Promise.all([
|
|
36
36
|
asset.isNative ? moonChain.decimals : polkadot.getAssetDecimals(asset.id),
|
|
37
37
|
destinationPolkadot.getGenericBalance(destinationAccount, config.balance),
|
|
38
38
|
destinationPolkadot.getExistentialDeposit(),
|
|
39
|
+
config.sourceMinBalance
|
|
40
|
+
? destinationPolkadot.getAssetMinBalance(config.sourceMinBalance)
|
|
41
|
+
: 0n,
|
|
39
42
|
]);
|
|
40
|
-
const
|
|
41
|
-
const
|
|
43
|
+
const calculatedFee = BigInt(config.weight * config.feePerWeight);
|
|
44
|
+
const destinationFee = assetMinBalance > calculatedFee ? assetMinBalance : calculatedFee;
|
|
45
|
+
const min = destinationFee + (assetMinBalance || existentialDeposit);
|
|
42
46
|
return {
|
|
43
47
|
asset: { ...asset, decimals },
|
|
44
48
|
destination: config.destination,
|
|
@@ -52,7 +56,7 @@ async function getWithdrawData({ asset, config, contract, destinationAccount, de
|
|
|
52
56
|
send: async (amount, cb) => {
|
|
53
57
|
const tx = await contract.transfer(destinationAccount, amount, asset, config);
|
|
54
58
|
if (cb) {
|
|
55
|
-
createTransactionEventHandler(
|
|
59
|
+
createTransactionEventHandler(ethersSigner, tx.hash, cb);
|
|
56
60
|
}
|
|
57
61
|
return tx.hash;
|
|
58
62
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.withdraw.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.withdraw.ts"],"names":[],"mappings":";;;AAWA,
|
|
1
|
+
{"version":3,"file":"sdk.withdraw.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.withdraw.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { SdkOptions, XcmSdkByChain } from './sdk.interfaces';
|
|
2
|
-
export declare function init(options
|
|
2
|
+
export declare function init(options?: SdkOptions): XcmSdkByChain;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Asset, AssetSymbol, Chain, ChainKey, DepositConfig, MoonChain } from '@moonbeam-network/xcm-config';
|
|
2
|
+
import { Signer as PolkadotSigner } from '@polkadot/api/types';
|
|
2
3
|
import { ISubmittableResult } from '@polkadot/types/types';
|
|
3
4
|
import { PolkadotService } from '../polkadot';
|
|
4
|
-
import { DepositTransferData,
|
|
5
|
-
export declare function createExtrinsicEventHandler<Symbols extends AssetSymbol>(config: DepositConfig<Symbols>, cb:
|
|
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;
|
|
6
7
|
export interface CreateExtrinsicOptions<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
|
|
7
8
|
account: string;
|
|
8
9
|
config: DepositConfig<Symbols>;
|
|
@@ -11,7 +12,7 @@ export interface CreateExtrinsicOptions<Symbols extends AssetSymbol, ChainKeys e
|
|
|
11
12
|
polkadot: PolkadotService<Symbols, ChainKeys>;
|
|
12
13
|
primaryAccount?: string;
|
|
13
14
|
}
|
|
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
|
|
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>>;
|
|
15
16
|
export interface GetDepositDataParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
|
|
16
17
|
account: string;
|
|
17
18
|
asset: Asset<Symbols>;
|
|
@@ -19,13 +20,13 @@ export interface GetDepositDataParams<Symbols extends AssetSymbol, ChainKeys ext
|
|
|
19
20
|
foreignPolkadot: PolkadotService<Symbols, ChainKeys>;
|
|
20
21
|
moonChain: MoonChain;
|
|
21
22
|
nativeAsset: Asset<Symbols>;
|
|
22
|
-
options: SdkOptions;
|
|
23
23
|
origin: MoonChain | Chain<ChainKeys>;
|
|
24
24
|
polkadot: PolkadotService<Symbols, ChainKeys>;
|
|
25
|
+
polkadotSigner: PolkadotSigner;
|
|
25
26
|
primaryAccount?: string;
|
|
26
27
|
sourceAccount: string;
|
|
27
28
|
}
|
|
28
|
-
export declare function getDepositData<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ account, asset, config, foreignPolkadot, moonChain, nativeAsset,
|
|
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>>;
|
|
29
30
|
export interface GetMinParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
|
|
30
31
|
asset: Asset<Symbols>;
|
|
31
32
|
config: DepositConfig<Symbols>;
|
|
@@ -56,7 +56,7 @@ function getCreateExtrinsic({ account, config, foreignPolkadot, nativeAsset, pol
|
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
58
|
exports.getCreateExtrinsic = getCreateExtrinsic;
|
|
59
|
-
async function getDepositData({ account, asset, config, foreignPolkadot, moonChain, nativeAsset,
|
|
59
|
+
async function getDepositData({ account, asset, config, foreignPolkadot, moonChain, nativeAsset, origin, polkadot, polkadotSigner, primaryAccount, sourceAccount, }) {
|
|
60
60
|
const meta = foreignPolkadot.getMetadata();
|
|
61
61
|
const createExtrinsic = getCreateExtrinsic({
|
|
62
62
|
account,
|
|
@@ -103,7 +103,7 @@ async function getDepositData({ account, asset, config, foreignPolkadot, moonCha
|
|
|
103
103
|
send: async (amount, cb) => {
|
|
104
104
|
const extrinsic = await createExtrinsic(amount);
|
|
105
105
|
const hash = await extrinsic.signAndSend(sourceAccount, {
|
|
106
|
-
signer:
|
|
106
|
+
signer: polkadotSigner,
|
|
107
107
|
}, cb && createExtrinsicEventHandler(config, cb));
|
|
108
108
|
return hash.toString();
|
|
109
109
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.deposit.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.deposit.ts"],"names":[],"mappings":";;;AAAA,6DASsC;
|
|
1
|
+
{"version":3,"file":"sdk.deposit.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.deposit.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,10 +28,17 @@ export interface XcmSdkWithdraw<Symbols extends AssetSymbol = AssetSymbol, Chain
|
|
|
28
28
|
to: (chain: ChainKeys) => XcmSdkWithdrawTo<Symbols>;
|
|
29
29
|
}
|
|
30
30
|
export interface XcmSdkDepositFrom<Symbols extends AssetSymbol = AssetSymbol> {
|
|
31
|
-
get: (account: string, sourceAccount: string,
|
|
31
|
+
get: (account: string, sourceAccount: string, params?: DepositGetParams) => Promise<DepositTransferData<Symbols>>;
|
|
32
|
+
}
|
|
33
|
+
export interface DepositGetParams {
|
|
34
|
+
polkadotSigner?: PolkadotSigner;
|
|
35
|
+
primaryAccount?: string;
|
|
32
36
|
}
|
|
33
37
|
export interface XcmSdkWithdrawTo<Symbols extends AssetSymbol = AssetSymbol> {
|
|
34
|
-
get: (account: string) => Promise<WithdrawTransferData<Symbols>>;
|
|
38
|
+
get: (account: string, params?: WithdrawGetParams) => Promise<WithdrawTransferData<Symbols>>;
|
|
39
|
+
}
|
|
40
|
+
export interface WithdrawGetParams {
|
|
41
|
+
ethersSigner?: EthersSigner;
|
|
35
42
|
}
|
|
36
43
|
export interface DepositTransferData<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
37
44
|
asset: AssetConfigWithDecimals<Symbols>;
|
|
@@ -45,7 +52,7 @@ export interface DepositTransferData<Symbols extends AssetSymbol = AssetSymbol,
|
|
|
45
52
|
sourceFeeBalance?: FeeBalance<Symbols>;
|
|
46
53
|
sourceMinBalance: bigint;
|
|
47
54
|
getFee: (amount?: bigint) => Promise<bigint>;
|
|
48
|
-
send: (amount: bigint, cb?:
|
|
55
|
+
send: (amount: bigint, cb?: ExtrinsicEventsCallback) => Promise<Hash>;
|
|
49
56
|
}
|
|
50
57
|
export interface WithdrawTransferData<Symbols extends AssetSymbol = AssetSymbol, ChainKeys extends ChainKey = ChainKey> {
|
|
51
58
|
asset: AssetConfigWithDecimals<Symbols>;
|
|
@@ -57,8 +64,9 @@ export interface WithdrawTransferData<Symbols extends AssetSymbol = AssetSymbol,
|
|
|
57
64
|
native: AssetConfigWithDecimals<Symbols>;
|
|
58
65
|
origin: MoonChain | Chain<ChainKeys>;
|
|
59
66
|
getFee: (amount: bigint) => Promise<bigint>;
|
|
60
|
-
send: (amount: bigint, cb?:
|
|
67
|
+
send: (amount: bigint, cb?: ExtrinsicEventsCallback) => Promise<Hash>;
|
|
61
68
|
}
|
|
69
|
+
export declare type ExtrinsicEventsCallback = (event: ExtrinsicEvent) => void;
|
|
62
70
|
export interface AssetConfigWithDecimals<Symbols extends AssetSymbol = AssetSymbol> extends Asset<Symbols> {
|
|
63
71
|
decimals: number;
|
|
64
72
|
}
|
|
@@ -68,8 +76,8 @@ export interface FeeBalance<Symbols extends AssetSymbol = AssetSymbol> {
|
|
|
68
76
|
symbol: Symbols;
|
|
69
77
|
}
|
|
70
78
|
export interface SdkOptions {
|
|
71
|
-
ethersSigner
|
|
72
|
-
polkadotSigner
|
|
79
|
+
ethersSigner?: EthersSigner;
|
|
80
|
+
polkadotSigner?: PolkadotSigner;
|
|
73
81
|
}
|
|
74
82
|
export declare type ExtrinsicEvent = ExtrinsicFailedEvent | ExtrinsicSentEvent | ExtrinsicSuccessEvent;
|
|
75
83
|
export interface ExtrinsicFailedEvent {
|
|
@@ -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":";;;AAoKA,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/mjs/src/sdk/sdk.js
CHANGED
|
@@ -39,7 +39,11 @@ function initByChain(configBuilder, options) {
|
|
|
39
39
|
from: (chain) => {
|
|
40
40
|
const { asset, origin, config } = from(chain);
|
|
41
41
|
return {
|
|
42
|
-
get: async (account, sourceAccount, primaryAccount) => {
|
|
42
|
+
get: async (account, sourceAccount, { primaryAccount, polkadotSigner } = {}) => {
|
|
43
|
+
const signer = polkadotSigner || options?.polkadotSigner;
|
|
44
|
+
if (!signer) {
|
|
45
|
+
throw new Error('Polkadot signer is not provided to XCM-SDK');
|
|
46
|
+
}
|
|
43
47
|
const [polkadot, foreignPolkadot] = await (0, polkadot_1.createPolkadotServices)([configBuilder.moonChain.ws, config.origin.ws]);
|
|
44
48
|
const meta = foreignPolkadot.getMetadata();
|
|
45
49
|
const nativeAsset = configBuilder.assets[meta.symbol];
|
|
@@ -50,9 +54,9 @@ function initByChain(configBuilder, options) {
|
|
|
50
54
|
foreignPolkadot,
|
|
51
55
|
moonChain,
|
|
52
56
|
nativeAsset,
|
|
53
|
-
options,
|
|
54
57
|
origin,
|
|
55
58
|
polkadot,
|
|
59
|
+
polkadotSigner: signer,
|
|
56
60
|
primaryAccount,
|
|
57
61
|
sourceAccount,
|
|
58
62
|
});
|
|
@@ -68,8 +72,12 @@ function initByChain(configBuilder, options) {
|
|
|
68
72
|
to: (chain) => {
|
|
69
73
|
const { asset, origin, config } = to(chain);
|
|
70
74
|
return {
|
|
71
|
-
get: async (destinationAccount) => {
|
|
72
|
-
const
|
|
75
|
+
get: async (destinationAccount, { ethersSigner } = {}) => {
|
|
76
|
+
const signer = ethersSigner || options?.ethersSigner;
|
|
77
|
+
if (!signer) {
|
|
78
|
+
throw new Error('Ethers signer is not provided to XCM-SDK');
|
|
79
|
+
}
|
|
80
|
+
const contract = new contracts_1.XTokensContract(signer);
|
|
73
81
|
const [polkadot, destinationPolkadot] = await (0, polkadot_1.createPolkadotServices)([
|
|
74
82
|
configBuilder.moonChain.ws,
|
|
75
83
|
config.destination.ws,
|
|
@@ -82,9 +90,9 @@ function initByChain(configBuilder, options) {
|
|
|
82
90
|
contract,
|
|
83
91
|
destinationAccount,
|
|
84
92
|
destinationPolkadot,
|
|
93
|
+
ethersSigner: signer,
|
|
85
94
|
moonChain,
|
|
86
95
|
nativeAsset,
|
|
87
|
-
options,
|
|
88
96
|
origin,
|
|
89
97
|
polkadot,
|
|
90
98
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC5D,6DAasC;AAEtC,4CAA+C;AAC/C,0CAAuE;AACvE,+CAA+C;
|
|
1
|
+
{"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,18 @@ import { Asset, AssetSymbol, Chain, ChainKey, MoonChain, WithdrawConfig } from '
|
|
|
2
2
|
import { Signer as EthersSigner } from 'ethers';
|
|
3
3
|
import { XTokensContract } from '../contracts';
|
|
4
4
|
import { PolkadotService } from '../polkadot';
|
|
5
|
-
import {
|
|
6
|
-
export declare function createTransactionEventHandler(ethersSigner: EthersSigner, txHash: Hash, cb:
|
|
5
|
+
import { ExtrinsicEventsCallback, Hash, WithdrawTransferData } from './sdk.interfaces';
|
|
6
|
+
export declare function createTransactionEventHandler(ethersSigner: EthersSigner, txHash: Hash, cb: ExtrinsicEventsCallback, skipSentEvent?: boolean): Promise<void>;
|
|
7
7
|
export interface GetWithdrawDataParams<Symbols extends AssetSymbol, ChainKeys extends ChainKey> {
|
|
8
8
|
asset: Asset<Symbols>;
|
|
9
9
|
config: WithdrawConfig<Symbols>;
|
|
10
10
|
contract: XTokensContract;
|
|
11
11
|
destinationAccount: string;
|
|
12
12
|
destinationPolkadot: PolkadotService<Symbols, ChainKeys>;
|
|
13
|
+
ethersSigner: EthersSigner;
|
|
13
14
|
moonChain: MoonChain;
|
|
14
15
|
nativeAsset: Asset<Symbols>;
|
|
15
|
-
options: SdkOptions;
|
|
16
16
|
origin: MoonChain | Chain<ChainKeys>;
|
|
17
17
|
polkadot: PolkadotService<Symbols, ChainKeys>;
|
|
18
18
|
}
|
|
19
|
-
export declare function getWithdrawData<Symbols extends AssetSymbol, ChainKeys extends ChainKey>({ asset, config, contract, destinationAccount, destinationPolkadot, moonChain, nativeAsset,
|
|
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>>;
|
|
@@ -30,15 +30,19 @@ async function createTransactionEventHandler(ethersSigner, txHash, cb, skipSentE
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
exports.createTransactionEventHandler = createTransactionEventHandler;
|
|
33
|
-
async function getWithdrawData({ asset, config, contract, destinationAccount, destinationPolkadot, moonChain, nativeAsset,
|
|
33
|
+
async function getWithdrawData({ asset, config, contract, destinationAccount, destinationPolkadot, ethersSigner, moonChain, nativeAsset, origin, polkadot, }) {
|
|
34
34
|
const meta = destinationPolkadot.getMetadata();
|
|
35
|
-
const [decimals, destinationBalance, existentialDeposit] = await Promise.all([
|
|
35
|
+
const [decimals, destinationBalance, existentialDeposit, assetMinBalance] = await Promise.all([
|
|
36
36
|
asset.isNative ? moonChain.decimals : polkadot.getAssetDecimals(asset.id),
|
|
37
37
|
destinationPolkadot.getGenericBalance(destinationAccount, config.balance),
|
|
38
38
|
destinationPolkadot.getExistentialDeposit(),
|
|
39
|
+
config.sourceMinBalance
|
|
40
|
+
? destinationPolkadot.getAssetMinBalance(config.sourceMinBalance)
|
|
41
|
+
: 0n,
|
|
39
42
|
]);
|
|
40
|
-
const
|
|
41
|
-
const
|
|
43
|
+
const calculatedFee = BigInt(config.weight * config.feePerWeight);
|
|
44
|
+
const destinationFee = assetMinBalance > calculatedFee ? assetMinBalance : calculatedFee;
|
|
45
|
+
const min = destinationFee + (assetMinBalance || existentialDeposit);
|
|
42
46
|
return {
|
|
43
47
|
asset: { ...asset, decimals },
|
|
44
48
|
destination: config.destination,
|
|
@@ -52,7 +56,7 @@ async function getWithdrawData({ asset, config, contract, destinationAccount, de
|
|
|
52
56
|
send: async (amount, cb) => {
|
|
53
57
|
const tx = await contract.transfer(destinationAccount, amount, asset, config);
|
|
54
58
|
if (cb) {
|
|
55
|
-
createTransactionEventHandler(
|
|
59
|
+
createTransactionEventHandler(ethersSigner, tx.hash, cb);
|
|
56
60
|
}
|
|
57
61
|
return tx.hash;
|
|
58
62
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk.withdraw.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.withdraw.ts"],"names":[],"mappings":";;;AAWA,
|
|
1
|
+
{"version":3,"file":"sdk.withdraw.js","sourceRoot":"","sources":["../../../../src/sdk/sdk.withdraw.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moonbeam-network/xcm-sdk",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.19",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "PureStake",
|
|
6
6
|
"license": "GPL-3.0-only",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"main": "./build/cjs/src/index.js",
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@moonbeam-network/api-augment": "^0.1700.0",
|
|
41
|
-
"@moonbeam-network/xcm-config": "^0.0.
|
|
41
|
+
"@moonbeam-network/xcm-config": "^0.0.19",
|
|
42
42
|
"@polkadot/api": "^9.1.1",
|
|
43
43
|
"@polkadot/types": "^9.1.1",
|
|
44
44
|
"@polkadot/util": "^10.1.3",
|