@bitgo/sdk-coin-xrp 3.1.0 → 3.3.0
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/CHANGELOG.md +13 -0
- package/dist/src/index.d.ts +3 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -5
- package/dist/src/lib/accountSetBuilder.d.ts +18 -0
- package/dist/src/lib/accountSetBuilder.d.ts.map +1 -0
- package/dist/src/lib/accountSetBuilder.js +63 -0
- package/dist/src/lib/constants.d.ts +8 -0
- package/dist/src/lib/constants.d.ts.map +1 -0
- package/dist/src/lib/constants.js +30 -0
- package/dist/src/lib/iface.d.ts +47 -2
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +9 -1
- package/dist/src/lib/index.d.ts +14 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +43 -0
- package/dist/src/lib/keyPair.d.ts +1 -0
- package/dist/src/lib/keyPair.d.ts.map +1 -1
- package/dist/src/lib/tokenTransferBuilder.d.ts +29 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferBuilder.js +91 -0
- package/dist/src/lib/transaction.d.ts +62 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +371 -0
- package/dist/src/lib/transactionBuilder.d.ts +72 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +253 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts +39 -0
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilderFactory.js +97 -0
- package/dist/src/lib/transferBuilder.d.ts +28 -0
- package/dist/src/lib/transferBuilder.d.ts.map +1 -0
- package/dist/src/lib/transferBuilder.js +82 -0
- package/dist/src/lib/trustsetBuilder.d.ts +21 -0
- package/dist/src/lib/trustsetBuilder.d.ts.map +1 -0
- package/dist/src/lib/trustsetBuilder.js +72 -0
- package/dist/src/lib/utils.d.ts +27 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +81 -1
- package/dist/src/lib/walletInitializationBuilder.d.ts +19 -0
- package/dist/src/lib/walletInitializationBuilder.d.ts.map +1 -0
- package/dist/src/lib/walletInitializationBuilder.js +76 -0
- package/dist/src/xrp.d.ts +3 -2
- package/dist/src/xrp.d.ts.map +1 -1
- package/dist/src/xrp.js +5 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.Transaction = void 0;
|
|
30
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
31
|
+
const xrpl = __importStar(require("xrpl"));
|
|
32
|
+
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
33
|
+
const utils_1 = __importDefault(require("./utils"));
|
|
34
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
35
|
+
const iface_1 = require("./iface");
|
|
36
|
+
/**
|
|
37
|
+
* XRP transaction.
|
|
38
|
+
*/
|
|
39
|
+
class Transaction extends sdk_core_1.BaseTransaction {
|
|
40
|
+
constructor(coinConfig) {
|
|
41
|
+
super(coinConfig);
|
|
42
|
+
}
|
|
43
|
+
get xrpTransaction() {
|
|
44
|
+
return this._xrpTransaction;
|
|
45
|
+
}
|
|
46
|
+
set xrpTransaction(tx) {
|
|
47
|
+
this._xrpTransaction = tx;
|
|
48
|
+
}
|
|
49
|
+
canSign(key) {
|
|
50
|
+
if (!utils_1.default.isValidPrivateKey(key.key)) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
55
|
+
toJson() {
|
|
56
|
+
if (!this._xrpTransaction) {
|
|
57
|
+
throw new sdk_core_1.InvalidTransactionError('Empty transaction');
|
|
58
|
+
}
|
|
59
|
+
const txData = {
|
|
60
|
+
from: this._xrpTransaction.Account,
|
|
61
|
+
isMultiSig: this._isMultiSig,
|
|
62
|
+
transactionType: this._xrpTransaction.TransactionType,
|
|
63
|
+
id: this._id,
|
|
64
|
+
fee: this._xrpTransaction.Fee,
|
|
65
|
+
sequence: this._xrpTransaction.Sequence,
|
|
66
|
+
lastLedgerSequence: this._xrpTransaction.LastLedgerSequence,
|
|
67
|
+
flags: this._xrpTransaction.Flags,
|
|
68
|
+
signingPubKey: this._xrpTransaction.SigningPubKey,
|
|
69
|
+
signers: this._xrpTransaction.Signers,
|
|
70
|
+
txnSignature: this._xrpTransaction.TxnSignature,
|
|
71
|
+
};
|
|
72
|
+
if (this._xrpTransaction.SigningPubKey === '' && !lodash_1.default.isEmpty(this._xrpTransaction.Signers)) {
|
|
73
|
+
txData.isMultiSig = true;
|
|
74
|
+
}
|
|
75
|
+
if (this._xrpTransaction.SigningPubKey && utils_1.default.isValidPublicKey(this._xrpTransaction.SigningPubKey)) {
|
|
76
|
+
txData.isMultiSig = false;
|
|
77
|
+
}
|
|
78
|
+
switch (this._xrpTransaction.TransactionType) {
|
|
79
|
+
case iface_1.XrpTransactionType.Payment:
|
|
80
|
+
txData.destination = this._xrpTransaction.Destination;
|
|
81
|
+
txData.destinationTag = this._xrpTransaction.DestinationTag;
|
|
82
|
+
if (typeof this._xrpTransaction.Amount === 'string' ||
|
|
83
|
+
utils_1.default.isIssuedCurrencyAmount(this._xrpTransaction.Amount)) {
|
|
84
|
+
txData.amount = this._xrpTransaction.Amount;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
throw new sdk_core_1.InvalidTransactionError('Invalid amount');
|
|
88
|
+
}
|
|
89
|
+
return txData;
|
|
90
|
+
case iface_1.XrpTransactionType.AccountSet:
|
|
91
|
+
txData.setFlag = this._xrpTransaction.SetFlag;
|
|
92
|
+
txData.messageKey = this._xrpTransaction.MessageKey;
|
|
93
|
+
return txData;
|
|
94
|
+
case iface_1.XrpTransactionType.SignerListSet:
|
|
95
|
+
txData.signerQuorum = this._xrpTransaction.SignerQuorum;
|
|
96
|
+
txData.signerEntries = this._xrpTransaction.SignerEntries;
|
|
97
|
+
return txData;
|
|
98
|
+
case iface_1.XrpTransactionType.TrustSet:
|
|
99
|
+
txData.amount = this._xrpTransaction.LimitAmount;
|
|
100
|
+
return txData;
|
|
101
|
+
default:
|
|
102
|
+
throw new sdk_core_1.InvalidTransactionError('Invalid transaction type');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
getSignablePayload() {
|
|
106
|
+
if (!this._xrpTransaction) {
|
|
107
|
+
throw new sdk_core_1.InvalidTransactionError('Empty transaction');
|
|
108
|
+
}
|
|
109
|
+
return lodash_1.default.omit(this._xrpTransaction, ['TxnSignature', 'Signers', 'SigningPubKey']);
|
|
110
|
+
}
|
|
111
|
+
sign(keyPair) {
|
|
112
|
+
if (!this._xrpTransaction) {
|
|
113
|
+
throw new sdk_core_1.InvalidTransactionError('Empty transaction');
|
|
114
|
+
}
|
|
115
|
+
if (!this._xrpTransaction.Fee) {
|
|
116
|
+
throw new sdk_core_1.InvalidTransactionError('Missing fee');
|
|
117
|
+
}
|
|
118
|
+
if (!this._xrpTransaction.Sequence) {
|
|
119
|
+
throw new sdk_core_1.InvalidTransactionError('Missing sequence');
|
|
120
|
+
}
|
|
121
|
+
if (!this._xrpTransaction.Flags) {
|
|
122
|
+
throw new sdk_core_1.InvalidTransactionError('Missing flags');
|
|
123
|
+
}
|
|
124
|
+
if (lodash_1.default.isEmpty(keyPair)) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const keyPairs = keyPair instanceof Array ? keyPair : [keyPair];
|
|
128
|
+
for (const kp of keyPairs) {
|
|
129
|
+
const { pub, prv } = kp.getKeys();
|
|
130
|
+
if (!prv) {
|
|
131
|
+
throw new sdk_core_1.SigningError('Missing private key');
|
|
132
|
+
}
|
|
133
|
+
if (this._isMultiSig === false && this._xrpTransaction.TxnSignature) {
|
|
134
|
+
throw new sdk_core_1.SigningError('Transaction has already been signed');
|
|
135
|
+
}
|
|
136
|
+
const signablePayload = this.getSignablePayload();
|
|
137
|
+
const xrpWallet = new xrpl.Wallet(pub, prv);
|
|
138
|
+
const signedTx = xrpWallet.sign(signablePayload, this._isMultiSig);
|
|
139
|
+
const xrpSignedTx = xrpl.decode(signedTx.tx_blob);
|
|
140
|
+
xrpl.validate(xrpSignedTx);
|
|
141
|
+
if (this._isMultiSig === false) {
|
|
142
|
+
xrpWallet.verifyTransaction(signedTx.tx_blob);
|
|
143
|
+
this._xrpTransaction = xrpSignedTx;
|
|
144
|
+
this._id = signedTx.hash;
|
|
145
|
+
}
|
|
146
|
+
if (this._isMultiSig === true) {
|
|
147
|
+
if (!xrpSignedTx.Signers || !lodash_1.default.isArray(xrpSignedTx.Signers)) {
|
|
148
|
+
throw new sdk_core_1.SigningError('Missing or invalid signers');
|
|
149
|
+
}
|
|
150
|
+
const sortedSigners = this.concatAndSortSigners(this._xrpTransaction.Signers || [], xrpSignedTx.Signers);
|
|
151
|
+
this._xrpTransaction = xrpSignedTx;
|
|
152
|
+
this._xrpTransaction.Signers = sortedSigners;
|
|
153
|
+
this._id = this.calculateIdFromRawTx(xrpl.encode(this._xrpTransaction));
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/** @inheritdoc */
|
|
158
|
+
toBroadcastFormat() {
|
|
159
|
+
if (!this._xrpTransaction) {
|
|
160
|
+
throw new sdk_core_1.InvalidTransactionError('Empty transaction');
|
|
161
|
+
}
|
|
162
|
+
return xrpl.encode(this._xrpTransaction);
|
|
163
|
+
}
|
|
164
|
+
explainTransaction() {
|
|
165
|
+
switch (this._xrpTransaction.TransactionType) {
|
|
166
|
+
case iface_1.XrpTransactionType.Payment:
|
|
167
|
+
return this.explainPaymentTransaction();
|
|
168
|
+
case iface_1.XrpTransactionType.AccountSet:
|
|
169
|
+
return this.explainAccountSetTransaction();
|
|
170
|
+
case iface_1.XrpTransactionType.SignerListSet:
|
|
171
|
+
return this.explainSignerListSetTransaction();
|
|
172
|
+
default:
|
|
173
|
+
throw new Error('Unsupported transaction type');
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
explainPaymentTransaction() {
|
|
177
|
+
const tx = this._xrpTransaction;
|
|
178
|
+
const address = utils_1.default.normalizeAddress({ address: tx.Destination, destinationTag: tx.DestinationTag });
|
|
179
|
+
const amount = lodash_1.default.isString(tx.Amount) ? tx.Amount : 0;
|
|
180
|
+
return {
|
|
181
|
+
displayOrder: ['id', 'outputAmount', 'changeAmount', 'outputs', 'changeOutputs', 'fee'],
|
|
182
|
+
id: this._id,
|
|
183
|
+
changeOutputs: [],
|
|
184
|
+
outputAmount: amount,
|
|
185
|
+
changeAmount: 0,
|
|
186
|
+
outputs: [
|
|
187
|
+
{
|
|
188
|
+
address,
|
|
189
|
+
amount,
|
|
190
|
+
},
|
|
191
|
+
],
|
|
192
|
+
fee: {
|
|
193
|
+
fee: tx.Fee,
|
|
194
|
+
feeRate: undefined,
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
explainAccountSetTransaction() {
|
|
199
|
+
const tx = this._xrpTransaction;
|
|
200
|
+
return {
|
|
201
|
+
displayOrder: ['id', 'outputAmount', 'changeAmount', 'outputs', 'changeOutputs', 'fee', 'accountSet'],
|
|
202
|
+
id: this._id,
|
|
203
|
+
changeOutputs: [],
|
|
204
|
+
outputAmount: 0,
|
|
205
|
+
changeAmount: 0,
|
|
206
|
+
outputs: [],
|
|
207
|
+
fee: {
|
|
208
|
+
fee: tx.Fee,
|
|
209
|
+
feeRate: undefined,
|
|
210
|
+
},
|
|
211
|
+
accountSet: {
|
|
212
|
+
messageKey: tx.MessageKey,
|
|
213
|
+
setFlag: tx.SetFlag,
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
explainSignerListSetTransaction() {
|
|
218
|
+
const tx = this._xrpTransaction;
|
|
219
|
+
return {
|
|
220
|
+
displayOrder: ['id', 'outputAmount', 'changeAmount', 'outputs', 'changeOutputs', 'fee', 'signerListSet'],
|
|
221
|
+
id: this._id,
|
|
222
|
+
changeOutputs: [],
|
|
223
|
+
outputAmount: 0,
|
|
224
|
+
changeAmount: 0,
|
|
225
|
+
outputs: [],
|
|
226
|
+
fee: {
|
|
227
|
+
fee: tx.Fee,
|
|
228
|
+
feeRate: undefined,
|
|
229
|
+
},
|
|
230
|
+
signerListSet: {
|
|
231
|
+
signerQuorum: tx.SignerQuorum,
|
|
232
|
+
signerEntries: tx.SignerEntries,
|
|
233
|
+
},
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
calculateIdFromRawTx(rawTransaction) {
|
|
237
|
+
let id;
|
|
238
|
+
// hashes ids are different for signed and unsigned tx
|
|
239
|
+
// first we try to get the hash id as if it is signed, will throw if its not
|
|
240
|
+
try {
|
|
241
|
+
id = xrpl.hashes.hashSignedTx(rawTransaction);
|
|
242
|
+
}
|
|
243
|
+
catch (e) {
|
|
244
|
+
id = xrpl.hashes.hashTx(rawTransaction);
|
|
245
|
+
}
|
|
246
|
+
return id;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Set the transaction type.
|
|
250
|
+
*
|
|
251
|
+
* @param {TransactionType} transactionType The transaction type to be set.
|
|
252
|
+
*/
|
|
253
|
+
setTransactionType(transactionType) {
|
|
254
|
+
this._type = transactionType;
|
|
255
|
+
}
|
|
256
|
+
setMultiSigValue(isMultiSig) {
|
|
257
|
+
this._isMultiSig = isMultiSig;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Sets this transaction payload
|
|
261
|
+
*
|
|
262
|
+
* @param rawTransaction
|
|
263
|
+
*/
|
|
264
|
+
fromRawTransaction(rawTransaction) {
|
|
265
|
+
let txHex = rawTransaction;
|
|
266
|
+
if (!utils_1.default.isValidHex(rawTransaction)) {
|
|
267
|
+
try {
|
|
268
|
+
txHex = xrpl.encode(JSON.parse(rawTransaction));
|
|
269
|
+
}
|
|
270
|
+
catch (e) {
|
|
271
|
+
throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
utils_1.default.validateRawTransaction(txHex);
|
|
275
|
+
this._xrpTransaction = xrpl.decode(txHex);
|
|
276
|
+
if (!iface_1.XrpTransactionType[this._xrpTransaction.TransactionType]) {
|
|
277
|
+
throw new sdk_core_1.InvalidTransactionError('Unsupported transaction type, got: ' + this._xrpTransaction.TransactionType);
|
|
278
|
+
}
|
|
279
|
+
if (this._xrpTransaction.SigningPubKey && this._xrpTransaction.SigningPubKey !== '') {
|
|
280
|
+
this._isMultiSig = false;
|
|
281
|
+
}
|
|
282
|
+
if (this._xrpTransaction.SigningPubKey === '' &&
|
|
283
|
+
this._xrpTransaction.Signers &&
|
|
284
|
+
this._xrpTransaction.Signers.length > 0) {
|
|
285
|
+
this._isMultiSig = true;
|
|
286
|
+
}
|
|
287
|
+
this._id = this.calculateIdFromRawTx(txHex);
|
|
288
|
+
switch (this._xrpTransaction.TransactionType) {
|
|
289
|
+
case iface_1.XrpTransactionType.SignerListSet:
|
|
290
|
+
this.setTransactionType(sdk_core_1.TransactionType.WalletInitialization);
|
|
291
|
+
break;
|
|
292
|
+
case iface_1.XrpTransactionType.AccountSet:
|
|
293
|
+
this.setTransactionType(sdk_core_1.TransactionType.AccountUpdate);
|
|
294
|
+
break;
|
|
295
|
+
case iface_1.XrpTransactionType.Payment:
|
|
296
|
+
if (utils_1.default.isIssuedCurrencyAmount(this._xrpTransaction.Amount)) {
|
|
297
|
+
this.setTransactionType(sdk_core_1.TransactionType.SendToken);
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
this.setTransactionType(sdk_core_1.TransactionType.Send);
|
|
301
|
+
}
|
|
302
|
+
break;
|
|
303
|
+
case iface_1.XrpTransactionType.TrustSet:
|
|
304
|
+
this.setTransactionType(sdk_core_1.TransactionType.TrustLine);
|
|
305
|
+
break;
|
|
306
|
+
}
|
|
307
|
+
this.loadInputsAndOutputs();
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Load the input and output data on this transaction.
|
|
311
|
+
*/
|
|
312
|
+
loadInputsAndOutputs() {
|
|
313
|
+
if (!this._xrpTransaction) {
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
if (this._xrpTransaction.TransactionType === iface_1.XrpTransactionType.Payment) {
|
|
317
|
+
let value;
|
|
318
|
+
const { Account, Destination, Amount, DestinationTag } = this._xrpTransaction;
|
|
319
|
+
if (typeof Amount === 'string') {
|
|
320
|
+
value = Amount;
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
value = Amount.value;
|
|
324
|
+
}
|
|
325
|
+
const coin = this._coinConfig.name;
|
|
326
|
+
this.inputs.push({
|
|
327
|
+
address: Account,
|
|
328
|
+
value,
|
|
329
|
+
coin,
|
|
330
|
+
});
|
|
331
|
+
this.outputs.push({
|
|
332
|
+
address: utils_1.default.normalizeAddress({ address: Destination, destinationTag: DestinationTag }),
|
|
333
|
+
value,
|
|
334
|
+
coin,
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
/**
|
|
339
|
+
* Groups and sorts the signers by account.
|
|
340
|
+
* @param {Signer[]}signers1 - The first set of signers.
|
|
341
|
+
* @param {Signer[]}signers2 - The second set of signers.
|
|
342
|
+
* @returns The grouped and sorted signers.
|
|
343
|
+
**/
|
|
344
|
+
concatAndSortSigners(signers1, signers2) {
|
|
345
|
+
return signers1
|
|
346
|
+
.concat(signers2)
|
|
347
|
+
.sort((signer1, signer2) => this.compareSignersByAccount(signer1.Signer.Account, signer2.Signer.Account));
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* If presented in binary form, the Signers array must be sorted based on
|
|
351
|
+
* the numeric value of the signer addresses, with the lowest value first.
|
|
352
|
+
* (If submitted as JSON, the submit_multisigned method handles this automatically.)
|
|
353
|
+
* https://xrpl.org/multi-signing.html.
|
|
354
|
+
*
|
|
355
|
+
* @param left - A Signer to compare with.
|
|
356
|
+
* @param right - A second Signer to compare with.
|
|
357
|
+
* @returns 1 if left \> right, 0 if left = right, -1 if left \< right, and null if left or right are NaN.
|
|
358
|
+
*/
|
|
359
|
+
compareSignersByAccount(address1, address2) {
|
|
360
|
+
const addressBN1 = this.addressToBigNumber(address1);
|
|
361
|
+
const addressBN2 = this.addressToBigNumber(address2);
|
|
362
|
+
return addressBN1.comparedTo(addressBN2);
|
|
363
|
+
}
|
|
364
|
+
addressToBigNumber(address) {
|
|
365
|
+
const hex = Buffer.from(xrpl.decodeAccountID(address)).toString('hex');
|
|
366
|
+
const numberOfBitsInHex = 16;
|
|
367
|
+
return new bignumber_js_1.default(hex, numberOfBitsInHex);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
exports.Transaction = Transaction;
|
|
371
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsb0RBQXVCO0FBQ3ZCLDJDQUE2QjtBQUU3Qiw4Q0FPeUI7QUFFekIsb0RBQTRCO0FBRTVCLGdFQUFxQztBQUVyQyxtQ0FPaUI7QUFHakI7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSwwQkFBZTtJQUs5QyxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsRUFBa0I7UUFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLElBQUksQ0FBQyxlQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDekIsTUFBTSxJQUFJLGtDQUF1QixDQUFDLG1CQUFtQixDQUFDLENBQUM7U0FDeEQ7UUFFRCxNQUFNLE1BQU0sR0FBVztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM1QixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFxQztZQUMzRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDWixHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHO1lBQzdC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QUNMLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVEOzs7OztRQUtJO0lBQ0ksb0JBQW9CLENBQUMsUUFBa0IsRUFBRSxRQUFrQjtRQUNqRSxPQUFPLFFBQVE7YUFDWixNQUFNLENBQUMsUUFBUSxDQUFDO2FBQ2hCLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNLLHVCQUF1QixDQUFDLFFBQWdCLEVBQUUsUUFBZ0I7UUFDaEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLGtCQUFrQixDQUFDLE9BQWU7UUFDeEMsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0saUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLE9BQU8sSUFBSSxzQkFBUyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDRjtBQS9XRCxrQ0ErV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgeHJwbCBmcm9tICd4cnBsJztcblxuaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIGFzIEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgU2lnbmluZ0Vycm9yLFxuICBUcmFuc2FjdGlvblR5cGUsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBTaWduZXIgfSBmcm9tICd4cnBsJztcbmltcG9ydCB7XG4gIEFjY291bnRTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBTaWduZXJMaXN0U2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgVHhEYXRhLFxuICBYcnBUcmFuc2FjdGlvbixcbiAgWHJwVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuXG4vKipcbiAqIFhSUCB0cmFuc2FjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgLy8gWFJQIHNwZWNpZmljIGZpZWxkc1xuICBwcm90ZWN0ZWQgX3hycFRyYW5zYWN0aW9uOiBYcnBUcmFuc2FjdGlvbjtcbiAgcHJvdGVjdGVkIF9pc011bHRpU2lnOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKGNvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoY29pbkNvbmZpZyk7XG4gIH1cblxuICBnZXQgeHJwVHJhbnNhY3Rpb24oKTogWHJwVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl94cnBUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCB4cnBUcmFuc2FjdGlvbih0eDogWHJwVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl94cnBUcmFuc2FjdGlvbiA9IHR4O1xuICB9XG5cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRQcml2YXRlS2V5KGtleS5rZXkpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHR4RGF0YTogVHhEYXRhID0ge1xuICAgICAgZnJvbTogdGhpcy5feHJwVHJhbnNhY3Rpb24uQWNjb3VudCxcbiAgICAgIGlzTXVsdGlTaWc6IHRoaXMuX2lzTXVsdGlTaWcsXG4gICAgICB0cmFuc2FjdGlvblR5cGU6IHRoaXMuX3hycFRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uVHlwZSBhcyBYcnBUcmFuc2FjdGlvblR5cGUsXG4gICAgICBpZDogdGhpcy5faWQsXG4gICAgICBmZWU6IHRoaXMuX3hycFRyYW5zYWN0aW9uLkZlZSxcbiAgICAgIHNlcXVlbmNlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5TZXF1ZW5jZSxcbiAgICAgIGxhc3RMZWRnZXJTZXF1ZW5jZTogdGhpcy5feHJwVHJhbnNhY3Rpb24uTGFzdExlZGdlclNlcXVlbmNlLFxuICAgICAgZmxhZ3M6IHRoaXMuX3hycFRyYW5zYWN0aW9uLkZsYWdzIGFzIG51bWJlcixcbiAgICAgIHNpZ25pbmdQdWJLZXk6IHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25pbmdQdWJLZXksXG4gICAgICBzaWduZXJzOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzLFxuICAgICAgdHhuU2lnbmF0dXJlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5UeG5TaWduYXR1cmUsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5ID09PSAnJyAmJiAhXy5pc0VtcHR5KHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lcnMpKSB7XG4gICAgICB0eERhdGEuaXNNdWx0aVNpZyA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5ICYmIHV0aWxzLmlzVmFsaWRQdWJsaWNLZXkodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSkpIHtcbiAgICAgIHR4RGF0YS5pc011bHRpU2lnID0gZmFsc2U7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLlBheW1lbnQ6XG4gICAgICAgIHR4RGF0YS5kZXN0aW5hdGlvbiA9IHRoaXMuX3hycFRyYW5zYWN0aW9uLkRlc3RpbmF0aW9uO1xuICAgICAgICB0eERhdGEuZGVzdGluYXRpb25UYWcgPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5EZXN0aW5hdGlvblRhZztcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHR5cGVvZiB0aGlzLl94cnBUcmFuc2FjdGlvbi5BbW91bnQgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgICAgdXRpbHMuaXNJc3N1ZWRDdXJyZW5jeUFtb3VudCh0aGlzLl94cnBUcmFuc2FjdGlvbi5BbW91bnQpXG4gICAgICAgICkge1xuICAgICAgICAgIHR4RGF0YS5hbW91bnQgPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5BbW91bnQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGFtb3VudCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0eERhdGE7XG5cbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLkFjY291bnRTZXQ6XG4gICAgICAgIHR4RGF0YS5zZXRGbGFnID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uU2V0RmxhZztcbiAgICAgICAgdHhEYXRhLm1lc3NhZ2VLZXkgPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5NZXNzYWdlS2V5O1xuICAgICAgICByZXR1cm4gdHhEYXRhO1xuXG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5TaWduZXJMaXN0U2V0OlxuICAgICAgICB0eERhdGEuc2lnbmVyUXVvcnVtID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVyUXVvcnVtO1xuICAgICAgICB0eERhdGEuc2lnbmVyRW50cmllcyA9IHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lckVudHJpZXM7XG4gICAgICAgIHJldHVybiB0eERhdGE7XG5cbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLlRydXN0U2V0OlxuICAgICAgICB0eERhdGEuYW1vdW50ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uTGltaXRBbW91bnQ7XG4gICAgICAgIHJldHVybiB0eERhdGE7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U2lnbmFibGVQYXlsb2FkKCk6IFhycFRyYW5zYWN0aW9uIHtcbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIHJldHVybiBfLm9taXQodGhpcy5feHJwVHJhbnNhY3Rpb24sIFsnVHhuU2lnbmF0dXJlJywgJ1NpZ25lcnMnLCAnU2lnbmluZ1B1YktleSddKSBhcyBYcnBUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNpZ24oa2V5UGFpcjogS2V5UGFpciB8IEtleVBhaXJbXSk6IHZvaWQge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbi5GZWUpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBmZWUnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbi5TZXF1ZW5jZSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIHNlcXVlbmNlJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24uRmxhZ3MpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBmbGFncycpO1xuICAgIH1cbiAgICBpZiAoXy5pc0VtcHR5KGtleVBhaXIpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qga2V5UGFpcnMgPSBrZXlQYWlyIGluc3RhbmNlb2YgQXJyYXkgPyBrZXlQYWlyIDogW2tleVBhaXJdO1xuICAgIGZvciAoY29uc3Qga3Agb2Yga2V5UGFpcnMpIHtcbiAgICAgIGNvbnN0IHsgcHViLCBwcnYgfSA9IGtwLmdldEtleXMoKTtcbiAgICAgIGlmICghcHJ2KSB7XG4gICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3NpbmcgcHJpdmF0ZSBrZXknKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2lzTXVsdGlTaWcgPT09IGZhbHNlICYmIHRoaXMuX3hycFRyYW5zYWN0aW9uLlR4blNpZ25hdHVyZSkge1xuICAgICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdUcmFuc2FjdGlvbiBoYXMgYWxyZWFkeSBiZWVuIHNpZ25lZCcpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2lnbmFibGVQYXlsb2FkID0gdGhpcy5nZXRTaWduYWJsZVBheWxvYWQoKTtcblxuICAgICAgY29uc3QgeHJwV2FsbGV0ID0gbmV3IHhycGwuV2FsbGV0KHB1YiwgcHJ2KTtcbiAgICAgIGNvbnN0IHNpZ25lZFR4ID0geHJwV2FsbGV0LnNpZ24oc2lnbmFibGVQYXlsb2FkLCB0aGlzLl9pc011bHRpU2lnKTtcbiAgICAgIGNvbnN0IHhycFNpZ25lZFR4ID0geHJwbC5kZWNvZGUoc2lnbmVkVHgudHhfYmxvYik7XG4gICAgICB4cnBsLnZhbGlkYXRlKHhycFNpZ25lZFR4KTtcblxuICAgICAgaWYgKHRoaXMuX2lzTXVsdGlTaWcgPT09IGZhbHNlKSB7XG4gICAgICAgIHhycFdhbGxldC52ZXJpZnlUcmFuc2FjdGlvbihzaWduZWRUeC50eF9ibG9iKTtcbiAgICAgICAgdGhpcy5feHJwVHJhbnNhY3Rpb24gPSB4cnBTaWduZWRUeCBhcyB1bmtub3duIGFzIFhycFRyYW5zYWN0aW9uO1xuICAgICAgICB0aGlzLl9pZCA9IHNpZ25lZFR4Lmhhc2g7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9pc011bHRpU2lnID09PSB0cnVlKSB7XG4gICAgICAgIGlmICgheHJwU2lnbmVkVHguU2lnbmVycyB8fCAhXy5pc0FycmF5KHhycFNpZ25lZFR4LlNpZ25lcnMpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignTWlzc2luZyBvciBpbnZhbGlkIHNpZ25lcnMnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzb3J0ZWRTaWduZXJzID0gdGhpcy5jb25jYXRBbmRTb3J0U2lnbmVycyh0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzIHx8IFtdLCB4cnBTaWduZWRUeC5TaWduZXJzKTtcbiAgICAgICAgdGhpcy5feHJwVHJhbnNhY3Rpb24gPSB4cnBTaWduZWRUeCBhcyB1bmtub3duIGFzIFhycFRyYW5zYWN0aW9uO1xuICAgICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzID0gc29ydGVkU2lnbmVycztcbiAgICAgICAgdGhpcy5faWQgPSB0aGlzLmNhbGN1bGF0ZUlkRnJvbVJhd1R4KHhycGwuZW5jb2RlKHRoaXMuX3hycFRyYW5zYWN0aW9uKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4geHJwbC5lbmNvZGUodGhpcy5feHJwVHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIHN3aXRjaCAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50OlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluUGF5bWVudFRyYW5zYWN0aW9uKCk7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50U2V0OlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluQWNjb3VudFNldFRyYW5zYWN0aW9uKCk7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5TaWduZXJMaXN0U2V0OlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uKCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4cGxhaW5QYXltZW50VHJhbnNhY3Rpb24oKTogQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHR4ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgeHJwbC5QYXltZW50O1xuICAgIGNvbnN0IGFkZHJlc3MgPSB1dGlscy5ub3JtYWxpemVBZGRyZXNzKHsgYWRkcmVzczogdHguRGVzdGluYXRpb24sIGRlc3RpbmF0aW9uVGFnOiB0eC5EZXN0aW5hdGlvblRhZyB9KTtcbiAgICBjb25zdCBhbW91bnQgPSBfLmlzU3RyaW5nKHR4LkFtb3VudCkgPyB0eC5BbW91bnQgOiAwO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXlPcmRlcjogWydpZCcsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnXSxcbiAgICAgIGlkOiB0aGlzLl9pZCBhcyBzdHJpbmcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIG91dHB1dEFtb3VudDogYW1vdW50LFxuICAgICAgY2hhbmdlQW1vdW50OiAwLFxuICAgICAgb3V0cHV0czogW1xuICAgICAgICB7XG4gICAgICAgICAgYWRkcmVzcyxcbiAgICAgICAgICBhbW91bnQsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgZmVlOiB7XG4gICAgICAgIGZlZTogdHguRmVlIGFzIHN0cmluZyxcbiAgICAgICAgZmVlUmF0ZTogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBleHBsYWluQWNjb3VudFNldFRyYW5zYWN0aW9uKCk6IEFjY291bnRTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCB0eCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIHhycGwuQWNjb3VudFNldDtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyOiBbJ2lkJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJywgJ2ZlZScsICdhY2NvdW50U2V0J10sXG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBvdXRwdXRBbW91bnQ6IDAsXG4gICAgICBjaGFuZ2VBbW91bnQ6IDAsXG4gICAgICBvdXRwdXRzOiBbXSxcbiAgICAgIGZlZToge1xuICAgICAgICBmZWU6IHR4LkZlZSBhcyBzdHJpbmcsXG4gICAgICAgIGZlZVJhdGU6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBhY2NvdW50U2V0OiB7XG4gICAgICAgIG1lc3NhZ2VLZXk6IHR4Lk1lc3NhZ2VLZXksXG4gICAgICAgIHNldEZsYWc6IHR4LlNldEZsYWcgYXMgeHJwbC5BY2NvdW50U2V0QXNmRmxhZ3MsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGV4cGxhaW5TaWduZXJMaXN0U2V0VHJhbnNhY3Rpb24oKTogU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHR4ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24gYXMgeHJwbC5TaWduZXJMaXN0U2V0O1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5T3JkZXI6IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJywgJ3NpZ25lckxpc3RTZXQnXSxcbiAgICAgIGlkOiB0aGlzLl9pZCBhcyBzdHJpbmcsXG4gICAgICBjaGFuZ2VPdXRwdXRzOiBbXSxcbiAgICAgIG91dHB1dEFtb3VudDogMCxcbiAgICAgIGNoYW5nZUFtb3VudDogMCxcbiAgICAgIG91dHB1dHM6IFtdLFxuICAgICAgZmVlOiB7XG4gICAgICAgIGZlZTogdHguRmVlIGFzIHN0cmluZyxcbiAgICAgICAgZmVlUmF0ZTogdW5kZWZpbmVkLFxuICAgICAgfSxcbiAgICAgIHNpZ25lckxpc3RTZXQ6IHtcbiAgICAgICAgc2lnbmVyUXVvcnVtOiB0eC5TaWduZXJRdW9ydW0sXG4gICAgICAgIHNpZ25lckVudHJpZXM6IHR4LlNpZ25lckVudHJpZXMgYXMgeHJwbC5TaWduZXJFbnRyeVtdLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVJZEZyb21SYXdUeChyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBsZXQgaWQ6IHN0cmluZztcbiAgICAvLyBoYXNoZXMgaWRzIGFyZSBkaWZmZXJlbnQgZm9yIHNpZ25lZCBhbmQgdW5zaWduZWQgdHhcbiAgICAvLyBmaXJzdCB3ZSB0cnkgdG8gZ2V0IHRoZSBoYXNoIGlkIGFzIGlmIGl0IGlzIHNpZ25lZCwgd2lsbCB0aHJvdyBpZiBpdHMgbm90XG4gICAgdHJ5IHtcbiAgICAgIGlkID0geHJwbC5oYXNoZXMuaGFzaFNpZ25lZFR4KHJhd1RyYW5zYWN0aW9uKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZCA9IHhycGwuaGFzaGVzLmhhc2hUeChyYXdUcmFuc2FjdGlvbik7XG4gICAgfVxuICAgIHJldHVybiBpZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHRyYW5zYWN0aW9uIHR5cGUuXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25UeXBlfSB0cmFuc2FjdGlvblR5cGUgVGhlIHRyYW5zYWN0aW9uIHR5cGUgdG8gYmUgc2V0LlxuICAgKi9cbiAgc2V0VHJhbnNhY3Rpb25UeXBlKHRyYW5zYWN0aW9uVHlwZTogVHJhbnNhY3Rpb25UeXBlKTogdm9pZCB7XG4gICAgdGhpcy5fdHlwZSA9IHRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIHNldE11bHRpU2lnVmFsdWUoaXNNdWx0aVNpZzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX2lzTXVsdGlTaWcgPSBpc011bHRpU2lnO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhpcyB0cmFuc2FjdGlvbiBwYXlsb2FkXG4gICAqXG4gICAqIEBwYXJhbSByYXdUcmFuc2FjdGlvblxuICAgKi9cbiAgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBsZXQgdHhIZXggPSByYXdUcmFuc2FjdGlvbjtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRIZXgocmF3VHJhbnNhY3Rpb24pKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0eEhleCA9IHhycGwuZW5jb2RlKEpTT04ucGFyc2UocmF3VHJhbnNhY3Rpb24pKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uJyk7XG4gICAgICB9XG4gICAgfVxuICAgIHV0aWxzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24odHhIZXgpO1xuXG4gICAgdGhpcy5feHJwVHJhbnNhY3Rpb24gPSB4cnBsLmRlY29kZSh0eEhleCkgYXMgdW5rbm93biBhcyBYcnBUcmFuc2FjdGlvbjtcbiAgICBpZiAoIVhycFRyYW5zYWN0aW9uVHlwZVt0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGVdKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1Vuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUsIGdvdDogJyArIHRoaXMuX3hycFRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uVHlwZSk7XG4gICAgfVxuICAgIGlmICh0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5ICYmIHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25pbmdQdWJLZXkgIT09ICcnKSB7XG4gICAgICB0aGlzLl9pc011bHRpU2lnID0gZmFsc2U7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25pbmdQdWJLZXkgPT09ICcnICYmXG4gICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzICYmXG4gICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzLmxlbmd0aCA+IDBcbiAgICApIHtcbiAgICAgIHRoaXMuX2lzTXVsdGlTaWcgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLl9pZCA9IHRoaXMuY2FsY3VsYXRlSWRGcm9tUmF3VHgodHhIZXgpO1xuXG4gICAgc3dpdGNoICh0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUpIHtcbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLlNpZ25lckxpc3RTZXQ6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5XYWxsZXRJbml0aWFsaXphdGlvbik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuQWNjb3VudFNldDpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLkFjY291bnRVcGRhdGUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLlBheW1lbnQ6XG4gICAgICAgIGlmICh1dGlscy5pc0lzc3VlZEN1cnJlbmN5QW1vdW50KHRoaXMuX3hycFRyYW5zYWN0aW9uLkFtb3VudCkpIHtcbiAgICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZFRva2VuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuU2VuZCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5UcnVzdFNldDpcbiAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlRydXN0TGluZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICB0aGlzLmxvYWRJbnB1dHNBbmRPdXRwdXRzKCk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBkYXRhIG9uIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqL1xuICBsb2FkSW5wdXRzQW5kT3V0cHV0cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUgPT09IFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50KSB7XG4gICAgICBsZXQgdmFsdWU6IHN0cmluZztcbiAgICAgIGNvbnN0IHsgQWNjb3VudCwgRGVzdGluYXRpb24sIEFtb3VudCwgRGVzdGluYXRpb25UYWcgfSA9IHRoaXMuX3hycFRyYW5zYWN0aW9uO1xuICAgICAgaWYgKHR5cGVvZiBBbW91bnQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHZhbHVlID0gQW1vdW50O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSBBbW91bnQudmFsdWU7XG4gICAgICB9XG4gICAgICBjb25zdCBjb2luID0gdGhpcy5fY29pbkNvbmZpZy5uYW1lO1xuICAgICAgdGhpcy5pbnB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IEFjY291bnQsXG4gICAgICAgIHZhbHVlLFxuICAgICAgICBjb2luLFxuICAgICAgfSk7XG4gICAgICB0aGlzLm91dHB1dHMucHVzaCh7XG4gICAgICAgIGFkZHJlc3M6IHV0aWxzLm5vcm1hbGl6ZUFkZHJlc3MoeyBhZGRyZXNzOiBEZXN0aW5hdGlvbiwgZGVzdGluYXRpb25UYWc6IERlc3RpbmF0aW9uVGFnIH0pLFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgY29pbixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHcm91cHMgYW5kIHNvcnRzIHRoZSBzaWduZXJzIGJ5IGFjY291bnQuXG4gICAqIEBwYXJhbSB7U2lnbmVyW119c2lnbmVyczEgLSBUaGUgZmlyc3Qgc2V0IG9mIHNpZ25lcnMuXG4gICAqIEBwYXJhbSB7U2lnbmVyW119c2lnbmVyczIgLSBUaGUgc2Vjb25kIHNldCBvZiBzaWduZXJzLlxuICAgKiBAcmV0dXJucyBUaGUgZ3JvdXBlZCBhbmQgc29ydGVkIHNpZ25lcnMuXG4gICAqKi9cbiAgcHJpdmF0ZSBjb25jYXRBbmRTb3J0U2lnbmVycyhzaWduZXJzMTogU2lnbmVyW10sIHNpZ25lcnMyOiBTaWduZXJbXSk6IFNpZ25lcltdIHtcbiAgICByZXR1cm4gc2lnbmVyczFcbiAgICAgIC5jb25jYXQoc2lnbmVyczIpXG4gICAgICAuc29ydCgoc2lnbmVyMSwgc2lnbmVyMikgPT4gdGhpcy5jb21wYXJlU2lnbmVyc0J5QWNjb3VudChzaWduZXIxLlNpZ25lci5BY2NvdW50LCBzaWduZXIyLlNpZ25lci5BY2NvdW50KSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgcHJlc2VudGVkIGluIGJpbmFyeSBmb3JtLCB0aGUgU2lnbmVycyBhcnJheSBtdXN0IGJlIHNvcnRlZCBiYXNlZCBvblxuICAgKiB0aGUgbnVtZXJpYyB2YWx1ZSBvZiB0aGUgc2lnbmVyIGFkZHJlc3Nlcywgd2l0aCB0aGUgbG93ZXN0IHZhbHVlIGZpcnN0LlxuICAgKiAoSWYgc3VibWl0dGVkIGFzIEpTT04sIHRoZSBzdWJtaXRfbXVsdGlzaWduZWQgbWV0aG9kIGhhbmRsZXMgdGhpcyBhdXRvbWF0aWNhbGx5LilcbiAgICogaHR0cHM6Ly94cnBsLm9yZy9tdWx0aS1zaWduaW5nLmh0bWwuXG4gICAqXG4gICAqIEBwYXJhbSBsZWZ0IC0gQSBTaWduZXIgdG8gY29tcGFyZSB3aXRoLlxuICAgKiBAcGFyYW0gcmlnaHQgLSBBIHNlY29uZCBTaWduZXIgdG8gY29tcGFyZSB3aXRoLlxuICAgKiBAcmV0dXJucyAxIGlmIGxlZnQgXFw+IHJpZ2h0LCAwIGlmIGxlZnQgPSByaWdodCwgLTEgaWYgbGVmdCBcXDwgcmlnaHQsIGFuZCBudWxsIGlmIGxlZnQgb3IgcmlnaHQgYXJlIE5hTi5cbiAgICovXG4gIHByaXZhdGUgY29tcGFyZVNpZ25lcnNCeUFjY291bnQoYWRkcmVzczE6IHN0cmluZywgYWRkcmVzczI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgYWRkcmVzc0JOMSA9IHRoaXMuYWRkcmVzc1RvQmlnTnVtYmVyKGFkZHJlc3MxKTtcbiAgICBjb25zdCBhZGRyZXNzQk4yID0gdGhpcy5hZGRyZXNzVG9CaWdOdW1iZXIoYWRkcmVzczIpO1xuICAgIHJldHVybiBhZGRyZXNzQk4xLmNvbXBhcmVkVG8oYWRkcmVzc0JOMik7XG4gIH1cblxuICBwcml2YXRlIGFkZHJlc3NUb0JpZ051bWJlcihhZGRyZXNzOiBzdHJpbmcpOiBCaWdOdW1iZXIge1xuICAgIGNvbnN0IGhleCA9IEJ1ZmZlci5mcm9tKHhycGwuZGVjb2RlQWNjb3VudElEKGFkZHJlc3MpKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgbnVtYmVyT2ZCaXRzSW5IZXggPSAxNjtcbiAgICByZXR1cm4gbmV3IEJpZ051bWJlcihoZXgsIG51bWJlck9mQml0c0luSGV4KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { BaseAddress, BaseKey, BaseTransaction, BaseTransactionBuilder, TransactionType } from '@bitgo/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
3
|
+
import BigNumber from 'bignumber.js';
|
|
4
|
+
import { Signer } from 'xrpl/dist/npm/models/common';
|
|
5
|
+
import { XrpTransaction } from './iface';
|
|
6
|
+
import { KeyPair } from './keyPair';
|
|
7
|
+
import { Transaction } from './transaction';
|
|
8
|
+
/**
|
|
9
|
+
* XRP transaction builder.
|
|
10
|
+
*/
|
|
11
|
+
export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
|
|
12
|
+
protected _transaction: Transaction;
|
|
13
|
+
protected _sender: string;
|
|
14
|
+
protected _fee?: string;
|
|
15
|
+
protected _sequence?: number;
|
|
16
|
+
protected _lastLedgerSequence?: number;
|
|
17
|
+
protected _flags?: number;
|
|
18
|
+
protected _signingPubKey?: string;
|
|
19
|
+
protected _signers: Signer[];
|
|
20
|
+
protected _txnSignature?: string;
|
|
21
|
+
protected _specificFields: XrpTransaction;
|
|
22
|
+
protected _isMultiSig?: boolean;
|
|
23
|
+
protected _keyPairs: KeyPair[];
|
|
24
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
25
|
+
/**
|
|
26
|
+
* The transaction type.
|
|
27
|
+
*/
|
|
28
|
+
protected abstract get transactionType(): TransactionType;
|
|
29
|
+
/**
|
|
30
|
+
* Set the transaction signature type to multi sig.
|
|
31
|
+
**/
|
|
32
|
+
setMultiSig(): TransactionBuilder;
|
|
33
|
+
/**
|
|
34
|
+
* Set the transaction signature type to single sig.
|
|
35
|
+
**/
|
|
36
|
+
setSingleSig(): TransactionBuilder;
|
|
37
|
+
/**
|
|
38
|
+
* Sets the sender of this transaction.
|
|
39
|
+
*
|
|
40
|
+
* @param {string} address the account that is sending this transaction
|
|
41
|
+
* @returns {TransactionBuilder} This transaction builder
|
|
42
|
+
*/
|
|
43
|
+
sender(address: string): TransactionBuilder;
|
|
44
|
+
sequence(sequence: number): TransactionBuilder;
|
|
45
|
+
fee(fee: string): TransactionBuilder;
|
|
46
|
+
flags(flags: number): TransactionBuilder;
|
|
47
|
+
lastLedgerSequence(lastLedgerSequence: number): TransactionBuilder;
|
|
48
|
+
/**
|
|
49
|
+
* Initialize the transaction builder fields using the decoded transaction data
|
|
50
|
+
*
|
|
51
|
+
* @param {Transaction} tx the transaction data
|
|
52
|
+
*/
|
|
53
|
+
initBuilder(tx: Transaction): void;
|
|
54
|
+
/** @inheritdoc */
|
|
55
|
+
protected fromImplementation(rawTransaction: string): BaseTransaction;
|
|
56
|
+
/** @inheritdoc */
|
|
57
|
+
protected signImplementation(key: BaseKey): Transaction;
|
|
58
|
+
private checkDuplicatedKeys;
|
|
59
|
+
/** @inheritdoc */
|
|
60
|
+
protected buildImplementation(): Promise<Transaction>;
|
|
61
|
+
private buildXrpTransaction;
|
|
62
|
+
validateKey(key: BaseKey): void;
|
|
63
|
+
validateIsMultiSig(): void;
|
|
64
|
+
/** @inheritdoc */
|
|
65
|
+
validateTransaction(): void;
|
|
66
|
+
validateAddress(address: BaseAddress): void;
|
|
67
|
+
validateValue(value: BigNumber): void;
|
|
68
|
+
validateRawTransaction(rawTransaction: string): void;
|
|
69
|
+
protected get transaction(): Transaction;
|
|
70
|
+
protected set transaction(transaction: Transaction);
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=transactionBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,OAAO,EACP,eAAe,EACf,sBAAsB,EAGtB,eAAe,EAEhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,SAAS,MAAM,cAAc,CAAC;AAGrC,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C;;GAEG;AACH,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACvC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAK;IAC9B,SAAS,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAClC,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC7B,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC;IAE1C,SAAS,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEhC,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;gBAEnB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAO7C;;OAEG;IACH,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC;IAE1D;;QAEI;IACJ,WAAW,IAAI,kBAAkB;IAKjC;;QAEI;IACJ,YAAY,IAAI,kBAAkB;IAKlC;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB;IAM3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB;IAQ9C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAYpC,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB;IAQxC,kBAAkB,CAAC,kBAAkB,EAAE,MAAM,GAAG,kBAAkB;IAQlE;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IA0BlC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,eAAe;IAQrE,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAevD,OAAO,CAAC,mBAAmB;IAiB3B,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAY3D,OAAO,CAAC,mBAAmB;IA0B3B,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAa/B,kBAAkB,IAAI,IAAI;IAM1B,kBAAkB;IAClB,mBAAmB,IAAI,IAAI;IAY3B,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAM3C,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMrC,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIpD,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;CACF"}
|