@bitgo-beta/sdk-coin-atom 1.1.2-alpha.4 → 1.1.2-alpha.400
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/atom.d.ts +19 -21
- package/dist/src/atom.d.ts.map +1 -1
- package/dist/src/atom.js +33 -43
- package/dist/src/index.js +6 -2
- package/dist/src/lib/constants.d.ts +5 -5
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +10 -9
- package/dist/src/lib/index.d.ts +3 -5
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +33 -18
- package/dist/src/lib/keyPair.d.ts +3 -14
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/keyPair.js +6 -52
- package/dist/src/lib/transactionBuilderFactory.d.ts +11 -11
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +38 -16
- package/dist/src/lib/utils.d.ts +7 -84
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +49 -191
- package/dist/src/tatom.d.ts +0 -8
- package/dist/src/tatom.d.ts.map +1 -1
- package/dist/src/tatom.js +1 -13
- package/dist/test/integration/index.d.ts +2 -0
- package/dist/test/integration/index.d.ts.map +1 -0
- package/dist/test/integration/index.js +54 -0
- package/dist/test/resources/atom.d.ts +291 -0
- package/dist/test/resources/atom.d.ts.map +1 -0
- package/dist/test/resources/atom.js +471 -0
- package/dist/test/unit/atom.d.ts +2 -0
- package/dist/test/unit/atom.d.ts.map +1 -0
- package/dist/test/unit/atom.js +552 -0
- package/dist/test/unit/getBuilderFactory.d.ts +3 -0
- package/dist/test/unit/getBuilderFactory.d.ts.map +1 -0
- package/dist/test/unit/getBuilderFactory.js +10 -0
- package/dist/test/unit/keyPair.d.ts +2 -0
- package/dist/test/unit/keyPair.d.ts.map +1 -0
- package/dist/test/unit/keyPair.js +93 -0
- package/dist/test/unit/transaction.d.ts +2 -0
- package/dist/test/unit/transaction.d.ts.map +1 -0
- package/dist/test/unit/transaction.js +220 -0
- package/dist/test/unit/transactionBuilder/StakingActivateBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/StakingActivateBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/StakingActivateBuilder.js +171 -0
- package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/StakingDeactivateBuilder.js +140 -0
- package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/StakingRedelegateBuilder.js +93 -0
- package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/StakingWithdrawRewardsBuilder.js +141 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transactionBuilder.js +100 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder/transferBuilder.js +241 -0
- package/dist/test/unit/utils.d.ts +2 -0
- package/dist/test/unit/utils.d.ts.map +1 -0
- package/dist/test/unit/utils.js +85 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +17 -13
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -51
- package/dist/src/lib/iface.d.ts +0 -31
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -3
- package/dist/src/lib/transaction.d.ts +0 -46
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -161
- package/dist/src/lib/transactionBuilder.d.ts +0 -76
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -211
- package/dist/src/lib/transferBuilder.d.ts +0 -8
- package/dist/src/lib/transferBuilder.d.ts.map +0 -1
- package/dist/src/lib/transferBuilder.js +0 -15
|
@@ -1,211 +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.TransactionBuilder = void 0;
|
|
7
|
-
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
8
|
-
const transaction_1 = require("./transaction");
|
|
9
|
-
const utils_1 = __importDefault(require("./utils"));
|
|
10
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
11
|
-
const assert_1 = __importDefault(require("assert"));
|
|
12
|
-
const constants_1 = require("./constants");
|
|
13
|
-
class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
14
|
-
constructor(_coinConfig) {
|
|
15
|
-
super(_coinConfig);
|
|
16
|
-
this._signatures = [];
|
|
17
|
-
this._transaction = new transaction_1.Transaction(_coinConfig);
|
|
18
|
-
}
|
|
19
|
-
/** @inheritdoc */
|
|
20
|
-
get transaction() {
|
|
21
|
-
return this._transaction;
|
|
22
|
-
}
|
|
23
|
-
/** @inheritdoc */
|
|
24
|
-
set transaction(transaction) {
|
|
25
|
-
this._transaction = transaction;
|
|
26
|
-
}
|
|
27
|
-
/** @inheritdoc */
|
|
28
|
-
signImplementation(key) {
|
|
29
|
-
throw new Error('Method not implemented.');
|
|
30
|
-
}
|
|
31
|
-
/** @inheritDoc */
|
|
32
|
-
addSignature(publicKey, signature) {
|
|
33
|
-
this._signatures.push({ publicKey, signature });
|
|
34
|
-
this.transaction.addSignature(publicKey, signature);
|
|
35
|
-
}
|
|
36
|
-
type(type) {
|
|
37
|
-
this._type = type;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Sets the signerAddress of this transaction.
|
|
41
|
-
* This account will be responsible for paying transaction fees.
|
|
42
|
-
*
|
|
43
|
-
* @param {string} signerAddress the account that is sending this transaction
|
|
44
|
-
* @returns {TransactionBuilder} This transaction builder
|
|
45
|
-
*/
|
|
46
|
-
signerAddress(signerAddress) {
|
|
47
|
-
if (!utils_1.default.isValidAddress(signerAddress)) {
|
|
48
|
-
throw new Error('transactionBuilder: sender isValidAddress check failed :' + signerAddress);
|
|
49
|
-
}
|
|
50
|
-
this._signerAddress = signerAddress;
|
|
51
|
-
return this;
|
|
52
|
-
}
|
|
53
|
-
gasBudget(gasBudget) {
|
|
54
|
-
this.validateGasBudget(gasBudget);
|
|
55
|
-
this._gasBudget = gasBudget;
|
|
56
|
-
return this;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
*
|
|
60
|
-
* @param {number} sequence - sequence data for tx signer
|
|
61
|
-
* @returns {TransactionBuilder} This transaction builder
|
|
62
|
-
*/
|
|
63
|
-
sequence(sequence) {
|
|
64
|
-
this.validateSequence(sequence);
|
|
65
|
-
this._sequence = sequence;
|
|
66
|
-
return this;
|
|
67
|
-
}
|
|
68
|
-
sendMessages(sendMessages) {
|
|
69
|
-
this.validateMessageDataArray(sendMessages);
|
|
70
|
-
this._sendMessages = sendMessages;
|
|
71
|
-
return this;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Initialize the transaction builder fields using the decoded transaction data
|
|
75
|
-
*
|
|
76
|
-
* @param {Transaction} tx the transaction data
|
|
77
|
-
*/
|
|
78
|
-
initBuilder(tx) {
|
|
79
|
-
this._transaction = tx;
|
|
80
|
-
const txData = tx.toJson();
|
|
81
|
-
this.type(txData.type);
|
|
82
|
-
this.gasBudget(txData.gasBudget);
|
|
83
|
-
this.signerAddress(txData.signerAddress);
|
|
84
|
-
this.sendMessages(txData.sendMessages);
|
|
85
|
-
this.gasBudget(txData.gasBudget);
|
|
86
|
-
this.sequence(txData.sequence);
|
|
87
|
-
}
|
|
88
|
-
/** @inheritdoc */
|
|
89
|
-
fromImplementation(rawTransaction) {
|
|
90
|
-
const tx = new transaction_1.Transaction(this._coinConfig);
|
|
91
|
-
this.validateRawTransaction(rawTransaction);
|
|
92
|
-
tx.fromRawTransaction(rawTransaction);
|
|
93
|
-
this.initBuilder(tx);
|
|
94
|
-
return this.transaction;
|
|
95
|
-
}
|
|
96
|
-
/** @inheritdoc */
|
|
97
|
-
async buildImplementation() {
|
|
98
|
-
this.transaction.setAtomTransaction(this.buildAtomTransaction());
|
|
99
|
-
this.transaction.transactionType(this.transactionType);
|
|
100
|
-
return this.transaction;
|
|
101
|
-
}
|
|
102
|
-
buildAtomTransaction() {
|
|
103
|
-
assert_1.default(this._type, new sdk_core_1.BuildTransactionError('type is required before building'));
|
|
104
|
-
assert_1.default(this._signerAddress, new sdk_core_1.BuildTransactionError('signerAddress is required before building'));
|
|
105
|
-
assert_1.default(this._sequence >= 0, new sdk_core_1.BuildTransactionError('sequence is required before building'));
|
|
106
|
-
assert_1.default(this._sendMessages, new sdk_core_1.BuildTransactionError('sendMessages are required before building'));
|
|
107
|
-
assert_1.default(this._gasBudget, new sdk_core_1.BuildTransactionError('gasPrice is required before building'));
|
|
108
|
-
return {
|
|
109
|
-
type: this._type,
|
|
110
|
-
signerAddress: this._signerAddress,
|
|
111
|
-
sequence: this._sequence,
|
|
112
|
-
sendMessages: this._sendMessages,
|
|
113
|
-
gasBudget: this._gasBudget,
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
validateAddress(address, addressFormat) {
|
|
117
|
-
if (!utils_1.default.isValidAddress(address.address)) {
|
|
118
|
-
throw new sdk_core_1.BuildTransactionError('transactionBuilder: address isValidAddress check failed: ' + address.address);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
validateAmountData(amountArray) {
|
|
122
|
-
amountArray.forEach((coinAmount) => {
|
|
123
|
-
const amount = bignumber_js_1.default(coinAmount.amount);
|
|
124
|
-
if (amount.isLessThanOrEqualTo(0)) {
|
|
125
|
-
throw new sdk_core_1.BuildTransactionError('transactionBuilder: validateAmountData Invalid amount: ' + amount);
|
|
126
|
-
}
|
|
127
|
-
if (!constants_1.validDenoms.find((denom) => denom === coinAmount.denom)) {
|
|
128
|
-
throw new sdk_core_1.BuildTransactionError('transactionBuilder: validateAmountData Invalid denom: ' + coinAmount.denom);
|
|
129
|
-
}
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
validateGasBudget(gasBudget) {
|
|
133
|
-
if (gasBudget.gas <= 0) {
|
|
134
|
-
throw new sdk_core_1.BuildTransactionError('Invalid gas limit ' + gasBudget.gas);
|
|
135
|
-
}
|
|
136
|
-
this.validateAmountData(gasBudget.amount);
|
|
137
|
-
}
|
|
138
|
-
validateMessageDataArray(sendMessages) {
|
|
139
|
-
for (const msg of sendMessages) {
|
|
140
|
-
this.validateMessageData(msg);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
validateMessageData(messageData) {
|
|
144
|
-
if (!messageData) {
|
|
145
|
-
throw new sdk_core_1.BuildTransactionError(`Invalid MessageData: undefined`);
|
|
146
|
-
}
|
|
147
|
-
if (!messageData.typeUrl) {
|
|
148
|
-
throw new sdk_core_1.BuildTransactionError(`Invalid MessageData typeurl: ` + messageData.typeUrl);
|
|
149
|
-
}
|
|
150
|
-
if (!messageData.value.toAddress) {
|
|
151
|
-
throw new sdk_core_1.BuildTransactionError(`Invalid MessageData value.toAddress: ` + messageData.value.toAddress);
|
|
152
|
-
}
|
|
153
|
-
if (!messageData.value.fromAddress) {
|
|
154
|
-
throw new sdk_core_1.BuildTransactionError(`Invalid MessageData value.fromAddress: ` + messageData.value.fromAddress);
|
|
155
|
-
}
|
|
156
|
-
this.validateAmountData(messageData.value.amount);
|
|
157
|
-
}
|
|
158
|
-
/** @inheritdoc */
|
|
159
|
-
validateKey(key) {
|
|
160
|
-
throw new Error('Method not implemented.');
|
|
161
|
-
}
|
|
162
|
-
/** @inheritdoc */
|
|
163
|
-
validateRawTransaction(rawTransaction) {
|
|
164
|
-
if (!rawTransaction) {
|
|
165
|
-
throw new sdk_core_1.ParseTransactionError('Invalid raw transaction: Undefined');
|
|
166
|
-
}
|
|
167
|
-
if (!utils_1.default.isValidRawTransaction(rawTransaction)) {
|
|
168
|
-
throw new sdk_core_1.ParseTransactionError('Invalid raw transaction');
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
/** @inheritdoc */
|
|
172
|
-
validateTransaction(transaction) {
|
|
173
|
-
if (!transaction.atomTransaction) {
|
|
174
|
-
return;
|
|
175
|
-
}
|
|
176
|
-
this.validateTransactionFields();
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Validates all fields are defined
|
|
180
|
-
*/
|
|
181
|
-
validateTransactionFields() {
|
|
182
|
-
if (this._type === undefined) {
|
|
183
|
-
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing type');
|
|
184
|
-
}
|
|
185
|
-
if (this._signerAddress === undefined) {
|
|
186
|
-
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing signerAddress');
|
|
187
|
-
}
|
|
188
|
-
if (this._sequence === undefined) {
|
|
189
|
-
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing sequence');
|
|
190
|
-
}
|
|
191
|
-
if (this._sendMessages === undefined) {
|
|
192
|
-
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing sendMessages');
|
|
193
|
-
}
|
|
194
|
-
if (this._gasBudget === undefined) {
|
|
195
|
-
throw new sdk_core_1.BuildTransactionError('Invalid transaction: missing gas budget data');
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
/** @inheritdoc */
|
|
199
|
-
validateValue(value) {
|
|
200
|
-
if (value.isLessThan(0)) {
|
|
201
|
-
throw new sdk_core_1.BuildTransactionError('Value cannot be less than zero');
|
|
202
|
-
}
|
|
203
|
-
}
|
|
204
|
-
validateSequence(sequence) {
|
|
205
|
-
if (sequence < 0) {
|
|
206
|
-
throw new sdk_core_1.BuildTransactionError('Invalid sequence: less than zero');
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
exports.TransactionBuilder = TransactionBuilder;
|
|
211
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBUzhCO0FBQzlCLCtDQUE0QztBQUM1QyxvREFBNEI7QUFDNUIsZ0VBQXFDO0FBRXJDLG9EQUE0QjtBQUc1QiwyQ0FBMEM7QUFFMUMsTUFBc0Isa0JBQW1CLFNBQVEsaUNBQXNCO0lBVXJFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBVGIsZ0JBQVcsR0FBZ0IsRUFBRSxDQUFDO1FBVXBDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFRRCxrQkFBa0I7SUFDbEIsSUFBYyxXQUFXO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsV0FBVyxDQUFDLFdBQXdCO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFlBQVksQ0FBQyxTQUF3QixFQUFFLFNBQWlCO1FBQ3RELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLENBQUMsSUFBWTtRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRDs7Ozs7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QjtJQUNsQixhQUFhLENBQUMsS0FBZ0I7UUFDNUIsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3ZCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ25FO0lBQ0gsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFFBQWdCO1FBQ3ZDLElBQUksUUFBUSxHQUFHLENBQUMsRUFBRTtZQUNoQixNQUFNLElBQUksZ0NBQXFCLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNyRTtJQUNILENBQUM7Q0FDRjtBQTNPRCxnREEyT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlQWRkcmVzcyxcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uQnVpbGRlcixcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFB1YmxpY0tleSBhcyBCYXNlUHVibGljS2V5LFxuICBTaWduYXR1cmUsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCB7IEF0b21UcmFuc2FjdGlvbiwgR2FzRmVlTGltaXREYXRhLCBNZXNzYWdlRGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgQ29pbiB9IGZyb20gJ0Bjb3NtanMvc3RhcmdhdGUnO1xuaW1wb3J0IHsgdmFsaWREZW5vbXMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2FjdGlvbjogVHJhbnNhY3Rpb247XG4gIHByaXZhdGUgX3NpZ25hdHVyZXM6IFNpZ25hdHVyZVtdID0gW107XG5cbiAgcHJvdGVjdGVkIF90eXBlOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfc2lnbmVyQWRkcmVzczogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3NlcXVlbmNlOiBudW1iZXI7XG4gIHByb3RlY3RlZCBfc2VuZE1lc3NhZ2VzOiBNZXNzYWdlRGF0YVtdO1xuICBwcm90ZWN0ZWQgX2dhc0J1ZGdldDogR2FzRmVlTGltaXREYXRhO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvLyBnZXQgYW5kIHNldCByZWdpb25cbiAgLyoqXG4gICAqIFRoZSB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlO1xuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0IHRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBhZGRTaWduYXR1cmUocHVibGljS2V5OiBCYXNlUHVibGljS2V5LCBzaWduYXR1cmU6IEJ1ZmZlcik6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZXMucHVzaCh7IHB1YmxpY0tleSwgc2lnbmF0dXJlIH0pO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uYWRkU2lnbmF0dXJlKHB1YmxpY0tleSwgc2lnbmF0dXJlKTtcbiAgfVxuXG4gIHR5cGUodHlwZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHR5cGU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2lnbmVyQWRkcmVzcyBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKiBUaGlzIGFjY291bnQgd2lsbCBiZSByZXNwb25zaWJsZSBmb3IgcGF5aW5nIHRyYW5zYWN0aW9uIGZlZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzaWduZXJBZGRyZXNzIHRoZSBhY2NvdW50IHRoYXQgaXMgc2VuZGluZyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2lnbmVyQWRkcmVzcyhzaWduZXJBZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRBZGRyZXNzKHNpZ25lckFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3RyYW5zYWN0aW9uQnVpbGRlcjogc2VuZGVyIGlzVmFsaWRBZGRyZXNzIGNoZWNrIGZhaWxlZCA6JyArIHNpZ25lckFkZHJlc3MpO1xuICAgIH1cbiAgICB0aGlzLl9zaWduZXJBZGRyZXNzID0gc2lnbmVyQWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIGdhc0J1ZGdldChnYXNCdWRnZXQ6IEdhc0ZlZUxpbWl0RGF0YSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVHYXNCdWRnZXQoZ2FzQnVkZ2V0KTtcbiAgICB0aGlzLl9nYXNCdWRnZXQgPSBnYXNCdWRnZXQ7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IHNlcXVlbmNlIC0gc2VxdWVuY2UgZGF0YSBmb3IgdHggc2lnbmVyXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgc2VxdWVuY2Uoc2VxdWVuY2U6IG51bWJlcik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVTZXF1ZW5jZShzZXF1ZW5jZSk7XG4gICAgdGhpcy5fc2VxdWVuY2UgPSBzZXF1ZW5jZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHNlbmRNZXNzYWdlcyhzZW5kTWVzc2FnZXM6IE1lc3NhZ2VEYXRhW10pOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlTWVzc2FnZURhdGFBcnJheShzZW5kTWVzc2FnZXMpO1xuICAgIHRoaXMuX3NlbmRNZXNzYWdlcyA9IHNlbmRNZXNzYWdlcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgZGVjb2RlZCB0cmFuc2FjdGlvbiBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IHR4IHRoZSB0cmFuc2FjdGlvbiBkYXRhXG4gICAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHR4O1xuICAgIGNvbnN0IHR4RGF0YSA9IHR4LnRvSnNvbigpO1xuICAgIHRoaXMudHlwZSh0eERhdGEudHlwZSk7XG4gICAgdGhpcy5nYXNCdWRnZXQodHhEYXRhLmdhc0J1ZGdldCk7XG4gICAgdGhpcy5zaWduZXJBZGRyZXNzKHR4RGF0YS5zaWduZXJBZGRyZXNzKTtcbiAgICB0aGlzLnNlbmRNZXNzYWdlcyh0eERhdGEuc2VuZE1lc3NhZ2VzKTtcbiAgICB0aGlzLmdhc0J1ZGdldCh0eERhdGEuZ2FzQnVkZ2V0KTtcbiAgICB0aGlzLnNlcXVlbmNlKHR4RGF0YS5zZXF1ZW5jZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHR4ID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmluaXRCdWlsZGVyKHR4KTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRBdG9tVHJhbnNhY3Rpb24odGhpcy5idWlsZEF0b21UcmFuc2FjdGlvbigpKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uVHlwZSh0aGlzLnRyYW5zYWN0aW9uVHlwZSk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRBdG9tVHJhbnNhY3Rpb24oKTogQXRvbVRyYW5zYWN0aW9uIHtcbiAgICBhc3NlcnQodGhpcy5fdHlwZSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndHlwZSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3NpZ25lckFkZHJlc3MsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3NpZ25lckFkZHJlc3MgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9zZXF1ZW5jZSA+PSAwLCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZXF1ZW5jZSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRNZXNzYWdlcywgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignc2VuZE1lc3NhZ2VzIGFyZSByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX2dhc0J1ZGdldCwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignZ2FzUHJpY2UgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHRoaXMuX3R5cGUsXG4gICAgICBzaWduZXJBZGRyZXNzOiB0aGlzLl9zaWduZXJBZGRyZXNzLFxuICAgICAgc2VxdWVuY2U6IHRoaXMuX3NlcXVlbmNlLFxuICAgICAgc2VuZE1lc3NhZ2VzOiB0aGlzLl9zZW5kTWVzc2FnZXMsXG4gICAgICBnYXNCdWRnZXQ6IHRoaXMuX2dhc0J1ZGdldCxcbiAgICB9O1xuICB9XG5cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEJhc2VBZGRyZXNzLCBhZGRyZXNzRm9ybWF0Pzogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCd0cmFuc2FjdGlvbkJ1aWxkZXI6IGFkZHJlc3MgaXNWYWxpZEFkZHJlc3MgY2hlY2sgZmFpbGVkOiAnICsgYWRkcmVzcy5hZGRyZXNzKTtcbiAgICB9XG4gIH1cblxuICB2YWxpZGF0ZUFtb3VudERhdGEoYW1vdW50QXJyYXk6IENvaW5bXSk6IHZvaWQge1xuICAgIGFtb3VudEFycmF5LmZvckVhY2goKGNvaW5BbW91bnQpID0+IHtcbiAgICAgIGNvbnN0IGFtb3VudCA9IEJpZ051bWJlcihjb2luQW1vdW50LmFtb3VudCk7XG4gICAgICBpZiAoYW1vdW50LmlzTGVzc1RoYW5PckVxdWFsVG8oMCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigndHJhbnNhY3Rpb25CdWlsZGVyOiB2YWxpZGF0ZUFtb3VudERhdGEgSW52YWxpZCBhbW91bnQ6ICcgKyBhbW91bnQpO1xuICAgICAgfVxuICAgICAgaWYgKCF2YWxpZERlbm9tcy5maW5kKChkZW5vbSkgPT4gZGVub20gPT09IGNvaW5BbW91bnQuZGVub20pKSB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3RyYW5zYWN0aW9uQnVpbGRlcjogdmFsaWRhdGVBbW91bnREYXRhIEludmFsaWQgZGVub206ICcgKyBjb2luQW1vdW50LmRlbm9tKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHZhbGlkYXRlR2FzQnVkZ2V0KGdhc0J1ZGdldDogR2FzRmVlTGltaXREYXRhKTogdm9pZCB7XG4gICAgaWYgKGdhc0J1ZGdldC5nYXMgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBnYXMgbGltaXQgJyArIGdhc0J1ZGdldC5nYXMpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlQW1vdW50RGF0YShnYXNCdWRnZXQuYW1vdW50KTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVNZXNzYWdlRGF0YUFycmF5KHNlbmRNZXNzYWdlczogTWVzc2FnZURhdGFbXSkge1xuICAgIGZvciAoY29uc3QgbXNnIG9mIHNlbmRNZXNzYWdlcykge1xuICAgICAgdGhpcy52YWxpZGF0ZU1lc3NhZ2VEYXRhKG1zZyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVNZXNzYWdlRGF0YShtZXNzYWdlRGF0YTogTWVzc2FnZURhdGEpOiB2b2lkIHtcbiAgICBpZiAoIW1lc3NhZ2VEYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIE1lc3NhZ2VEYXRhOiB1bmRlZmluZWRgKTtcbiAgICB9XG4gICAgaWYgKCFtZXNzYWdlRGF0YS50eXBlVXJsKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIE1lc3NhZ2VEYXRhIHR5cGV1cmw6IGAgKyBtZXNzYWdlRGF0YS50eXBlVXJsKTtcbiAgICB9XG4gICAgaWYgKCFtZXNzYWdlRGF0YS52YWx1ZS50b0FkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgTWVzc2FnZURhdGEgdmFsdWUudG9BZGRyZXNzOiBgICsgbWVzc2FnZURhdGEudmFsdWUudG9BZGRyZXNzKTtcbiAgICB9XG4gICAgaWYgKCFtZXNzYWdlRGF0YS52YWx1ZS5mcm9tQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBNZXNzYWdlRGF0YSB2YWx1ZS5mcm9tQWRkcmVzczogYCArIG1lc3NhZ2VEYXRhLnZhbHVlLmZyb21BZGRyZXNzKTtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZUFtb3VudERhdGEobWVzc2FnZURhdGEudmFsdWUuYW1vdW50KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleShrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKCFyYXdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCByYXcgdHJhbnNhY3Rpb246IFVuZGVmaW5lZCcpO1xuICAgIH1cbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbikpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgcmF3IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbi5hdG9tVHJhbnNhY3Rpb24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIGFsbCBmaWVsZHMgYXJlIGRlZmluZWRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVUcmFuc2FjdGlvbkZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHR5cGUnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3NpZ25lckFkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBzaWduZXJBZGRyZXNzJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zZXF1ZW5jZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIHNlcXVlbmNlJyk7XG4gICAgfVxuICAgIGlmICh0aGlzLl9zZW5kTWVzc2FnZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbjogbWlzc2luZyBzZW5kTWVzc2FnZXMnKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2dhc0J1ZGdldCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uOiBtaXNzaW5nIGdhcyBidWRnZXQgZGF0YScpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUuaXNMZXNzVGhhbigwKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVmFsdWUgY2Fubm90IGJlIGxlc3MgdGhhbiB6ZXJvJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVNlcXVlbmNlKHNlcXVlbmNlOiBudW1iZXIpIHtcbiAgICBpZiAoc2VxdWVuY2UgPCAwKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHNlcXVlbmNlOiBsZXNzIHRoYW4gemVybycpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { TransactionBuilder } from './transactionBuilder';
|
|
2
|
-
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
-
import { TransactionType } from '@bitgo-beta/sdk-core';
|
|
4
|
-
export declare class TransferBuilder extends TransactionBuilder {
|
|
5
|
-
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
6
|
-
protected get transactionType(): TransactionType;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=transferBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,qBAAa,eAAgB,SAAQ,kBAAkB;gBACzC,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;CACF"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TransferBuilder = void 0;
|
|
4
|
-
const transactionBuilder_1 = require("./transactionBuilder");
|
|
5
|
-
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
6
|
-
class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
7
|
-
constructor(_coinConfig) {
|
|
8
|
-
super(_coinConfig);
|
|
9
|
-
}
|
|
10
|
-
get transactionType() {
|
|
11
|
-
return sdk_core_1.TransactionType.Send;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
exports.TransferBuilder = TransferBuilder;
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkRBQTBEO0FBRTFELG1EQUF1RDtBQUV2RCxNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBQ3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0NBQ0Y7QUFSRCwwQ0FRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TZW5kO1xuICB9XG59XG4iXX0=
|