@bitgo/sdk-coin-xrp 3.9.13 → 3.9.15
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 +8 -0
- package/package.json +6 -6
- package/LICENSE +0 -191
- package/dist/src/index.d.ts +0 -6
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -22
- package/dist/src/lib/accountSetBuilder.d.ts +0 -18
- package/dist/src/lib/accountSetBuilder.d.ts.map +0 -1
- package/dist/src/lib/accountSetBuilder.js +0 -63
- package/dist/src/lib/constants.d.ts +0 -8
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -30
- package/dist/src/lib/iface.d.ts +0 -109
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -11
- package/dist/src/lib/index.d.ts +0 -14
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -43
- package/dist/src/lib/keyPair.d.ts +0 -33
- package/dist/src/lib/keyPair.d.ts.map +0 -1
- package/dist/src/lib/keyPair.js +0 -118
- package/dist/src/lib/tokenTransferBuilder.d.ts +0 -29
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +0 -1
- package/dist/src/lib/tokenTransferBuilder.js +0 -91
- package/dist/src/lib/transaction.d.ts +0 -62
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -381
- package/dist/src/lib/transactionBuilder.d.ts +0 -72
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -263
- package/dist/src/lib/transactionBuilderFactory.d.ts +0 -39
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilderFactory.js +0 -97
- package/dist/src/lib/transferBuilder.d.ts +0 -28
- package/dist/src/lib/transferBuilder.d.ts.map +0 -1
- package/dist/src/lib/transferBuilder.js +0 -82
- package/dist/src/lib/trustsetBuilder.d.ts +0 -21
- package/dist/src/lib/trustsetBuilder.d.ts.map +0 -1
- package/dist/src/lib/trustsetBuilder.js +0 -72
- package/dist/src/lib/utils.d.ts +0 -78
- package/dist/src/lib/utils.d.ts.map +0 -1
- package/dist/src/lib/utils.js +0 -304
- package/dist/src/lib/walletInitializationBuilder.d.ts +0 -19
- package/dist/src/lib/walletInitializationBuilder.d.ts.map +0 -1
- package/dist/src/lib/walletInitializationBuilder.js +0 -76
- package/dist/src/register.d.ts +0 -3
- package/dist/src/register.d.ts.map +0 -1
- package/dist/src/register.js +0 -15
- package/dist/src/ripple.d.ts +0 -117
- package/dist/src/ripple.d.ts.map +0 -1
- package/dist/src/ripple.js +0 -125
- package/dist/src/txrp.d.ts +0 -25
- package/dist/src/txrp.d.ts.map +0 -1
- package/dist/src/txrp.js +0 -32
- package/dist/src/xrp.d.ts +0 -110
- package/dist/src/xrp.d.ts.map +0 -1
- package/dist/src/xrp.js +0 -657
- package/dist/src/xrpToken.d.ts +0 -22
- package/dist/src/xrpToken.d.ts.map +0 -1
- package/dist/src/xrpToken.js +0 -61
- package/dist/tsconfig.tsbuildinfo +0 -1
|
@@ -1,381 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.Transaction = void 0;
|
|
40
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
41
|
-
const xrpl = __importStar(require("xrpl"));
|
|
42
|
-
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
43
|
-
const utils_1 = __importDefault(require("./utils"));
|
|
44
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
45
|
-
const iface_1 = require("./iface");
|
|
46
|
-
/**
|
|
47
|
-
* XRP transaction.
|
|
48
|
-
*/
|
|
49
|
-
class Transaction extends sdk_core_1.BaseTransaction {
|
|
50
|
-
constructor(coinConfig) {
|
|
51
|
-
super(coinConfig);
|
|
52
|
-
}
|
|
53
|
-
get xrpTransaction() {
|
|
54
|
-
return this._xrpTransaction;
|
|
55
|
-
}
|
|
56
|
-
set xrpTransaction(tx) {
|
|
57
|
-
this._xrpTransaction = tx;
|
|
58
|
-
}
|
|
59
|
-
canSign(key) {
|
|
60
|
-
if (!utils_1.default.isValidPrivateKey(key.key)) {
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
return true;
|
|
64
|
-
}
|
|
65
|
-
toJson() {
|
|
66
|
-
if (!this._xrpTransaction) {
|
|
67
|
-
throw new sdk_core_1.InvalidTransactionError('Empty transaction');
|
|
68
|
-
}
|
|
69
|
-
const txData = {
|
|
70
|
-
from: this._xrpTransaction.Account,
|
|
71
|
-
isMultiSig: this._isMultiSig,
|
|
72
|
-
transactionType: this._xrpTransaction.TransactionType,
|
|
73
|
-
id: this._id,
|
|
74
|
-
fee: this._xrpTransaction.Fee,
|
|
75
|
-
sequence: this._xrpTransaction.Sequence,
|
|
76
|
-
lastLedgerSequence: this._xrpTransaction.LastLedgerSequence,
|
|
77
|
-
flags: this._xrpTransaction.Flags,
|
|
78
|
-
signingPubKey: this._xrpTransaction.SigningPubKey,
|
|
79
|
-
signers: this._xrpTransaction.Signers,
|
|
80
|
-
txnSignature: this._xrpTransaction.TxnSignature,
|
|
81
|
-
};
|
|
82
|
-
if (this._xrpTransaction.SigningPubKey === '' && !lodash_1.default.isEmpty(this._xrpTransaction.Signers)) {
|
|
83
|
-
txData.isMultiSig = true;
|
|
84
|
-
}
|
|
85
|
-
if (this._xrpTransaction.SigningPubKey && utils_1.default.isValidPublicKey(this._xrpTransaction.SigningPubKey)) {
|
|
86
|
-
txData.isMultiSig = false;
|
|
87
|
-
}
|
|
88
|
-
switch (this._xrpTransaction.TransactionType) {
|
|
89
|
-
case iface_1.XrpTransactionType.Payment:
|
|
90
|
-
txData.destination = this._xrpTransaction.Destination;
|
|
91
|
-
txData.destinationTag = this._xrpTransaction.DestinationTag;
|
|
92
|
-
if (typeof this._xrpTransaction.Amount === 'string' ||
|
|
93
|
-
utils_1.default.isIssuedCurrencyAmount(this._xrpTransaction.Amount)) {
|
|
94
|
-
txData.amount = this._xrpTransaction.Amount;
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
throw new sdk_core_1.InvalidTransactionError('Invalid amount');
|
|
98
|
-
}
|
|
99
|
-
return txData;
|
|
100
|
-
case iface_1.XrpTransactionType.AccountSet:
|
|
101
|
-
txData.setFlag = this._xrpTransaction.SetFlag;
|
|
102
|
-
txData.messageKey = this._xrpTransaction.MessageKey;
|
|
103
|
-
return txData;
|
|
104
|
-
case iface_1.XrpTransactionType.SignerListSet:
|
|
105
|
-
txData.signerQuorum = this._xrpTransaction.SignerQuorum;
|
|
106
|
-
txData.signerEntries = this._xrpTransaction.SignerEntries;
|
|
107
|
-
return txData;
|
|
108
|
-
case iface_1.XrpTransactionType.TrustSet:
|
|
109
|
-
txData.amount = this._xrpTransaction.LimitAmount;
|
|
110
|
-
return txData;
|
|
111
|
-
default:
|
|
112
|
-
throw new sdk_core_1.InvalidTransactionError('Invalid transaction type');
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
getSignablePayload() {
|
|
116
|
-
if (!this._xrpTransaction) {
|
|
117
|
-
throw new sdk_core_1.InvalidTransactionError('Empty transaction');
|
|
118
|
-
}
|
|
119
|
-
return lodash_1.default.omit(this._xrpTransaction, ['TxnSignature', 'Signers', 'SigningPubKey']);
|
|
120
|
-
}
|
|
121
|
-
sign(keyPair) {
|
|
122
|
-
if (!this._xrpTransaction) {
|
|
123
|
-
throw new sdk_core_1.InvalidTransactionError('Empty transaction');
|
|
124
|
-
}
|
|
125
|
-
if (!this._xrpTransaction.Fee) {
|
|
126
|
-
throw new sdk_core_1.InvalidTransactionError('Missing fee');
|
|
127
|
-
}
|
|
128
|
-
if (!this._xrpTransaction.Sequence) {
|
|
129
|
-
throw new sdk_core_1.InvalidTransactionError('Missing sequence');
|
|
130
|
-
}
|
|
131
|
-
if (!this._xrpTransaction.Flags) {
|
|
132
|
-
throw new sdk_core_1.InvalidTransactionError('Missing flags');
|
|
133
|
-
}
|
|
134
|
-
if (lodash_1.default.isEmpty(keyPair)) {
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
const keyPairs = keyPair instanceof Array ? keyPair : [keyPair];
|
|
138
|
-
for (const kp of keyPairs) {
|
|
139
|
-
const { pub, prv } = kp.getKeys();
|
|
140
|
-
if (!prv) {
|
|
141
|
-
throw new sdk_core_1.SigningError('Missing private key');
|
|
142
|
-
}
|
|
143
|
-
if (this._isMultiSig === false && this._xrpTransaction.TxnSignature) {
|
|
144
|
-
throw new sdk_core_1.SigningError('Transaction has already been signed');
|
|
145
|
-
}
|
|
146
|
-
const signablePayload = this.getSignablePayload();
|
|
147
|
-
const xrpWallet = new xrpl.Wallet(pub, prv);
|
|
148
|
-
const signedTx = xrpWallet.sign(signablePayload, this._isMultiSig);
|
|
149
|
-
const xrpSignedTx = xrpl.decode(signedTx.tx_blob);
|
|
150
|
-
xrpl.validate(xrpSignedTx);
|
|
151
|
-
if (this._isMultiSig === false) {
|
|
152
|
-
xrpWallet.verifyTransaction(signedTx.tx_blob);
|
|
153
|
-
this._xrpTransaction = xrpSignedTx;
|
|
154
|
-
this._id = signedTx.hash;
|
|
155
|
-
}
|
|
156
|
-
if (this._isMultiSig === true) {
|
|
157
|
-
if (!xrpSignedTx.Signers || !lodash_1.default.isArray(xrpSignedTx.Signers)) {
|
|
158
|
-
throw new sdk_core_1.SigningError('Missing or invalid signers');
|
|
159
|
-
}
|
|
160
|
-
const sortedSigners = this.concatAndSortSigners(this._xrpTransaction.Signers || [], xrpSignedTx.Signers);
|
|
161
|
-
this._xrpTransaction = xrpSignedTx;
|
|
162
|
-
this._xrpTransaction.Signers = sortedSigners;
|
|
163
|
-
this._id = this.calculateIdFromRawTx(xrpl.encode(this._xrpTransaction));
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/** @inheritdoc */
|
|
168
|
-
toBroadcastFormat() {
|
|
169
|
-
if (!this._xrpTransaction) {
|
|
170
|
-
throw new sdk_core_1.InvalidTransactionError('Empty transaction');
|
|
171
|
-
}
|
|
172
|
-
return xrpl.encode(this._xrpTransaction);
|
|
173
|
-
}
|
|
174
|
-
explainTransaction() {
|
|
175
|
-
switch (this._xrpTransaction.TransactionType) {
|
|
176
|
-
case iface_1.XrpTransactionType.Payment:
|
|
177
|
-
return this.explainPaymentTransaction();
|
|
178
|
-
case iface_1.XrpTransactionType.AccountSet:
|
|
179
|
-
return this.explainAccountSetTransaction();
|
|
180
|
-
case iface_1.XrpTransactionType.SignerListSet:
|
|
181
|
-
return this.explainSignerListSetTransaction();
|
|
182
|
-
default:
|
|
183
|
-
throw new Error('Unsupported transaction type');
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
explainPaymentTransaction() {
|
|
187
|
-
const tx = this._xrpTransaction;
|
|
188
|
-
const address = utils_1.default.normalizeAddress({ address: tx.Destination, destinationTag: tx.DestinationTag });
|
|
189
|
-
const amount = lodash_1.default.isString(tx.Amount) ? tx.Amount : 0;
|
|
190
|
-
return {
|
|
191
|
-
displayOrder: ['id', 'outputAmount', 'changeAmount', 'outputs', 'changeOutputs', 'fee'],
|
|
192
|
-
id: this._id,
|
|
193
|
-
changeOutputs: [],
|
|
194
|
-
outputAmount: amount,
|
|
195
|
-
changeAmount: 0,
|
|
196
|
-
outputs: [
|
|
197
|
-
{
|
|
198
|
-
address,
|
|
199
|
-
amount,
|
|
200
|
-
},
|
|
201
|
-
],
|
|
202
|
-
fee: {
|
|
203
|
-
fee: tx.Fee,
|
|
204
|
-
feeRate: undefined,
|
|
205
|
-
},
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
explainAccountSetTransaction() {
|
|
209
|
-
const tx = this._xrpTransaction;
|
|
210
|
-
return {
|
|
211
|
-
displayOrder: ['id', 'outputAmount', 'changeAmount', 'outputs', 'changeOutputs', 'fee', 'accountSet'],
|
|
212
|
-
id: this._id,
|
|
213
|
-
changeOutputs: [],
|
|
214
|
-
outputAmount: 0,
|
|
215
|
-
changeAmount: 0,
|
|
216
|
-
outputs: [],
|
|
217
|
-
fee: {
|
|
218
|
-
fee: tx.Fee,
|
|
219
|
-
feeRate: undefined,
|
|
220
|
-
},
|
|
221
|
-
accountSet: {
|
|
222
|
-
messageKey: tx.MessageKey,
|
|
223
|
-
setFlag: tx.SetFlag,
|
|
224
|
-
},
|
|
225
|
-
};
|
|
226
|
-
}
|
|
227
|
-
explainSignerListSetTransaction() {
|
|
228
|
-
const tx = this._xrpTransaction;
|
|
229
|
-
return {
|
|
230
|
-
displayOrder: ['id', 'outputAmount', 'changeAmount', 'outputs', 'changeOutputs', 'fee', 'signerListSet'],
|
|
231
|
-
id: this._id,
|
|
232
|
-
changeOutputs: [],
|
|
233
|
-
outputAmount: 0,
|
|
234
|
-
changeAmount: 0,
|
|
235
|
-
outputs: [],
|
|
236
|
-
fee: {
|
|
237
|
-
fee: tx.Fee,
|
|
238
|
-
feeRate: undefined,
|
|
239
|
-
},
|
|
240
|
-
signerListSet: {
|
|
241
|
-
signerQuorum: tx.SignerQuorum,
|
|
242
|
-
signerEntries: tx.SignerEntries,
|
|
243
|
-
},
|
|
244
|
-
};
|
|
245
|
-
}
|
|
246
|
-
calculateIdFromRawTx(rawTransaction) {
|
|
247
|
-
let id;
|
|
248
|
-
// hashes ids are different for signed and unsigned tx
|
|
249
|
-
// first we try to get the hash id as if it is signed, will throw if its not
|
|
250
|
-
try {
|
|
251
|
-
id = xrpl.hashes.hashSignedTx(rawTransaction);
|
|
252
|
-
}
|
|
253
|
-
catch (e) {
|
|
254
|
-
id = xrpl.hashes.hashTx(rawTransaction);
|
|
255
|
-
}
|
|
256
|
-
return id;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
* Set the transaction type.
|
|
260
|
-
*
|
|
261
|
-
* @param {TransactionType} transactionType The transaction type to be set.
|
|
262
|
-
*/
|
|
263
|
-
setTransactionType(transactionType) {
|
|
264
|
-
this._type = transactionType;
|
|
265
|
-
}
|
|
266
|
-
setMultiSigValue(isMultiSig) {
|
|
267
|
-
this._isMultiSig = isMultiSig;
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* Sets this transaction payload
|
|
271
|
-
*
|
|
272
|
-
* @param rawTransaction
|
|
273
|
-
*/
|
|
274
|
-
fromRawTransaction(rawTransaction) {
|
|
275
|
-
let txHex = rawTransaction;
|
|
276
|
-
if (!utils_1.default.isValidHex(rawTransaction)) {
|
|
277
|
-
try {
|
|
278
|
-
txHex = xrpl.encode(JSON.parse(rawTransaction));
|
|
279
|
-
}
|
|
280
|
-
catch (e) {
|
|
281
|
-
throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
utils_1.default.validateRawTransaction(txHex);
|
|
285
|
-
this._xrpTransaction = xrpl.decode(txHex);
|
|
286
|
-
if (!iface_1.XrpTransactionType[this._xrpTransaction.TransactionType]) {
|
|
287
|
-
throw new sdk_core_1.InvalidTransactionError('Unsupported transaction type, got: ' + this._xrpTransaction.TransactionType);
|
|
288
|
-
}
|
|
289
|
-
if (this._xrpTransaction.SigningPubKey && this._xrpTransaction.SigningPubKey !== '') {
|
|
290
|
-
this._isMultiSig = false;
|
|
291
|
-
}
|
|
292
|
-
if (this._xrpTransaction.SigningPubKey === '' &&
|
|
293
|
-
this._xrpTransaction.Signers &&
|
|
294
|
-
this._xrpTransaction.Signers.length > 0) {
|
|
295
|
-
this._isMultiSig = true;
|
|
296
|
-
}
|
|
297
|
-
this._id = this.calculateIdFromRawTx(txHex);
|
|
298
|
-
switch (this._xrpTransaction.TransactionType) {
|
|
299
|
-
case iface_1.XrpTransactionType.SignerListSet:
|
|
300
|
-
this.setTransactionType(sdk_core_1.TransactionType.WalletInitialization);
|
|
301
|
-
break;
|
|
302
|
-
case iface_1.XrpTransactionType.AccountSet:
|
|
303
|
-
this.setTransactionType(sdk_core_1.TransactionType.AccountUpdate);
|
|
304
|
-
break;
|
|
305
|
-
case iface_1.XrpTransactionType.Payment:
|
|
306
|
-
if (utils_1.default.isIssuedCurrencyAmount(this._xrpTransaction.Amount)) {
|
|
307
|
-
this.setTransactionType(sdk_core_1.TransactionType.SendToken);
|
|
308
|
-
}
|
|
309
|
-
else {
|
|
310
|
-
this.setTransactionType(sdk_core_1.TransactionType.Send);
|
|
311
|
-
}
|
|
312
|
-
break;
|
|
313
|
-
case iface_1.XrpTransactionType.TrustSet:
|
|
314
|
-
this.setTransactionType(sdk_core_1.TransactionType.TrustLine);
|
|
315
|
-
break;
|
|
316
|
-
}
|
|
317
|
-
this.loadInputsAndOutputs();
|
|
318
|
-
}
|
|
319
|
-
/**
|
|
320
|
-
* Load the input and output data on this transaction.
|
|
321
|
-
*/
|
|
322
|
-
loadInputsAndOutputs() {
|
|
323
|
-
if (!this._xrpTransaction) {
|
|
324
|
-
return;
|
|
325
|
-
}
|
|
326
|
-
if (this._xrpTransaction.TransactionType === iface_1.XrpTransactionType.Payment) {
|
|
327
|
-
let value;
|
|
328
|
-
const { Account, Destination, Amount, DestinationTag } = this._xrpTransaction;
|
|
329
|
-
if (typeof Amount === 'string') {
|
|
330
|
-
value = Amount;
|
|
331
|
-
}
|
|
332
|
-
else {
|
|
333
|
-
value = Amount.value;
|
|
334
|
-
}
|
|
335
|
-
const coin = this._coinConfig.name;
|
|
336
|
-
this.inputs.push({
|
|
337
|
-
address: Account,
|
|
338
|
-
value,
|
|
339
|
-
coin,
|
|
340
|
-
});
|
|
341
|
-
this.outputs.push({
|
|
342
|
-
address: utils_1.default.normalizeAddress({ address: Destination, destinationTag: DestinationTag }),
|
|
343
|
-
value,
|
|
344
|
-
coin,
|
|
345
|
-
});
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
/**
|
|
349
|
-
* Groups and sorts the signers by account.
|
|
350
|
-
* @param {Signer[]}signers1 - The first set of signers.
|
|
351
|
-
* @param {Signer[]}signers2 - The second set of signers.
|
|
352
|
-
* @returns The grouped and sorted signers.
|
|
353
|
-
**/
|
|
354
|
-
concatAndSortSigners(signers1, signers2) {
|
|
355
|
-
return signers1
|
|
356
|
-
.concat(signers2)
|
|
357
|
-
.sort((signer1, signer2) => this.compareSignersByAccount(signer1.Signer.Account, signer2.Signer.Account));
|
|
358
|
-
}
|
|
359
|
-
/**
|
|
360
|
-
* If presented in binary form, the Signers array must be sorted based on
|
|
361
|
-
* the numeric value of the signer addresses, with the lowest value first.
|
|
362
|
-
* (If submitted as JSON, the submit_multisigned method handles this automatically.)
|
|
363
|
-
* https://xrpl.org/multi-signing.html.
|
|
364
|
-
*
|
|
365
|
-
* @param left - A Signer to compare with.
|
|
366
|
-
* @param right - A second Signer to compare with.
|
|
367
|
-
* @returns 1 if left \> right, 0 if left = right, -1 if left \< right, and null if left or right are NaN.
|
|
368
|
-
*/
|
|
369
|
-
compareSignersByAccount(address1, address2) {
|
|
370
|
-
const addressBN1 = this.addressToBigNumber(address1);
|
|
371
|
-
const addressBN2 = this.addressToBigNumber(address2);
|
|
372
|
-
return addressBN1.comparedTo(addressBN2);
|
|
373
|
-
}
|
|
374
|
-
addressToBigNumber(address) {
|
|
375
|
-
const hex = Buffer.from(xrpl.decodeAccountID(address)).toString('hex');
|
|
376
|
-
const numberOfBitsInHex = 16;
|
|
377
|
-
return new bignumber_js_1.default(hex, numberOfBitsInHex);
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
exports.Transaction = Transaction;
|
|
381
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUF1QjtBQUN2QiwyQ0FBNkI7QUFFN0IsOENBT3lCO0FBRXpCLG9EQUE0QjtBQUU1QixnRUFBcUM7QUFFckMsbUNBT2lCO0FBR2pCOztHQUVHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFLOUMsWUFBWSxVQUFnQztRQUMxQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQUksY0FBYyxDQUFDLEVBQWtCO1FBQ25DLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBWTtRQUNsQixJQUFJLENBQUMsZUFBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU07UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxrQ0FBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxNQUFNLE1BQU0sR0FBVztZQUNyQixJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPO1lBQ2xDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM1QixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFxQztZQUMzRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDWixHQUFHLEVBQUUs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R0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSxNQUFNLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksc0JBQVMsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0NBQ0Y7QUEvV0Qsa0NBK1dDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCAqIGFzIHhycGwgZnJvbSAneHJwbCc7XG5cbmltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiBhcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFNpZ25pbmdFcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgU2lnbmVyIH0gZnJvbSAneHJwbCc7XG5pbXBvcnQge1xuICBBY2NvdW50U2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFR4RGF0YSxcbiAgWHJwVHJhbnNhY3Rpb24sXG4gIFhycFRyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcblxuLyoqXG4gKiBYUlAgdHJhbnNhY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIC8vIFhSUCBzcGVjaWZpYyBmaWVsZHNcbiAgcHJvdGVjdGVkIF94cnBUcmFuc2FjdGlvbjogWHJwVHJhbnNhY3Rpb247XG4gIHByb3RlY3RlZCBfaXNNdWx0aVNpZzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgZ2V0IHhycFRyYW5zYWN0aW9uKCk6IFhycFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5feHJwVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgeHJwVHJhbnNhY3Rpb24odHg6IFhycFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5feHJwVHJhbnNhY3Rpb24gPSB0eDtcbiAgfVxuXG4gIGNhblNpZ24oa2V5OiBCYXNlS2V5KTogYm9vbGVhbiB7XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShrZXkua2V5KSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCB0eERhdGE6IFR4RGF0YSA9IHtcbiAgICAgIGZyb206IHRoaXMuX3hycFRyYW5zYWN0aW9uLkFjY291bnQsXG4gICAgICBpc011bHRpU2lnOiB0aGlzLl9pc011bHRpU2lnLFxuICAgICAgdHJhbnNhY3Rpb25UeXBlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUgYXMgWHJwVHJhbnNhY3Rpb25UeXBlLFxuICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgZmVlOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5GZWUsXG4gICAgICBzZXF1ZW5jZTogdGhpcy5feHJwVHJhbnNhY3Rpb24uU2VxdWVuY2UsXG4gICAgICBsYXN0TGVkZ2VyU2VxdWVuY2U6IHRoaXMuX3hycFRyYW5zYWN0aW9uLkxhc3RMZWRnZXJTZXF1ZW5jZSxcbiAgICAgIGZsYWdzOiB0aGlzLl94cnBUcmFuc2FjdGlvbi5GbGFncyBhcyBudW1iZXIsXG4gICAgICBzaWduaW5nUHViS2V5OiB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5LFxuICAgICAgc2lnbmVyczogdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyxcbiAgICAgIHR4blNpZ25hdHVyZTogdGhpcy5feHJwVHJhbnNhY3Rpb24uVHhuU2lnbmF0dXJlLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSA9PT0gJycgJiYgIV8uaXNFbXB0eSh0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJzKSkge1xuICAgICAgdHhEYXRhLmlzTXVsdGlTaWcgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSAmJiB1dGlscy5pc1ZhbGlkUHVibGljS2V5KHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25pbmdQdWJLZXkpKSB7XG4gICAgICB0eERhdGEuaXNNdWx0aVNpZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50OlxuICAgICAgICB0eERhdGEuZGVzdGluYXRpb24gPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5EZXN0aW5hdGlvbjtcbiAgICAgICAgdHhEYXRhLmRlc3RpbmF0aW9uVGFnID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uRGVzdGluYXRpb25UYWc7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0eXBlb2YgdGhpcy5feHJwVHJhbnNhY3Rpb24uQW1vdW50ID09PSAnc3RyaW5nJyB8fFxuICAgICAgICAgIHV0aWxzLmlzSXNzdWVkQ3VycmVuY3lBbW91bnQodGhpcy5feHJwVHJhbnNhY3Rpb24uQW1vdW50KVxuICAgICAgICApIHtcbiAgICAgICAgICB0eERhdGEuYW1vdW50ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uQW1vdW50O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhbW91bnQnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHhEYXRhO1xuXG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50U2V0OlxuICAgICAgICB0eERhdGEuc2V0RmxhZyA9IHRoaXMuX3hycFRyYW5zYWN0aW9uLlNldEZsYWc7XG4gICAgICAgIHR4RGF0YS5tZXNzYWdlS2V5ID0gdGhpcy5feHJwVHJhbnNhY3Rpb24uTWVzc2FnZUtleTtcbiAgICAgICAgcmV0dXJuIHR4RGF0YTtcblxuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuU2lnbmVyTGlzdFNldDpcbiAgICAgICAgdHhEYXRhLnNpZ25lclF1b3J1bSA9IHRoaXMuX3hycFRyYW5zYWN0aW9uLlNpZ25lclF1b3J1bTtcbiAgICAgICAgdHhEYXRhLnNpZ25lckVudHJpZXMgPSB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduZXJFbnRyaWVzO1xuICAgICAgICByZXR1cm4gdHhEYXRhO1xuXG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5UcnVzdFNldDpcbiAgICAgICAgdHhEYXRhLmFtb3VudCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uLkxpbWl0QW1vdW50O1xuICAgICAgICByZXR1cm4gdHhEYXRhO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNpZ25hYmxlUGF5bG9hZCgpOiBYcnBUcmFuc2FjdGlvbiB7XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gXy5vbWl0KHRoaXMuX3hycFRyYW5zYWN0aW9uLCBbJ1R4blNpZ25hdHVyZScsICdTaWduZXJzJywgJ1NpZ25pbmdQdWJLZXknXSkgYXMgWHJwVHJhbnNhY3Rpb247XG4gIH1cblxuICBzaWduKGtleVBhaXI6IEtleVBhaXIgfCBLZXlQYWlyW10pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0VtcHR5IHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24uRmVlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgZmVlJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24uU2VxdWVuY2UpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBzZXF1ZW5jZScpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3hycFRyYW5zYWN0aW9uLkZsYWdzKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3NpbmcgZmxhZ3MnKTtcbiAgICB9XG4gICAgaWYgKF8uaXNFbXB0eShrZXlQYWlyKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGtleVBhaXJzID0ga2V5UGFpciBpbnN0YW5jZW9mIEFycmF5ID8ga2V5UGFpciA6IFtrZXlQYWlyXTtcbiAgICBmb3IgKGNvbnN0IGtwIG9mIGtleVBhaXJzKSB7XG4gICAgICBjb25zdCB7IHB1YiwgcHJ2IH0gPSBrcC5nZXRLZXlzKCk7XG4gICAgICBpZiAoIXBydikge1xuICAgICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdNaXNzaW5nIHByaXZhdGUga2V5Jyk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9pc011bHRpU2lnID09PSBmYWxzZSAmJiB0aGlzLl94cnBUcmFuc2FjdGlvbi5UeG5TaWduYXR1cmUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignVHJhbnNhY3Rpb24gaGFzIGFscmVhZHkgYmVlbiBzaWduZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNpZ25hYmxlUGF5bG9hZCA9IHRoaXMuZ2V0U2lnbmFibGVQYXlsb2FkKCk7XG5cbiAgICAgIGNvbnN0IHhycFdhbGxldCA9IG5ldyB4cnBsLldhbGxldChwdWIsIHBydik7XG4gICAgICBjb25zdCBzaWduZWRUeCA9IHhycFdhbGxldC5zaWduKHNpZ25hYmxlUGF5bG9hZCwgdGhpcy5faXNNdWx0aVNpZyk7XG4gICAgICBjb25zdCB4cnBTaWduZWRUeCA9IHhycGwuZGVjb2RlKHNpZ25lZFR4LnR4X2Jsb2IpO1xuICAgICAgeHJwbC52YWxpZGF0ZSh4cnBTaWduZWRUeCk7XG5cbiAgICAgIGlmICh0aGlzLl9pc011bHRpU2lnID09PSBmYWxzZSkge1xuICAgICAgICB4cnBXYWxsZXQudmVyaWZ5VHJhbnNhY3Rpb24oc2lnbmVkVHgudHhfYmxvYik7XG4gICAgICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uID0geHJwU2lnbmVkVHggYXMgdW5rbm93biBhcyBYcnBUcmFuc2FjdGlvbjtcbiAgICAgICAgdGhpcy5faWQgPSBzaWduZWRUeC5oYXNoO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5faXNNdWx0aVNpZyA9PT0gdHJ1ZSkge1xuICAgICAgICBpZiAoIXhycFNpZ25lZFR4LlNpZ25lcnMgfHwgIV8uaXNBcnJheSh4cnBTaWduZWRUeC5TaWduZXJzKSkge1xuICAgICAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ01pc3Npbmcgb3IgaW52YWxpZCBzaWduZXJzJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc29ydGVkU2lnbmVycyA9IHRoaXMuY29uY2F0QW5kU29ydFNpZ25lcnModGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyB8fCBbXSwgeHJwU2lnbmVkVHguU2lnbmVycyk7XG4gICAgICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uID0geHJwU2lnbmVkVHggYXMgdW5rbm93biBhcyBYcnBUcmFuc2FjdGlvbjtcbiAgICAgICAgdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyA9IHNvcnRlZFNpZ25lcnM7XG4gICAgICAgIHRoaXMuX2lkID0gdGhpcy5jYWxjdWxhdGVJZEZyb21SYXdUeCh4cnBsLmVuY29kZSh0aGlzLl94cnBUcmFuc2FjdGlvbikpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5feHJwVHJhbnNhY3Rpb24pIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgcmV0dXJuIHhycGwuZW5jb2RlKHRoaXMuX3hycFRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIGV4cGxhaW5UcmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBzd2l0Y2ggKHRoaXMuX3hycFRyYW5zYWN0aW9uLlRyYW5zYWN0aW9uVHlwZSkge1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuUGF5bWVudDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpblBheW1lbnRUcmFuc2FjdGlvbigpO1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuQWNjb3VudFNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpbkFjY291bnRTZXRUcmFuc2FjdGlvbigpO1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuU2lnbmVyTGlzdFNldDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhwbGFpblNpZ25lckxpc3RTZXRUcmFuc2FjdGlvbigpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBleHBsYWluUGF5bWVudFRyYW5zYWN0aW9uKCk6IEJhc2VUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCB0eCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIHhycGwuUGF5bWVudDtcbiAgICBjb25zdCBhZGRyZXNzID0gdXRpbHMubm9ybWFsaXplQWRkcmVzcyh7IGFkZHJlc3M6IHR4LkRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvblRhZzogdHguRGVzdGluYXRpb25UYWcgfSk7XG4gICAgY29uc3QgYW1vdW50ID0gXy5pc1N0cmluZyh0eC5BbW91bnQpID8gdHguQW1vdW50IDogMDtcblxuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5T3JkZXI6IFsnaWQnLCAnb3V0cHV0QW1vdW50JywgJ2NoYW5nZUFtb3VudCcsICdvdXRwdXRzJywgJ2NoYW5nZU91dHB1dHMnLCAnZmVlJ10sXG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBvdXRwdXRBbW91bnQ6IGFtb3VudCxcbiAgICAgIGNoYW5nZUFtb3VudDogMCxcbiAgICAgIG91dHB1dHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGFkZHJlc3MsXG4gICAgICAgICAgYW1vdW50LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICAgIGZlZToge1xuICAgICAgICBmZWU6IHR4LkZlZSBhcyBzdHJpbmcsXG4gICAgICAgIGZlZVJhdGU6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwbGFpbkFjY291bnRTZXRUcmFuc2FjdGlvbigpOiBBY2NvdW50U2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgdHggPSB0aGlzLl94cnBUcmFuc2FjdGlvbiBhcyB4cnBsLkFjY291bnRTZXQ7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXlPcmRlcjogWydpZCcsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnLCAnYWNjb3VudFNldCddLFxuICAgICAgaWQ6IHRoaXMuX2lkIGFzIHN0cmluZyxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLFxuICAgICAgb3V0cHV0QW1vdW50OiAwLFxuICAgICAgY2hhbmdlQW1vdW50OiAwLFxuICAgICAgb3V0cHV0czogW10sXG4gICAgICBmZWU6IHtcbiAgICAgICAgZmVlOiB0eC5GZWUgYXMgc3RyaW5nLFxuICAgICAgICBmZWVSYXRlOiB1bmRlZmluZWQsXG4gICAgICB9LFxuICAgICAgYWNjb3VudFNldDoge1xuICAgICAgICBtZXNzYWdlS2V5OiB0eC5NZXNzYWdlS2V5LFxuICAgICAgICBzZXRGbGFnOiB0eC5TZXRGbGFnIGFzIHhycGwuQWNjb3VudFNldEFzZkZsYWdzLFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBleHBsYWluU2lnbmVyTGlzdFNldFRyYW5zYWN0aW9uKCk6IFNpZ25lckxpc3RTZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBjb25zdCB0eCA9IHRoaXMuX3hycFRyYW5zYWN0aW9uIGFzIHhycGwuU2lnbmVyTGlzdFNldDtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyOiBbJ2lkJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VBbW91bnQnLCAnb3V0cHV0cycsICdjaGFuZ2VPdXRwdXRzJywgJ2ZlZScsICdzaWduZXJMaXN0U2V0J10sXG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBvdXRwdXRBbW91bnQ6IDAsXG4gICAgICBjaGFuZ2VBbW91bnQ6IDAsXG4gICAgICBvdXRwdXRzOiBbXSxcbiAgICAgIGZlZToge1xuICAgICAgICBmZWU6IHR4LkZlZSBhcyBzdHJpbmcsXG4gICAgICAgIGZlZVJhdGU6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBzaWduZXJMaXN0U2V0OiB7XG4gICAgICAgIHNpZ25lclF1b3J1bTogdHguU2lnbmVyUXVvcnVtLFxuICAgICAgICBzaWduZXJFbnRyaWVzOiB0eC5TaWduZXJFbnRyaWVzIGFzIHhycGwuU2lnbmVyRW50cnlbXSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY2FsY3VsYXRlSWRGcm9tUmF3VHgocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IGlkOiBzdHJpbmc7XG4gICAgLy8gaGFzaGVzIGlkcyBhcmUgZGlmZmVyZW50IGZvciBzaWduZWQgYW5kIHVuc2lnbmVkIHR4XG4gICAgLy8gZmlyc3Qgd2UgdHJ5IHRvIGdldCB0aGUgaGFzaCBpZCBhcyBpZiBpdCBpcyBzaWduZWQsIHdpbGwgdGhyb3cgaWYgaXRzIG5vdFxuICAgIHRyeSB7XG4gICAgICBpZCA9IHhycGwuaGFzaGVzLmhhc2hTaWduZWRUeChyYXdUcmFuc2FjdGlvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWQgPSB4cnBsLmhhc2hlcy5oYXNoVHgocmF3VHJhbnNhY3Rpb24pO1xuICAgIH1cbiAgICByZXR1cm4gaWQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiB0eXBlLlxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uVHlwZX0gdHJhbnNhY3Rpb25UeXBlIFRoZSB0cmFuc2FjdGlvbiB0eXBlIHRvIGJlIHNldC5cbiAgICovXG4gIHNldFRyYW5zYWN0aW9uVHlwZSh0cmFuc2FjdGlvblR5cGU6IFRyYW5zYWN0aW9uVHlwZSk6IHZvaWQge1xuICAgIHRoaXMuX3R5cGUgPSB0cmFuc2FjdGlvblR5cGU7XG4gIH1cblxuICBzZXRNdWx0aVNpZ1ZhbHVlKGlzTXVsdGlTaWc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9pc011bHRpU2lnID0gaXNNdWx0aVNpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoaXMgdHJhbnNhY3Rpb24gcGF5bG9hZFxuICAgKlxuICAgKiBAcGFyYW0gcmF3VHJhbnNhY3Rpb25cbiAgICovXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgbGV0IHR4SGV4ID0gcmF3VHJhbnNhY3Rpb247XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkSGV4KHJhd1RyYW5zYWN0aW9uKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdHhIZXggPSB4cnBsLmVuY29kZShKU09OLnBhcnNlKHJhd1RyYW5zYWN0aW9uKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH1cbiAgICB1dGlscy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHR4SGV4KTtcblxuICAgIHRoaXMuX3hycFRyYW5zYWN0aW9uID0geHJwbC5kZWNvZGUodHhIZXgpIGFzIHVua25vd24gYXMgWHJwVHJhbnNhY3Rpb247XG4gICAgaWYgKCFYcnBUcmFuc2FjdGlvblR5cGVbdGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlXSkge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdVbnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlLCBnb3Q6ICcgKyB0aGlzLl94cnBUcmFuc2FjdGlvbi5UcmFuc2FjdGlvblR5cGUpO1xuICAgIH1cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmluZ1B1YktleSAmJiB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5ICE9PSAnJykge1xuICAgICAgdGhpcy5faXNNdWx0aVNpZyA9IGZhbHNlO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLl94cnBUcmFuc2FjdGlvbi5TaWduaW5nUHViS2V5ID09PSAnJyAmJlxuICAgICAgdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycyAmJlxuICAgICAgdGhpcy5feHJwVHJhbnNhY3Rpb24uU2lnbmVycy5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLl9pc011bHRpU2lnID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5faWQgPSB0aGlzLmNhbGN1bGF0ZUlkRnJvbVJhd1R4KHR4SGV4KTtcblxuICAgIHN3aXRjaCAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5TaWduZXJMaXN0U2V0OlxuICAgICAgICB0aGlzLnNldFRyYW5zYWN0aW9uVHlwZShUcmFuc2FjdGlvblR5cGUuV2FsbGV0SW5pdGlhbGl6YXRpb24pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgWHJwVHJhbnNhY3Rpb25UeXBlLkFjY291bnRTZXQ6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5BY2NvdW50VXBkYXRlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFhycFRyYW5zYWN0aW9uVHlwZS5QYXltZW50OlxuICAgICAgICBpZiAodXRpbHMuaXNJc3N1ZWRDdXJyZW5jeUFtb3VudCh0aGlzLl94cnBUcmFuc2FjdGlvbi5BbW91bnQpKSB7XG4gICAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmRUb2tlbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlNlbmQpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBYcnBUcmFuc2FjdGlvblR5cGUuVHJ1c3RTZXQ6XG4gICAgICAgIHRoaXMuc2V0VHJhbnNhY3Rpb25UeXBlKFRyYW5zYWN0aW9uVHlwZS5UcnVzdExpbmUpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgdGhpcy5sb2FkSW5wdXRzQW5kT3V0cHV0cygpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWQgdGhlIGlucHV0IGFuZCBvdXRwdXQgZGF0YSBvbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgbG9hZElucHV0c0FuZE91dHB1dHMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl94cnBUcmFuc2FjdGlvbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5feHJwVHJhbnNhY3Rpb24uVHJhbnNhY3Rpb25UeXBlID09PSBYcnBUcmFuc2FjdGlvblR5cGUuUGF5bWVudCkge1xuICAgICAgbGV0IHZhbHVlOiBzdHJpbmc7XG4gICAgICBjb25zdCB7IEFjY291bnQsIERlc3RpbmF0aW9uLCBBbW91bnQsIERlc3RpbmF0aW9uVGFnIH0gPSB0aGlzLl94cnBUcmFuc2FjdGlvbjtcbiAgICAgIGlmICh0eXBlb2YgQW1vdW50ID09PSAnc3RyaW5nJykge1xuICAgICAgICB2YWx1ZSA9IEFtb3VudDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gQW1vdW50LnZhbHVlO1xuICAgICAgfVxuICAgICAgY29uc3QgY29pbiA9IHRoaXMuX2NvaW5Db25maWcubmFtZTtcbiAgICAgIHRoaXMuaW5wdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiBBY2NvdW50LFxuICAgICAgICB2YWx1ZSxcbiAgICAgICAgY29pbixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5vdXRwdXRzLnB1c2goe1xuICAgICAgICBhZGRyZXNzOiB1dGlscy5ub3JtYWxpemVBZGRyZXNzKHsgYWRkcmVzczogRGVzdGluYXRpb24sIGRlc3RpbmF0aW9uVGFnOiBEZXN0aW5hdGlvblRhZyB9KSxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGNvaW4sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR3JvdXBzIGFuZCBzb3J0cyB0aGUgc2lnbmVycyBieSBhY2NvdW50LlxuICAgKiBAcGFyYW0ge1NpZ25lcltdfXNpZ25lcnMxIC0gVGhlIGZpcnN0IHNldCBvZiBzaWduZXJzLlxuICAgKiBAcGFyYW0ge1NpZ25lcltdfXNpZ25lcnMyIC0gVGhlIHNlY29uZCBzZXQgb2Ygc2lnbmVycy5cbiAgICogQHJldHVybnMgVGhlIGdyb3VwZWQgYW5kIHNvcnRlZCBzaWduZXJzLlxuICAgKiovXG4gIHByaXZhdGUgY29uY2F0QW5kU29ydFNpZ25lcnMoc2lnbmVyczE6IFNpZ25lcltdLCBzaWduZXJzMjogU2lnbmVyW10pOiBTaWduZXJbXSB7XG4gICAgcmV0dXJuIHNpZ25lcnMxXG4gICAgICAuY29uY2F0KHNpZ25lcnMyKVxuICAgICAgLnNvcnQoKHNpZ25lcjEsIHNpZ25lcjIpID0+IHRoaXMuY29tcGFyZVNpZ25lcnNCeUFjY291bnQoc2lnbmVyMS5TaWduZXIuQWNjb3VudCwgc2lnbmVyMi5TaWduZXIuQWNjb3VudCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIElmIHByZXNlbnRlZCBpbiBiaW5hcnkgZm9ybSwgdGhlIFNpZ25lcnMgYXJyYXkgbXVzdCBiZSBzb3J0ZWQgYmFzZWQgb25cbiAgICogdGhlIG51bWVyaWMgdmFsdWUgb2YgdGhlIHNpZ25lciBhZGRyZXNzZXMsIHdpdGggdGhlIGxvd2VzdCB2YWx1ZSBmaXJzdC5cbiAgICogKElmIHN1Ym1pdHRlZCBhcyBKU09OLCB0aGUgc3VibWl0X211bHRpc2lnbmVkIG1ldGhvZCBoYW5kbGVzIHRoaXMgYXV0b21hdGljYWxseS4pXG4gICAqIGh0dHBzOi8veHJwbC5vcmcvbXVsdGktc2lnbmluZy5odG1sLlxuICAgKlxuICAgKiBAcGFyYW0gbGVmdCAtIEEgU2lnbmVyIHRvIGNvbXBhcmUgd2l0aC5cbiAgICogQHBhcmFtIHJpZ2h0IC0gQSBzZWNvbmQgU2lnbmVyIHRvIGNvbXBhcmUgd2l0aC5cbiAgICogQHJldHVybnMgMSBpZiBsZWZ0IFxcPiByaWdodCwgMCBpZiBsZWZ0ID0gcmlnaHQsIC0xIGlmIGxlZnQgXFw8IHJpZ2h0LCBhbmQgbnVsbCBpZiBsZWZ0IG9yIHJpZ2h0IGFyZSBOYU4uXG4gICAqL1xuICBwcml2YXRlIGNvbXBhcmVTaWduZXJzQnlBY2NvdW50KGFkZHJlc3MxOiBzdHJpbmcsIGFkZHJlc3MyOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIGNvbnN0IGFkZHJlc3NCTjEgPSB0aGlzLmFkZHJlc3NUb0JpZ051bWJlcihhZGRyZXNzMSk7XG4gICAgY29uc3QgYWRkcmVzc0JOMiA9IHRoaXMuYWRkcmVzc1RvQmlnTnVtYmVyKGFkZHJlc3MyKTtcbiAgICByZXR1cm4gYWRkcmVzc0JOMS5jb21wYXJlZFRvKGFkZHJlc3NCTjIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRyZXNzVG9CaWdOdW1iZXIoYWRkcmVzczogc3RyaW5nKTogQmlnTnVtYmVyIHtcbiAgICBjb25zdCBoZXggPSBCdWZmZXIuZnJvbSh4cnBsLmRlY29kZUFjY291bnRJRChhZGRyZXNzKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgIGNvbnN0IG51bWJlck9mQml0c0luSGV4ID0gMTY7XG4gICAgcmV0dXJuIG5ldyBCaWdOdW1iZXIoaGV4LCBudW1iZXJPZkJpdHNJbkhleCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,72 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|