@bitgo/sdk-coin-ton 4.0.4 → 4.0.6
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/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/index.js +1 -1
- package/dist/cjs/src/jettonToken.d.ts.map +1 -0
- package/dist/cjs/src/jettonToken.js +52 -0
- package/dist/cjs/src/lib/constants.d.ts.map +1 -0
- package/dist/cjs/src/lib/constants.js +12 -0
- package/dist/{src → cjs/src}/lib/explainTransactionWasm.d.ts +15 -1
- package/dist/cjs/src/lib/explainTransactionWasm.d.ts.map +1 -0
- package/dist/cjs/src/lib/explainTransactionWasm.js +104 -0
- package/dist/cjs/src/lib/iface.d.ts.map +1 -0
- package/dist/cjs/src/lib/iface.js +3 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/lib/index.js +1 -1
- package/dist/cjs/src/lib/keyPair.d.ts.map +1 -0
- package/dist/cjs/src/lib/keyPair.js +103 -0
- package/dist/cjs/src/lib/singleNominatorWithdrawBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/singleNominatorWithdrawBuilder.js +38 -0
- package/dist/cjs/src/lib/tokenTransaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/tokenTransaction.js +97 -0
- package/dist/cjs/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/tokenTransferBuilder.js +57 -0
- package/dist/cjs/src/lib/tonWhalesDepositBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/tonWhalesDepositBuilder.js +42 -0
- package/dist/cjs/src/lib/tonWhalesVestingDepositBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/tonWhalesVestingDepositBuilder.js +37 -0
- package/dist/cjs/src/lib/tonWhalesVestingWithdrawBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/tonWhalesVestingWithdrawBuilder.js +37 -0
- package/dist/cjs/src/lib/tonWhalesWithdrawalBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/tonWhalesWithdrawalBuilder.js +60 -0
- package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/transaction.js +415 -0
- package/dist/cjs/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilder.js +152 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionBuilderFactory.js +100 -0
- package/dist/cjs/src/lib/transactionExplanation.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionExplanation.js +3 -0
- package/dist/cjs/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/src/lib/transferBuilder.js +21 -0
- package/dist/cjs/src/lib/utils.d.ts.map +1 -0
- package/dist/cjs/src/lib/utils.js +159 -0
- package/dist/cjs/src/register.d.ts.map +1 -0
- package/dist/cjs/src/register.js +15 -0
- package/dist/cjs/src/ton.d.ts.map +1 -0
- package/dist/cjs/src/ton.js +520 -0
- package/dist/cjs/src/tton.d.ts.map +1 -0
- package/dist/cjs/src/tton.js +30 -0
- package/dist/cjs/test/resources/ton.d.ts.map +1 -0
- package/dist/cjs/test/resources/ton.js +208 -0
- package/dist/cjs/test/unit/explainTransactionWasm.d.ts.map +1 -0
- package/dist/cjs/test/unit/explainTransactionWasm.js +147 -0
- package/dist/cjs/test/unit/jettonToken.d.ts.map +1 -0
- package/dist/cjs/test/unit/jettonToken.js +341 -0
- package/dist/{test → cjs/test}/unit/keyPair.d.ts.map +1 -1
- package/dist/cjs/test/unit/keyPair.js +55 -0
- package/dist/cjs/test/unit/singleNominatorWithdrawBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/singleNominatorWithdrawBuilder.js +314 -0
- package/dist/cjs/test/unit/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/tokenTransferBuilder.js +262 -0
- package/dist/{test → cjs/test}/unit/ton.d.ts.map +1 -1
- package/dist/cjs/test/unit/ton.js +752 -0
- package/dist/cjs/test/unit/tonWhalesDepositBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/tonWhalesDepositBuilder.js +114 -0
- package/dist/cjs/test/unit/tonWhalesVestingDepositBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/tonWhalesVestingDepositBuilder.js +136 -0
- package/dist/cjs/test/unit/tonWhalesVestingWithdrawBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/tonWhalesVestingWithdrawBuilder.js +136 -0
- package/dist/cjs/test/unit/tonWhalesWithdrawalBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/tonWhalesWithdrawalBuilder.js +130 -0
- package/dist/cjs/test/unit/transferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/transferBuilder.js +281 -0
- package/dist/cjs/test/unit/wasmCrossCompatibility.d.ts.map +1 -0
- package/dist/cjs/test/unit/wasmCrossCompatibility.js +176 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -0
- package/dist/esm/index.d.ts +6 -0
- package/dist/esm/index.js +6 -0
- package/dist/esm/jettonToken.d.ts +19 -0
- package/dist/esm/jettonToken.js +48 -0
- package/dist/esm/lib/constants.d.ts +9 -0
- package/dist/esm/lib/constants.js +9 -0
- package/dist/esm/lib/explainTransactionWasm.d.ts +36 -0
- package/dist/esm/lib/explainTransactionWasm.d.ts.map +1 -0
- package/dist/esm/lib/explainTransactionWasm.js +99 -0
- package/dist/esm/lib/iface.d.ts +32 -0
- package/dist/{src → esm}/lib/iface.js +1 -2
- package/dist/esm/lib/index.d.ts +14 -0
- package/dist/esm/lib/index.js +14 -0
- package/dist/esm/lib/keyPair.d.ts +25 -0
- package/dist/esm/lib/keyPair.js +63 -0
- package/dist/esm/lib/singleNominatorWithdrawBuilder.d.ts +17 -0
- package/dist/esm/lib/singleNominatorWithdrawBuilder.js +34 -0
- package/dist/esm/lib/tokenTransaction.d.ts +16 -0
- package/dist/esm/lib/tokenTransaction.js +90 -0
- package/dist/esm/lib/tokenTransferBuilder.d.ts +20 -0
- package/dist/esm/lib/tokenTransferBuilder.js +53 -0
- package/dist/esm/lib/tonWhalesDepositBuilder.d.ts +12 -0
- package/dist/esm/lib/tonWhalesDepositBuilder.js +38 -0
- package/dist/esm/lib/tonWhalesVestingDepositBuilder.d.ts +12 -0
- package/dist/esm/lib/tonWhalesVestingDepositBuilder.js +33 -0
- package/dist/esm/lib/tonWhalesVestingWithdrawBuilder.d.ts +12 -0
- package/dist/esm/lib/tonWhalesVestingWithdrawBuilder.js +33 -0
- package/dist/esm/lib/tonWhalesWithdrawalBuilder.d.ts +30 -0
- package/dist/esm/lib/tonWhalesWithdrawalBuilder.js +56 -0
- package/dist/esm/lib/transaction.d.ts +42 -0
- package/dist/esm/lib/transaction.js +408 -0
- package/dist/esm/lib/transactionBuilder.d.ts +74 -0
- package/dist/esm/lib/transactionBuilder.js +145 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts +32 -0
- package/dist/esm/lib/transactionBuilderFactory.js +96 -0
- package/dist/esm/lib/transactionExplanation.d.ts +14 -0
- package/dist/{src → esm}/lib/transactionExplanation.js +1 -2
- package/dist/esm/lib/transferBuilder.d.ts +9 -0
- package/dist/esm/lib/transferBuilder.js +17 -0
- package/dist/esm/lib/utils.d.ts +41 -0
- package/dist/esm/lib/utils.js +151 -0
- package/dist/esm/register.d.ts +3 -0
- package/dist/esm/register.js +11 -0
- package/dist/esm/ton.d.ts +59 -0
- package/dist/{src → esm}/ton.d.ts.map +1 -1
- package/dist/esm/ton.js +480 -0
- package/dist/esm/tton.d.ts +22 -0
- package/dist/esm/tton.js +26 -0
- package/package.json +27 -10
- package/dist/src/jettonToken.js +0 -52
- package/dist/src/lib/constants.js +0 -12
- package/dist/src/lib/explainTransactionWasm.d.ts.map +0 -1
- package/dist/src/lib/explainTransactionWasm.js +0 -61
- package/dist/src/lib/keyPair.js +0 -103
- package/dist/src/lib/singleNominatorWithdrawBuilder.js +0 -38
- package/dist/src/lib/tokenTransaction.js +0 -97
- package/dist/src/lib/tokenTransferBuilder.js +0 -57
- package/dist/src/lib/tonWhalesDepositBuilder.js +0 -42
- package/dist/src/lib/tonWhalesVestingDepositBuilder.js +0 -37
- package/dist/src/lib/tonWhalesVestingWithdrawBuilder.js +0 -37
- package/dist/src/lib/tonWhalesWithdrawalBuilder.js +0 -60
- package/dist/src/lib/transaction.js +0 -415
- package/dist/src/lib/transactionBuilder.js +0 -152
- package/dist/src/lib/transactionBuilderFactory.js +0 -100
- package/dist/src/lib/transferBuilder.js +0 -21
- package/dist/src/lib/utils.js +0 -159
- package/dist/src/register.js +0 -15
- package/dist/src/ton.js +0 -525
- package/dist/src/tton.js +0 -30
- package/dist/test/resources/ton.d.ts.map +0 -1
- package/dist/test/resources/ton.js +0 -208
- package/dist/test/unit/explainTransactionWasm.d.ts.map +0 -1
- package/dist/test/unit/explainTransactionWasm.js +0 -147
- package/dist/test/unit/jettonToken.d.ts.map +0 -1
- package/dist/test/unit/jettonToken.js +0 -341
- package/dist/test/unit/keyPair.js +0 -55
- package/dist/test/unit/singleNominatorWithdrawBuilder.d.ts.map +0 -1
- package/dist/test/unit/singleNominatorWithdrawBuilder.js +0 -314
- package/dist/test/unit/tokenTransferBuilder.d.ts.map +0 -1
- package/dist/test/unit/tokenTransferBuilder.js +0 -262
- package/dist/test/unit/ton.js +0 -752
- package/dist/test/unit/tonWhalesDepositBuilder.d.ts.map +0 -1
- package/dist/test/unit/tonWhalesDepositBuilder.js +0 -114
- package/dist/test/unit/tonWhalesVestingDepositBuilder.d.ts.map +0 -1
- package/dist/test/unit/tonWhalesVestingDepositBuilder.js +0 -136
- package/dist/test/unit/tonWhalesVestingWithdrawBuilder.d.ts.map +0 -1
- package/dist/test/unit/tonWhalesVestingWithdrawBuilder.js +0 -136
- package/dist/test/unit/tonWhalesWithdrawalBuilder.d.ts.map +0 -1
- package/dist/test/unit/tonWhalesWithdrawalBuilder.js +0 -130
- package/dist/test/unit/transferBuilder.d.ts.map +0 -1
- package/dist/test/unit/transferBuilder.js +0 -281
- package/dist/test/unit/wasmCrossCompatibility.d.ts.map +0 -1
- package/dist/test/unit/wasmCrossCompatibility.js +0 -176
- package/dist/tsconfig.tsbuildinfo +0 -1
- /package/dist/{src → cjs/src}/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/jettonToken.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/constants.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/iface.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/index.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/keyPair.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/singleNominatorWithdrawBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/tokenTransaction.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/tokenTransferBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/tonWhalesDepositBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/tonWhalesVestingDepositBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/tonWhalesVestingWithdrawBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/tonWhalesWithdrawalBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transaction.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transactionBuilderFactory.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transactionExplanation.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +0 -0
- /package/dist/{src → cjs/src}/lib/utils.d.ts +0 -0
- /package/dist/{src → cjs/src}/register.d.ts +0 -0
- /package/dist/{src → cjs/src}/ton.d.ts +0 -0
- /package/dist/{src → cjs/src}/tton.d.ts +0 -0
- /package/dist/{test → cjs/test}/resources/ton.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/explainTransactionWasm.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/jettonToken.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/keyPair.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/singleNominatorWithdrawBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/tokenTransferBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/ton.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/tonWhalesDepositBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/tonWhalesVestingDepositBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/tonWhalesVestingWithdrawBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/tonWhalesWithdrawalBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/transferBuilder.d.ts +0 -0
- /package/dist/{test → cjs/test}/unit/wasmCrossCompatibility.d.ts +0 -0
- /package/dist/{src → esm}/index.d.ts.map +0 -0
- /package/dist/{src → esm}/jettonToken.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/constants.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/iface.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/index.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/keyPair.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/singleNominatorWithdrawBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/tokenTransaction.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/tokenTransferBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/tonWhalesDepositBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/tonWhalesVestingDepositBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/tonWhalesVestingWithdrawBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/tonWhalesWithdrawalBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transaction.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transactionBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transactionBuilderFactory.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transactionExplanation.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/transferBuilder.d.ts.map +0 -0
- /package/dist/{src → esm}/lib/utils.d.ts.map +0 -0
- /package/dist/{src → esm}/register.d.ts.map +0 -0
- /package/dist/{src → esm}/tton.d.ts.map +0 -0
package/package.json
CHANGED
|
@@ -1,11 +1,27 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo/sdk-coin-ton",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.6",
|
|
4
4
|
"description": "BitGo SDK coin library for Ton",
|
|
5
|
-
"main": "./dist/src/index.js",
|
|
6
|
-
"
|
|
5
|
+
"main": "./dist/cjs/src/index.js",
|
|
6
|
+
"module": "./dist/esm/index.js",
|
|
7
|
+
"browser": "./dist/esm/index.js",
|
|
8
|
+
"types": "./dist/cjs/src/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": {
|
|
12
|
+
"types": "./dist/esm/index.d.ts",
|
|
13
|
+
"default": "./dist/esm/index.js"
|
|
14
|
+
},
|
|
15
|
+
"require": {
|
|
16
|
+
"types": "./dist/cjs/src/index.d.ts",
|
|
17
|
+
"default": "./dist/cjs/src/index.js"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
7
21
|
"scripts": {
|
|
8
|
-
"build": "
|
|
22
|
+
"build": "npm run build:cjs && npm run build:esm",
|
|
23
|
+
"build:cjs": "yarn tsc --build --incremental --verbose .",
|
|
24
|
+
"build:esm": "yarn tsc --project tsconfig.esm.json",
|
|
9
25
|
"fmt": "prettier --write .",
|
|
10
26
|
"check-fmt": "prettier --check '**/*.{ts,js,json}'",
|
|
11
27
|
"clean": "rm -r ./dist",
|
|
@@ -40,9 +56,9 @@
|
|
|
40
56
|
]
|
|
41
57
|
},
|
|
42
58
|
"dependencies": {
|
|
43
|
-
"@bitgo/sdk-core": "^38.
|
|
59
|
+
"@bitgo/sdk-core": "^38.5.1",
|
|
44
60
|
"@bitgo/sdk-lib-mpc": "^10.15.0",
|
|
45
|
-
"@bitgo/statics": "^59.
|
|
61
|
+
"@bitgo/statics": "^59.2.0",
|
|
46
62
|
"@bitgo/wasm-ton": "^1.1.1",
|
|
47
63
|
"bignumber.js": "^9.0.0",
|
|
48
64
|
"bn.js": "^5.2.1",
|
|
@@ -51,11 +67,12 @@
|
|
|
51
67
|
"tweetnacl": "^1.0.3"
|
|
52
68
|
},
|
|
53
69
|
"devDependencies": {
|
|
54
|
-
"@bitgo/sdk-api": "^2.2.
|
|
55
|
-
"@bitgo/sdk-test": "^9.1.
|
|
70
|
+
"@bitgo/sdk-api": "^2.2.2",
|
|
71
|
+
"@bitgo/sdk-test": "^9.1.63"
|
|
56
72
|
},
|
|
57
|
-
"gitHead": "
|
|
73
|
+
"gitHead": "6121f374dcff160d4937be76c571be78ccd32eae",
|
|
58
74
|
"files": [
|
|
59
|
-
"dist"
|
|
75
|
+
"dist/cjs",
|
|
76
|
+
"dist/esm"
|
|
60
77
|
]
|
|
61
78
|
}
|
package/dist/src/jettonToken.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.JettonToken = void 0;
|
|
4
|
-
const statics_1 = require("@bitgo/statics");
|
|
5
|
-
const ton_1 = require("./ton");
|
|
6
|
-
class JettonToken extends ton_1.Ton {
|
|
7
|
-
constructor(bitgo, tokenConfig) {
|
|
8
|
-
const staticsCoin = tokenConfig.network === 'Mainnet' ? statics_1.coins.get('ton') : statics_1.coins.get('tton');
|
|
9
|
-
super(bitgo, staticsCoin);
|
|
10
|
-
this.tokenConfig = tokenConfig;
|
|
11
|
-
}
|
|
12
|
-
static createTokenConstructor(config) {
|
|
13
|
-
return (bitgo) => new JettonToken(bitgo, config);
|
|
14
|
-
}
|
|
15
|
-
static createTokenConstructors(tokenConfig = [...statics_1.tokens.bitcoin.ton.tokens, ...statics_1.tokens.testnet.ton.tokens]) {
|
|
16
|
-
const tokensCtors = [];
|
|
17
|
-
for (const token of tokenConfig) {
|
|
18
|
-
const tokenConstructor = JettonToken.createTokenConstructor(token);
|
|
19
|
-
tokensCtors.push({ name: token.type, coinConstructor: tokenConstructor });
|
|
20
|
-
}
|
|
21
|
-
return tokensCtors;
|
|
22
|
-
}
|
|
23
|
-
get name() {
|
|
24
|
-
return this.tokenConfig.name;
|
|
25
|
-
}
|
|
26
|
-
get coin() {
|
|
27
|
-
return this.tokenConfig.coin;
|
|
28
|
-
}
|
|
29
|
-
get network() {
|
|
30
|
-
return this.tokenConfig.network;
|
|
31
|
-
}
|
|
32
|
-
get contractAddress() {
|
|
33
|
-
return this.tokenConfig.contractAddress;
|
|
34
|
-
}
|
|
35
|
-
get decimalPlaces() {
|
|
36
|
-
return this.tokenConfig.decimalPlaces;
|
|
37
|
-
}
|
|
38
|
-
getChain() {
|
|
39
|
-
return this.tokenConfig.type;
|
|
40
|
-
}
|
|
41
|
-
getBaseChain() {
|
|
42
|
-
return this.coin;
|
|
43
|
-
}
|
|
44
|
-
getFullName() {
|
|
45
|
-
return 'Ton Token';
|
|
46
|
-
}
|
|
47
|
-
getBaseFactor() {
|
|
48
|
-
return Math.pow(10, this.tokenConfig.decimalPlaces);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
exports.JettonToken = JettonToken;
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamV0dG9uVG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamV0dG9uVG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNENBQWtFO0FBQ2xFLCtCQUE0QjtBQUU1QixNQUFhLFdBQVksU0FBUSxTQUFHO0lBR2xDLFlBQVksS0FBZ0IsRUFBRSxXQUE4QjtRQUMxRCxNQUFNLFdBQVcsR0FBRyxXQUFXLENBQUMsT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM3RixLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxNQUFNLENBQUMsc0JBQXNCLENBQUMsTUFBeUI7UUFDckQsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUksV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsTUFBTSxDQUFDLHVCQUF1QixDQUM1QixjQUFtQyxDQUFDLEdBQUcsZ0JBQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLGdCQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFFL0YsTUFBTSxXQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUMvQyxLQUFLLE1BQU0sS0FBSyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25FLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzVFLENBQUM7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXO1FBQ1QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztDQUNGO0FBM0RELGtDQTJEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJpdEdvQmFzZSwgQ29pbkNvbnN0cnVjdG9yLCBOYW1lZENvaW5Db25zdHJ1Y3RvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBKZXR0b25Ub2tlbkNvbmZpZywgY29pbnMsIHRva2VucyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFRvbiB9IGZyb20gJy4vdG9uJztcblxuZXhwb3J0IGNsYXNzIEpldHRvblRva2VuIGV4dGVuZHMgVG9uIHtcbiAgcHVibGljIHJlYWRvbmx5IHRva2VuQ29uZmlnOiBKZXR0b25Ub2tlbkNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB0b2tlbkNvbmZpZzogSmV0dG9uVG9rZW5Db25maWcpIHtcbiAgICBjb25zdCBzdGF0aWNzQ29pbiA9IHRva2VuQ29uZmlnLm5ldHdvcmsgPT09ICdNYWlubmV0JyA/IGNvaW5zLmdldCgndG9uJykgOiBjb2lucy5nZXQoJ3R0b24nKTtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICAgIHRoaXMudG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZztcbiAgfVxuXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9yKGNvbmZpZzogSmV0dG9uVG9rZW5Db25maWcpOiBDb2luQ29uc3RydWN0b3Ige1xuICAgIHJldHVybiAoYml0Z286IEJpdEdvQmFzZSkgPT4gbmV3IEpldHRvblRva2VuKGJpdGdvLCBjb25maWcpO1xuICB9XG5cbiAgc3RhdGljIGNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKFxuICAgIHRva2VuQ29uZmlnOiBKZXR0b25Ub2tlbkNvbmZpZ1tdID0gWy4uLnRva2Vucy5iaXRjb2luLnRvbi50b2tlbnMsIC4uLnRva2Vucy50ZXN0bmV0LnRvbi50b2tlbnNdXG4gICk6IE5hbWVkQ29pbkNvbnN0cnVjdG9yW10ge1xuICAgIGNvbnN0IHRva2Vuc0N0b3JzOiBOYW1lZENvaW5Db25zdHJ1Y3RvcltdID0gW107XG4gICAgZm9yIChjb25zdCB0b2tlbiBvZiB0b2tlbkNvbmZpZykge1xuICAgICAgY29uc3QgdG9rZW5Db25zdHJ1Y3RvciA9IEpldHRvblRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3IodG9rZW4pO1xuICAgICAgdG9rZW5zQ3RvcnMucHVzaCh7IG5hbWU6IHRva2VuLnR5cGUsIGNvaW5Db25zdHJ1Y3RvcjogdG9rZW5Db25zdHJ1Y3RvciB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRva2Vuc0N0b3JzO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5uYW1lO1xuICB9XG5cbiAgZ2V0IGNvaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5jb2luO1xuICB9XG5cbiAgZ2V0IG5ldHdvcmsoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5uZXR3b3JrO1xuICB9XG5cbiAgZ2V0IGNvbnRyYWN0QWRkcmVzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmNvbnRyYWN0QWRkcmVzcztcbiAgfVxuXG4gIGdldCBkZWNpbWFsUGxhY2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuZGVjaW1hbFBsYWNlcztcbiAgfVxuXG4gIGdldENoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcudHlwZTtcbiAgfVxuXG4gIGdldEJhc2VDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmNvaW47XG4gIH1cblxuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnVG9uIFRva2VuJztcbiAgfVxuXG4gIGdldEJhc2VGYWN0b3IoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5wb3coMTAsIHRoaXMudG9rZW5Db25maWcuZGVjaW1hbFBsYWNlcyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SINGLE_NOMINATOR_WITHDRAW_ALL_COMMENT = exports.TON_WHALES_WITHDRAW_OPCODE = exports.TON_WHALES_DEPOSIT_OPCODE = exports.VESTING_CONTRACT_CODE_B64 = exports.WITHDRAW_OPCODE = exports.JETTON_TRANSFER_OPCODE = exports.WALLET_ID = exports.VESTING_CONTRACT_WALLET_ID = void 0;
|
|
4
|
-
exports.VESTING_CONTRACT_WALLET_ID = 268;
|
|
5
|
-
exports.WALLET_ID = 698983191;
|
|
6
|
-
exports.JETTON_TRANSFER_OPCODE = 0x0f8a7ea5;
|
|
7
|
-
exports.WITHDRAW_OPCODE = '00001000';
|
|
8
|
-
exports.VESTING_CONTRACT_CODE_B64 = 'te6cckECHAEAA/sAART/APSkE/S88sgLAQIBIAISAgFIAwUDrNBsIiDXScFgkVvgAdDTAwFxsJFb4PpAMNs8AdMf0z/4S1JAxwUjghCnczrNurCOpGwS2zyCEPdzOs0BcIAYyMsFUATPFiP6AhPLassfyz/JgED7AOMOExQEAc74SlJAxwUDghByWKabuhOwjtGOLAH6QH/IygAC+kQByMoHy//J0PhEECOBAQj0QfhkINdKwgAglQHUMNAB3rMS5oIQ8limmzJwgBjIywVQBM8WI/oCE8tqyx/LP8mAQPsA2zySXwPiGwIBIAYPAgEgBwoCAW4ICQAZrc52omhAIGuQ64X/wAAZrx32omhAEGuQ64WPwAIBYgsMAUutNG2eNvwiRw1AgIR6STfSmRDOaQPp/5g3gSgBt4EBSJhxWfMYQBMCAWoNDgAPol+1E0NcLH4BL6LHbPPpEAcjKB8v/ydD4RIEBCPQKb6ExhMCASAQEQEpukYts8+EX4RvhH+Ej4SfhK+Ev4RIEwINuYRts82zyBMVA7jygwjXGCDTH9Mf0x8C+CO78mTtRNDTH9Mf0/8wWrryoVAzuvKiAvkBQDP5EPKj+ADbPCDXSsABjpntRO1F7UeRW+1n7WXtZI6C2zztQe3xAfL/kTDi+EGk+GHbPBMUGwB+7UTQ0x8B+GHTHwH4YtP/Afhj9AQB+GTUAdDTPwH4ZdMfAfhm0x8B+GfTHwH4aPoAAfhp+kAB+Gr6QAH4a9HRAlzTB9TR+CPbPCDCAI6bIsAD8uBkIdDTA/pAMfpA+EpSIMcFs5JfBOMNkTDiAfsAFRYAYPhF+EagUhC8kjBw4PhF+EigUhC5kzD4SeD4SfhJ+EUTofhHqQT4RvhHqQQQI6mEoQP6IfpEAcjKB8v/ydD4RIEBCPQKb6Exj18zAXKwwALy4GUB+gAxcdch+gAx+gAx0z8x0x8x0wABwADy4GbTAAGT1DDQ3iFx2zyOKjHTHzAgghBOc3RLuiGCEEdldCS6sSGCEFZ0Q3C6sQGCEFZvdGW6sfLgZ+MOcJJfA+IgwgAYFxoC6gFw2zyObSDXScIAjmPTHyHAACKDC7qxIoEQAbqxIoIQR9VDkbqxIoIQWV8HvLqxIoIQafswbLqxIoIQVm90ZbqxIoIQVnRDcLqx8uBnAcAAIddJwgCwjhXTBzAgwGQhwHexIcBEsQHAV7Hy4GiRMOKRMOLjDRgZAEQB+kQBw/+SW3DgAfgzIG6SW3Dg0CDXSYMHuZJbcODXC/+6ABrTHzCCEFZvdGW68uBnAA6TcvsCkTDiAGb4SPhH+Eb4RcjLP8sfyx/LH/hJ+gL4Ss8W+EvPFsn4RPhD+EL4QcjLH8sfy//0AMzJ7VSo1+S9';
|
|
9
|
-
exports.TON_WHALES_DEPOSIT_OPCODE = '2077040623';
|
|
10
|
-
exports.TON_WHALES_WITHDRAW_OPCODE = '3665837821';
|
|
11
|
-
exports.SINGLE_NOMINATOR_WITHDRAW_ALL_COMMENT = 'w';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSwwQkFBMEIsR0FBRyxHQUFHLENBQUM7QUFDakMsUUFBQSxTQUFTLEdBQUcsU0FBUyxDQUFDO0FBQ3RCLFFBQUEsc0JBQXNCLEdBQUcsVUFBVSxDQUFDO0FBQ3BDLFFBQUEsZUFBZSxHQUFHLFVBQVUsQ0FBQztBQUM3QixRQUFBLHlCQUF5QixHQUNwQyxzMkNBQXMyQyxDQUFDO0FBQzUxQyxRQUFBLHlCQUF5QixHQUFHLFlBQVksQ0FBQztBQUN6QyxRQUFBLDBCQUEwQixHQUFHLFlBQVksQ0FBQztBQUMxQyxRQUFBLHFDQUFxQyxHQUFHLEdBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBWRVNUSU5HX0NPTlRSQUNUX1dBTExFVF9JRCA9IDI2ODtcbmV4cG9ydCBjb25zdCBXQUxMRVRfSUQgPSA2OTg5ODMxOTE7XG5leHBvcnQgY29uc3QgSkVUVE9OX1RSQU5TRkVSX09QQ09ERSA9IDB4MGY4YTdlYTU7XG5leHBvcnQgY29uc3QgV0lUSERSQVdfT1BDT0RFID0gJzAwMDAxMDAwJztcbmV4cG9ydCBjb25zdCBWRVNUSU5HX0NPTlRSQUNUX0NPREVfQjY0ID1cbiAgJ3RlNmNja0VDSEFFQUEvc0FBUlQvQVBTa0UvUzg4c2dMQVFJQklBSVNBZ0ZJQXdVRHJOQnNJaURYU2NGZ2tWdmdBZERUQXdGeHNKRmI0UHBBTU5zOEFkTWYwei80UzFKQXh3VWpnaENuY3pyTnVyQ09wR3dTMnp5Q0VQZHpPczBCY0lBWXlNc0ZVQVRQRmlQNkFoUExhc3NmeXovSmdFRDdBT01PRXhRRUFjNzRTbEpBeHdVRGdoQnlXS2FidWhPd2p0R09MQUg2UUgvSXlnQUMra1FCeU1vSHkvL0owUGhFRUNPQkFRajBRZmhrSU5kS3dnQWdsUUhVTU5BQjNyTVM1b0lROGxpbW16SndnQmpJeXdWUUJNOFdJL29DRTh0cXl4L0xQOG1BUVBzQTJ6eVNYd1BpR3dJQklBWVBBZ0VnQndvQ0FXNElDUUFacmM1Mm9taEFJR3VRNjRYL3dBQVpyeDMyb21oQUVHdVE2NFdQd0FJQllnc01BVXV0TkcyZU52d2lSdzFBZ0lSNlNUZlNtUkRPYVFQcC81ZzNnU2dCdDRFQlNKaHhXZk1ZUUJNQ0FXb05EZ0FQb2wrMUUwTmNMSDRCTDZMSGJQUHBFQWNqS0I4di95ZEQ0UklFQkNQUUtiNkV4aE1DQVNBUUVRRXB1a1l0czgrRVg0UnZoSCtFajRTZmhLK0V2NFJJRXdJTnVZUnRzODJ6eUJNVkE3anlnd2pYR0NEVEg5TWYweDhDK0NPNzhtVHRSTkRUSDlNZjAvOHdXcnJ5b1ZBenV2S2lBdmtCUURQNUVQS2orQURiUENEWFNzQUJqcG50Uk8xRjdVZVJXKzFuN1dYdFpJNkMyenp0UWUzeEFmTC9rVERpK0VHaytHSGJQQk1VR3dCKzdVVFEweDhCK0dIVEh3SDRZdFAvQWZoajlBUUIrR1RVQWREVFB3SDRaZE1mQWZobTB4OEIrR2ZUSHdINGFQb0FBZmhwK2tBQitHcjZRQUg0YTlIUkFselRCOVRSK0NQYlBDRENBSTZiSXNBRDh1QmtJZERUQS9wQU1mcEErRXBTSU1jRnM1SmZCT01Oa1REaUFmc0FGUllBWVBoRitFYWdVaEM4a2pCdzRQaEYrRWlnVWhDNWt6RDRTZUQ0U2ZoSitFVVRvZmhIcVFUNFJ2aEhxUVFRSTZtRW9RUDZJZnBFQWNqS0I4di95ZEQ0UklFQkNQUUtiNkV4ajE4ekFYS3d3QUx5NEdVQitnQXhjZGNoK2dBeCtnQXgwejh4MHg4eDB3QUJ3QUR5NEdiVEFBR1QxRERRM2lGeDJ6eU9LakhUSHpBZ2doQk9jM1JMdWlHQ0VFZGxkQ1M2c1NHQ0VGWjBRM0M2c1FHQ0VGWnZkR1c2c2ZMZ1orTU9jSkpmQStJZ3dnQVlGeG9DNmdGdzJ6eU9iU0RYU2NJQWptUFRIeUhBQUNLREM3cXhJb0VRQWJxeElvSVFSOVZEa2JxeElvSVFXVjhIdkxxeElvSVFhZnN3YkxxeElvSVFWbTkwWmJxeElvSVFWblJEY0xxeDh1Qm5BY0FBSWRkSndnQ3dqaFhUQnpBZ3dHUWh3SGV4SWNCRXNRSEFWN0h5NEdpUk1PS1JNT0xqRFJnWkFFUUIra1FCdy8rU1czRGdBZmd6SUc2U1czRGcwQ0RYU1lNSHVaSmJjT0RYQy8rNkFCclRIekNDRUZadmRHVzY4dUJuQUE2VGN2c0NrVERpQUdiNFNQaEgrRWI0UmNqTFA4c2Z5eC9MSC9oSitnTDRTczhXK0V2UEZzbjRSUGhEK0VMNFFjakxIOHNmeS8vMEFNeko3VlNvMStTOSc7XG5leHBvcnQgY29uc3QgVE9OX1dIQUxFU19ERVBPU0lUX09QQ09ERSA9ICcyMDc3MDQwNjIzJztcbmV4cG9ydCBjb25zdCBUT05fV0hBTEVTX1dJVEhEUkFXX09QQ09ERSA9ICczNjY1ODM3ODIxJztcbmV4cG9ydCBjb25zdCBTSU5HTEVfTk9NSU5BVE9SX1dJVEhEUkFXX0FMTF9DT01NRU5UID0gJ3cnO1xuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"explainTransactionWasm.d.ts","sourceRoot":"","sources":["../../../src/lib/explainTransactionWasm.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,+GAA+G;IAC/G,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAuCD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,gCAAgC,GAAG,sBAAsB,CAiBtG"}
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* WASM-based TON transaction explanation.
|
|
4
|
-
*
|
|
5
|
-
* Built on @bitgo/wasm-ton's parseTransaction(). Derives transaction types,
|
|
6
|
-
* extracts outputs/inputs, and maps to BitGoJS TransactionExplanation format.
|
|
7
|
-
* This is BitGo-specific business logic that lives outside the wasm package.
|
|
8
|
-
*/
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.explainTonTransaction = explainTonTransaction;
|
|
11
|
-
const wasm_ton_1 = require("@bitgo/wasm-ton");
|
|
12
|
-
function extractOutputs(parsed, toAddressBounceable) {
|
|
13
|
-
const outputs = [];
|
|
14
|
-
let withdrawAmount;
|
|
15
|
-
for (const action of parsed.sendActions) {
|
|
16
|
-
if (action.jettonTransfer) {
|
|
17
|
-
outputs.push({
|
|
18
|
-
address: action.jettonTransfer.destination,
|
|
19
|
-
amount: String(action.jettonTransfer.amount),
|
|
20
|
-
});
|
|
21
|
-
}
|
|
22
|
-
else {
|
|
23
|
-
// destinationBounceable is always EQ... (bounceable)
|
|
24
|
-
// destination respects the original bounce flag (UQ... when bounce=false)
|
|
25
|
-
outputs.push({
|
|
26
|
-
address: toAddressBounceable ? action.destinationBounceable : action.destination,
|
|
27
|
-
amount: String(action.amount),
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
// withdrawAmount comes from the body payload parsed by WASM (not the message TON value)
|
|
31
|
-
if (action.withdrawAmount !== undefined) {
|
|
32
|
-
withdrawAmount = String(action.withdrawAmount);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
const outputAmount = outputs.reduce((sum, o) => sum + BigInt(o.amount), 0n);
|
|
36
|
-
return { outputs, outputAmount: String(outputAmount), withdrawAmount };
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Standalone WASM-based transaction explanation for TON.
|
|
40
|
-
*
|
|
41
|
-
* Parses the transaction via `parseTransaction(tx)` from @bitgo/wasm-ton,
|
|
42
|
-
* then derives the transaction type, extracts outputs/inputs, and maps
|
|
43
|
-
* to BitGoJS TransactionExplanation format.
|
|
44
|
-
*/
|
|
45
|
-
function explainTonTransaction(params) {
|
|
46
|
-
const toAddressBounceable = params.toAddressBounceable !== false;
|
|
47
|
-
const tx = wasm_ton_1.Transaction.fromBytes(Buffer.from(params.txBase64, 'base64'));
|
|
48
|
-
const parsed = (0, wasm_ton_1.parseTransaction)(tx);
|
|
49
|
-
const { outputs, outputAmount, withdrawAmount } = extractOutputs(parsed, toAddressBounceable);
|
|
50
|
-
return {
|
|
51
|
-
displayOrder: ['id', 'outputs', 'outputAmount', 'changeOutputs', 'changeAmount', 'fee', 'withdrawAmount'],
|
|
52
|
-
id: tx.id,
|
|
53
|
-
outputs,
|
|
54
|
-
outputAmount,
|
|
55
|
-
changeOutputs: [],
|
|
56
|
-
changeAmount: '0',
|
|
57
|
-
fee: { fee: 'UNKNOWN' },
|
|
58
|
-
withdrawAmount,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblRyYW5zYWN0aW9uV2FzbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZXhwbGFpblRyYW5zYWN0aW9uV2FzbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQTJESCxzREFpQkM7QUExRUQsOENBSXlCO0FBU3pCLFNBQVMsY0FBYyxDQUNyQixNQUE2QixFQUM3QixtQkFBNEI7SUFNNUIsTUFBTSxPQUFPLEdBQTBDLEVBQUUsQ0FBQztJQUMxRCxJQUFJLGNBQWtDLENBQUM7SUFFdkMsS0FBSyxNQUFNLE1BQU0sSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEMsSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQztnQkFDWCxPQUFPLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxXQUFXO2dCQUMxQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO2FBQzdDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04scURBQXFEO1lBQ3JELDBFQUEwRTtZQUMxRSxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUNYLE9BQU8sRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVztnQkFDaEYsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO2FBQzlCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCx3RkFBd0Y7UUFDeEYsSUFBSSxNQUFNLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hDLGNBQWMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pELENBQUM7SUFDSCxDQUFDO0lBRUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTVFLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxjQUFjLEVBQUUsQ0FBQztBQUN6RSxDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IscUJBQXFCLENBQUMsTUFBd0M7SUFDNUUsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEtBQUssS0FBSyxDQUFDO0lBQ2pFLE1BQU0sRUFBRSxHQUFHLHNCQUFrQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNoRixNQUFNLE1BQU0sR0FBMEIsSUFBQSwyQkFBZ0IsRUFBQyxFQUFFLENBQUMsQ0FBQztJQUUzRCxNQUFNLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsR0FBRyxjQUFjLENBQUMsTUFBTSxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFFOUYsT0FBTztRQUNMLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDO1FBQ3pHLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRTtRQUNULE9BQU87UUFDUCxZQUFZO1FBQ1osYUFBYSxFQUFFLEVBQUU7UUFDakIsWUFBWSxFQUFFLEdBQUc7UUFDakIsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRTtRQUN2QixjQUFjO0tBQ2YsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFdBU00tYmFzZWQgVE9OIHRyYW5zYWN0aW9uIGV4cGxhbmF0aW9uLlxuICpcbiAqIEJ1aWx0IG9uIEBiaXRnby93YXNtLXRvbidzIHBhcnNlVHJhbnNhY3Rpb24oKS4gRGVyaXZlcyB0cmFuc2FjdGlvbiB0eXBlcyxcbiAqIGV4dHJhY3RzIG91dHB1dHMvaW5wdXRzLCBhbmQgbWFwcyB0byBCaXRHb0pTIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gZm9ybWF0LlxuICogVGhpcyBpcyBCaXRHby1zcGVjaWZpYyBidXNpbmVzcyBsb2dpYyB0aGF0IGxpdmVzIG91dHNpZGUgdGhlIHdhc20gcGFja2FnZS5cbiAqL1xuXG5pbXBvcnQge1xuICBUcmFuc2FjdGlvbiBhcyBXYXNtVG9uVHJhbnNhY3Rpb24sXG4gIHBhcnNlVHJhbnNhY3Rpb24sXG4gIHR5cGUgUGFyc2VkVHJhbnNhY3Rpb24gYXMgV2FzbVBhcnNlZFRyYW5zYWN0aW9uLFxufSBmcm9tICdAYml0Z28vd2FzbS10b24nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cGxhaW5Ub25UcmFuc2FjdGlvbldhc21PcHRpb25zIHtcbiAgdHhCYXNlNjQ6IHN0cmluZztcbiAgLyoqIFdoZW4gZmFsc2UsIHVzZSB0aGUgb3JpZ2luYWwgYm91bmNlLWZsYWctcmVzcGVjdGluZyBhZGRyZXNzIGZvcm1hdC4gRGVmYXVsdHMgdG8gdHJ1ZSAoYm91bmNlYWJsZSBFUS4uLikuICovXG4gIHRvQWRkcmVzc0JvdW5jZWFibGU/OiBib29sZWFuO1xufVxuXG5mdW5jdGlvbiBleHRyYWN0T3V0cHV0cyhcbiAgcGFyc2VkOiBXYXNtUGFyc2VkVHJhbnNhY3Rpb24sXG4gIHRvQWRkcmVzc0JvdW5jZWFibGU6IGJvb2xlYW5cbik6IHtcbiAgb3V0cHV0czogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nIH1bXTtcbiAgb3V0cHV0QW1vdW50OiBzdHJpbmc7XG4gIHdpdGhkcmF3QW1vdW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59IHtcbiAgY29uc3Qgb3V0cHV0czogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nIH1bXSA9IFtdO1xuICBsZXQgd2l0aGRyYXdBbW91bnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBmb3IgKGNvbnN0IGFjdGlvbiBvZiBwYXJzZWQuc2VuZEFjdGlvbnMpIHtcbiAgICBpZiAoYWN0aW9uLmpldHRvblRyYW5zZmVyKSB7XG4gICAgICBvdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBhY3Rpb24uamV0dG9uVHJhbnNmZXIuZGVzdGluYXRpb24sXG4gICAgICAgIGFtb3VudDogU3RyaW5nKGFjdGlvbi5qZXR0b25UcmFuc2Zlci5hbW91bnQpLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGRlc3RpbmF0aW9uQm91bmNlYWJsZSBpcyBhbHdheXMgRVEuLi4gKGJvdW5jZWFibGUpXG4gICAgICAvLyBkZXN0aW5hdGlvbiByZXNwZWN0cyB0aGUgb3JpZ2luYWwgYm91bmNlIGZsYWcgKFVRLi4uIHdoZW4gYm91bmNlPWZhbHNlKVxuICAgICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgICAgYWRkcmVzczogdG9BZGRyZXNzQm91bmNlYWJsZSA/IGFjdGlvbi5kZXN0aW5hdGlvbkJvdW5jZWFibGUgOiBhY3Rpb24uZGVzdGluYXRpb24sXG4gICAgICAgIGFtb3VudDogU3RyaW5nKGFjdGlvbi5hbW91bnQpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gd2l0aGRyYXdBbW91bnQgY29tZXMgZnJvbSB0aGUgYm9keSBwYXlsb2FkIHBhcnNlZCBieSBXQVNNIChub3QgdGhlIG1lc3NhZ2UgVE9OIHZhbHVlKVxuICAgIGlmIChhY3Rpb24ud2l0aGRyYXdBbW91bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd2l0aGRyYXdBbW91bnQgPSBTdHJpbmcoYWN0aW9uLndpdGhkcmF3QW1vdW50KTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBvdXRwdXRBbW91bnQgPSBvdXRwdXRzLnJlZHVjZSgoc3VtLCBvKSA9PiBzdW0gKyBCaWdJbnQoby5hbW91bnQpLCAwbik7XG5cbiAgcmV0dXJuIHsgb3V0cHV0cywgb3V0cHV0QW1vdW50OiBTdHJpbmcob3V0cHV0QW1vdW50KSwgd2l0aGRyYXdBbW91bnQgfTtcbn1cblxuLyoqXG4gKiBTdGFuZGFsb25lIFdBU00tYmFzZWQgdHJhbnNhY3Rpb24gZXhwbGFuYXRpb24gZm9yIFRPTi5cbiAqXG4gKiBQYXJzZXMgdGhlIHRyYW5zYWN0aW9uIHZpYSBgcGFyc2VUcmFuc2FjdGlvbih0eClgIGZyb20gQGJpdGdvL3dhc20tdG9uLFxuICogdGhlbiBkZXJpdmVzIHRoZSB0cmFuc2FjdGlvbiB0eXBlLCBleHRyYWN0cyBvdXRwdXRzL2lucHV0cywgYW5kIG1hcHNcbiAqIHRvIEJpdEdvSlMgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBmb3JtYXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBsYWluVG9uVHJhbnNhY3Rpb24ocGFyYW1zOiBFeHBsYWluVG9uVHJhbnNhY3Rpb25XYXNtT3B0aW9ucyk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICBjb25zdCB0b0FkZHJlc3NCb3VuY2VhYmxlID0gcGFyYW1zLnRvQWRkcmVzc0JvdW5jZWFibGUgIT09IGZhbHNlO1xuICBjb25zdCB0eCA9IFdhc21Ub25UcmFuc2FjdGlvbi5mcm9tQnl0ZXMoQnVmZmVyLmZyb20ocGFyYW1zLnR4QmFzZTY0LCAnYmFzZTY0JykpO1xuICBjb25zdCBwYXJzZWQ6IFdhc21QYXJzZWRUcmFuc2FjdGlvbiA9IHBhcnNlVHJhbnNhY3Rpb24odHgpO1xuXG4gIGNvbnN0IHsgb3V0cHV0cywgb3V0cHV0QW1vdW50LCB3aXRoZHJhd0Ftb3VudCB9ID0gZXh0cmFjdE91dHB1dHMocGFyc2VkLCB0b0FkZHJlc3NCb3VuY2VhYmxlKTtcblxuICByZXR1cm4ge1xuICAgIGRpc3BsYXlPcmRlcjogWydpZCcsICdvdXRwdXRzJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VPdXRwdXRzJywgJ2NoYW5nZUFtb3VudCcsICdmZWUnLCAnd2l0aGRyYXdBbW91bnQnXSxcbiAgICBpZDogdHguaWQsXG4gICAgb3V0cHV0cyxcbiAgICBvdXRwdXRBbW91bnQsXG4gICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgY2hhbmdlQW1vdW50OiAnMCcsXG4gICAgZmVlOiB7IGZlZTogJ1VOS05PV04nIH0sXG4gICAgd2l0aGRyYXdBbW91bnQsXG4gIH07XG59XG4iXX0=
|
package/dist/src/lib/keyPair.js
DELETED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.KeyPair = void 0;
|
|
40
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
41
|
-
const utils_1 = __importDefault(require("./utils"));
|
|
42
|
-
const nacl = __importStar(require("tweetnacl"));
|
|
43
|
-
class KeyPair extends sdk_core_1.Ed25519KeyPair {
|
|
44
|
-
/**
|
|
45
|
-
* Public constructor. By default, creates a key pair with a random master seed.
|
|
46
|
-
*
|
|
47
|
-
* @param { KeyPairOptions } source Either a master seed, a private key, or a public key
|
|
48
|
-
*/
|
|
49
|
-
constructor(source) {
|
|
50
|
-
super(source);
|
|
51
|
-
}
|
|
52
|
-
/** @inheritdoc */
|
|
53
|
-
getKeys() {
|
|
54
|
-
const result = { pub: this.keyPair.pub };
|
|
55
|
-
if (this.keyPair.prv) {
|
|
56
|
-
result.prv = this.keyPair.prv;
|
|
57
|
-
}
|
|
58
|
-
return result;
|
|
59
|
-
}
|
|
60
|
-
/** @inheritdoc */
|
|
61
|
-
recordKeysFromPrivateKeyInProtocolFormat(prv) {
|
|
62
|
-
throw new Error('Method not implemented.');
|
|
63
|
-
}
|
|
64
|
-
/** @inheritdoc */
|
|
65
|
-
recordKeysFromPublicKeyInProtocolFormat(pub) {
|
|
66
|
-
if (!utils_1.default.isValidPublicKey(pub)) {
|
|
67
|
-
throw new Error(`Invalid Public Key ${pub}`);
|
|
68
|
-
}
|
|
69
|
-
return { pub };
|
|
70
|
-
}
|
|
71
|
-
/** @inheritdoc */
|
|
72
|
-
getAddress() {
|
|
73
|
-
throw new Error('Method not implemented.');
|
|
74
|
-
// this is the async way to get the address using tonweb library
|
|
75
|
-
// but we cannot use it as it is aysnc, there is a getAddressfromPublicKey in utlis.ts
|
|
76
|
-
/*
|
|
77
|
-
const tonweb = new TonWeb(new TonWeb.HttpProvider(''));
|
|
78
|
-
|
|
79
|
-
const WalletClass = tonweb.wallet.all['v4R2'];
|
|
80
|
-
const wallet = new WalletClass(tonweb.provider, {
|
|
81
|
-
publicKey: Buffer.from(this.keyPair.pub),
|
|
82
|
-
wc: 0
|
|
83
|
-
});
|
|
84
|
-
const address = await wallet.getAddress();
|
|
85
|
-
return address.toString(true, true, true);
|
|
86
|
-
*/
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Sign the message in Uint8Array
|
|
90
|
-
*
|
|
91
|
-
* @param {Uint8Array} message to be signed
|
|
92
|
-
* @returns {Uint8Array} signed message
|
|
93
|
-
*/
|
|
94
|
-
signMessageinUint8Array(message) {
|
|
95
|
-
const { prv } = this.keyPair;
|
|
96
|
-
if (!prv) {
|
|
97
|
-
throw new Error('Missing private key');
|
|
98
|
-
}
|
|
99
|
-
return nacl.sign.detached(message, nacl.sign.keyPair.fromSeed((0, sdk_core_1.toUint8Array)(prv)).secretKey);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
exports.KeyPair = KeyPair;
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5UGFpci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIva2V5UGFpci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBNEY7QUFDNUYsb0RBQTRCO0FBQzVCLGdEQUFrQztBQUVsQyxNQUFhLE9BQVEsU0FBUSx5QkFBYztJQUN6Qzs7OztPQUlHO0lBQ0gsWUFBWSxNQUF1QjtRQUNqQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixPQUFPO1FBQ0wsTUFBTSxNQUFNLEdBQWdCLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEQsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDaEMsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsd0NBQXdDLENBQUMsR0FBVztRQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQix1Q0FBdUMsQ0FBQyxHQUFXO1FBQ2pELElBQUksQ0FBQyxlQUFLLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFFRCxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixVQUFVO1FBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBRTNDLGdFQUFnRTtRQUNoRSxzRkFBc0Y7UUFDdEY7Ozs7Ozs7Ozs7VUFVRTtJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHVCQUF1QixDQUFDLE9BQW1CO1FBQ3pDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNULE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN6QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUEsdUJBQVksRUFBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7Q0FDRjtBQWpFRCwwQkFpRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZWZhdWx0S2V5cywgRWQyNTUxOUtleVBhaXIsIEtleVBhaXJPcHRpb25zLCB0b1VpbnQ4QXJyYXkgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICogYXMgbmFjbCBmcm9tICd0d2VldG5hY2wnO1xuXG5leHBvcnQgY2xhc3MgS2V5UGFpciBleHRlbmRzIEVkMjU1MTlLZXlQYWlyIHtcbiAgLyoqXG4gICAqIFB1YmxpYyBjb25zdHJ1Y3Rvci4gQnkgZGVmYXVsdCwgY3JlYXRlcyBhIGtleSBwYWlyIHdpdGggYSByYW5kb20gbWFzdGVyIHNlZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7IEtleVBhaXJPcHRpb25zIH0gc291cmNlIEVpdGhlciBhIG1hc3RlciBzZWVkLCBhIHByaXZhdGUga2V5LCBvciBhIHB1YmxpYyBrZXlcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNvdXJjZT86IEtleVBhaXJPcHRpb25zKSB7XG4gICAgc3VwZXIoc291cmNlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRLZXlzKCk6IERlZmF1bHRLZXlzIHtcbiAgICBjb25zdCByZXN1bHQ6IERlZmF1bHRLZXlzID0geyBwdWI6IHRoaXMua2V5UGFpci5wdWIgfTtcbiAgICBpZiAodGhpcy5rZXlQYWlyLnBydikge1xuICAgICAgcmVzdWx0LnBydiA9IHRoaXMua2V5UGFpci5wcnY7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21Qcml2YXRlS2V5SW5Qcm90b2NvbEZvcm1hdChwcnY6IHN0cmluZyk6IERlZmF1bHRLZXlzIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcmVjb3JkS2V5c0Zyb21QdWJsaWNLZXlJblByb3RvY29sRm9ybWF0KHB1Yjogc3RyaW5nKTogRGVmYXVsdEtleXMge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZFB1YmxpY0tleShwdWIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgUHVibGljIEtleSAke3B1Yn1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBwdWIgfTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuXG4gICAgLy8gdGhpcyBpcyB0aGUgYXN5bmMgd2F5IHRvIGdldCB0aGUgYWRkcmVzcyB1c2luZyB0b253ZWIgbGlicmFyeVxuICAgIC8vIGJ1dCB3ZSBjYW5ub3QgdXNlIGl0IGFzIGl0IGlzIGF5c25jLCB0aGVyZSBpcyBhIGdldEFkZHJlc3Nmcm9tUHVibGljS2V5IGluIHV0bGlzLnRzXG4gICAgLypcbiAgICBjb25zdCB0b253ZWIgPSBuZXcgVG9uV2ViKG5ldyBUb25XZWIuSHR0cFByb3ZpZGVyKCcnKSk7XG5cbiAgICBjb25zdCBXYWxsZXRDbGFzcyA9IHRvbndlYi53YWxsZXQuYWxsWyd2NFIyJ107XG4gICAgY29uc3Qgd2FsbGV0ID0gbmV3IFdhbGxldENsYXNzKHRvbndlYi5wcm92aWRlciwge1xuICAgICAgcHVibGljS2V5OiBCdWZmZXIuZnJvbSh0aGlzLmtleVBhaXIucHViKSxcbiAgICAgIHdjOiAwXG4gICAgfSk7XG4gICAgY29uc3QgYWRkcmVzcyA9IGF3YWl0IHdhbGxldC5nZXRBZGRyZXNzKCk7XG4gICAgcmV0dXJuIGFkZHJlc3MudG9TdHJpbmcodHJ1ZSwgdHJ1ZSwgdHJ1ZSk7XG4gICAgKi9cbiAgfVxuXG4gIC8qKlxuICAgKiAgU2lnbiB0aGUgbWVzc2FnZSBpbiBVaW50OEFycmF5XG4gICAqXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gbWVzc2FnZSB0byBiZSBzaWduZWRcbiAgICogQHJldHVybnMge1VpbnQ4QXJyYXl9IHNpZ25lZCBtZXNzYWdlXG4gICAqL1xuICBzaWduTWVzc2FnZWluVWludDhBcnJheShtZXNzYWdlOiBVaW50OEFycmF5KTogVWludDhBcnJheSB7XG4gICAgY29uc3QgeyBwcnYgfSA9IHRoaXMua2V5UGFpcjtcbiAgICBpZiAoIXBydikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gICAgfVxuICAgIHJldHVybiBuYWNsLnNpZ24uZGV0YWNoZWQobWVzc2FnZSwgbmFjbC5zaWduLmtleVBhaXIuZnJvbVNlZWQodG9VaW50OEFycmF5KHBydikpLnNlY3JldEtleSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SingleNominatorWithdrawBuilder = void 0;
|
|
4
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
5
|
-
const transactionBuilder_1 = require("./transactionBuilder");
|
|
6
|
-
const transaction_1 = require("./transaction");
|
|
7
|
-
const constants_1 = require("./constants");
|
|
8
|
-
class SingleNominatorWithdrawBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
9
|
-
constructor(_coinConfig) {
|
|
10
|
-
super(_coinConfig);
|
|
11
|
-
this._transaction = new transaction_1.Transaction(_coinConfig);
|
|
12
|
-
}
|
|
13
|
-
get transactionType() {
|
|
14
|
-
return sdk_core_1.TransactionType.SingleNominatorWithdraw;
|
|
15
|
-
}
|
|
16
|
-
setWithdrawAmount(amount) {
|
|
17
|
-
this.transaction.withdrawAmount = amount;
|
|
18
|
-
return this;
|
|
19
|
-
}
|
|
20
|
-
send(recipient) {
|
|
21
|
-
this.transaction.recipient = recipient;
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Sets the message to withdraw everything from the single nominator contract.
|
|
26
|
-
* Uses a plain transfer with text comment "w" which instructs the contract to
|
|
27
|
-
* drain balance - gas - MIN_TON_FOR_STORAGE automatically.
|
|
28
|
-
*/
|
|
29
|
-
setFullWithdrawalMessage() {
|
|
30
|
-
this.transaction.message = constants_1.SINGLE_NOMINATOR_WITHDRAW_ALL_COMMENT;
|
|
31
|
-
return this;
|
|
32
|
-
}
|
|
33
|
-
setMessage(msg) {
|
|
34
|
-
throw new Error('Method not implemented.');
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.SingleNominatorWithdrawBuilder = SingleNominatorWithdrawBuilder;
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlTm9taW5hdG9yV2l0aGRyYXdCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zaW5nbGVOb21pbmF0b3JXaXRoZHJhd0J1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsOENBQTZEO0FBQzdELDZEQUEwRDtBQUMxRCwrQ0FBNEM7QUFDNUMsMkNBQW9FO0FBRXBFLE1BQWEsOEJBQStCLFNBQVEsdUNBQWtCO0lBQ3BFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLHVCQUF1QixDQUFDO0lBQ2pELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFjO1FBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztRQUN6QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBb0I7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCx3QkFBd0I7UUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEdBQUcsaURBQXFDLENBQUM7UUFDakUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVc7UUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQWpDRCx3RUFpQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgUmVjaXBpZW50LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFNJTkdMRV9OT01JTkFUT1JfV0lUSERSQVdfQUxMX0NPTU1FTlQgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBTaW5nbGVOb21pbmF0b3JXaXRoZHJhd0J1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNpbmdsZU5vbWluYXRvcldpdGhkcmF3O1xuICB9XG5cbiAgc2V0V2l0aGRyYXdBbW91bnQoYW1vdW50OiBzdHJpbmcpOiBTaW5nbGVOb21pbmF0b3JXaXRoZHJhd0J1aWxkZXIge1xuICAgIHRoaXMudHJhbnNhY3Rpb24ud2l0aGRyYXdBbW91bnQgPSBhbW91bnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZW5kKHJlY2lwaWVudDogUmVjaXBpZW50KTogU2luZ2xlTm9taW5hdG9yV2l0aGRyYXdCdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnJlY2lwaWVudCA9IHJlY2lwaWVudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBtZXNzYWdlIHRvIHdpdGhkcmF3IGV2ZXJ5dGhpbmcgZnJvbSB0aGUgc2luZ2xlIG5vbWluYXRvciBjb250cmFjdC5cbiAgICogVXNlcyBhIHBsYWluIHRyYW5zZmVyIHdpdGggdGV4dCBjb21tZW50IFwid1wiIHdoaWNoIGluc3RydWN0cyB0aGUgY29udHJhY3QgdG9cbiAgICogZHJhaW4gYmFsYW5jZSAtIGdhcyAtIE1JTl9UT05fRk9SX1NUT1JBR0UgYXV0b21hdGljYWxseS5cbiAgICovXG4gIHNldEZ1bGxXaXRoZHJhd2FsTWVzc2FnZSgpOiBTaW5nbGVOb21pbmF0b3JXaXRoZHJhd0J1aWxkZXIge1xuICAgIHRoaXMudHJhbnNhY3Rpb24ubWVzc2FnZSA9IFNJTkdMRV9OT01JTkFUT1JfV0lUSERSQVdfQUxMX0NPTU1FTlQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRNZXNzYWdlKG1zZzogc3RyaW5nKTogU2luZ2xlTm9taW5hdG9yV2l0aGRyYXdCdWlsZGVyIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.TokenTransaction = void 0;
|
|
7
|
-
const tonweb_1 = __importDefault(require("tonweb"));
|
|
8
|
-
const bn_js_1 = require("bn.js");
|
|
9
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
10
|
-
const transaction_1 = require("./transaction");
|
|
11
|
-
const constants_1 = require("./constants");
|
|
12
|
-
class TokenTransaction extends transaction_1.Transaction {
|
|
13
|
-
constructor(coinConfig) {
|
|
14
|
-
super(coinConfig);
|
|
15
|
-
}
|
|
16
|
-
toJson() {
|
|
17
|
-
const json = super.toJson();
|
|
18
|
-
return {
|
|
19
|
-
...json,
|
|
20
|
-
forwardTonAmount: this.forwardTonAmount,
|
|
21
|
-
senderJettonWalletAddress: this.senderJettonWalletAddress,
|
|
22
|
-
tonAmount: this.tonAmount,
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
createJettonTransferPayload(jettonAmount, toAddress, forwardTonAmount, comment) {
|
|
26
|
-
const forwardPayload = new tonweb_1.default.boc.Cell();
|
|
27
|
-
if (comment) {
|
|
28
|
-
forwardPayload.bits.writeUint(0, 32);
|
|
29
|
-
forwardPayload.bits.writeString(comment);
|
|
30
|
-
}
|
|
31
|
-
const payload = new tonweb_1.default.boc.Cell();
|
|
32
|
-
payload.bits.writeUint(constants_1.JETTON_TRANSFER_OPCODE, 32); // Store Jetton transfer op code
|
|
33
|
-
payload.bits.writeUint(0, 64); // query_id
|
|
34
|
-
payload.bits.writeCoins(new bn_js_1.BN(jettonAmount)); // Jetton amount to transfer
|
|
35
|
-
payload.bits.writeAddress(new tonweb_1.default.Address(toAddress)); // recipient's TON wallet address
|
|
36
|
-
payload.bits.writeAddress(new tonweb_1.default.Address(this.sender)); // response_destination for sending excess TON (excess is returned back to the sender)
|
|
37
|
-
payload.bits.writeBit(false); // No custom payload
|
|
38
|
-
payload.bits.writeCoins(new bn_js_1.BN(forwardTonAmount)); // forward_ton_amount to pay fees
|
|
39
|
-
payload.bits.writeBit(true); // Forward payload exists as a reference
|
|
40
|
-
payload.refs.push(forwardPayload); // Add forward payload as a reference
|
|
41
|
-
return payload;
|
|
42
|
-
}
|
|
43
|
-
async build() {
|
|
44
|
-
const jettonTransferPayload = this.createJettonTransferPayload(this.recipient.amount, this.recipient.address, this.forwardTonAmount, this.message);
|
|
45
|
-
const signingMessage = this.createSigningMessage(constants_1.WALLET_ID, this.seqno, this.expireTime);
|
|
46
|
-
const sendMode = 3;
|
|
47
|
-
signingMessage.bits.writeUint8(sendMode);
|
|
48
|
-
const outMsg = this.createOutMsg(this.senderJettonWalletAddress, this.tonAmount, jettonTransferPayload);
|
|
49
|
-
signingMessage.refs.push(outMsg);
|
|
50
|
-
this.unsignedMessage = Buffer.from(await signingMessage.hash()).toString('hex');
|
|
51
|
-
const signature = this._signatures.length > 0 ? this._signatures[0] : Buffer.from(new Uint8Array(64)).toString('hex');
|
|
52
|
-
const finalMessage = await this.createExternalMessage(signingMessage, this.seqno, signature);
|
|
53
|
-
this.finalMessage = tonweb_1.default.utils.bytesToBase64(await finalMessage.toBoc(false));
|
|
54
|
-
const originalTxId = tonweb_1.default.utils.bytesToBase64(await finalMessage.hash());
|
|
55
|
-
this._id = originalTxId.replace(/\//g, '_').replace(/\+/g, '-');
|
|
56
|
-
}
|
|
57
|
-
fromRawTransaction(rawTransaction) {
|
|
58
|
-
try {
|
|
59
|
-
const cell = tonweb_1.default.boc.Cell.oneFromBoc(tonweb_1.default.utils.base64ToBytes(rawTransaction));
|
|
60
|
-
const parsed = this.parseTransaction(cell);
|
|
61
|
-
this.transactionType = sdk_core_1.TransactionType.SendToken;
|
|
62
|
-
this.sender = parsed.fromAddress;
|
|
63
|
-
this.recipient = { address: parsed.payload.jettonRecipient, amount: parsed.payload.jettonAmount };
|
|
64
|
-
this.tonAmount = parsed.value;
|
|
65
|
-
this.forwardTonAmount = parsed.payload.forwardTonAmount;
|
|
66
|
-
this.senderJettonWalletAddress = parsed.toAddress;
|
|
67
|
-
this.seqno = parsed.seqno;
|
|
68
|
-
this.publicKey = parsed.publicKey;
|
|
69
|
-
this.expireTime = parsed.expireAt;
|
|
70
|
-
this.message = parsed.payload.message;
|
|
71
|
-
this._signatures.push(parsed.signature);
|
|
72
|
-
this.bounceable = parsed.bounce;
|
|
73
|
-
}
|
|
74
|
-
catch (e) {
|
|
75
|
-
throw new Error('invalid raw transaction');
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/** @inheritDoc */
|
|
79
|
-
explainTransaction() {
|
|
80
|
-
const displayOrder = ['id', 'outputs', 'outputAmount', 'changeOutputs', 'changeAmount', 'fee', 'withdrawAmount'];
|
|
81
|
-
const outputs = [this.recipient];
|
|
82
|
-
const outputAmount = this.recipient.amount;
|
|
83
|
-
const withdrawAmount = this.withdrawAmount;
|
|
84
|
-
return {
|
|
85
|
-
displayOrder,
|
|
86
|
-
id: this.id,
|
|
87
|
-
outputs,
|
|
88
|
-
outputAmount,
|
|
89
|
-
changeOutputs: [],
|
|
90
|
-
changeAmount: '0',
|
|
91
|
-
fee: { fee: 'UNKNOWN' },
|
|
92
|
-
withdrawAmount,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
exports.TokenTransaction = TokenTransaction;
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2FjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdG9rZW5UcmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsaUNBQTJCO0FBRTNCLDhDQUF3RTtBQUd4RSwrQ0FBNEM7QUFDNUMsMkNBQWdFO0FBRWhFLE1BQWEsZ0JBQWlCLFNBQVEseUJBQVc7SUFLL0MsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU07UUFDSixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDNUIsT0FBTztZQUNMLEdBQUcsSUFBSTtZQUNQLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDdkMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLHlCQUF5QjtZQUN6RCxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7U0FDaEIsQ0FBQztJQUNkLENBQUM7SUFFTywyQkFBMkIsQ0FDakMsWUFBb0IsRUFDcEIsU0FBaUIsRUFDakIsZ0JBQXdCLEVBQ3hCLE9BQWdCO1FBRWhCLE1BQU0sY0FBYyxHQUFHLElBQUksZ0JBQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0MsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNyQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxnQkFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQ0FBc0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGdDQUFnQztR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QUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUNsQyxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQkFBa0I7UUFDaEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWpILE1BQU0sT0FBTyxHQUEyQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUMzQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQzNDLE9BQU87WUFDTCxZQUFZO1lBQ1osRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1lBQ1gsT0FBTztZQUNQLFlBQVk7WUFDWixhQUFhLEVBQUUsRUFBRTtZQUNqQixZQUFZLEVBQUUsR0FBRztZQUNqQixHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFO1lBQ3ZCLGNBQWM7U0FDZixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBL0dELDRDQStHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBUb25XZWIgZnJvbSAndG9ud2ViJztcbmltcG9ydCB7IEJOIH0gZnJvbSAnYm4uanMnO1xuaW1wb3J0IHsgQ2VsbCB9IGZyb20gJ3RvbndlYi9kaXN0L3R5cGVzL2JvYy9jZWxsJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUmVjaXBpZW50LCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sIFR4RGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IEpFVFRPTl9UUkFOU0ZFUl9PUENPREUsIFdBTExFVF9JRCB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuZXhwb3J0IGNsYXNzIFRva2VuVHJhbnNhY3Rpb24gZXh0ZW5kcyBUcmFuc2FjdGlvbiB7XG4gIHB1YmxpYyBmb3J3YXJkVG9uQW1vdW50OiBzdHJpbmc7IC8vIGZvciBjb3ZlcmluZyBmb3J3YXJkIGZlZXMgZm9yIG5vdGlmeSB0cmFuc2ZlclxuICBwdWJsaWMgc2VuZGVySmV0dG9uV2FsbGV0QWRkcmVzczogc3RyaW5nOyAvLyB0aGUgc2VuZGVyJ3MgSmV0dG9uIHdhbGxldCBhZGRyZXNzXG4gIHB1YmxpYyB0b25BbW91bnQ6IHN0cmluZzsgLy8gYW1vdW50IG9mIFRPTiBzZW50IHRvIHRoZSBzZW5kZXIncyBKZXR0b24gd2FsbGV0XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGNvbnN0IGpzb24gPSBzdXBlci50b0pzb24oKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uanNvbixcbiAgICAgIGZvcndhcmRUb25BbW91bnQ6IHRoaXMuZm9yd2FyZFRvbkFtb3VudCxcbiAgICAgIHNlbmRlckpldHRvbldhbGxldEFkZHJlc3M6IHRoaXMuc2VuZGVySmV0dG9uV2FsbGV0QWRkcmVzcyxcbiAgICAgIHRvbkFtb3VudDogdGhpcy50b25BbW91bnQsXG4gICAgfSBhcyBUeERhdGE7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUpldHRvblRyYW5zZmVyUGF5bG9hZChcbiAgICBqZXR0b25BbW91bnQ6IHN0cmluZyxcbiAgICB0b0FkZHJlc3M6IHN0cmluZyxcbiAgICBmb3J3YXJkVG9uQW1vdW50OiBzdHJpbmcsXG4gICAgY29tbWVudD86IHN0cmluZ1xuICApOiBDZWxsIHtcbiAgICBjb25zdCBmb3J3YXJkUGF5bG9hZCA9IG5ldyBUb25XZWIuYm9jLkNlbGwoKTtcbiAgICBpZiAoY29tbWVudCkge1xuICAgICAgZm9yd2FyZFBheWxvYWQuYml0cy53cml0ZVVpbnQoMCwgMzIpO1xuICAgICAgZm9yd2FyZFBheWxvYWQuYml0cy53cml0ZVN0cmluZyhjb21tZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCBwYXlsb2FkID0gbmV3IFRvbldlYi5ib2MuQ2VsbCgpO1xuICAgIHBheWxvYWQuYml0cy53cml0ZVVpbnQoSkVUVE9OX1RSQU5TRkVSX09QQ09ERSwgMzIpOyAvLyBTdG9yZSBKZXR0b24gdHJhbnNmZXIgb3AgY29kZVxuICAgIHBheWxvYWQuYml0cy53cml0ZVVpbnQoMCwgNjQpOyAvLyBxdWVyeV9pZFxuICAgIHBheWxvYWQuYml0cy53cml0ZUNvaW5zKG5ldyBCTihqZXR0b25BbW91bnQpKTsgLy8gSmV0dG9uIGFtb3VudCB0byB0cmFuc2ZlclxuICAgIHBheWxvYWQuYml0cy53cml0ZUFkZHJlc3MobmV3IFRvbldlYi5BZGRyZXNzKHRvQWRkcmVzcykpOyAvLyByZWNpcGllbnQncyBUT04gd2FsbGV0IGFkZHJlc3NcbiAgICBwYXlsb2FkLmJpdHMud3JpdGVBZGRyZXNzKG5ldyBUb25XZWIuQWRkcmVzcyh0aGlzLnNlbmRlcikpOyAvLyByZXNwb25zZV9kZXN0aW5hdGlvbiBmb3Igc2VuZGluZyBleGNlc3MgVE9OIChleGNlc3MgaXMgcmV0dXJuZWQgYmFjayB0byB0aGUgc2VuZGVyKVxuICAgIHBheWxvYWQuYml0cy53cml0ZUJpdChmYWxzZSk7IC8vIE5vIGN1c3RvbSBwYXlsb2FkXG4gICAgcGF5bG9hZC5iaXRzLndyaXRlQ29pbnMobmV3IEJOKGZvcndhcmRUb25BbW91bnQpKTsgLy8gZm9yd2FyZF90b25fYW1vdW50IHRvIHBheSBmZWVzXG4gICAgcGF5bG9hZC5iaXRzLndyaXRlQml0KHRydWUpOyAvLyBGb3J3YXJkIHBheWxvYWQgZXhpc3RzIGFzIGEgcmVmZXJlbmNlXG4gICAgcGF5bG9hZC5yZWZzLnB1c2goZm9yd2FyZFBheWxvYWQpOyAvLyBBZGQgZm9yd2FyZCBwYXlsb2FkIGFzIGEgcmVmZXJlbmNlXG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfVxuXG4gIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGpldHRvblRyYW5zZmVyUGF5bG9hZCA9IHRoaXMuY3JlYXRlSmV0dG9uVHJhbnNmZXJQYXlsb2FkKFxuICAgICAgdGhpcy5yZWNpcGllbnQuYW1vdW50LFxuICAgICAgdGhpcy5yZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgIHRoaXMuZm9yd2FyZFRvbkFtb3VudCxcbiAgICAgIHRoaXMubWVzc2FnZVxuICAgICk7XG5cbiAgICBjb25zdCBzaWduaW5nTWVzc2FnZSA9IHRoaXMuY3JlYXRlU2lnbmluZ01lc3NhZ2UoV0FMTEVUX0lELCB0aGlzLnNlcW5vLCB0aGlzLmV4cGlyZVRpbWUpO1xuICAgIGNvbnN0IHNlbmRNb2RlID0gMztcbiAgICBzaWduaW5nTWVzc2FnZS5iaXRzLndyaXRlVWludDgoc2VuZE1vZGUpO1xuICAgIGNvbnN0IG91dE1zZyA9IHRoaXMuY3JlYXRlT3V0TXNnKHRoaXMuc2VuZGVySmV0dG9uV2FsbGV0QWRkcmVzcywgdGhpcy50b25BbW91bnQsIGpldHRvblRyYW5zZmVyUGF5bG9hZCk7XG5cbiAgICBzaWduaW5nTWVzc2FnZS5yZWZzLnB1c2gob3V0TXNnKTtcbiAgICB0aGlzLnVuc2lnbmVkTWVzc2FnZSA9IEJ1ZmZlci5mcm9tKGF3YWl0IHNpZ25pbmdNZXNzYWdlLmhhc2goKSkudG9TdHJpbmcoJ2hleCcpO1xuXG4gICAgY29uc3Qgc2lnbmF0dXJlID1cbiAgICAgIHRoaXMuX3NpZ25hdHVyZXMubGVuZ3RoID4gMCA/IHRoaXMuX3NpZ25hdHVyZXNbMF0gOiBCdWZmZXIuZnJvbShuZXcgVWludDhBcnJheSg2NCkpLnRvU3RyaW5nKCdoZXgnKTtcbiAgICBjb25zdCBmaW5hbE1lc3NhZ2UgPSBhd2FpdCB0aGlzLmNyZWF0ZUV4dGVybmFsTWVzc2FnZShzaWduaW5nTWVzc2FnZSwgdGhpcy5zZXFubywgc2lnbmF0dXJlKTtcblxuICAgIHRoaXMuZmluYWxNZXNzYWdlID0gVG9uV2ViLnV0aWxzLmJ5dGVzVG9CYXNlNjQoYXdhaXQgZmluYWxNZXNzYWdlLnRvQm9jKGZhbHNlKSk7XG5cbiAgICBjb25zdCBvcmlnaW5hbFR4SWQgPSBUb25XZWIudXRpbHMuYnl0ZXNUb0Jhc2U2NChhd2FpdCBmaW5hbE1lc3NhZ2UuaGFzaCgpKTtcbiAgICB0aGlzLl9pZCA9IG9yaWdpbmFsVHhJZC5yZXBsYWNlKC9cXC8vZywgJ18nKS5yZXBsYWNlKC9cXCsvZywgJy0nKTtcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNlbGwgPSBUb25XZWIuYm9jLkNlbGwub25lRnJvbUJvYyhUb25XZWIudXRpbHMuYmFzZTY0VG9CeXRlcyhyYXdUcmFuc2FjdGlvbikpO1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZVRyYW5zYWN0aW9uKGNlbGwpO1xuXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uVHlwZSA9IFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW47XG4gICAgICB0aGlzLnNlbmRlciA9IHBhcnNlZC5mcm9tQWRkcmVzcztcbiAgICAgIHRoaXMucmVjaXBpZW50ID0geyBhZGRyZXNzOiBwYXJzZWQucGF5bG9hZC5qZXR0b25SZWNpcGllbnQsIGFtb3VudDogcGFyc2VkLnBheWxvYWQuamV0dG9uQW1vdW50IH07XG4gICAgICB0aGlzLnRvbkFtb3VudCA9IHBhcnNlZC52YWx1ZTtcbiAgICAgIHRoaXMuZm9yd2FyZFRvbkFtb3VudCA9IHBhcnNlZC5wYXlsb2FkLmZvcndhcmRUb25BbW91bnQ7XG4gICAgICB0aGlzLnNlbmRlckpldHRvbldhbGxldEFkZHJlc3MgPSBwYXJzZWQudG9BZGRyZXNzO1xuICAgICAgdGhpcy5zZXFubyA9IHBhcnNlZC5zZXFubztcbiAgICAgIHRoaXMucHVibGljS2V5ID0gcGFyc2VkLnB1YmxpY0tleSBhcyBzdHJpbmc7XG4gICAgICB0aGlzLmV4cGlyZVRpbWUgPSBwYXJzZWQuZXhwaXJlQXQ7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSBwYXJzZWQucGF5bG9hZC5tZXNzYWdlO1xuICAgICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHBhcnNlZC5zaWduYXR1cmUpO1xuICAgICAgdGhpcy5ib3VuY2VhYmxlID0gcGFyc2VkLmJvdW5jZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCBkaXNwbGF5T3JkZXIgPSBbJ2lkJywgJ291dHB1dHMnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZU91dHB1dHMnLCAnY2hhbmdlQW1vdW50JywgJ2ZlZScsICd3aXRoZHJhd0Ftb3VudCddO1xuXG4gICAgY29uc3Qgb3V0cHV0czogVHJhbnNhY3Rpb25SZWNpcGllbnRbXSA9IFt0aGlzLnJlY2lwaWVudF07XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50ID0gdGhpcy5yZWNpcGllbnQuYW1vdW50O1xuICAgIGNvbnN0IHdpdGhkcmF3QW1vdW50ID0gdGhpcy53aXRoZHJhd0Ftb3VudDtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50LFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6ICdVTktOT1dOJyB9LFxuICAgICAgd2l0aGRyYXdBbW91bnQsXG4gICAgfTtcbiAgfVxufVxuIl19
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TokenTransferBuilder = void 0;
|
|
4
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
5
|
-
const transactionBuilder_1 = require("./transactionBuilder");
|
|
6
|
-
const tokenTransaction_1 = require("./tokenTransaction");
|
|
7
|
-
class TokenTransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
8
|
-
constructor(coinConfig) {
|
|
9
|
-
super(coinConfig);
|
|
10
|
-
this._transaction = new tokenTransaction_1.TokenTransaction(coinConfig);
|
|
11
|
-
}
|
|
12
|
-
get transactionType() {
|
|
13
|
-
return sdk_core_1.TransactionType.SendToken;
|
|
14
|
-
}
|
|
15
|
-
/** @inheritdoc */
|
|
16
|
-
fromImplementation(rawTransaction) {
|
|
17
|
-
this.transaction.transactionType = sdk_core_1.TransactionType.SendToken;
|
|
18
|
-
this.transaction.fromRawTransaction(rawTransaction);
|
|
19
|
-
return this.transaction;
|
|
20
|
-
}
|
|
21
|
-
/** @inheritdoc */
|
|
22
|
-
async buildImplementation() {
|
|
23
|
-
this.transaction.transactionType = sdk_core_1.TransactionType.SendToken;
|
|
24
|
-
await this.transaction.build();
|
|
25
|
-
this.transaction.loadInputsAndOutputs();
|
|
26
|
-
return this.transaction;
|
|
27
|
-
}
|
|
28
|
-
setForwardTonAmount(amount) {
|
|
29
|
-
this.transaction.forwardTonAmount = amount;
|
|
30
|
-
return this;
|
|
31
|
-
}
|
|
32
|
-
setSenderJettonWalletAddress(address) {
|
|
33
|
-
this.transaction.senderJettonWalletAddress = address;
|
|
34
|
-
return this;
|
|
35
|
-
}
|
|
36
|
-
setTonAmount(amount) {
|
|
37
|
-
this.transaction.tonAmount = amount;
|
|
38
|
-
return this;
|
|
39
|
-
}
|
|
40
|
-
// recipient method to handle both TON and token amounts
|
|
41
|
-
recipient(address, senderJettonWalletAddress, tonAmount, jettonAmount, forwardTonAmount) {
|
|
42
|
-
this._transaction.recipient = {
|
|
43
|
-
address: address,
|
|
44
|
-
amount: jettonAmount, // Jetton amount to be transferred
|
|
45
|
-
};
|
|
46
|
-
this._transaction.senderJettonWalletAddress = senderJettonWalletAddress; // The sender's Jetton wallet address
|
|
47
|
-
this._transaction.tonAmount = tonAmount; // TON amount sent to the sender's Jetton wallet
|
|
48
|
-
this._transaction.forwardTonAmount = forwardTonAmount; // TON amount to cover forward fees in case of notify transfer
|
|
49
|
-
return this;
|
|
50
|
-
}
|
|
51
|
-
send(recipient) {
|
|
52
|
-
this.transaction.recipient = recipient;
|
|
53
|
-
return this;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
exports.TokenTransferBuilder = TokenTransferBuilder;
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5UcmFuc2ZlckJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Rva2VuVHJhbnNmZXJCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQUE2RDtBQUU3RCw2REFBMEQ7QUFDMUQseURBQXNEO0FBR3RELE1BQWEsb0JBQXFCLFNBQVEsdUNBQWtCO0lBRzFELFlBQVksVUFBZ0M7UUFDMUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxtQ0FBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxTQUFTLENBQUM7SUFDbkMsQ0FBQztJQUVELGtCQUFrQjtJQUNSLGtCQUFrQixDQUFDLGNBQXNCO1FBQ2pELElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxHQUFHLDBCQUFlLENBQUMsU0FBUyxDQUFDO1FBQzdELElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxHQUFHLDBCQUFlLENBQUMsU0FBUyxDQUFDO1FBQzdELE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFjO1FBQy9CLElBQUksQ0FBQyxXQUFnQyxDQUFDLGdCQUFnQixHQUFHLE1BQU0sQ0FBQztRQUNqRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCw0QkFBNEIsQ0FBQyxPQUFlO1FBQ3pDLElBQUksQ0FBQyxXQUFnQyxDQUFDLHlCQUF5QixHQUFHLE9BQU8sQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN4QixJQUFJLENBQUMsV0FBZ0MsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxTQUFTLENBQ1AsT0FBZSxFQUNmLHlCQUFpQyxFQUNqQyxTQUFpQixFQUNqQixZQUFvQixFQUNwQixnQkFBd0I7UUFFeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLEdBQUc7WUFDNUIsT0FBTyxFQUFFLE9BQU87WUFDaEIsTUFBTSxFQUFFLFlBQVksRUFBRSxrQ0FBa0M7U0FDekQsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFpQyxDQUFDLHlCQUF5QixHQUFHLHlCQUF5QixDQUFDLENBQUMscUNBQXFDO1FBQ25JLElBQUksQ0FBQyxZQUFpQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsQ0FBQyxnREFBZ0Q7UUFDOUcsSUFBSSxDQUFDLFlBQWlDLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyw4REFBOEQ7UUFDM0ksT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxDQUFDLFNBQW9CO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRjtBQWhFRCxvREFnRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIFJlY2lwaWVudCB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVG9rZW5UcmFuc2FjdGlvbiB9IGZyb20gJy4vdG9rZW5UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgY2xhc3MgVG9rZW5UcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3RyYW5zYWN0aW9uOiBUb2tlblRyYW5zYWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVG9rZW5UcmFuc2FjdGlvbihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW47XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlID0gVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbjtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkSW1wbGVtZW50YXRpb24oKTogUHJvbWlzZTxUcmFuc2FjdGlvbj4ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlID0gVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbjtcbiAgICBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uLmJ1aWxkKCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0Rm9yd2FyZFRvbkFtb3VudChhbW91bnQ6IHN0cmluZyk6IFRva2VuVHJhbnNmZXJCdWlsZGVyIHtcbiAgICAodGhpcy50cmFuc2FjdGlvbiBhcyBUb2tlblRyYW5zYWN0aW9uKS5mb3J3YXJkVG9uQW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0U2VuZGVySmV0dG9uV2FsbGV0QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBUb2tlblRyYW5zZmVyQnVpbGRlciB7XG4gICAgKHRoaXMudHJhbnNhY3Rpb24gYXMgVG9rZW5UcmFuc2FjdGlvbikuc2VuZGVySmV0dG9uV2FsbGV0QWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRUb25BbW91bnQoYW1vdW50OiBzdHJpbmcpOiBUb2tlblRyYW5zZmVyQnVpbGRlciB7XG4gICAgKHRoaXMudHJhbnNhY3Rpb24gYXMgVG9rZW5UcmFuc2FjdGlvbikudG9uQW1vdW50ID0gYW1vdW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLy8gcmVjaXBpZW50IG1ldGhvZCB0byBoYW5kbGUgYm90aCBUT04gYW5kIHRva2VuIGFtb3VudHNcbiAgcmVjaXBpZW50KFxuICAgIGFkZHJlc3M6IHN0cmluZyxcbiAgICBzZW5kZXJKZXR0b25XYWxsZXRBZGRyZXNzOiBzdHJpbmcsXG4gICAgdG9uQW1vdW50OiBzdHJpbmcsXG4gICAgamV0dG9uQW1vdW50OiBzdHJpbmcsXG4gICAgZm9yd2FyZFRvbkFtb3VudDogc3RyaW5nXG4gICk6IFRva2VuVHJhbnNmZXJCdWlsZGVyIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5yZWNpcGllbnQgPSB7XG4gICAgICBhZGRyZXNzOiBhZGRyZXNzLFxuICAgICAgYW1vdW50OiBqZXR0b25BbW91bnQsIC8vIEpldHRvbiBhbW91bnQgdG8gYmUgdHJhbnNmZXJyZWRcbiAgICB9O1xuICAgICh0aGlzLl90cmFuc2FjdGlvbiBhcyBUb2tlblRyYW5zYWN0aW9uKS5zZW5kZXJKZXR0b25XYWxsZXRBZGRyZXNzID0gc2VuZGVySmV0dG9uV2FsbGV0QWRkcmVzczsgLy8gVGhlIHNlbmRlcidzIEpldHRvbiB3YWxsZXQgYWRkcmVzc1xuICAgICh0aGlzLl90cmFuc2FjdGlvbiBhcyBUb2tlblRyYW5zYWN0aW9uKS50b25BbW91bnQgPSB0b25BbW91bnQ7IC8vIFRPTiBhbW91bnQgc2VudCB0byB0aGUgc2VuZGVyJ3MgSmV0dG9uIHdhbGxldFxuICAgICh0aGlzLl90cmFuc2FjdGlvbiBhcyBUb2tlblRyYW5zYWN0aW9uKS5mb3J3YXJkVG9uQW1vdW50ID0gZm9yd2FyZFRvbkFtb3VudDsgLy8gVE9OIGFtb3VudCB0byBjb3ZlciBmb3J3YXJkIGZlZXMgaW4gY2FzZSBvZiBub3RpZnkgdHJhbnNmZXJcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNlbmQocmVjaXBpZW50OiBSZWNpcGllbnQpOiBUb2tlblRyYW5zZmVyQnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQgPSByZWNpcGllbnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TonWhalesDepositBuilder = void 0;
|
|
4
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
5
|
-
const transactionBuilder_1 = require("./transactionBuilder");
|
|
6
|
-
const transaction_1 = require("./transaction");
|
|
7
|
-
const constants_1 = require("./constants");
|
|
8
|
-
class TonWhalesDepositBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
9
|
-
constructor(_coinConfig) {
|
|
10
|
-
super(_coinConfig);
|
|
11
|
-
this._transaction = new transaction_1.Transaction(_coinConfig);
|
|
12
|
-
}
|
|
13
|
-
get transactionType() {
|
|
14
|
-
return sdk_core_1.TransactionType.TonWhalesDeposit;
|
|
15
|
-
}
|
|
16
|
-
setDepositMessage(queryId) {
|
|
17
|
-
// Deposit payload is just OpCode + QueryId.
|
|
18
|
-
// The Amount is in the transaction value (recipient.amount)
|
|
19
|
-
// The Gas Limit is hardcoded in Transaction.ts build()
|
|
20
|
-
const qId = queryId || '0000000000000000';
|
|
21
|
-
this.transaction.message = constants_1.TON_WHALES_DEPOSIT_OPCODE + qId;
|
|
22
|
-
return this;
|
|
23
|
-
}
|
|
24
|
-
setDepositAmount(amount) {
|
|
25
|
-
if (!this.transaction.recipient) {
|
|
26
|
-
this.transaction.recipient = { address: '', amount: amount };
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
this.transaction.recipient.amount = amount;
|
|
30
|
-
}
|
|
31
|
-
return this;
|
|
32
|
-
}
|
|
33
|
-
send(recipient) {
|
|
34
|
-
this.transaction.recipient = recipient;
|
|
35
|
-
return this;
|
|
36
|
-
}
|
|
37
|
-
setMessage(msg) {
|
|
38
|
-
throw new Error('Method not implemented.');
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
exports.TonWhalesDepositBuilder = TonWhalesDepositBuilder;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RvbldoYWxlc0RlcG9zaXRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDhDQUE2RDtBQUM3RCw2REFBMEQ7QUFDMUQsK0NBQTRDO0FBQzVDLDJDQUF3RDtBQUV4RCxNQUFhLHVCQUF3QixTQUFRLHVDQUFrQjtJQUM3RCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxnQkFBZ0IsQ0FBQztJQUMxQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBZ0I7UUFDaEMsNENBQTRDO1FBQzVDLDREQUE0RDtRQUM1RCx1REFBdUQ7UUFDdkQsTUFBTSxHQUFHLEdBQUcsT0FBTyxJQUFJLGtCQUFrQixDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLHFDQUF5QixHQUFHLEdBQUcsQ0FBQztRQUMzRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxNQUFjO1FBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDL0QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxJQUFJLENBQUMsU0FBb0I7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFXO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBQ0Y7QUFwQ0QsMERBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFJlY2lwaWVudCwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUT05fV0hBTEVTX0RFUE9TSVRfT1BDT0RFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgY2xhc3MgVG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlRvbldoYWxlc0RlcG9zaXQ7XG4gIH1cblxuICBzZXREZXBvc2l0TWVzc2FnZShxdWVyeUlkPzogc3RyaW5nKTogVG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIge1xuICAgIC8vIERlcG9zaXQgcGF5bG9hZCBpcyBqdXN0IE9wQ29kZSArIFF1ZXJ5SWQuXG4gICAgLy8gVGhlIEFtb3VudCBpcyBpbiB0aGUgdHJhbnNhY3Rpb24gdmFsdWUgKHJlY2lwaWVudC5hbW91bnQpXG4gICAgLy8gVGhlIEdhcyBMaW1pdCBpcyBoYXJkY29kZWQgaW4gVHJhbnNhY3Rpb24udHMgYnVpbGQoKVxuICAgIGNvbnN0IHFJZCA9IHF1ZXJ5SWQgfHwgJzAwMDAwMDAwMDAwMDAwMDAnO1xuICAgIHRoaXMudHJhbnNhY3Rpb24ubWVzc2FnZSA9IFRPTl9XSEFMRVNfREVQT1NJVF9PUENPREUgKyBxSWQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXREZXBvc2l0QW1vdW50KGFtb3VudDogc3RyaW5nKTogVG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIge1xuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQpIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24ucmVjaXBpZW50ID0geyBhZGRyZXNzOiAnJywgYW1vdW50OiBhbW91bnQgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQuYW1vdW50ID0gYW1vdW50O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNlbmQocmVjaXBpZW50OiBSZWNpcGllbnQpOiBUb25XaGFsZXNEZXBvc2l0QnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQgPSByZWNpcGllbnQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBzZXRNZXNzYWdlKG1zZzogc3RyaW5nKTogVG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXIge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuIl19
|