@bitgo-beta/sdk-coin-atom 1.1.2-alpha.0 → 1.1.2-alpha.1
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 +0 -36
- package/dist/src/atom.d.ts.map +1 -1
- package/dist/src/atom.js +2 -6
- package/dist/src/index.d.ts +1 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -3
- package/dist/src/lib/constants.d.ts +0 -5
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +2 -8
- package/dist/src/lib/index.d.ts +1 -7
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +5 -25
- package/dist/src/lib/keyPair.js +2 -2
- package/package.json +8 -12
- 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/transactionBuilderFactory.d.ts +0 -29
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilderFactory.js +0 -59
- 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
- package/dist/src/lib/utils.d.ts +0 -92
- package/dist/src/lib/utils.d.ts.map +0 -1
- package/dist/src/lib/utils.js +0 -213
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { BaseAddress, BaseKey, BaseTransactionBuilder, PublicKey as BasePublicKey, TransactionType } from '@bitgo-beta/sdk-core';
|
|
3
|
-
import { Transaction } from './transaction';
|
|
4
|
-
import BigNumber from 'bignumber.js';
|
|
5
|
-
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
6
|
-
import { AtomTransaction, GasFeeLimitData, MessageData } from './iface';
|
|
7
|
-
import { Coin } from '@cosmjs/stargate';
|
|
8
|
-
export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
|
|
9
|
-
protected _transaction: Transaction;
|
|
10
|
-
private _signatures;
|
|
11
|
-
protected _type: string;
|
|
12
|
-
protected _signerAddress: string;
|
|
13
|
-
protected _sequence: number;
|
|
14
|
-
protected _sendMessages: MessageData[];
|
|
15
|
-
protected _gasBudget: GasFeeLimitData;
|
|
16
|
-
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
17
|
-
/**
|
|
18
|
-
* The transaction type.
|
|
19
|
-
*/
|
|
20
|
-
protected abstract get transactionType(): TransactionType;
|
|
21
|
-
/** @inheritdoc */
|
|
22
|
-
protected get transaction(): Transaction;
|
|
23
|
-
/** @inheritdoc */
|
|
24
|
-
protected set transaction(transaction: Transaction);
|
|
25
|
-
/** @inheritdoc */
|
|
26
|
-
protected signImplementation(key: BaseKey): Transaction;
|
|
27
|
-
/** @inheritDoc */
|
|
28
|
-
addSignature(publicKey: BasePublicKey, signature: Buffer): void;
|
|
29
|
-
type(type: string): void;
|
|
30
|
-
/**
|
|
31
|
-
* Sets the signerAddress of this transaction.
|
|
32
|
-
* This account will be responsible for paying transaction fees.
|
|
33
|
-
*
|
|
34
|
-
* @param {string} signerAddress the account that is sending this transaction
|
|
35
|
-
* @returns {TransactionBuilder} This transaction builder
|
|
36
|
-
*/
|
|
37
|
-
signerAddress(signerAddress: string): this;
|
|
38
|
-
gasBudget(gasBudget: GasFeeLimitData): this;
|
|
39
|
-
/**
|
|
40
|
-
*
|
|
41
|
-
* @param {number} sequence - sequence data for tx signer
|
|
42
|
-
* @returns {TransactionBuilder} This transaction builder
|
|
43
|
-
*/
|
|
44
|
-
sequence(sequence: number): this;
|
|
45
|
-
sendMessages(sendMessages: MessageData[]): this;
|
|
46
|
-
/**
|
|
47
|
-
* Initialize the transaction builder fields using the decoded transaction data
|
|
48
|
-
*
|
|
49
|
-
* @param {Transaction} tx the transaction data
|
|
50
|
-
*/
|
|
51
|
-
initBuilder(tx: Transaction): void;
|
|
52
|
-
/** @inheritdoc */
|
|
53
|
-
protected fromImplementation(rawTransaction: string): Transaction;
|
|
54
|
-
/** @inheritdoc */
|
|
55
|
-
protected buildImplementation(): Promise<Transaction>;
|
|
56
|
-
protected buildAtomTransaction(): AtomTransaction;
|
|
57
|
-
validateAddress(address: BaseAddress, addressFormat?: string): void;
|
|
58
|
-
validateAmountData(amountArray: Coin[]): void;
|
|
59
|
-
validateGasBudget(gasBudget: GasFeeLimitData): void;
|
|
60
|
-
private validateMessageDataArray;
|
|
61
|
-
validateMessageData(messageData: MessageData): void;
|
|
62
|
-
/** @inheritdoc */
|
|
63
|
-
validateKey(key: BaseKey): void;
|
|
64
|
-
/** @inheritdoc */
|
|
65
|
-
validateRawTransaction(rawTransaction: string): void;
|
|
66
|
-
/** @inheritdoc */
|
|
67
|
-
validateTransaction(transaction: Transaction): void;
|
|
68
|
-
/**
|
|
69
|
-
* Validates all fields are defined
|
|
70
|
-
*/
|
|
71
|
-
private validateTransactionFields;
|
|
72
|
-
/** @inheritdoc */
|
|
73
|
-
validateValue(value: BigNumber): void;
|
|
74
|
-
private validateSequence;
|
|
75
|
-
}
|
|
76
|
-
//# 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,sBAAsB,EAGtB,SAAS,IAAI,aAAa,EAE1B,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGxC,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;IACpC,OAAO,CAAC,WAAW,CAAmB;IAEtC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC;IACjC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,aAAa,EAAE,WAAW,EAAE,CAAC;IACvC,SAAS,CAAC,UAAU,EAAE,eAAe,CAAC;gBAE1B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C;;OAEG;IACH,SAAS,CAAC,QAAQ,KAAK,eAAe,IAAI,eAAe,CAAC;IAE1D,kBAAkB;IAClB,SAAS,KAAK,WAAW,IAAI,WAAW,CAEvC;IAED,kBAAkB;IAClB,SAAS,KAAK,WAAW,CAAC,WAAW,EAAE,WAAW,EAEjD;IAED,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAIvD,kBAAkB;IAClB,YAAY,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAK/D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxB;;;;;;OAMG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;IAQ1C,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAM3C;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMhC,YAAY,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI;IAM/C;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAWlC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW;IAQjE,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAM3D,SAAS,CAAC,oBAAoB,IAAI,eAAe;IAgBjD,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMnE,kBAAkB,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,IAAI;IAY7C,iBAAiB,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAOnD,OAAO,CAAC,wBAAwB;IAMhC,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAgBnD,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI/B,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASpD,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAOnD;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkBjC,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAMrC,OAAO,CAAC,gBAAgB;CAKzB"}
|
|
@@ -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,29 +0,0 @@
|
|
|
1
|
-
import { BaseTransactionBuilderFactory } from '@bitgo-beta/sdk-core';
|
|
2
|
-
import { TransactionBuilder } from './transactionBuilder';
|
|
3
|
-
import { TransferBuilder } from './transferBuilder';
|
|
4
|
-
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
5
|
-
import { Transaction } from './transaction';
|
|
6
|
-
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
7
|
-
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
8
|
-
/** @inheritdoc */
|
|
9
|
-
from(raw: string): TransactionBuilder;
|
|
10
|
-
/** @inheritdoc */
|
|
11
|
-
getTransferBuilder(tx?: Transaction): TransferBuilder;
|
|
12
|
-
/** @inheritdoc */
|
|
13
|
-
getWalletInitializationBuilder(): void;
|
|
14
|
-
/**
|
|
15
|
-
* Initialize the builder with the given transaction
|
|
16
|
-
*
|
|
17
|
-
* @param {Transaction | undefined} tx - the transaction used to initialize the builder
|
|
18
|
-
* @param {TransactionBuilder} builder - the builder to be initialized
|
|
19
|
-
* @returns {TransactionBuilder} the builder initialized
|
|
20
|
-
*/
|
|
21
|
-
private initializeBuilder;
|
|
22
|
-
/** Parse the transaction from a raw transaction
|
|
23
|
-
*
|
|
24
|
-
* @param {string} rawTransaction - the raw tx
|
|
25
|
-
* @returns {Transaction} parsedtransaction
|
|
26
|
-
*/
|
|
27
|
-
private parseTransaction;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=transactionBuilderFactory.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAA4C,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,kBAAkB;IAcrC,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;IAItC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;CAKzB"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TransactionBuilderFactory = void 0;
|
|
4
|
-
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
-
const transferBuilder_1 = require("./transferBuilder");
|
|
6
|
-
const transaction_1 = require("./transaction");
|
|
7
|
-
class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory {
|
|
8
|
-
constructor(_coinConfig) {
|
|
9
|
-
super(_coinConfig);
|
|
10
|
-
}
|
|
11
|
-
/** @inheritdoc */
|
|
12
|
-
from(raw) {
|
|
13
|
-
const tx = this.parseTransaction(raw);
|
|
14
|
-
try {
|
|
15
|
-
switch (tx.type) {
|
|
16
|
-
case sdk_core_1.TransactionType.Send:
|
|
17
|
-
return this.getTransferBuilder(tx);
|
|
18
|
-
default:
|
|
19
|
-
throw new sdk_core_1.InvalidTransactionError('Invalid transaction');
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
catch (e) {
|
|
23
|
-
throw e;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
/** @inheritdoc */
|
|
27
|
-
getTransferBuilder(tx) {
|
|
28
|
-
return this.initializeBuilder(tx, new transferBuilder_1.TransferBuilder(this._coinConfig));
|
|
29
|
-
}
|
|
30
|
-
/** @inheritdoc */
|
|
31
|
-
getWalletInitializationBuilder() {
|
|
32
|
-
throw new Error('Method not implemented.');
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Initialize the builder with the given transaction
|
|
36
|
-
*
|
|
37
|
-
* @param {Transaction | undefined} tx - the transaction used to initialize the builder
|
|
38
|
-
* @param {TransactionBuilder} builder - the builder to be initialized
|
|
39
|
-
* @returns {TransactionBuilder} the builder initialized
|
|
40
|
-
*/
|
|
41
|
-
initializeBuilder(tx, builder) {
|
|
42
|
-
if (tx) {
|
|
43
|
-
builder.initBuilder(tx);
|
|
44
|
-
}
|
|
45
|
-
return builder;
|
|
46
|
-
}
|
|
47
|
-
/** Parse the transaction from a raw transaction
|
|
48
|
-
*
|
|
49
|
-
* @param {string} rawTransaction - the raw tx
|
|
50
|
-
* @returns {Transaction} parsedtransaction
|
|
51
|
-
*/
|
|
52
|
-
parseTransaction(rawTransaction) {
|
|
53
|
-
const tx = new transaction_1.Transaction(this._coinConfig);
|
|
54
|
-
tx.fromRawTransaction(rawTransaction);
|
|
55
|
-
return tx;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBK0c7QUFFL0csdURBQW9EO0FBRXBELCtDQUE0QztBQUU1QyxNQUFhLHlCQUEwQixTQUFRLHdDQUE2QjtJQUMxRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQUksQ0FBQyxHQUFXO1FBQ2QsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLElBQUk7WUFDRixRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUU7Z0JBQ2YsS0FBSywwQkFBZSxDQUFDLElBQUk7b0JBQ3ZCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNyQztvQkFDRSxNQUFNLElBQUksa0NBQXVCLENBQUMscUJBQXFCLENBQUMsQ0FBQzthQUM1RDtTQUNGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixNQUFNLENBQUMsQ0FBQztTQUNUO0lBQ0gsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixrQkFBa0IsQ0FBQyxFQUFnQjtRQUNqQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsOEJBQThCO1FBQzVCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssaUJBQWlCLENBQStCLEVBQTJCLEVBQUUsT0FBVTtRQUM3RixJQUFJLEVBQUUsRUFBRTtZQUNOLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekI7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQixDQUFDLGNBQXNCO1FBQzdDLE1BQU0sRUFBRSxHQUFHLElBQUkseUJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDN0MsRUFBRSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztDQUNGO0FBdERELDhEQXNEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkgZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tKHJhdzogc3RyaW5nKTogVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgICBjb25zdCB0eCA9IHRoaXMucGFyc2VUcmFuc2FjdGlvbihyYXcpO1xuICAgIHRyeSB7XG4gICAgICBzd2l0Y2ggKHR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBUcmFuc2FjdGlvblR5cGUuU2VuZDpcbiAgICAgICAgICByZXR1cm4gdGhpcy5nZXRUcmFuc2ZlckJ1aWxkZXIodHgpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCB0cmFuc2FjdGlvbicpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFRyYW5zZmVyQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFRyYW5zZmVyQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZ2V0V2FsbGV0SW5pdGlhbGl6YXRpb25CdWlsZGVyKCk6IHZvaWQge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBidWlsZGVyIHdpdGggdGhlIGdpdmVuIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb24gfCB1bmRlZmluZWR9IHR4IC0gdGhlIHRyYW5zYWN0aW9uIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgYnVpbGRlclxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uQnVpbGRlcn0gYnVpbGRlciAtIHRoZSBidWlsZGVyIHRvIGJlIGluaXRpYWxpemVkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IHRoZSBidWlsZGVyIGluaXRpYWxpemVkXG4gICAqL1xuICBwcml2YXRlIGluaXRpYWxpemVCdWlsZGVyPFQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXI+KHR4OiBUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZCwgYnVpbGRlcjogVCk6IFQge1xuICAgIGlmICh0eCkge1xuICAgICAgYnVpbGRlci5pbml0QnVpbGRlcih0eCk7XG4gICAgfVxuICAgIHJldHVybiBidWlsZGVyO1xuICB9XG5cbiAgLyoqIFBhcnNlIHRoZSB0cmFuc2FjdGlvbiBmcm9tIGEgcmF3IHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSByYXdUcmFuc2FjdGlvbiAtIHRoZSByYXcgdHhcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9ufSBwYXJzZWR0cmFuc2FjdGlvblxuICAgKi9cbiAgcHJpdmF0ZSBwYXJzZVRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBUcmFuc2FjdGlvbiB7XG4gICAgY29uc3QgdHggPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZyk7XG4gICAgdHguZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uKTtcbiAgICByZXR1cm4gdHg7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -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=
|
package/dist/src/lib/utils.d.ts
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { BaseUtils, Signature } from '@bitgo-beta/sdk-core';
|
|
3
|
-
import { DecodedTxRaw } from '@cosmjs/proto-signing';
|
|
4
|
-
import { AtomTransaction, GasFeeLimitData, MessageData } from './iface';
|
|
5
|
-
import { TxRaw, SignDoc } from 'cosmjs-types/cosmos/tx/v1beta1/tx';
|
|
6
|
-
export declare class Utils implements BaseUtils {
|
|
7
|
-
/** @inheritdoc */
|
|
8
|
-
isValidBlockId(hash: string): boolean;
|
|
9
|
-
/** @inheritdoc */
|
|
10
|
-
isValidPrivateKey(key: string): boolean;
|
|
11
|
-
/** @inheritdoc */
|
|
12
|
-
isValidPublicKey(key: string): boolean;
|
|
13
|
-
/** @inheritdoc */
|
|
14
|
-
isValidSignature(signature: string): boolean;
|
|
15
|
-
/** @inheritdoc */
|
|
16
|
-
isValidTransactionId(txId: string): boolean;
|
|
17
|
-
validateBlake2b(hash: string): boolean;
|
|
18
|
-
/**
|
|
19
|
-
* Checks if raw transaction can be deserialized
|
|
20
|
-
*
|
|
21
|
-
* @param {string} rawTransaction - transaction in base64 string format
|
|
22
|
-
* @returns {boolean} - the validation result
|
|
23
|
-
*/
|
|
24
|
-
isValidRawTransaction(rawTransaction: string): boolean;
|
|
25
|
-
/**
|
|
26
|
-
* Check the raw transaction has a valid format in the blockchain context, throw otherwise.
|
|
27
|
-
*
|
|
28
|
-
* @param {string} rawTransaction - Transaction in base64 string format
|
|
29
|
-
*/
|
|
30
|
-
validateRawTransaction(rawTransaction: string): void;
|
|
31
|
-
isValidAddress(address: string): boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Returns whether or not the string is a valid amount
|
|
34
|
-
*
|
|
35
|
-
* @param {number[]} amounts - the amounts to validate
|
|
36
|
-
* @returns {boolean} - the validation result
|
|
37
|
-
*/
|
|
38
|
-
isValidAmounts(amounts: number[]): boolean;
|
|
39
|
-
isValidAmount(amount: number): boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Decodes raw tx data into messages, signing info, and fee data
|
|
42
|
-
* @param txHex - raw base64 tx
|
|
43
|
-
*/
|
|
44
|
-
getDecodedTxFromRawBase64(txRaw: string): DecodedTxRaw;
|
|
45
|
-
/**
|
|
46
|
-
* Returns the array of messages in the body of the decoded transaction
|
|
47
|
-
* @param decodedTx
|
|
48
|
-
*/
|
|
49
|
-
private getEncodedMessagesFromDecodedTx;
|
|
50
|
-
/**
|
|
51
|
-
* Arranges a decoded message into our MessageData value interface
|
|
52
|
-
* @param decodedMessage
|
|
53
|
-
* @private
|
|
54
|
-
*/
|
|
55
|
-
private getMessageValueDataFromDecodedMessage;
|
|
56
|
-
/**
|
|
57
|
-
* Returns an array of MessageData[] from an encoded messages array
|
|
58
|
-
* @param encodedMessages
|
|
59
|
-
* @private
|
|
60
|
-
*/
|
|
61
|
-
private getMessageDataFromEncodedMessages;
|
|
62
|
-
/**
|
|
63
|
-
* Pulls the sequence number from a DecodedTxRaw AuthInfo property
|
|
64
|
-
* @param decodedTx
|
|
65
|
-
* @private
|
|
66
|
-
*/
|
|
67
|
-
getSequenceFromDecodedTx(decodedTx: DecodedTxRaw): number;
|
|
68
|
-
/**
|
|
69
|
-
* Pulls the typeUrl from the encoded message of a DecodedTxRaw
|
|
70
|
-
* @param decodedTx
|
|
71
|
-
*/
|
|
72
|
-
getTypeUrlFromDecodedTx(decodedTx: DecodedTxRaw): string;
|
|
73
|
-
getGasBudgetFromDecodedTx(decodedTx: DecodedTxRaw): GasFeeLimitData;
|
|
74
|
-
/**
|
|
75
|
-
* Returns the array of MessageData[] from the decoded transaction
|
|
76
|
-
* @param decodedTx
|
|
77
|
-
*/
|
|
78
|
-
getMessageDataFromDecodedTx(decodedTx: DecodedTxRaw): MessageData[];
|
|
79
|
-
createSignDocFromAtomTransaction(pubkey: any, atomTransaction: AtomTransaction): import("cosmjs-types/cosmos/tx/v1beta1/tx").SignDoc;
|
|
80
|
-
createSignedTxRaw(atomSignature: Signature, signDoc: SignDoc): TxRaw;
|
|
81
|
-
createBase64SignedTxBytesFromSignedTxRaw(signedTxRaw: TxRaw): string;
|
|
82
|
-
isSignedRawTx(rawTransaction: string): boolean;
|
|
83
|
-
getSignerInfoFromRawSignedTx(rawTransaction: string): {
|
|
84
|
-
pubKey: {
|
|
85
|
-
pub: string;
|
|
86
|
-
};
|
|
87
|
-
signature: Buffer;
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
|
-
declare const utils: Utils;
|
|
91
|
-
export default utils;
|
|
92
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAyB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGnF,OAAO,EACL,YAAY,EAOb,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGxE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAGnE,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI3C,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAMtC;;;;;OAKG;IACH,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAItD;;;;OAIG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IASpD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOxC;;;;;OAKG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO;IAS1C,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAQtC;;;OAGG;IACH,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY;IAItD;;;OAGG;IACH,OAAO,CAAC,+BAA+B;IAIvC;;;;OAIG;IACH,OAAO,CAAC,qCAAqC;IAQ7C;;;;OAIG;IACH,OAAO,CAAC,iCAAiC;IAYzC;;;;OAIG;IACH,wBAAwB,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM;IAIzD;;;OAGG;IACH,uBAAuB,CAAC,SAAS,EAAE,YAAY,GAAG,MAAM;IAKxD,yBAAyB,CAAC,SAAS,EAAE,YAAY,GAAG,eAAe;IAOnE;;;OAGG;IACH,2BAA2B,CAAC,SAAS,EAAE,YAAY,GAAG,WAAW,EAAE;IAKnE,gCAAgC,CAAC,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,eAAe;IAqB9E,iBAAiB,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,KAAK;IASpE,wCAAwC,CAAC,WAAW,EAAE,KAAK,GAAG,MAAM;IAKpE,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAQ9C,4BAA4B,CAAC,cAAc,EAAE,MAAM;;;;;;CAapD;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
|