@bitgo-beta/sdk-coin-ton 1.0.1-beta.192 → 1.0.1-beta.1921
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/{src → cjs/src}/index.d.ts +1 -0
- package/dist/cjs/src/index.d.ts.map +1 -0
- package/dist/{src → cjs/src}/index.js +2 -1
- package/dist/cjs/src/jettonToken.d.ts +19 -0
- 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 +9 -0
- package/dist/cjs/src/lib/constants.d.ts.map +1 -0
- package/dist/cjs/src/lib/constants.js +12 -0
- package/dist/cjs/src/lib/explainTransactionWasm.d.ts +36 -0
- 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 +32 -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 +14 -0
- package/dist/cjs/src/lib/index.d.ts.map +1 -0
- package/dist/cjs/src/lib/index.js +61 -0
- 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 +17 -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 +16 -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 +20 -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 +12 -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 +12 -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 +12 -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 +30 -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 +42 -0
- package/dist/cjs/src/lib/transaction.d.ts.map +1 -0
- package/dist/cjs/src/lib/transaction.js +415 -0
- package/dist/{src → cjs/src}/lib/transactionBuilder.d.ts +27 -3
- 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 +32 -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 +14 -0
- package/dist/cjs/src/lib/transactionExplanation.d.ts.map +1 -0
- package/dist/cjs/src/lib/transactionExplanation.js +3 -0
- package/dist/{src → cjs/src}/lib/transferBuilder.d.ts +1 -1
- 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 +41 -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 +66 -0
- package/dist/cjs/src/ton.d.ts.map +1 -0
- package/dist/cjs/src/ton.js +542 -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 +184 -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 +2 -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 +2 -0
- package/dist/cjs/test/unit/jettonToken.d.ts.map +1 -0
- package/dist/cjs/test/unit/jettonToken.js +341 -0
- package/dist/cjs/test/unit/keyPair.d.ts +2 -0
- package/dist/cjs/test/unit/keyPair.d.ts.map +1 -0
- package/dist/cjs/test/unit/keyPair.js +55 -0
- package/dist/cjs/test/unit/singleNominatorWithdrawBuilder.d.ts +2 -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 +2 -0
- package/dist/cjs/test/unit/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/cjs/test/unit/tokenTransferBuilder.js +262 -0
- package/dist/cjs/test/unit/ton.d.ts +2 -0
- package/dist/cjs/test/unit/ton.d.ts.map +1 -0
- package/dist/cjs/test/unit/ton.js +949 -0
- package/dist/cjs/test/unit/tonWhalesDepositBuilder.d.ts +2 -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 +2 -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 +2 -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 +2 -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 +2 -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 +2 -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/{src → esm}/index.d.ts.map +1 -1
- package/dist/esm/index.js +6 -0
- package/dist/esm/jettonToken.d.ts +19 -0
- package/dist/esm/jettonToken.d.ts.map +1 -0
- package/dist/esm/jettonToken.js +48 -0
- package/dist/esm/lib/constants.d.ts +9 -0
- package/dist/esm/lib/constants.d.ts.map +1 -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/esm/lib/iface.d.ts.map +1 -0
- package/dist/esm/lib/iface.js +2 -0
- package/dist/esm/lib/index.d.ts +14 -0
- package/dist/esm/lib/index.d.ts.map +1 -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.d.ts.map +1 -0
- package/dist/esm/lib/singleNominatorWithdrawBuilder.js +34 -0
- package/dist/esm/lib/tokenTransaction.d.ts +16 -0
- package/dist/esm/lib/tokenTransaction.d.ts.map +1 -0
- package/dist/esm/lib/tokenTransaction.js +90 -0
- package/dist/esm/lib/tokenTransferBuilder.d.ts +20 -0
- package/dist/esm/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/esm/lib/tokenTransferBuilder.js +53 -0
- package/dist/esm/lib/tonWhalesDepositBuilder.d.ts +12 -0
- package/dist/esm/lib/tonWhalesDepositBuilder.d.ts.map +1 -0
- package/dist/esm/lib/tonWhalesDepositBuilder.js +38 -0
- package/dist/esm/lib/tonWhalesVestingDepositBuilder.d.ts +12 -0
- package/dist/esm/lib/tonWhalesVestingDepositBuilder.d.ts.map +1 -0
- package/dist/esm/lib/tonWhalesVestingDepositBuilder.js +33 -0
- package/dist/esm/lib/tonWhalesVestingWithdrawBuilder.d.ts +12 -0
- package/dist/esm/lib/tonWhalesVestingWithdrawBuilder.d.ts.map +1 -0
- package/dist/esm/lib/tonWhalesVestingWithdrawBuilder.js +33 -0
- package/dist/esm/lib/tonWhalesWithdrawalBuilder.d.ts +30 -0
- package/dist/esm/lib/tonWhalesWithdrawalBuilder.d.ts.map +1 -0
- package/dist/esm/lib/tonWhalesWithdrawalBuilder.js +56 -0
- package/dist/esm/lib/transaction.d.ts +42 -0
- package/dist/esm/lib/transaction.d.ts.map +1 -0
- package/dist/esm/lib/transaction.js +408 -0
- package/dist/esm/lib/transactionBuilder.d.ts +74 -0
- package/dist/esm/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/esm/lib/transactionBuilder.js +145 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts +32 -0
- package/dist/esm/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/esm/lib/transactionBuilderFactory.js +96 -0
- package/dist/esm/lib/transactionExplanation.d.ts +14 -0
- package/dist/esm/lib/transactionExplanation.d.ts.map +1 -0
- package/dist/esm/lib/transactionExplanation.js +2 -0
- package/dist/esm/lib/transferBuilder.d.ts +9 -0
- package/dist/esm/lib/transferBuilder.d.ts.map +1 -0
- package/dist/esm/lib/transferBuilder.js +17 -0
- package/dist/esm/lib/utils.d.ts +41 -0
- package/dist/esm/lib/utils.d.ts.map +1 -0
- package/dist/esm/lib/utils.js +151 -0
- package/dist/esm/register.d.ts +3 -0
- package/dist/{src → esm}/register.d.ts.map +1 -1
- package/dist/esm/register.js +11 -0
- package/dist/esm/ton.d.ts +66 -0
- package/dist/esm/ton.d.ts.map +1 -0
- package/dist/esm/ton.js +502 -0
- package/dist/esm/tton.d.ts +22 -0
- package/dist/esm/tton.js +26 -0
- package/package.json +34 -13
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -431
- package/dist/src/lib/iface.d.ts +0 -15
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -3
- package/dist/src/lib/index.d.ts +0 -9
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -41
- package/dist/src/lib/keyPair.js +0 -93
- package/dist/src/lib/transaction.d.ts +0 -32
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -284
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -105
- package/dist/src/lib/transactionBuilderFactory.d.ts +0 -14
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilderFactory.js +0 -26
- package/dist/src/lib/transferBuilder.d.ts.map +0 -1
- package/dist/src/lib/transferBuilder.js +0 -19
- package/dist/src/lib/utils.d.ts +0 -20
- package/dist/src/lib/utils.d.ts.map +0 -1
- package/dist/src/lib/utils.js +0 -74
- package/dist/src/register.js +0 -11
- package/dist/src/ton.d.ts +0 -34
- package/dist/src/ton.d.ts.map +0 -1
- package/dist/src/ton.js +0 -197
- package/dist/src/tton.js +0 -30
- /package/dist/{src → cjs/src}/lib/keyPair.d.ts +0 -0
- /package/dist/{src → cjs/src}/register.d.ts +0 -0
- /package/dist/{src → cjs/src}/tton.d.ts +0 -0
- /package/dist/{src → esm}/lib/keyPair.d.ts.map +0 -0
- /package/dist/{src → esm}/tton.d.ts.map +0 -0
|
@@ -0,0 +1,152 @@
|
|
|
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.TransactionBuilder = exports.WITHDRAW_OPCODE = void 0;
|
|
7
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
|
+
const tonweb_1 = __importDefault(require("tonweb"));
|
|
9
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
10
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
11
|
+
exports.WITHDRAW_OPCODE = '00001000';
|
|
12
|
+
class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
13
|
+
constructor(coinConfig) {
|
|
14
|
+
super(coinConfig);
|
|
15
|
+
this._signatures = [];
|
|
16
|
+
}
|
|
17
|
+
/** @inheritdoc */
|
|
18
|
+
get transaction() {
|
|
19
|
+
return this._transaction;
|
|
20
|
+
}
|
|
21
|
+
/** @inheritdoc */
|
|
22
|
+
set transaction(transaction) {
|
|
23
|
+
this._transaction = transaction;
|
|
24
|
+
}
|
|
25
|
+
/** @inheritdoc */
|
|
26
|
+
signImplementation(key) {
|
|
27
|
+
throw new Error('Method not implemented.');
|
|
28
|
+
}
|
|
29
|
+
/** @inheritDoc */
|
|
30
|
+
addSignature(publicKey, signature) {
|
|
31
|
+
this.transaction.signature[0] = signature.toString('hex');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Sets the sender of this transaction.
|
|
35
|
+
* This account will be responsible for paying transaction fees.
|
|
36
|
+
*
|
|
37
|
+
* @param {string} senderAddress the account that is sending this transaction
|
|
38
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
39
|
+
*/
|
|
40
|
+
sender(senderAddress) {
|
|
41
|
+
this.transaction.sender = senderAddress;
|
|
42
|
+
return this;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Sets the transaction to be bounceable or not.
|
|
46
|
+
*
|
|
47
|
+
* @param {string} bounceable whether the transaction can be bounced
|
|
48
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
49
|
+
*/
|
|
50
|
+
bounceable(bounceable) {
|
|
51
|
+
this.transaction.bounceable = bounceable;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Sets the fromAddress to be in bounceable format or not.
|
|
56
|
+
*
|
|
57
|
+
* @param {string} bounceable whether the address format is bounceable
|
|
58
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
59
|
+
*/
|
|
60
|
+
fromAddressBounceable(bounceable) {
|
|
61
|
+
this.transaction.fromAddressBounceable = bounceable;
|
|
62
|
+
this.sender(new tonweb_1.default.Address(this.transaction.sender).toString(true, true, bounceable));
|
|
63
|
+
return this;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Sets the toAddress to be in bounceable format or not.
|
|
67
|
+
*
|
|
68
|
+
* @param {string} bounceable whether the address format is bounceable
|
|
69
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
70
|
+
*/
|
|
71
|
+
toAddressBounceable(bounceable) {
|
|
72
|
+
this.transaction.toAddressBounceable = bounceable;
|
|
73
|
+
this.transaction.recipient.address = new tonweb_1.default.Address(this.transaction.recipient.address).toString(true, true, bounceable);
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
fee(feeOptions) {
|
|
77
|
+
throw new Error('Method not implemented.');
|
|
78
|
+
}
|
|
79
|
+
/** @inheritdoc */
|
|
80
|
+
fromImplementation(rawTransaction) {
|
|
81
|
+
this.transaction.transactionType = this.transactionType;
|
|
82
|
+
this.transaction.fromRawTransaction(rawTransaction);
|
|
83
|
+
return this.transaction;
|
|
84
|
+
}
|
|
85
|
+
/** @inheritdoc */
|
|
86
|
+
async buildImplementation() {
|
|
87
|
+
this.transaction.transactionType = this.transactionType;
|
|
88
|
+
await this.transaction.build();
|
|
89
|
+
this.transaction.loadInputsAndOutputs();
|
|
90
|
+
return this.transaction;
|
|
91
|
+
}
|
|
92
|
+
// region Validators
|
|
93
|
+
/** @inheritdoc */
|
|
94
|
+
validateAddress(address, addressFormat) {
|
|
95
|
+
if (!utils_1.default.isValidAddress(address.address)) {
|
|
96
|
+
throw new sdk_core_1.BuildTransactionError('Invalid address ' + address.address);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/** @inheritdoc */
|
|
100
|
+
validateKey(key) {
|
|
101
|
+
throw new Error('Method not implemented.');
|
|
102
|
+
}
|
|
103
|
+
/** @inheritdoc */
|
|
104
|
+
validateRawTransaction(rawTransaction) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
/** @inheritdoc */
|
|
108
|
+
validateTransaction(transaction) {
|
|
109
|
+
if (!transaction) {
|
|
110
|
+
throw new Error('transaction not defined');
|
|
111
|
+
}
|
|
112
|
+
this.validateAddress(transaction.recipient);
|
|
113
|
+
this.validateValue(new bignumber_js_1.default(transaction.recipient.amount));
|
|
114
|
+
}
|
|
115
|
+
/** @inheritdoc */
|
|
116
|
+
validateValue(value) {
|
|
117
|
+
if (value.isLessThan(0)) {
|
|
118
|
+
throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
setMessage(msg) {
|
|
122
|
+
this.transaction.message = msg;
|
|
123
|
+
return this;
|
|
124
|
+
}
|
|
125
|
+
setWithdrawMessage() {
|
|
126
|
+
const queryId = '0000000000000000';
|
|
127
|
+
this.transaction.message = exports.WITHDRAW_OPCODE + queryId + this.transaction.withdrawAmount;
|
|
128
|
+
return this;
|
|
129
|
+
}
|
|
130
|
+
sequenceNumber(number) {
|
|
131
|
+
this.transaction.seqno = number;
|
|
132
|
+
return this;
|
|
133
|
+
}
|
|
134
|
+
expireTime(number) {
|
|
135
|
+
this.transaction.expireTime = number;
|
|
136
|
+
return this;
|
|
137
|
+
}
|
|
138
|
+
publicKey(key) {
|
|
139
|
+
this.transaction.publicKey = key;
|
|
140
|
+
return this;
|
|
141
|
+
}
|
|
142
|
+
isV3ContractMessage(bool) {
|
|
143
|
+
this.transaction.isV3ContractMessage = bool;
|
|
144
|
+
return this;
|
|
145
|
+
}
|
|
146
|
+
subWalletId(id) {
|
|
147
|
+
this.transaction.sub_wallet_id = id;
|
|
148
|
+
return this;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
exports.TransactionBuilder = TransactionBuilder;
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsZ0VBQXFDO0FBQ3JDLG9EQUE0QjtBQUU1QixtREFTOEI7QUFFOUIsb0RBQTRCO0FBRWYsUUFBQSxlQUFlLEdBQUcsVUFBVSxDQUFDO0FBRTFDLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQUlyRSxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUhaLGdCQUFXLEdBQWdCLEVBQUUsQ0FBQztJQUl0QyxDQUFDO0lBUUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVztRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLFdBQVcsQ0FBQyxXQUF3QjtRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsR0FBWTtRQUN2QyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixZQUFZLENBQUMsU0FBd0IsRUFBRSxTQUFpQjtRQUN0RCxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxNQUFNLENBQUMsYUFBcUI7UUFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsYUFBYSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsVUFBVSxDQUFDLFVBQW1CO1FBQzVCLElBQUksQ0FBQyxXQUFXLENB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QUFnQyxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsR0FBVztRQUNwQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7UUFDL0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxHQUFHLHVCQUFlLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDO1FBQ3ZGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjO1FBQzNCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxVQUFVLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDckMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsU0FBUyxDQUFDLEdBQVc7UUFDbkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQWE7UUFDL0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEVBQVU7UUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBNUtELGdEQTRLQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCBUb25XZWIgZnJvbSAndG9ud2ViJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7XG4gIEJhc2VBZGRyZXNzLFxuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIEZlZU9wdGlvbnMsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IFdJVEhEUkFXX09QQ09ERSA9ICcwMDAwMTAwMCc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW107XG5cbiAgY29uc3RydWN0b3IoY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihjb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8vIGdldCBhbmQgc2V0IHJlZ2lvblxuICAvKipcbiAgICogVGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGU7XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgc2V0IHRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbikge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBUcmFuc2FjdGlvbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IEJhc2VQdWJsaWNLZXksIHNpZ25hdHVyZTogQnVmZmVyKTogdm9pZCB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zaWduYXR1cmVbMF0gPSBzaWduYXR1cmUudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHNlbmRlciBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKiBUaGlzIGFjY291bnQgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgcGF5aW5nIHRyYW5zYWN0aW9uIGZlZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzZW5kZXJBZGRyZXNzIHRoZSBhY2NvdW50IHRoYXQgaXMgc2VuZGluZyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2VuZGVyKHNlbmRlckFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2VuZGVyID0gc2VuZGVyQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSB0cmFuc2FjdGlvbiB0byBiZSBib3VuY2VhYmxlIG9yIG5vdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGJvdW5jZWFibGUgd2hldGhlciB0aGUgdHJhbnNhY3Rpb24gY2FuIGJlIGJvdW5jZWRcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBib3VuY2VhYmxlKGJvdW5jZWFibGU6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmJvdW5jZWFibGUgPSBib3VuY2VhYmxlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGZyb21BZGRyZXNzIHRvIGJlIGluIGJvdW5jZWFibGUgZm9ybWF0IG9yIG5vdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGJvdW5jZWFibGUgd2hldGhlciB0aGUgYWRkcmVzcyBmb3JtYXQgaXMgYm91bmNlYWJsZVxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIGZyb21BZGRyZXNzQm91bmNlYWJsZShib3VuY2VhYmxlOiBib29sZWFuKTogdGhpcyB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5mcm9tQWRkcmVzc0JvdW5jZWFibGUgPSBib3VuY2VhYmxlO1xuICAgIHRoaXMuc2VuZGVyKG5ldyBUb25XZWIuQWRkcmVzcyh0aGlzLnRyYW5zYWN0aW9uLnNlbmRlcikudG9TdHJpbmcodHJ1ZSwgdHJ1ZSwgYm91bmNlYWJsZSkpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHRvQWRkcmVzcyB0byBiZSBpbiBib3VuY2VhYmxlIGZvcm1hdCBvciBub3QuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBib3VuY2VhYmxlIHdoZXRoZXIgdGhlIGFkZHJlc3MgZm9ybWF0IGlzIGJvdW5jZWFibGVcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICB0b0FkZHJlc3NCb3VuY2VhYmxlKGJvdW5jZWFibGU6IGJvb2xlYW4pOiB0aGlzIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRvQWRkcmVzc0JvdW5jZWFibGUgPSBib3VuY2VhYmxlO1xuICAgIHRoaXMudHJhbnNhY3Rpb24ucmVjaXBpZW50LmFkZHJlc3MgPSBuZXcgVG9uV2ViLkFkZHJlc3ModGhpcy50cmFuc2FjdGlvbi5yZWNpcGllbnQuYWRkcmVzcykudG9TdHJpbmcoXG4gICAgICB0cnVlLFxuICAgICAgdHJ1ZSxcbiAgICAgIGJvdW5jZWFibGVcbiAgICApO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZmVlKGZlZU9wdGlvbnM6IEZlZU9wdGlvbnMpOiB0aGlzIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMudHJhbnNhY3Rpb24udHJhbnNhY3Rpb25UeXBlID0gdGhpcy50cmFuc2FjdGlvblR5cGU7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZSA9IHRoaXMudHJhbnNhY3Rpb25UeXBlO1xuICAgIGF3YWl0IHRoaXMudHJhbnNhY3Rpb24uYnVpbGQoKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvLyByZWdpb24gVmFsaWRhdG9yc1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFkZHJlc3MgJyArIGFkZHJlc3MuYWRkcmVzcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICByZXR1cm47XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbj86IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd0cmFuc2FjdGlvbiBub3QgZGVmaW5lZCcpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh0cmFuc2FjdGlvbi5yZWNpcGllbnQpO1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHRyYW5zYWN0aW9uLnJlY2lwaWVudC5hbW91bnQpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUuaXNMZXNzVGhhbigwKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJyk7XG4gICAgfVxuICB9XG5cbiAgc2V0TWVzc2FnZShtc2c6IHN0cmluZyk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5tZXNzYWdlID0gbXNnO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgc2V0V2l0aGRyYXdNZXNzYWdlKCk6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgY29uc3QgcXVlcnlJZCA9ICcwMDAwMDAwMDAwMDAwMDAwJztcbiAgICB0aGlzLnRyYW5zYWN0aW9uLm1lc3NhZ2UgPSBXSVRIRFJBV19PUENPREUgKyBxdWVyeUlkICsgdGhpcy50cmFuc2FjdGlvbi53aXRoZHJhd0Ftb3VudDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNlcXVlbmNlTnVtYmVyKG51bWJlcjogbnVtYmVyKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnNlcW5vID0gbnVtYmVyO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgZXhwaXJlVGltZShudW1iZXI6IG51bWJlcik6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5leHBpcmVUaW1lID0gbnVtYmVyO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljS2V5KGtleTogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnB1YmxpY0tleSA9IGtleTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGlzVjNDb250cmFjdE1lc3NhZ2UoYm9vbDogYm9vbGVhbik6IFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5pc1YzQ29udHJhY3RNZXNzYWdlID0gYm9vbDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuICBzdWJXYWxsZXRJZChpZDogbnVtYmVyKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnN1Yl93YWxsZXRfaWQgPSBpZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
4
|
+
import { TransferBuilder } from './transferBuilder';
|
|
5
|
+
import { SingleNominatorWithdrawBuilder } from './singleNominatorWithdrawBuilder';
|
|
6
|
+
import { TokenTransferBuilder } from './tokenTransferBuilder';
|
|
7
|
+
import { TonWhalesDepositBuilder } from './tonWhalesDepositBuilder';
|
|
8
|
+
import { TonWhalesWithdrawalBuilder } from './tonWhalesWithdrawalBuilder';
|
|
9
|
+
import { TonWhalesVestingDepositBuilder } from './tonWhalesVestingDepositBuilder';
|
|
10
|
+
import { TonWhalesVestingWithdrawBuilder } from './tonWhalesVestingWithdrawBuilder';
|
|
11
|
+
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
12
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
from(raw: string): TransactionBuilder;
|
|
15
|
+
/** @inheritdoc */
|
|
16
|
+
getTransferBuilder(): TransferBuilder;
|
|
17
|
+
/**
|
|
18
|
+
* Returns a specific builder to create a TON withdraw transaction
|
|
19
|
+
*/
|
|
20
|
+
getSingleNominatorWithdrawBuilder(): SingleNominatorWithdrawBuilder;
|
|
21
|
+
/**
|
|
22
|
+
* Returns a specific builder to create a TON token transfer transaction
|
|
23
|
+
*/
|
|
24
|
+
getTokenTransferBuilder(): TokenTransferBuilder;
|
|
25
|
+
/** @inheritdoc */
|
|
26
|
+
getWalletInitializationBuilder(): void;
|
|
27
|
+
getTonWhalesDepositBuilder(): TonWhalesDepositBuilder;
|
|
28
|
+
getTonWhalesWithdrawalBuilder(): TonWhalesWithdrawalBuilder;
|
|
29
|
+
getTonWhalesVestingDepositBuilder(): TonWhalesVestingDepositBuilder;
|
|
30
|
+
getTonWhalesVestingWithdrawBuilder(): TonWhalesVestingWithdrawBuilder;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=transactionBuilderFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA4C,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAEpF,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAG7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IA+CrC,kBAAkB;IAClB,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,iCAAiC,IAAI,8BAA8B;IAInE;;OAEG;IACH,uBAAuB,IAAI,oBAAoB;IAI/C,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC,0BAA0B,IAAI,uBAAuB;IAIrD,6BAA6B,IAAI,0BAA0B;IAI3D,iCAAiC,IAAI,8BAA8B;IAInE,kCAAkC,IAAI,+BAA+B;CAGtE"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TransactionBuilderFactory = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
const transferBuilder_1 = require("./transferBuilder");
|
|
6
|
+
const singleNominatorWithdrawBuilder_1 = require("./singleNominatorWithdrawBuilder");
|
|
7
|
+
const transaction_1 = require("./transaction");
|
|
8
|
+
const tokenTransferBuilder_1 = require("./tokenTransferBuilder");
|
|
9
|
+
const tokenTransaction_1 = require("./tokenTransaction");
|
|
10
|
+
const tonWhalesDepositBuilder_1 = require("./tonWhalesDepositBuilder");
|
|
11
|
+
const tonWhalesWithdrawalBuilder_1 = require("./tonWhalesWithdrawalBuilder");
|
|
12
|
+
const tonWhalesVestingDepositBuilder_1 = require("./tonWhalesVestingDepositBuilder");
|
|
13
|
+
const tonWhalesVestingWithdrawBuilder_1 = require("./tonWhalesVestingWithdrawBuilder");
|
|
14
|
+
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
15
|
+
constructor(_coinConfig) {
|
|
16
|
+
super(_coinConfig);
|
|
17
|
+
}
|
|
18
|
+
/** @inheritdoc */
|
|
19
|
+
from(raw) {
|
|
20
|
+
let builder;
|
|
21
|
+
try {
|
|
22
|
+
const checkTx = new transaction_1.Transaction(this._coinConfig);
|
|
23
|
+
checkTx.fromRawTransaction(raw);
|
|
24
|
+
let tx;
|
|
25
|
+
if (checkTx.type === sdk_core_1.TransactionType.SendToken) {
|
|
26
|
+
// It's a token transaction, so use TokenTransaction for proper parsing
|
|
27
|
+
tx = new tokenTransaction_1.TokenTransaction(this._coinConfig);
|
|
28
|
+
tx.fromRawTransaction(raw);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
// It's a regular transaction, use the already parsed one
|
|
32
|
+
tx = checkTx;
|
|
33
|
+
}
|
|
34
|
+
switch (tx.type) {
|
|
35
|
+
case sdk_core_1.TransactionType.Send:
|
|
36
|
+
builder = this.getTransferBuilder();
|
|
37
|
+
break;
|
|
38
|
+
case sdk_core_1.TransactionType.SingleNominatorWithdraw:
|
|
39
|
+
builder = this.getSingleNominatorWithdrawBuilder();
|
|
40
|
+
break;
|
|
41
|
+
case sdk_core_1.TransactionType.SendToken:
|
|
42
|
+
builder = this.getTokenTransferBuilder();
|
|
43
|
+
break;
|
|
44
|
+
case sdk_core_1.TransactionType.TonWhalesDeposit:
|
|
45
|
+
builder = this.getTonWhalesDepositBuilder();
|
|
46
|
+
break;
|
|
47
|
+
case sdk_core_1.TransactionType.TonWhalesWithdrawal:
|
|
48
|
+
builder = this.getTonWhalesWithdrawalBuilder();
|
|
49
|
+
break;
|
|
50
|
+
case sdk_core_1.TransactionType.TonWhalesVestingDeposit:
|
|
51
|
+
builder = this.getTonWhalesVestingDepositBuilder();
|
|
52
|
+
break;
|
|
53
|
+
case sdk_core_1.TransactionType.TonWhalesVestingWithdrawal:
|
|
54
|
+
builder = this.getTonWhalesVestingWithdrawBuilder();
|
|
55
|
+
break;
|
|
56
|
+
default:
|
|
57
|
+
throw new sdk_core_1.InvalidTransactionError('unsupported transaction');
|
|
58
|
+
}
|
|
59
|
+
builder.from(raw);
|
|
60
|
+
return builder;
|
|
61
|
+
}
|
|
62
|
+
catch (e) {
|
|
63
|
+
throw e;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/** @inheritdoc */
|
|
67
|
+
getTransferBuilder() {
|
|
68
|
+
return new transferBuilder_1.TransferBuilder(this._coinConfig);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns a specific builder to create a TON withdraw transaction
|
|
72
|
+
*/
|
|
73
|
+
getSingleNominatorWithdrawBuilder() {
|
|
74
|
+
return new singleNominatorWithdrawBuilder_1.SingleNominatorWithdrawBuilder(this._coinConfig);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Returns a specific builder to create a TON token transfer transaction
|
|
78
|
+
*/
|
|
79
|
+
getTokenTransferBuilder() {
|
|
80
|
+
return new tokenTransferBuilder_1.TokenTransferBuilder(this._coinConfig);
|
|
81
|
+
}
|
|
82
|
+
/** @inheritdoc */
|
|
83
|
+
getWalletInitializationBuilder() {
|
|
84
|
+
throw new Error('Method not implemented.');
|
|
85
|
+
}
|
|
86
|
+
getTonWhalesDepositBuilder() {
|
|
87
|
+
return new tonWhalesDepositBuilder_1.TonWhalesDepositBuilder(this._coinConfig);
|
|
88
|
+
}
|
|
89
|
+
getTonWhalesWithdrawalBuilder() {
|
|
90
|
+
return new tonWhalesWithdrawalBuilder_1.TonWhalesWithdrawalBuilder(this._coinConfig);
|
|
91
|
+
}
|
|
92
|
+
getTonWhalesVestingDepositBuilder() {
|
|
93
|
+
return new tonWhalesVestingDepositBuilder_1.TonWhalesVestingDepositBuilder(this._coinConfig);
|
|
94
|
+
}
|
|
95
|
+
getTonWhalesVestingWithdrawBuilder() {
|
|
96
|
+
return new tonWhalesVestingWithdrawBuilder_1.TonWhalesVestingWithdrawBuilder(this._coinConfig);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBK0c7QUFHL0csdURBQW9EO0FBQ3BELHFGQUFrRjtBQUNsRiwrQ0FBNEM7QUFDNUMsaUVBQThEO0FBQzlELHlEQUFzRDtBQUN0RCx1RUFBb0U7QUFDcEUsNkVBQTBFO0FBQzFFLHFGQUFrRjtBQUNsRix1RkFBb0Y7QUFFcEYsTUFBYSx5QkFBMEIsU0FBUSx3Q0FBNkI7SUFDMUUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUNELGtCQUFrQjtJQUNsQixJQUFJLENBQUMsR0FBVztRQUNkLElBQUksT0FBMkIsQ0FBQztRQUNoQyxJQUFJLENBQUM7WUFDSCxNQUFNLE9BQU8sR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2xELE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVoQyxJQUFJLEVBQWUsQ0FBQztZQUNwQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssMEJBQWUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDL0MsdUVBQXVFO2dCQUN2RSxFQUFFLEdBQUcsSUFBSSxtQ0FBZ0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQzVDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04seURBQXlEO2dCQUN6RCxFQUFFLEdBQUcsT0FBTyxDQUFDO1lBQ2YsQ0FBQztZQUNELFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNoQixLQUFLLDBCQUFlLENBQUMsSUFBSTtvQkFDdkIsT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO29CQUNwQyxNQUFNO2dCQUNSLEtBQUssMEJBQWUsQ0FBQyx1QkFBdUI7b0JBQzFDLE9BQU8sR0FBRyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsQ0FBQztvQkFDbkQsTUFBTTtnQkFDUixLQUFLLDBCQUFlLENBQUMsU0FBUztvQkFDNUIsT0FBTyxHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO29CQUN6QyxNQUFNO2dCQUNSLEtBQUssMEJBQWUsQ0FBQyxnQkFBZ0I7b0JBQ25DLE9BQU8sR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztvQkFDNUMsTUFBTTtnQkFDUixLQUFLLDBCQUFlLENBQUMsbUJBQW1CO29CQUN0QyxPQUFPLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7b0JBQy9DLE1BQU07Z0JBQ1IsS0FBSywwQkFBZSxDQUFDLHVCQUF1QjtvQkFDMUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQ0FBaUMsRUFBRSxDQUFDO29CQUNuRCxNQUFNO2dCQUNSLEtBQUssMEJBQWUsQ0FBQywwQkFBMEI7b0JBQzdDLE9BQU8sR0FBRyxJQUFJLENBQUMsa0NBQWtDLEVBQUUsQ0FBQztvQkFDcEQsTUFBTTtnQkFDUjtvQkFDRSxNQUFNLElBQUksa0NBQXVCLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNqRSxDQUFDO1lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQixPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsa0JBQWtCO1FBQ2hCLE9BQU8sSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQ0FBaUM7UUFDL0IsT0FBTyxJQUFJLCtEQUE4QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCx1QkFBdUI7UUFDckIsT0FBTyxJQUFJLDJDQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLDhCQUE4QjtRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELDBCQUEwQjtRQUN4QixPQUFPLElBQUksaURBQXVCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCw2QkFBNkI7UUFDM0IsT0FBTyxJQUFJLHVEQUEwQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsaUNBQWlDO1FBQy9CLE9BQU8sSUFBSSwrREFBOEIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGtDQUFrQztRQUNoQyxPQUFPLElBQUksaUVBQStCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDRjtBQTNGRCw4REEyRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFNpbmdsZU5vbWluYXRvcldpdGhkcmF3QnVpbGRlciB9IGZyb20gJy4vc2luZ2xlTm9taW5hdG9yV2l0aGRyYXdCdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUb2tlblRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdG9rZW5UcmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgVG9rZW5UcmFuc2FjdGlvbiB9IGZyb20gJy4vdG9rZW5UcmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUb25XaGFsZXNEZXBvc2l0QnVpbGRlciB9IGZyb20gJy4vdG9uV2hhbGVzRGVwb3NpdEJ1aWxkZXInO1xuaW1wb3J0IHsgVG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIgfSBmcm9tICcuL3RvbldoYWxlc1dpdGhkcmF3YWxCdWlsZGVyJztcbmltcG9ydCB7IFRvbldoYWxlc1Zlc3RpbmdEZXBvc2l0QnVpbGRlciB9IGZyb20gJy4vdG9uV2hhbGVzVmVzdGluZ0RlcG9zaXRCdWlsZGVyJztcbmltcG9ydCB7IFRvbldoYWxlc1Zlc3RpbmdXaXRoZHJhd0J1aWxkZXIgfSBmcm9tICcuL3RvbldoYWxlc1Zlc3RpbmdXaXRoZHJhd0J1aWxkZXInO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tKHJhdzogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBsZXQgYnVpbGRlcjogVHJhbnNhY3Rpb25CdWlsZGVyO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGVja1R4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgICAgY2hlY2tUeC5mcm9tUmF3VHJhbnNhY3Rpb24ocmF3KTtcblxuICAgICAgbGV0IHR4OiBUcmFuc2FjdGlvbjtcbiAgICAgIGlmIChjaGVja1R4LnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW4pIHtcbiAgICAgICAgLy8gSXQncyBhIHRva2VuIHRyYW5zYWN0aW9uLCBzbyB1c2UgVG9rZW5UcmFuc2FjdGlvbiBmb3IgcHJvcGVyIHBhcnNpbmdcbiAgICAgICAgdHggPSBuZXcgVG9rZW5UcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnKTtcbiAgICAgICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJdCdzIGEgcmVndWxhciB0cmFuc2FjdGlvbiwgdXNlIHRoZSBhbHJlYWR5IHBhcnNlZCBvbmVcbiAgICAgICAgdHggPSBjaGVja1R4O1xuICAgICAgfVxuICAgICAgc3dpdGNoICh0eC50eXBlKSB7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNlbmQ6XG4gICAgICAgICAgYnVpbGRlciA9IHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlNpbmdsZU5vbWluYXRvcldpdGhkcmF3OlxuICAgICAgICAgIGJ1aWxkZXIgPSB0aGlzLmdldFNpbmdsZU5vbWluYXRvcldpdGhkcmF3QnVpbGRlcigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kVG9rZW46XG4gICAgICAgICAgYnVpbGRlciA9IHRoaXMuZ2V0VG9rZW5UcmFuc2ZlckJ1aWxkZXIoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuVG9uV2hhbGVzRGVwb3NpdDpcbiAgICAgICAgICBidWlsZGVyID0gdGhpcy5nZXRUb25XaGFsZXNEZXBvc2l0QnVpbGRlcigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5Ub25XaGFsZXNXaXRoZHJhd2FsOlxuICAgICAgICAgIGJ1aWxkZXIgPSB0aGlzLmdldFRvbldoYWxlc1dpdGhkcmF3YWxCdWlsZGVyKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgVHJhbnNhY3Rpb25UeXBlLlRvbldoYWxlc1Zlc3RpbmdEZXBvc2l0OlxuICAgICAgICAgIGJ1aWxkZXIgPSB0aGlzLmdldFRvbldoYWxlc1Zlc3RpbmdEZXBvc2l0QnVpbGRlcigpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5Ub25XaGFsZXNWZXN0aW5nV2l0aGRyYXdhbDpcbiAgICAgICAgICBidWlsZGVyID0gdGhpcy5nZXRUb25XaGFsZXNWZXN0aW5nV2l0aGRyYXdCdWlsZGVyKCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCd1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgICAgYnVpbGRlci5mcm9tKHJhdyk7XG4gICAgICByZXR1cm4gYnVpbGRlcjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIoKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3BlY2lmaWMgYnVpbGRlciB0byBjcmVhdGUgYSBUT04gd2l0aGRyYXcgdHJhbnNhY3Rpb25cbiAgICovXG4gIGdldFNpbmdsZU5vbWluYXRvcldpdGhkcmF3QnVpbGRlcigpOiBTaW5nbGVOb21pbmF0b3JXaXRoZHJhd0J1aWxkZXIge1xuICAgIHJldHVybiBuZXcgU2luZ2xlTm9taW5hdG9yV2l0aGRyYXdCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzcGVjaWZpYyBidWlsZGVyIHRvIGNyZWF0ZSBhIFRPTiB0b2tlbiB0cmFuc2ZlciB0cmFuc2FjdGlvblxuICAgKi9cbiAgZ2V0VG9rZW5UcmFuc2ZlckJ1aWxkZXIoKTogVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVG9rZW5UcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGdldFRvbldoYWxlc0RlcG9zaXRCdWlsZGVyKCk6IFRvbldoYWxlc0RlcG9zaXRCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRvbldoYWxlc0RlcG9zaXRCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0VG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIoKTogVG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVG9uV2hhbGVzV2l0aGRyYXdhbEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXRUb25XaGFsZXNWZXN0aW5nRGVwb3NpdEJ1aWxkZXIoKTogVG9uV2hhbGVzVmVzdGluZ0RlcG9zaXRCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IFRvbldoYWxlc1Zlc3RpbmdEZXBvc2l0QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIGdldFRvbldoYWxlc1Zlc3RpbmdXaXRoZHJhd0J1aWxkZXIoKTogVG9uV2hhbGVzVmVzdGluZ1dpdGhkcmF3QnVpbGRlciB7XG4gICAgcmV0dXJuIG5ldyBUb25XaGFsZXNWZXN0aW5nV2l0aGRyYXdCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ITransactionRecipient } from '@bitgo-beta/sdk-core';
|
|
2
|
+
export interface ITransactionExplanation<TFee = any, TAmount = any> {
|
|
3
|
+
displayOrder: string[];
|
|
4
|
+
id: string;
|
|
5
|
+
outputs: ITransactionRecipient[];
|
|
6
|
+
outputAmount: TAmount;
|
|
7
|
+
changeOutputs: ITransactionRecipient[];
|
|
8
|
+
changeAmount: TAmount;
|
|
9
|
+
fee: TFee;
|
|
10
|
+
proxy?: string;
|
|
11
|
+
producers?: string[];
|
|
12
|
+
withdrawAmount?: string;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=transactionExplanation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionExplanation.d.ts","sourceRoot":"","sources":["../../../../src/lib/transactionExplanation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,WAAW,uBAAuB,CAAC,IAAI,GAAG,GAAG,EAAE,OAAO,GAAG,GAAG;IAChE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,GAAG,EAAE,IAAI,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25FeHBsYW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25FeHBsYW5hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVRyYW5zYWN0aW9uUmVjaXBpZW50IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElUcmFuc2FjdGlvbkV4cGxhbmF0aW9uPFRGZWUgPSBhbnksIFRBbW91bnQgPSBhbnk+IHtcbiAgZGlzcGxheU9yZGVyOiBzdHJpbmdbXTtcbiAgaWQ6IHN0cmluZztcbiAgb3V0cHV0czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gIG91dHB1dEFtb3VudDogVEFtb3VudDtcbiAgY2hhbmdlT3V0cHV0czogSVRyYW5zYWN0aW9uUmVjaXBpZW50W107XG4gIGNoYW5nZUFtb3VudDogVEFtb3VudDtcbiAgZmVlOiBURmVlO1xuICBwcm94eT86IHN0cmluZztcbiAgcHJvZHVjZXJzPzogc3RyaW5nW107XG4gIHdpdGhkcmF3QW1vdW50Pzogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TransactionBuilder } from './transactionBuilder';
|
|
2
1
|
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
2
|
import { Recipient, TransactionType } from '@bitgo-beta/sdk-core';
|
|
3
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
4
4
|
export declare class TransferBuilder extends TransactionBuilder {
|
|
5
5
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
6
6
|
protected get transactionType(): TransactionType;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAG1D,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAK7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,eAAe;CAI5C"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TransferBuilder = void 0;
|
|
4
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
+
const transactionBuilder_1 = require("./transactionBuilder");
|
|
6
|
+
const transaction_1 = require("./transaction");
|
|
7
|
+
class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
8
|
+
constructor(_coinConfig) {
|
|
9
|
+
super(_coinConfig);
|
|
10
|
+
this._transaction = new transaction_1.Transaction(_coinConfig);
|
|
11
|
+
}
|
|
12
|
+
get transactionType() {
|
|
13
|
+
return sdk_core_1.TransactionType.Send;
|
|
14
|
+
}
|
|
15
|
+
send(recipient) {
|
|
16
|
+
this.transaction.recipient = recipient;
|
|
17
|
+
return this;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
exports.TransferBuilder = TransferBuilder;
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQWtFO0FBQ2xFLDZEQUEwRDtBQUMxRCwrQ0FBNEM7QUFFNUMsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUNyRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBYyxlQUFlO1FBQzNCLE9BQU8sMEJBQWUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksQ0FBQyxTQUFvQjtRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDdkMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUFkRCwwQ0FjQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFJlY2lwaWVudCwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgfVxuXG4gIHNlbmQocmVjaXBpZW50OiBSZWNpcGllbnQpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIHRoaXMudHJhbnNhY3Rpb24ucmVjaXBpZW50ID0gcmVjaXBpZW50O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BaseUtils } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { VestingContractParams } from './iface';
|
|
3
|
+
export declare class Utils implements BaseUtils {
|
|
4
|
+
/** @inheritdoc */
|
|
5
|
+
isValidAddress(address: string): boolean;
|
|
6
|
+
/** @inheritdoc */
|
|
7
|
+
isValidBlockId(hash: string): boolean;
|
|
8
|
+
/** @inheritdoc */
|
|
9
|
+
isValidPrivateKey(key: string): boolean;
|
|
10
|
+
/** @inheritdoc */
|
|
11
|
+
isValidPublicKey(key: string): boolean;
|
|
12
|
+
/** @inheritdoc */
|
|
13
|
+
isValidSignature(signature: string): boolean;
|
|
14
|
+
/** @inheritdoc */
|
|
15
|
+
isValidTransactionId(txId: string): boolean;
|
|
16
|
+
getAddressFromPublicKey(publicKey: string, bounceable?: boolean, isUserFriendly?: boolean): Promise<string>;
|
|
17
|
+
getAddress(address: string, bounceable?: boolean): string;
|
|
18
|
+
getMessageHashFromData(data: string): Promise<string>;
|
|
19
|
+
getRawWalletAddressFromCell(data: string): string;
|
|
20
|
+
getVestingContractAddress(params: VestingContractParams): Promise<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Converts a TON address into a Base64 encoded BOC (Bag of Cells) string.
|
|
23
|
+
* This is required when passing an address as a 'slice' argument to `runGetMethod`.
|
|
24
|
+
* @param address - The TON address (friendly or raw)
|
|
25
|
+
* @returns Base64 string of the serialized address cell
|
|
26
|
+
*/
|
|
27
|
+
getAddressBoc(address: string): Promise<string>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Function to estimate the fee for a transaction.
|
|
31
|
+
* This function uses the dummy private key exclusively for fee estimation.
|
|
32
|
+
* @param wallet - The wallet instance.
|
|
33
|
+
* @param toAddress - The destination address.
|
|
34
|
+
* @param amount - The amount to transfer.
|
|
35
|
+
* @param seqno - The sequence number for the transaction.
|
|
36
|
+
* @returns The estimated fee for the transaction.
|
|
37
|
+
*/
|
|
38
|
+
export declare function getFeeEstimate(wallet: any, toAddress: string, amount: string, seqno: number): Promise<any>;
|
|
39
|
+
declare const utils: Utils;
|
|
40
|
+
export default utils;
|
|
41
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/lib/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAA2B,MAAM,sBAAsB,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQrC,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,UAAO,EAAE,cAAc,UAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAY3G,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,UAAO,GAAG,MAAM;IAYhD,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ3D,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAO3C,yBAAyB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAwB/E;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAMtD;AAID;;;;;;;;GAQG;AAEH,wBAAsB,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAgBhH;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,159 @@
|
|
|
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.Utils = void 0;
|
|
7
|
+
exports.getFeeEstimate = getFeeEstimate;
|
|
8
|
+
const tonweb_1 = __importDefault(require("tonweb"));
|
|
9
|
+
const bn_js_1 = require("bn.js");
|
|
10
|
+
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
11
|
+
const constants_1 = require("./constants");
|
|
12
|
+
class Utils {
|
|
13
|
+
/** @inheritdoc */
|
|
14
|
+
isValidAddress(address) {
|
|
15
|
+
try {
|
|
16
|
+
if (address.length != 48) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
Buffer.from(address, 'base64');
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
catch (e) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/** @inheritdoc */
|
|
27
|
+
isValidBlockId(hash) {
|
|
28
|
+
try {
|
|
29
|
+
return Buffer.from(hash, 'base64').length === 32;
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** @inheritdoc */
|
|
36
|
+
isValidPrivateKey(key) {
|
|
37
|
+
throw new Error('Method not implemented.');
|
|
38
|
+
}
|
|
39
|
+
/** @inheritdoc */
|
|
40
|
+
isValidPublicKey(key) {
|
|
41
|
+
return (0, sdk_core_1.isValidEd25519PublicKey)(key);
|
|
42
|
+
}
|
|
43
|
+
/** @inheritdoc */
|
|
44
|
+
isValidSignature(signature) {
|
|
45
|
+
throw new Error('Method not implemented.');
|
|
46
|
+
}
|
|
47
|
+
/** @inheritdoc */
|
|
48
|
+
isValidTransactionId(txId) {
|
|
49
|
+
try {
|
|
50
|
+
return Buffer.from(txId, 'base64').length === 32;
|
|
51
|
+
}
|
|
52
|
+
catch (e) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
async getAddressFromPublicKey(publicKey, bounceable = true, isUserFriendly = true) {
|
|
57
|
+
const tonweb = new tonweb_1.default(new tonweb_1.default.HttpProvider(''));
|
|
58
|
+
const WalletClass = tonweb.wallet.all['v4R2'];
|
|
59
|
+
const wallet = new WalletClass(tonweb.provider, {
|
|
60
|
+
publicKey: tonweb_1.default.utils.hexToBytes(publicKey),
|
|
61
|
+
wc: 0,
|
|
62
|
+
});
|
|
63
|
+
const address = await wallet.getAddress();
|
|
64
|
+
const legacyAddress = address.toString(isUserFriendly, true, bounceable);
|
|
65
|
+
return legacyAddress;
|
|
66
|
+
}
|
|
67
|
+
getAddress(address, bounceable = true) {
|
|
68
|
+
if (bounceable) {
|
|
69
|
+
return new tonweb_1.default.Address(address).isBounceable
|
|
70
|
+
? address
|
|
71
|
+
: new tonweb_1.default.Address(address).toString(true, true, bounceable);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
return new tonweb_1.default.Address(address).isBounceable
|
|
75
|
+
? new tonweb_1.default.Address(address).toString(true, true, bounceable)
|
|
76
|
+
: address;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async getMessageHashFromData(data) {
|
|
80
|
+
const cell = tonweb_1.default.boc.Cell.oneFromBoc(tonweb_1.default.utils.base64ToBytes(data));
|
|
81
|
+
// this is need to be confirmed by ton team
|
|
82
|
+
const message = cell.refs[0].refs[0];
|
|
83
|
+
const hash = tonweb_1.default.utils.bytesToBase64(await message.hash());
|
|
84
|
+
return hash.toString();
|
|
85
|
+
}
|
|
86
|
+
getRawWalletAddressFromCell(data) {
|
|
87
|
+
const cell = tonweb_1.default.boc.Cell.oneFromBoc(tonweb_1.default.utils.base64ToBytes(data));
|
|
88
|
+
const slice = cell.beginParse();
|
|
89
|
+
const address = slice.loadAddress();
|
|
90
|
+
return address.toString();
|
|
91
|
+
}
|
|
92
|
+
async getVestingContractAddress(params) {
|
|
93
|
+
const cell = new tonweb_1.default.boc.Cell();
|
|
94
|
+
cell.bits.writeUint(0, 32); //seq no
|
|
95
|
+
cell.bits.writeUint(params.subWalletId, 32);
|
|
96
|
+
cell.bits.writeBytes(tonweb_1.default.utils.hexToBytes(params.publicKeyHex));
|
|
97
|
+
cell.bits.writeUint(0, 1); // empty whitelist
|
|
98
|
+
const vestingParamsCell = new tonweb_1.default.boc.Cell();
|
|
99
|
+
vestingParamsCell.bits.writeUint(params.vestingStartTime, 64);
|
|
100
|
+
vestingParamsCell.bits.writeUint(params.vestingTotalDuration, 32);
|
|
101
|
+
vestingParamsCell.bits.writeUint(params.unlockPeriod, 32);
|
|
102
|
+
vestingParamsCell.bits.writeUint(params.cliffDuration, 32);
|
|
103
|
+
vestingParamsCell.bits.writeCoins(new bn_js_1.BN(params.vestingTotalAmount.toString()));
|
|
104
|
+
const senderAddress = new tonweb_1.default.Address(params.vestingSenderAddress);
|
|
105
|
+
vestingParamsCell.bits.writeAddress(senderAddress);
|
|
106
|
+
const ownerAddress = new tonweb_1.default.Address(params.ownerAddress);
|
|
107
|
+
vestingParamsCell.bits.writeAddress(ownerAddress);
|
|
108
|
+
cell.refs.push(vestingParamsCell);
|
|
109
|
+
const contractCodeCell = tonweb_1.default.boc.Cell.oneFromBoc(tonweb_1.default.utils.base64ToBytes(constants_1.VESTING_CONTRACT_CODE_B64));
|
|
110
|
+
const stateInit = tonweb_1.default.Contract.createStateInit(contractCodeCell, cell);
|
|
111
|
+
const stateInitHash = await stateInit.hash();
|
|
112
|
+
const contractAddress = new tonweb_1.default.Address('0:' + tonweb_1.default.utils.bytesToHex(stateInitHash));
|
|
113
|
+
return contractAddress.toString(true, true, true);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Converts a TON address into a Base64 encoded BOC (Bag of Cells) string.
|
|
117
|
+
* This is required when passing an address as a 'slice' argument to `runGetMethod`.
|
|
118
|
+
* @param address - The TON address (friendly or raw)
|
|
119
|
+
* @returns Base64 string of the serialized address cell
|
|
120
|
+
*/
|
|
121
|
+
async getAddressBoc(address) {
|
|
122
|
+
const cell = new tonweb_1.default.boc.Cell();
|
|
123
|
+
cell.bits.writeAddress(new tonweb_1.default.Address(address));
|
|
124
|
+
const boc = await cell.toBoc(false);
|
|
125
|
+
return tonweb_1.default.utils.bytesToBase64(boc);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.Utils = Utils;
|
|
129
|
+
const DUMMY_PRIVATE_KEY = '43e8594854cb53947c4a1a2fab926af11e123f6251dcd5bd0dfb100604186430'; // This dummy private key is used only for fee estimation
|
|
130
|
+
/**
|
|
131
|
+
* Function to estimate the fee for a transaction.
|
|
132
|
+
* This function uses the dummy private key exclusively for fee estimation.
|
|
133
|
+
* @param wallet - The wallet instance.
|
|
134
|
+
* @param toAddress - The destination address.
|
|
135
|
+
* @param amount - The amount to transfer.
|
|
136
|
+
* @param seqno - The sequence number for the transaction.
|
|
137
|
+
* @returns The estimated fee for the transaction.
|
|
138
|
+
*/
|
|
139
|
+
async function getFeeEstimate(wallet, toAddress, amount, seqno) {
|
|
140
|
+
try {
|
|
141
|
+
const secretKey = tonweb_1.default.utils.stringToBytes(DUMMY_PRIVATE_KEY);
|
|
142
|
+
const feeEstimate = await wallet.methods
|
|
143
|
+
.transfer({
|
|
144
|
+
secretKey,
|
|
145
|
+
toAddress,
|
|
146
|
+
amount,
|
|
147
|
+
seqno,
|
|
148
|
+
sendMode: 1,
|
|
149
|
+
})
|
|
150
|
+
.estimateFee();
|
|
151
|
+
return feeEstimate;
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
throw new Error(`Failed to estimate fee: ${error.message}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
const utils = new Utils();
|
|
158
|
+
exports.default = utils;
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQTZJQSx3Q0FnQkM7QUE3SkQsb0RBQTRCO0FBQzVCLGlDQUEyQjtBQUMzQixtREFBMEU7QUFDMUUsMkNBQXdEO0FBRXhELE1BQWEsS0FBSztJQUNoQixrQkFBa0I7SUFDbEIsY0FBYyxDQUFDLE9BQWU7UUFDNUIsSUFBSSxDQUFDO1lBQ0gsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUN6QixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMvQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixjQUFjLENBQUMsSUFBWTtRQUN6QixJQUFJLENBQUM7WUFDSCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUM7UUFDbkQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixPQUFPLElBQUEsa0NBQXVCLEVBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixnQkFBZ0IsQ0FBQyxTQUFpQjtRQUNoQyxNQUFNLElB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bkMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxnQkFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxPQUFPLGdCQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0NBQ0Y7QUExSEQsc0JBMEhDO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxrRUFBa0UsQ0FBQyxDQUFDLHlEQUF5RDtBQUV2Sjs7Ozs7Ozs7R0FRRztBQUVJLEtBQUssVUFBVSxjQUFjLENBQUMsTUFBVyxFQUFFLFNBQWlCLEVBQUUsTUFBYyxFQUFFLEtBQWE7SUFDaEcsSUFBSSxDQUFDO1FBQ0gsTUFBTSxTQUFTLEdBQUcsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEUsTUFBTSxXQUFXLEdBQUcsTUFBTSxNQUFNLENBQUMsT0FBTzthQUNyQyxRQUFRLENBQUM7WUFDUixTQUFTO1lBQ1QsU0FBUztZQUNULE1BQU07WUFDTixLQUFLO1lBQ0wsUUFBUSxFQUFFLENBQUM7U0FDWixDQUFDO2FBQ0QsV0FBVyxFQUFFLENBQUM7UUFDakIsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFFMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFRvbldlYiBmcm9tICd0b253ZWInO1xuaW1wb3J0IHsgQk4gfSBmcm9tICdibi5qcyc7XG5pbXBvcnQgeyBCYXNlVXRpbHMsIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5IH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVkVTVElOR19DT05UUkFDVF9DT0RFX0I2NCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFZlc3RpbmdDb250cmFjdFBhcmFtcyB9IGZyb20gJy4vaWZhY2UnO1xuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBpZiAoYWRkcmVzcy5sZW5ndGggIT0gNDgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgQnVmZmVyLmZyb20oYWRkcmVzcywgJ2Jhc2U2NCcpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGhhc2gsICdiYXNlNjQnKS5sZW5ndGggPT09IDMyO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbSh0eElkLCAnYmFzZTY0JykubGVuZ3RoID09PSAzMjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHVibGljS2V5OiBzdHJpbmcsIGJvdW5jZWFibGUgPSB0cnVlLCBpc1VzZXJGcmllbmRseSA9IHRydWUpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHRvbndlYiA9IG5ldyBUb25XZWIobmV3IFRvbldlYi5IdHRwUHJvdmlkZXIoJycpKTtcbiAgICBjb25zdCBXYWxsZXRDbGFzcyA9IHRvbndlYi53YWxsZXQuYWxsWyd2NFIyJ107XG4gICAgY29uc3Qgd2FsbGV0ID0gbmV3IFdhbGxldENsYXNzKHRvbndlYi5wcm92aWRlciwge1xuICAgICAgcHVibGljS2V5OiBUb25XZWIudXRpbHMuaGV4VG9CeXRlcyhwdWJsaWNLZXkpLFxuICAgICAgd2M6IDAsXG4gICAgfSk7XG4gICAgY29uc3QgYWRkcmVzcyA9IGF3YWl0IHdhbGxldC5nZXRBZGRyZXNzKCk7XG4gICAgY29uc3QgbGVnYWN5QWRkcmVzcyA9IGFkZHJlc3MudG9TdHJpbmcoaXNVc2VyRnJpZW5kbHksIHRydWUsIGJvdW5jZWFibGUpO1xuICAgIHJldHVybiBsZWdhY3lBZGRyZXNzO1xuICB9XG5cbiAgZ2V0QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcsIGJvdW5jZWFibGUgPSB0cnVlKTogc3RyaW5nIHtcbiAgICBpZiAoYm91bmNlYWJsZSkge1xuICAgICAgcmV0dXJuIG5ldyBUb25XZWIuQWRkcmVzcyhhZGRyZXNzKS5pc0JvdW5jZWFibGVcbiAgICAgICAgPyBhZGRyZXNzXG4gICAgICAgIDogbmV3IFRvbldlYi5BZGRyZXNzKGFkZHJlc3MpLnRvU3RyaW5nKHRydWUsIHRydWUsIGJvdW5jZWFibGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbmV3IFRvbldlYi5BZGRyZXNzKGFkZHJlc3MpLmlzQm91bmNlYWJsZVxuICAgICAgICA/IG5ldyBUb25XZWIuQWRkcmVzcyhhZGRyZXNzKS50b1N0cmluZyh0cnVlLCB0cnVlLCBib3VuY2VhYmxlKVxuICAgICAgICA6IGFkZHJlc3M7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0TWVzc2FnZUhhc2hGcm9tRGF0YShkYXRhOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNlbGwgPSBUb25XZWIuYm9jLkNlbGwub25lRnJvbUJvYyhUb25XZWIudXRpbHMuYmFzZTY0VG9CeXRlcyhkYXRhKSk7XG4gICAgLy8gdGhpcyBpcyBuZWVkIHRvIGJlIGNvbmZpcm1lZCBieSB0b24gdGVhbVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBjZWxsLnJlZnNbMF0ucmVmc1swXTtcbiAgICBjb25zdCBoYXNoID0gVG9uV2ViLnV0aWxzLmJ5dGVzVG9CYXNlNjQoYXdhaXQgbWVzc2FnZS5oYXNoKCkpO1xuICAgIHJldHVybiBoYXNoLnRvU3RyaW5nKCk7XG4gIH1cblxuICBnZXRSYXdXYWxsZXRBZGRyZXNzRnJvbUNlbGwoZGF0YTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBjZWxsID0gVG9uV2ViLmJvYy5DZWxsLm9uZUZyb21Cb2MoVG9uV2ViLnV0aWxzLmJhc2U2NFRvQnl0ZXMoZGF0YSkpO1xuICAgIGNvbnN0IHNsaWNlID0gKGNlbGwgYXMgYW55KS5iZWdpblBhcnNlKCk7XG4gICAgY29uc3QgYWRkcmVzcyA9IHNsaWNlLmxvYWRBZGRyZXNzKCk7XG4gICAgcmV0dXJuIGFkZHJlc3MudG9TdHJpbmcoKTtcbiAgfVxuXG4gIGFzeW5jIGdldFZlc3RpbmdDb250cmFjdEFkZHJlc3MocGFyYW1zOiBWZXN0aW5nQ29udHJhY3RQYXJhbXMpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNlbGwgPSBuZXcgVG9uV2ViLmJvYy5DZWxsKCk7XG4gICAgY2VsbC5iaXRzLndyaXRlVWludCgwLCAzMik7IC8vc2VxIG5vXG4gICAgY2VsbC5iaXRzLndyaXRlVWludChwYXJhbXMuc3ViV2FsbGV0SWQsIDMyKTtcbiAgICBjZWxsLmJpdHMud3JpdGVCeXRlcyhUb25XZWIudXRpbHMuaGV4VG9CeXRlcyhwYXJhbXMucHVibGljS2V5SGV4KSk7XG4gICAgY2VsbC5iaXRzLndyaXRlVWludCgwLCAxKTsgLy8gZW1wdHkgd2hpdGVsaXN0XG4gICAgY29uc3QgdmVzdGluZ1BhcmFtc0NlbGwgPSBuZXcgVG9uV2ViLmJvYy5DZWxsKCk7XG4gICAgdmVzdGluZ1BhcmFtc0NlbGwuYml0cy53cml0ZVVpbnQocGFyYW1zLnZlc3RpbmdTdGFydFRpbWUsIDY0KTtcbiAgICB2ZXN0aW5nUGFyYW1zQ2VsbC5iaXRzLndyaXRlVWludChwYXJhbXMudmVzdGluZ1RvdGFsRHVyYXRpb24sIDMyKTtcbiAgICB2ZXN0aW5nUGFyYW1zQ2VsbC5iaXRzLndyaXRlVWludChwYXJhbXMudW5sb2NrUGVyaW9kLCAzMik7XG4gICAgdmVzdGluZ1BhcmFtc0NlbGwuYml0cy53cml0ZVVpbnQocGFyYW1zLmNsaWZmRHVyYXRpb24sIDMyKTtcbiAgICB2ZXN0aW5nUGFyYW1zQ2VsbC5iaXRzLndyaXRlQ29pbnMobmV3IEJOKHBhcmFtcy52ZXN0aW5nVG90YWxBbW91bnQudG9TdHJpbmcoKSkpO1xuICAgIGNvbnN0IHNlbmRlckFkZHJlc3MgPSBuZXcgVG9uV2ViLkFkZHJlc3MocGFyYW1zLnZlc3RpbmdTZW5kZXJBZGRyZXNzKTtcbiAgICB2ZXN0aW5nUGFyYW1zQ2VsbC5iaXRzLndyaXRlQWRkcmVzcyhzZW5kZXJBZGRyZXNzKTtcbiAgICBjb25zdCBvd25lckFkZHJlc3MgPSBuZXcgVG9uV2ViLkFkZHJlc3MocGFyYW1zLm93bmVyQWRkcmVzcyk7XG4gICAgdmVzdGluZ1BhcmFtc0NlbGwuYml0cy53cml0ZUFkZHJlc3Mob3duZXJBZGRyZXNzKTtcbiAgICBjZWxsLnJlZnMucHVzaCh2ZXN0aW5nUGFyYW1zQ2VsbCk7XG4gICAgY29uc3QgY29udHJhY3RDb2RlQ2VsbCA9IFRvbldlYi5ib2MuQ2VsbC5vbmVGcm9tQm9jKFRvbldlYi51dGlscy5iYXNlNjRUb0J5dGVzKFZFU1RJTkdfQ09OVFJBQ1RfQ09ERV9CNjQpKTtcbiAgICBjb25zdCBzdGF0ZUluaXQgPSBUb25XZWIuQ29udHJhY3QuY3JlYXRlU3RhdGVJbml0KGNvbnRyYWN0Q29kZUNlbGwsIGNlbGwpO1xuICAgIGNvbnN0IHN0YXRlSW5pdEhhc2ggPSBhd2FpdCBzdGF0ZUluaXQuaGFzaCgpO1xuICAgIGNvbnN0IGNvbnRyYWN0QWRkcmVzcyA9IG5ldyBUb25XZWIuQWRkcmVzcygnMDonICsgVG9uV2ViLnV0aWxzLmJ5dGVzVG9IZXgoc3RhdGVJbml0SGFzaCkpO1xuICAgIHJldHVybiBjb250cmFjdEFkZHJlc3MudG9TdHJpbmcodHJ1ZSwgdHJ1ZSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBUT04gYWRkcmVzcyBpbnRvIGEgQmFzZTY0IGVuY29kZWQgQk9DIChCYWcgb2YgQ2VsbHMpIHN0cmluZy5cbiAgICogVGhpcyBpcyByZXF1aXJlZCB3aGVuIHBhc3NpbmcgYW4gYWRkcmVzcyBhcyBhICdzbGljZScgYXJndW1lbnQgdG8gYHJ1bkdldE1ldGhvZGAuXG4gICAqIEBwYXJhbSBhZGRyZXNzIC0gVGhlIFRPTiBhZGRyZXNzIChmcmllbmRseSBvciByYXcpXG4gICAqIEByZXR1cm5zIEJhc2U2NCBzdHJpbmcgb2YgdGhlIHNlcmlhbGl6ZWQgYWRkcmVzcyBjZWxsXG4gICAqL1xuICBhc3luYyBnZXRBZGRyZXNzQm9jKGFkZHJlc3M6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc3QgY2VsbCA9IG5ldyBUb25XZWIuYm9jLkNlbGwoKTtcbiAgICBjZWxsLmJpdHMud3JpdGVBZGRyZXNzKG5ldyBUb25XZWIuQWRkcmVzcyhhZGRyZXNzKSk7XG4gICAgY29uc3QgYm9jID0gYXdhaXQgY2VsbC50b0JvYyhmYWxzZSk7XG4gICAgcmV0dXJuIFRvbldlYi51dGlscy5ieXRlc1RvQmFzZTY0KGJvYyk7XG4gIH1cbn1cblxuY29uc3QgRFVNTVlfUFJJVkFURV9LRVkgPSAnNDNlODU5NDg1NGNiNTM5NDdjNGExYTJmYWI5MjZhZjExZTEyM2Y2MjUxZGNkNWJkMGRmYjEwMDYwNDE4NjQzMCc7IC8vIFRoaXMgZHVtbXkgcHJpdmF0ZSBrZXkgaXMgdXNlZCBvbmx5IGZvciBmZWUgZXN0aW1hdGlvblxuXG4vKipcbiAqIEZ1bmN0aW9uIHRvIGVzdGltYXRlIHRoZSBmZWUgZm9yIGEgdHJhbnNhY3Rpb24uXG4gKiBUaGlzIGZ1bmN0aW9uIHVzZXMgdGhlIGR1bW15IHByaXZhdGUga2V5IGV4Y2x1c2l2ZWx5IGZvciBmZWUgZXN0aW1hdGlvbi5cbiAqIEBwYXJhbSB3YWxsZXQgLSBUaGUgd2FsbGV0IGluc3RhbmNlLlxuICogQHBhcmFtIHRvQWRkcmVzcyAtIFRoZSBkZXN0aW5hdGlvbiBhZGRyZXNzLlxuICogQHBhcmFtIGFtb3VudCAtIFRoZSBhbW91bnQgdG8gdHJhbnNmZXIuXG4gKiBAcGFyYW0gc2Vxbm8gLSBUaGUgc2VxdWVuY2UgbnVtYmVyIGZvciB0aGUgdHJhbnNhY3Rpb24uXG4gKiBAcmV0dXJucyBUaGUgZXN0aW1hdGVkIGZlZSBmb3IgdGhlIHRyYW5zYWN0aW9uLlxuICovXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRGZWVFc3RpbWF0ZSh3YWxsZXQ6IGFueSwgdG9BZGRyZXNzOiBzdHJpbmcsIGFtb3VudDogc3RyaW5nLCBzZXFubzogbnVtYmVyKTogUHJvbWlzZTxhbnk+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCBzZWNyZXRLZXkgPSBUb25XZWIudXRpbHMuc3RyaW5nVG9CeXRlcyhEVU1NWV9QUklWQVRFX0tFWSk7XG4gICAgY29uc3QgZmVlRXN0aW1hdGUgPSBhd2FpdCB3YWxsZXQubWV0aG9kc1xuICAgICAgLnRyYW5zZmVyKHtcbiAgICAgICAgc2VjcmV0S2V5LFxuICAgICAgICB0b0FkZHJlc3MsXG4gICAgICAgIGFtb3VudCxcbiAgICAgICAgc2Vxbm8sXG4gICAgICAgIHNlbmRNb2RlOiAxLFxuICAgICAgfSlcbiAgICAgIC5lc3RpbWF0ZUZlZSgpO1xuICAgIHJldHVybiBmZWVFc3RpbWF0ZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBlc3RpbWF0ZSBmZWU6ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgfVxufVxuXG5jb25zdCB1dGlscyA9IG5ldyBVdGlscygpO1xuXG5leHBvcnQgZGVmYXVsdCB1dGlscztcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAMzC,CAAC"}
|