@bitgo-beta/sdk-coin-trx 1.2.3-alpha.397 → 1.2.3-alpha.399
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 +6 -0
- package/package.json +7 -7
- 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/address.d.ts +0 -11
- package/dist/src/lib/address.d.ts.map +0 -1
- package/dist/src/lib/address.js +0 -13
- package/dist/src/lib/builder.d.ts +0 -3
- package/dist/src/lib/builder.d.ts.map +0 -1
- package/dist/src/lib/builder.js +0 -10
- package/dist/src/lib/constants.d.ts +0 -3
- package/dist/src/lib/constants.d.ts.map +0 -1
- package/dist/src/lib/constants.js +0 -6
- package/dist/src/lib/contractCallBuilder.d.ts +0 -62
- package/dist/src/lib/contractCallBuilder.d.ts.map +0 -1
- package/dist/src/lib/contractCallBuilder.js +0 -218
- package/dist/src/lib/delegateResourceTxBuilder.d.ts +0 -27
- package/dist/src/lib/delegateResourceTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/delegateResourceTxBuilder.js +0 -98
- package/dist/src/lib/enum.d.ts +0 -58
- package/dist/src/lib/enum.d.ts.map +0 -1
- package/dist/src/lib/enum.js +0 -64
- package/dist/src/lib/freezeBalanceTxBuilder.d.ts +0 -71
- package/dist/src/lib/freezeBalanceTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/freezeBalanceTxBuilder.js +0 -211
- package/dist/src/lib/iface.d.ts +0 -321
- package/dist/src/lib/iface.d.ts.map +0 -1
- package/dist/src/lib/iface.js +0 -3
- package/dist/src/lib/index.d.ts +0 -12
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -53
- package/dist/src/lib/keyPair.d.ts +0 -43
- package/dist/src/lib/keyPair.d.ts.map +0 -1
- package/dist/src/lib/keyPair.js +0 -134
- package/dist/src/lib/resourceManagementTxBuilder.d.ts +0 -72
- package/dist/src/lib/resourceManagementTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/resourceManagementTxBuilder.js +0 -150
- package/dist/src/lib/tokenTransferBuilder.d.ts +0 -23
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +0 -1
- package/dist/src/lib/tokenTransferBuilder.js +0 -42
- package/dist/src/lib/transaction.d.ts +0 -74
- package/dist/src/lib/transaction.d.ts.map +0 -1
- package/dist/src/lib/transaction.js +0 -312
- package/dist/src/lib/transactionBuilder.d.ts +0 -110
- package/dist/src/lib/transactionBuilder.d.ts.map +0 -1
- package/dist/src/lib/transactionBuilder.js +0 -304
- package/dist/src/lib/undelegateResourceTxBuilder.d.ts +0 -27
- package/dist/src/lib/undelegateResourceTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/undelegateResourceTxBuilder.js +0 -98
- package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts +0 -65
- package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/unfreezeBalanceTxBuilder.js +0 -204
- package/dist/src/lib/utils.d.ts +0 -197
- package/dist/src/lib/utils.d.ts.map +0 -1
- package/dist/src/lib/utils.js +0 -745
- package/dist/src/lib/voteWitnessTxBuilder.d.ts +0 -62
- package/dist/src/lib/voteWitnessTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/voteWitnessTxBuilder.js +0 -219
- package/dist/src/lib/withdrawBuilder.d.ts +0 -49
- package/dist/src/lib/withdrawBuilder.d.ts.map +0 -1
- package/dist/src/lib/withdrawBuilder.js +0 -167
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts +0 -49
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts.map +0 -1
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.js +0 -167
- package/dist/src/lib/wrappedBuilder.d.ts +0 -110
- package/dist/src/lib/wrappedBuilder.d.ts.map +0 -1
- package/dist/src/lib/wrappedBuilder.js +0 -192
- 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/trx.d.ts +0 -262
- package/dist/src/trx.d.ts.map +0 -1
- package/dist/src/trx.js +0 -737
- package/dist/src/trxToken.d.ts +0 -38
- package/dist/src/trxToken.d.ts.map +0 -1
- package/dist/src/trxToken.js +0 -91
- package/dist/src/ttrx.d.ts +0 -13
- package/dist/src/ttrx.d.ts.map +0 -1
- package/dist/src/ttrx.js +0 -14
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WithdrawExpireUnfreezeTxBuilder = void 0;
|
|
4
|
-
const crypto_1 = require("crypto");
|
|
5
|
-
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
6
|
-
const transactionBuilder_1 = require("./transactionBuilder");
|
|
7
|
-
const transaction_1 = require("./transaction");
|
|
8
|
-
const tron_1 = require("../../resources/protobuf/tron");
|
|
9
|
-
const utils_1 = require("./utils");
|
|
10
|
-
var ContractType = tron_1.protocol.Transaction.Contract.ContractType;
|
|
11
|
-
class WithdrawExpireUnfreezeTxBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
12
|
-
constructor(_coinConfig) {
|
|
13
|
-
super(_coinConfig);
|
|
14
|
-
this._signingKeys = [];
|
|
15
|
-
this.transaction = new transaction_1.Transaction(_coinConfig);
|
|
16
|
-
}
|
|
17
|
-
/** @inheritdoc */
|
|
18
|
-
get transactionType() {
|
|
19
|
-
return sdk_core_1.TransactionType.StakingWithdraw;
|
|
20
|
-
}
|
|
21
|
-
/** @inheritdoc */
|
|
22
|
-
extendValidTo(extensionMs) {
|
|
23
|
-
if (this.transaction.signature && this.transaction.signature.length > 0) {
|
|
24
|
-
throw new sdk_core_1.ExtendTransactionError('Cannot extend a signed transaction');
|
|
25
|
-
}
|
|
26
|
-
if (extensionMs <= 0) {
|
|
27
|
-
throw new Error('Value cannot be below zero');
|
|
28
|
-
}
|
|
29
|
-
if (extensionMs > utils_1.TRANSACTION_MAX_EXPIRATION) {
|
|
30
|
-
throw new sdk_core_1.ExtendTransactionError('The expiration cannot be extended more than one year');
|
|
31
|
-
}
|
|
32
|
-
if (this._expiration) {
|
|
33
|
-
this._expiration = this._expiration + extensionMs;
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
throw new Error('There is not expiration to extend');
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
initBuilder(rawTransaction) {
|
|
40
|
-
this.transaction = this.fromImplementation(rawTransaction);
|
|
41
|
-
this.transaction.setTransactionType(this.transactionType);
|
|
42
|
-
this.validateRawTransaction(rawTransaction);
|
|
43
|
-
const tx = this.fromImplementation(rawTransaction);
|
|
44
|
-
this.transaction = tx;
|
|
45
|
-
this._signingKeys = [];
|
|
46
|
-
const rawData = tx.toJson().raw_data;
|
|
47
|
-
this._refBlockBytes = rawData.ref_block_bytes;
|
|
48
|
-
this._refBlockHash = rawData.ref_block_hash;
|
|
49
|
-
this._expiration = rawData.expiration;
|
|
50
|
-
this._timestamp = rawData.timestamp;
|
|
51
|
-
const contractCall = rawData.contract[0];
|
|
52
|
-
this.initWithdrawExpireUnfreezeContractCall(contractCall);
|
|
53
|
-
return this;
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Initialize the withdraw expire unfreeze contract call specific data
|
|
57
|
-
*
|
|
58
|
-
* @param {WithdrawExpireUnfreezeContract} withdrawExpireUnfreezeContractCall object with freeze txn data
|
|
59
|
-
*/
|
|
60
|
-
initWithdrawExpireUnfreezeContractCall(withdrawExpireUnfreezeContractCall) {
|
|
61
|
-
const { owner_address } = withdrawExpireUnfreezeContractCall.parameter.value;
|
|
62
|
-
if (owner_address) {
|
|
63
|
-
this.source({ address: (0, utils_1.getBase58AddressFromHex)(owner_address) });
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
async buildImplementation() {
|
|
67
|
-
this.createWithdrawExpireUnfreezeTransaction();
|
|
68
|
-
/** @inheritdoccreateTransaction */
|
|
69
|
-
// This method must be extended on child classes
|
|
70
|
-
if (this._signingKeys.length > 0) {
|
|
71
|
-
this.applySignatures();
|
|
72
|
-
}
|
|
73
|
-
if (!this.transaction.id) {
|
|
74
|
-
throw new sdk_core_1.BuildTransactionError('A valid transaction must have an id');
|
|
75
|
-
}
|
|
76
|
-
return Promise.resolve(this.transaction);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Helper method to create the withdraw expire unfreeze transaction
|
|
80
|
-
*/
|
|
81
|
-
createWithdrawExpireUnfreezeTransaction() {
|
|
82
|
-
const rawDataHex = this.getWithdrawExpireUnfreezeRawDataHex();
|
|
83
|
-
const rawData = (0, utils_1.decodeTransaction)(rawDataHex);
|
|
84
|
-
const contract = rawData.contract[0];
|
|
85
|
-
const contractParameter = contract.parameter;
|
|
86
|
-
contractParameter.value.owner_address = this._ownerAddress.toLocaleLowerCase();
|
|
87
|
-
contractParameter.type_url = 'type.googleapis.com/protocol.WithdrawExpireUnfreezeContract';
|
|
88
|
-
contract.type = 'WithdrawExpireUnfreezeContract';
|
|
89
|
-
const hexBuffer = Buffer.from(rawDataHex, 'hex');
|
|
90
|
-
const id = (0, crypto_1.createHash)('sha256').update(hexBuffer).digest('hex');
|
|
91
|
-
const txRecip = {
|
|
92
|
-
raw_data: rawData,
|
|
93
|
-
raw_data_hex: rawDataHex,
|
|
94
|
-
txID: id,
|
|
95
|
-
signature: this.transaction.signature,
|
|
96
|
-
};
|
|
97
|
-
this.transaction = new transaction_1.Transaction(this._coinConfig, txRecip);
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Helper method to get the withdraw expire unfreeze transaction raw data hex
|
|
101
|
-
*
|
|
102
|
-
* @returns {string} the freeze balance transaction raw data hex
|
|
103
|
-
*/
|
|
104
|
-
getWithdrawExpireUnfreezeRawDataHex() {
|
|
105
|
-
const rawContract = {
|
|
106
|
-
ownerAddress: (0, utils_1.getByteArrayFromHexAddress)(this._ownerAddress),
|
|
107
|
-
};
|
|
108
|
-
const withdrawExpireUnfreezeContract = tron_1.protocol.WithdrawExpireUnfreezeContract.fromObject(rawContract);
|
|
109
|
-
const withdrawExpireUnfreezeContractBytes = tron_1.protocol.WithdrawExpireUnfreezeContract.encode(withdrawExpireUnfreezeContract).finish();
|
|
110
|
-
const txContract = {
|
|
111
|
-
type: ContractType.WithdrawExpireUnfreezeContract,
|
|
112
|
-
parameter: {
|
|
113
|
-
value: withdrawExpireUnfreezeContractBytes,
|
|
114
|
-
type_url: 'type.googleapis.com/protocol.WithdrawExpireUnfreezeContract',
|
|
115
|
-
},
|
|
116
|
-
};
|
|
117
|
-
const raw = {
|
|
118
|
-
refBlockBytes: Buffer.from(this._refBlockBytes, 'hex'),
|
|
119
|
-
refBlockHash: Buffer.from(this._refBlockHash, 'hex'),
|
|
120
|
-
expiration: this._expiration || Date.now() + utils_1.TRANSACTION_DEFAULT_EXPIRATION,
|
|
121
|
-
timestamp: this._timestamp || Date.now(),
|
|
122
|
-
contract: [txContract],
|
|
123
|
-
};
|
|
124
|
-
const rawTx = tron_1.protocol.Transaction.raw.create(raw);
|
|
125
|
-
return Buffer.from(tron_1.protocol.Transaction.raw.encode(rawTx).finish()).toString('hex');
|
|
126
|
-
}
|
|
127
|
-
/** @inheritdoc */
|
|
128
|
-
signImplementation(key) {
|
|
129
|
-
if (this._signingKeys.some((signingKey) => signingKey.key === key.key)) {
|
|
130
|
-
throw new sdk_core_1.SigningError('Duplicated key');
|
|
131
|
-
}
|
|
132
|
-
this._signingKeys.push(key);
|
|
133
|
-
// We keep this return for compatibility but is not meant to be use
|
|
134
|
-
return this.transaction;
|
|
135
|
-
}
|
|
136
|
-
applySignatures() {
|
|
137
|
-
if (!this.transaction.inputs) {
|
|
138
|
-
throw new sdk_core_1.SigningError('Transaction has no inputs');
|
|
139
|
-
}
|
|
140
|
-
this._signingKeys.forEach((key) => this.applySignature(key));
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Validates the transaction
|
|
144
|
-
*
|
|
145
|
-
* @param {Transaction} transaction - The transaction to validate
|
|
146
|
-
* @throws {BuildTransactionError} when the transaction is invalid
|
|
147
|
-
*/
|
|
148
|
-
validateTransaction(transaction) {
|
|
149
|
-
this.validateWithdrawExpireUnfreezeTransactionFields();
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Validates if the transaction is a valid withdraw expire unfreeze transaction
|
|
153
|
-
*
|
|
154
|
-
* @param {TransactionReceipt} transaction - The transaction to validate
|
|
155
|
-
* @throws {BuildTransactionError} when the transaction is invalid
|
|
156
|
-
*/
|
|
157
|
-
validateWithdrawExpireUnfreezeTransactionFields() {
|
|
158
|
-
if (!this._ownerAddress) {
|
|
159
|
-
throw new sdk_core_1.BuildTransactionError('Missing parameter: source');
|
|
160
|
-
}
|
|
161
|
-
if (!this._refBlockBytes || !this._refBlockHash) {
|
|
162
|
-
throw new sdk_core_1.BuildTransactionError('Missing block reference information');
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
exports.WithdrawExpireUnfreezeTxBuilder = WithdrawExpireUnfreezeTxBuilder;
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aGRyYXdFeHBpcmVVbmZyZWV6ZVR4QnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvd2l0aGRyYXdFeHBpcmVVbmZyZWV6ZVR4QnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbURBQTZIO0FBRTdILDZEQUEwRDtBQUMxRCwrQ0FBNEM7QUFFNUMsd0RBQXlEO0FBQ3pELG1DQU1pQjtBQUVqQixJQUFPLFlBQVksR0FBRyxlQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7QUFFakUsTUFBYSwrQkFBZ0MsU0FBUSx1Q0FBa0I7SUFHckUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixJQUFjLGVBQWU7UUFDM0IsT0FBTywwQkFBZSxDQUFDLGVBQWUsQ0FBQztJQUN6QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGFBQWEsQ0FBQyxXQUFtQjtRQUMvQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxNQUFNLElBQUksaUNBQXNCLENBQUMsb0NBQW9DLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsSUFBSSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxJQUFJLFdBQVcsR0FBRyxrQ0FBMEIsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxpQ0FBc0IsQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO1FBQzNGLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQ3BELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLGNBQTJDO1FBQ3JELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1QyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztRQUNyQyxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzVDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUN0QyxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUM7UUFDcEMsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQW1DLENBQUM7UUFDM0UsSUFBSSxDQUFDLHNDQUFzQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDTyxzQ0FBc0MsQ0FDOUMsa0NBQWtFO1FBRWxFLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxrQ0FBa0MsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1FBQzdFLElBQUksYUFBYSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFBLCtCQUF1QixFQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNuRSxDQUFDO0lBQ0gsQ0FBQztJQUVTLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsSUFBSSxDQUFDLHVDQUF1QyxFQUFFLENBQUM7UUFDL0MsbUNBQW1DO1FBQ25DLGdEQUFnRDtRQUNoRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN6QixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVEOztPQUVHO0lBQ0ssdUNBQXVDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxtQ0FBbUMsRUFBRSxDQUFDO1FBQzlELE1BQU0sT0FBTyxHQUFHLElBQUEseUJBQWlCLEVBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQW1DLENBQUM7UUFDdkUsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDO1FBQzdDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQy9FLGlCQUFpQixDQUFDLFFBQVEsR0FBRyw2REFBNkQsQ0FBQztRQUMzRixRQUFRLENBQUMsSUFBSSxHQUFHLGdDQUFnQyxDQUFDO1FBQ2pELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2pELE1BQU0sRUFBRSxHQUFHLElBQUEsbUJBQVUsRUFBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hFLE1BQU0sT0FBTyxHQUF1QjtZQUNsQyxRQUFRLEVBQUUsT0FBTztZQUNqQixZQUFZLEVBQUUsVUFBVTtZQUN4QixJQUFJLEVBQUUsRUFBRTtZQUNSLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVM7U0FDdEMsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSx5QkFBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxtQ0FBbUM7UUFDekMsTUFBTSxXQUFXLEdBQUc7WUFDbEIsWUFBWSxFQUFFLElBQUEsa0NBQTBCLEVBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUM3RCxDQUFDO1FBQ0YsTUFBTSw4QkFBOEIsR0FBRyxlQUFRLENBQUMsOEJBQThCLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sbUNBQW1DLEdBQ3ZDLGVBQVEsQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMxRixNQUFNLFVBQVUsR0FBRztZQUNqQixJQUFJLEVBQUUsWUFBWSxDQUFDLDhCQUE4QjtZQUNqRCxTQUFTLEVBQUU7Z0JBQ1QsS0FBSyxFQUFFLG1DQUFtQztnQkFDMUMsUUFBUSxFQUFFLDZEQUE2RDthQUN4RTtTQUNGLENBQUM7UUFDRixNQUFNLEdBQUcsR0FBRztZQUNWLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDO1lBQ3RELFlBQVksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDO1lBQ3BELFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxzQ0FBOEI7WUFDM0UsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN4QyxRQUFRLEVBQUUsQ0FBQyxVQUFVLENBQUM7U0FDdkIsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLGVBQVEsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBUSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdkUsTUFBTSxJQUFJLHVCQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFNUIsbUVBQW1FO1FBQ25FLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDO0lBRU8sZUFBZTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QixNQUFNLElBQUksdUJBQVksQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG1CQUFtQixDQUFDLFdBQXdCO1FBQzFDLElBQUksQ0FBQywrQ0FBK0MsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLCtDQUErQztRQUNyRCxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1FBQy9ELENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNoRCxNQUFNLElBQUksZ0NBQXFCLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBaExELDBFQWdMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25UeXBlLCBCYXNlS2V5LCBFeHRlbmRUcmFuc2FjdGlvbkVycm9yLCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIFNpZ25pbmdFcnJvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uIH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblJlY2VpcHQsIFdpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdCB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgcHJvdG9jb2wgfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvcHJvdG9idWYvdHJvbic7XG5pbXBvcnQge1xuICBkZWNvZGVUcmFuc2FjdGlvbixcbiAgZ2V0Qnl0ZUFycmF5RnJvbUhleEFkZHJlc3MsXG4gIGdldEJhc2U1OEFkZHJlc3NGcm9tSGV4LFxuICBUUkFOU0FDVElPTl9NQVhfRVhQSVJBVElPTixcbiAgVFJBTlNBQ1RJT05fREVGQVVMVF9FWFBJUkFUSU9OLFxufSBmcm9tICcuL3V0aWxzJztcblxuaW1wb3J0IENvbnRyYWN0VHlwZSA9IHByb3RvY29sLlRyYW5zYWN0aW9uLkNvbnRyYWN0LkNvbnRyYWN0VHlwZTtcblxuZXhwb3J0IGNsYXNzIFdpdGhkcmF3RXhwaXJlVW5mcmVlemVUeEJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3NpZ25pbmdLZXlzOiBCYXNlS2V5W107XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3NpZ25pbmdLZXlzID0gW107XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdXaXRoZHJhdztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBleHRlbmRWYWxpZFRvKGV4dGVuc2lvbk1zOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5zaWduYXR1cmUgJiYgdGhpcy50cmFuc2FjdGlvbi5zaWduYXR1cmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEV4dGVuZFRyYW5zYWN0aW9uRXJyb3IoJ0Nhbm5vdCBleHRlbmQgYSBzaWduZWQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAoZXh0ZW5zaW9uTXMgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgYmVsb3cgemVybycpO1xuICAgIH1cblxuICAgIGlmIChleHRlbnNpb25NcyA+IFRSQU5TQUNUSU9OX01BWF9FWFBJUkFUSU9OKSB7XG4gICAgICB0aHJvdyBuZXcgRXh0ZW5kVHJhbnNhY3Rpb25FcnJvcignVGhlIGV4cGlyYXRpb24gY2Fubm90IGJlIGV4dGVuZGVkIG1vcmUgdGhhbiBvbmUgeWVhcicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9leHBpcmF0aW9uKSB7XG4gICAgICB0aGlzLl9leHBpcmF0aW9uID0gdGhpcy5fZXhwaXJhdGlvbiArIGV4dGVuc2lvbk1zO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZXJlIGlzIG5vdCBleHBpcmF0aW9uIHRvIGV4dGVuZCcpO1xuICAgIH1cbiAgfVxuXG4gIGluaXRCdWlsZGVyKHJhd1RyYW5zYWN0aW9uOiBUcmFuc2FjdGlvblJlY2VpcHQgfCBzdHJpbmcpOiB0aGlzIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gdGhpcy5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMudHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25UeXBlKHRoaXMudHJhbnNhY3Rpb25UeXBlKTtcbiAgICB0aGlzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IHR4ID0gdGhpcy5mcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSB0eDtcbiAgICB0aGlzLl9zaWduaW5nS2V5cyA9IFtdO1xuICAgIGNvbnN0IHJhd0RhdGEgPSB0eC50b0pzb24oKS5yYXdfZGF0YTtcbiAgICB0aGlzLl9yZWZCbG9ja0J5dGVzID0gcmF3RGF0YS5yZWZfYmxvY2tfYnl0ZXM7XG4gICAgdGhpcy5fcmVmQmxvY2tIYXNoID0gcmF3RGF0YS5yZWZfYmxvY2tfaGFzaDtcbiAgICB0aGlzLl9leHBpcmF0aW9uID0gcmF3RGF0YS5leHBpcmF0aW9uO1xuICAgIHRoaXMuX3RpbWVzdGFtcCA9IHJhd0RhdGEudGltZXN0YW1wO1xuICAgIGNvbnN0IGNvbnRyYWN0Q2FsbCA9IHJhd0RhdGEuY29udHJhY3RbMF0gYXMgV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0O1xuICAgIHRoaXMuaW5pdFdpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdENhbGwoY29udHJhY3RDYWxsKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB3aXRoZHJhdyBleHBpcmUgdW5mcmVlemUgY29udHJhY3QgY2FsbCBzcGVjaWZpYyBkYXRhXG4gICAqXG4gICAqIEBwYXJhbSB7V2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0fSB3aXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3RDYWxsIG9iamVjdCB3aXRoIGZyZWV6ZSB0eG4gZGF0YVxuICAgKi9cbiAgcHJvdGVjdGVkIGluaXRXaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3RDYWxsKFxuICAgIHdpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdENhbGw6IFdpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdFxuICApOiB2b2lkIHtcbiAgICBjb25zdCB7IG93bmVyX2FkZHJlc3MgfSA9IHdpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdENhbGwucGFyYW1ldGVyLnZhbHVlO1xuICAgIGlmIChvd25lcl9hZGRyZXNzKSB7XG4gICAgICB0aGlzLnNvdXJjZSh7IGFkZHJlc3M6IGdldEJhc2U1OEFkZHJlc3NGcm9tSGV4KG93bmVyX2FkZHJlc3MpIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLmNyZWF0ZVdpdGhkcmF3RXhwaXJlVW5mcmVlemVUcmFuc2FjdGlvbigpO1xuICAgIC8qKiBAaW5oZXJpdGRvY2NyZWF0ZVRyYW5zYWN0aW9uICovXG4gICAgLy8gVGhpcyBtZXRob2QgbXVzdCBiZSBleHRlbmRlZCBvbiBjaGlsZCBjbGFzc2VzXG4gICAgaWYgKHRoaXMuX3NpZ25pbmdLZXlzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuYXBwbHlTaWduYXR1cmVzKCk7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnRyYW5zYWN0aW9uLmlkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdBIHZhbGlkIHRyYW5zYWN0aW9uIG11c3QgaGF2ZSBhbiBpZCcpO1xuICAgIH1cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHRoaXMudHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciBtZXRob2QgdG8gY3JlYXRlIHRoZSB3aXRoZHJhdyBleHBpcmUgdW5mcmVlemUgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZVRyYW5zYWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHJhd0RhdGFIZXggPSB0aGlzLmdldFdpdGhkcmF3RXhwaXJlVW5mcmVlemVSYXdEYXRhSGV4KCk7XG4gICAgY29uc3QgcmF3RGF0YSA9IGRlY29kZVRyYW5zYWN0aW9uKHJhd0RhdGFIZXgpO1xuICAgIGNvbnN0IGNvbnRyYWN0ID0gcmF3RGF0YS5jb250cmFjdFswXSBhcyBXaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3Q7XG4gICAgY29uc3QgY29udHJhY3RQYXJhbWV0ZXIgPSBjb250cmFjdC5wYXJhbWV0ZXI7XG4gICAgY29udHJhY3RQYXJhbWV0ZXIudmFsdWUub3duZXJfYWRkcmVzcyA9IHRoaXMuX293bmVyQWRkcmVzcy50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgIGNvbnRyYWN0UGFyYW1ldGVyLnR5cGVfdXJsID0gJ3R5cGUuZ29vZ2xlYXBpcy5jb20vcHJvdG9jb2wuV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0JztcbiAgICBjb250cmFjdC50eXBlID0gJ1dpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdCc7XG4gICAgY29uc3QgaGV4QnVmZmVyID0gQnVmZmVyLmZyb20ocmF3RGF0YUhleCwgJ2hleCcpO1xuICAgIGNvbnN0IGlkID0gY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKGhleEJ1ZmZlcikuZGlnZXN0KCdoZXgnKTtcbiAgICBjb25zdCB0eFJlY2lwOiBUcmFuc2FjdGlvblJlY2VpcHQgPSB7XG4gICAgICByYXdfZGF0YTogcmF3RGF0YSxcbiAgICAgIHJhd19kYXRhX2hleDogcmF3RGF0YUhleCxcbiAgICAgIHR4SUQ6IGlkLFxuICAgICAgc2lnbmF0dXJlOiB0aGlzLnRyYW5zYWN0aW9uLnNpZ25hdHVyZSxcbiAgICB9O1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZywgdHhSZWNpcCk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBnZXQgdGhlIHdpdGhkcmF3IGV4cGlyZSB1bmZyZWV6ZSB0cmFuc2FjdGlvbiByYXcgZGF0YSBoZXhcbiAgICpcbiAgICogQHJldHVybnMge3N0cmluZ30gdGhlIGZyZWV6ZSBiYWxhbmNlIHRyYW5zYWN0aW9uIHJhdyBkYXRhIGhleFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRXaXRoZHJhd0V4cGlyZVVuZnJlZXplUmF3RGF0YUhleCgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHJhd0NvbnRyYWN0ID0ge1xuICAgICAgb3duZXJBZGRyZXNzOiBnZXRCeXRlQXJyYXlGcm9tSGV4QWRkcmVzcyh0aGlzLl9vd25lckFkZHJlc3MpLFxuICAgIH07XG4gICAgY29uc3Qgd2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0ID0gcHJvdG9jb2wuV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0LmZyb21PYmplY3QocmF3Q29udHJhY3QpO1xuICAgIGNvbnN0IHdpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdEJ5dGVzID1cbiAgICAgIHByb3RvY29sLldpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdC5lbmNvZGUod2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0KS5maW5pc2goKTtcbiAgICBjb25zdCB0eENvbnRyYWN0ID0ge1xuICAgICAgdHlwZTogQ29udHJhY3RUeXBlLldpdGhkcmF3RXhwaXJlVW5mcmVlemVDb250cmFjdCxcbiAgICAgIHBhcmFtZXRlcjoge1xuICAgICAgICB2YWx1ZTogd2l0aGRyYXdFeHBpcmVVbmZyZWV6ZUNvbnRyYWN0Qnl0ZXMsXG4gICAgICAgIHR5cGVfdXJsOiAndHlwZS5nb29nbGVhcGlzLmNvbS9wcm90b2NvbC5XaXRoZHJhd0V4cGlyZVVuZnJlZXplQ29udHJhY3QnLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHJhdyA9IHtcbiAgICAgIHJlZkJsb2NrQnl0ZXM6IEJ1ZmZlci5mcm9tKHRoaXMuX3JlZkJsb2NrQnl0ZXMsICdoZXgnKSxcbiAgICAgIHJlZkJsb2NrSGFzaDogQnVmZmVyLmZyb20odGhpcy5fcmVmQmxvY2tIYXNoLCAnaGV4JyksXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLl9leHBpcmF0aW9uIHx8IERhdGUubm93KCkgKyBUUkFOU0FDVElPTl9ERUZBVUxUX0VYUElSQVRJT04sXG4gICAgICB0aW1lc3RhbXA6IHRoaXMuX3RpbWVzdGFtcCB8fCBEYXRlLm5vdygpLFxuICAgICAgY29udHJhY3Q6IFt0eENvbnRyYWN0XSxcbiAgICB9O1xuICAgIGNvbnN0IHJhd1R4ID0gcHJvdG9jb2wuVHJhbnNhY3Rpb24ucmF3LmNyZWF0ZShyYXcpO1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShwcm90b2NvbC5UcmFuc2FjdGlvbi5yYXcuZW5jb2RlKHJhd1R4KS5maW5pc2goKSkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIGlmICh0aGlzLl9zaWduaW5nS2V5cy5zb21lKChzaWduaW5nS2V5KSA9PiBzaWduaW5nS2V5LmtleSA9PT0ga2V5LmtleSkpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0R1cGxpY2F0ZWQga2V5Jyk7XG4gICAgfVxuICAgIHRoaXMuX3NpZ25pbmdLZXlzLnB1c2goa2V5KTtcblxuICAgIC8vIFdlIGtlZXAgdGhpcyByZXR1cm4gZm9yIGNvbXBhdGliaWxpdHkgYnV0IGlzIG5vdCBtZWFudCB0byBiZSB1c2VcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTaWduYXR1cmVzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbi5pbnB1dHMpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ1RyYW5zYWN0aW9uIGhhcyBubyBpbnB1dHMnKTtcbiAgICB9XG5cbiAgICB0aGlzLl9zaWduaW5nS2V5cy5mb3JFYWNoKChrZXkpID0+IHRoaXMuYXBwbHlTaWduYXR1cmUoa2V5KSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0cmFuc2FjdGlvbiAtIFRoZSB0cmFuc2FjdGlvbiB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIHtCdWlsZFRyYW5zYWN0aW9uRXJyb3J9IHdoZW4gdGhlIHRyYW5zYWN0aW9uIGlzIGludmFsaWRcbiAgICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy52YWxpZGF0ZVdpdGhkcmF3RXhwaXJlVW5mcmVlemVUcmFuc2FjdGlvbkZpZWxkcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgYSB2YWxpZCB3aXRoZHJhdyBleHBpcmUgdW5mcmVlemUgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvblJlY2VpcHR9IHRyYW5zYWN0aW9uIC0gVGhlIHRyYW5zYWN0aW9uIHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3Mge0J1aWxkVHJhbnNhY3Rpb25FcnJvcn0gd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgaW52YWxpZFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVdpdGhkcmF3RXhwaXJlVW5mcmVlemVUcmFuc2FjdGlvbkZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX293bmVyQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBwYXJhbWV0ZXI6IHNvdXJjZScpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fcmVmQmxvY2tCeXRlcyB8fCAhdGhpcy5fcmVmQmxvY2tIYXNoKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIGJsb2NrIHJlZmVyZW5jZSBpbmZvcm1hdGlvbicpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
import BigNumber from 'bignumber.js';
|
|
2
|
-
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
-
import { BaseKey, BaseTransaction } from '@bitgo-beta/sdk-core';
|
|
4
|
-
import { Transaction } from './transaction';
|
|
5
|
-
import { Address } from './address';
|
|
6
|
-
import { TransactionBuilder } from './transactionBuilder';
|
|
7
|
-
import { ContractCallBuilder } from './contractCallBuilder';
|
|
8
|
-
import { TransactionReceipt } from './iface';
|
|
9
|
-
import { TokenTransferBuilder } from './tokenTransferBuilder';
|
|
10
|
-
import { FreezeBalanceTxBuilder } from './freezeBalanceTxBuilder';
|
|
11
|
-
import { VoteWitnessTxBuilder } from './voteWitnessTxBuilder';
|
|
12
|
-
import { UnfreezeBalanceTxBuilder } from './unfreezeBalanceTxBuilder';
|
|
13
|
-
import { WithdrawExpireUnfreezeTxBuilder } from './withdrawExpireUnfreezeTxBuilder';
|
|
14
|
-
import { WithdrawBalanceTxBuilder } from './withdrawBuilder';
|
|
15
|
-
import { DelegateResourceTxBuilder } from './delegateResourceTxBuilder';
|
|
16
|
-
import { UndelegateResourceTxBuilder } from './undelegateResourceTxBuilder';
|
|
17
|
-
/**
|
|
18
|
-
* Wrapped Builder class
|
|
19
|
-
* This builder is created to maintain compatibility with the current uses of account-lib
|
|
20
|
-
* It has an instance of Transaction Builder or Contract Call Builder as required.
|
|
21
|
-
*/
|
|
22
|
-
export declare class WrappedBuilder extends TransactionBuilder {
|
|
23
|
-
private _builder;
|
|
24
|
-
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
25
|
-
/**
|
|
26
|
-
* Returns a specific builder to create a contract call transaction
|
|
27
|
-
*
|
|
28
|
-
* @param {Transaction} [tx] The transaction to initialize builder
|
|
29
|
-
* @returns {ContractCallBuilder} The specific contract call builder
|
|
30
|
-
*/
|
|
31
|
-
getContractCallBuilder(tx?: TransactionReceipt | string): ContractCallBuilder;
|
|
32
|
-
getTransactionBuilder(tx?: TransactionReceipt | string): TransactionBuilder;
|
|
33
|
-
getTokenTransferBuilder(tx?: TransactionReceipt | string): TokenTransferBuilder;
|
|
34
|
-
/**
|
|
35
|
-
* Returns a specific builder to create a freeze balance transaction
|
|
36
|
-
*
|
|
37
|
-
* @param {TransactionReceipt} transaction - The transaction to initialize builder
|
|
38
|
-
* @returns {FreezeBalanceTxBuilder} The specific freeze balance builder
|
|
39
|
-
*/
|
|
40
|
-
getFreezeBalanceV2TxBuilder(tx?: TransactionReceipt | string): FreezeBalanceTxBuilder;
|
|
41
|
-
/**
|
|
42
|
-
* Returns a specific builder to create a vote witness transaction
|
|
43
|
-
*
|
|
44
|
-
* @param {TransactionReceipt} transaction - The transaction to initialize builder
|
|
45
|
-
* @returns {VoteWitnessTxBuilder} The specific vote witness builder
|
|
46
|
-
*/
|
|
47
|
-
getVoteWitnessTxBuilder(tx?: TransactionReceipt | string): VoteWitnessTxBuilder;
|
|
48
|
-
/**
|
|
49
|
-
* Returns a specific builder to create an unfreeze balance transaction
|
|
50
|
-
*
|
|
51
|
-
* @param {Transaction} [tx] The transaction to initialize builder
|
|
52
|
-
* @returns {UnfreezeBalanceTxBuilder} The specific unfreeze builder
|
|
53
|
-
*/
|
|
54
|
-
getUnfreezeBalanceV2TxBuilder(tx?: TransactionReceipt | string): UnfreezeBalanceTxBuilder;
|
|
55
|
-
/**
|
|
56
|
-
* Returns a specific builder to create a withdraw expire unfreeze transaction
|
|
57
|
-
*
|
|
58
|
-
* @param {Transaction} [tx] The transaction to initialize builder
|
|
59
|
-
* @returns {WithdrawExpireUnfreezeTxBuilder} The specific withdraw builder
|
|
60
|
-
*/
|
|
61
|
-
getWithdrawExpireUnfreezeTxBuilder(tx?: TransactionReceipt | string): WithdrawExpireUnfreezeTxBuilder;
|
|
62
|
-
/**
|
|
63
|
-
* Returns a specific builder to create a withdraw balance transaction
|
|
64
|
-
*
|
|
65
|
-
* @param {Transaction} [tx] The transaction to initialize builder
|
|
66
|
-
* @returns {WithdrawBalanceTxBuilder} The specific withdraw balance builder
|
|
67
|
-
*/
|
|
68
|
-
getWithdrawBalanceTxBuilder(tx?: TransactionReceipt | string): WithdrawBalanceTxBuilder;
|
|
69
|
-
/**
|
|
70
|
-
* Returns a specific builder to create a delegate resource transaction
|
|
71
|
-
*
|
|
72
|
-
* @param {TransactionReceipt | string} [tx] The transaction to initialize builder
|
|
73
|
-
* @returns {DelegateResourceTxBuilder} The specific delegate resource builder
|
|
74
|
-
*/
|
|
75
|
-
getDelegateResourceTxBuilder(tx?: TransactionReceipt | string): DelegateResourceTxBuilder;
|
|
76
|
-
/**
|
|
77
|
-
* Returns a specific builder to create a undelegate resource transaction
|
|
78
|
-
*
|
|
79
|
-
* @param {TransactionReceipt | string} [tx] The transaction to initialize builder
|
|
80
|
-
* @returns {UndelegateResourceTxBuilder} The specific delegate resource builder
|
|
81
|
-
*/
|
|
82
|
-
getUnDelegateResourceTxBuilder(tx?: TransactionReceipt | string): UndelegateResourceTxBuilder;
|
|
83
|
-
private initializeBuilder;
|
|
84
|
-
/** @inheritdoc */
|
|
85
|
-
extendValidTo(extensionMs: number): void;
|
|
86
|
-
/** @inheritdoc */
|
|
87
|
-
sign(key: BaseKey): void;
|
|
88
|
-
/** @inheritdoc */
|
|
89
|
-
build(): Promise<BaseTransaction>;
|
|
90
|
-
/** @inheritdoc */
|
|
91
|
-
from(raw: any): TransactionBuilder;
|
|
92
|
-
/**
|
|
93
|
-
* Get the raw data hex from a raw transaction
|
|
94
|
-
*
|
|
95
|
-
* @param {string | { [key: string]: any }} raw the raw transaction as a string or as an object
|
|
96
|
-
* @returns {string} the raw data hex
|
|
97
|
-
*/
|
|
98
|
-
private getTxReceipt;
|
|
99
|
-
/** @inheritdoc */
|
|
100
|
-
validateAddress(address: Address): void;
|
|
101
|
-
/** @inheritdoc */
|
|
102
|
-
validateKey(key: BaseKey): void;
|
|
103
|
-
/** @inheritdoc */
|
|
104
|
-
validateRawTransaction(rawTransaction: any): void;
|
|
105
|
-
/** @inheritdoc */
|
|
106
|
-
validateTransaction(transaction: Transaction): void;
|
|
107
|
-
/** @inheritdoc */
|
|
108
|
-
validateValue(value: BigNumber): void;
|
|
109
|
-
}
|
|
110
|
-
//# sourceMappingURL=wrappedBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wrappedBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/wrappedBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WrappedBuilder = void 0;
|
|
4
|
-
const sdk_core_1 = require("@bitgo-beta/sdk-core");
|
|
5
|
-
const transactionBuilder_1 = require("./transactionBuilder");
|
|
6
|
-
const keyPair_1 = require("./keyPair");
|
|
7
|
-
const utils_1 = require("./utils");
|
|
8
|
-
const enum_1 = require("./enum");
|
|
9
|
-
const contractCallBuilder_1 = require("./contractCallBuilder");
|
|
10
|
-
const tokenTransferBuilder_1 = require("./tokenTransferBuilder");
|
|
11
|
-
const freezeBalanceTxBuilder_1 = require("./freezeBalanceTxBuilder");
|
|
12
|
-
const voteWitnessTxBuilder_1 = require("./voteWitnessTxBuilder");
|
|
13
|
-
const unfreezeBalanceTxBuilder_1 = require("./unfreezeBalanceTxBuilder");
|
|
14
|
-
const withdrawExpireUnfreezeTxBuilder_1 = require("./withdrawExpireUnfreezeTxBuilder");
|
|
15
|
-
const withdrawBuilder_1 = require("./withdrawBuilder");
|
|
16
|
-
const delegateResourceTxBuilder_1 = require("./delegateResourceTxBuilder");
|
|
17
|
-
const undelegateResourceTxBuilder_1 = require("./undelegateResourceTxBuilder");
|
|
18
|
-
/**
|
|
19
|
-
* Wrapped Builder class
|
|
20
|
-
* This builder is created to maintain compatibility with the current uses of account-lib
|
|
21
|
-
* It has an instance of Transaction Builder or Contract Call Builder as required.
|
|
22
|
-
*/
|
|
23
|
-
class WrappedBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
24
|
-
constructor(_coinConfig) {
|
|
25
|
-
super(_coinConfig);
|
|
26
|
-
// defaults to old builder
|
|
27
|
-
this._builder = new transactionBuilder_1.TransactionBuilder(_coinConfig);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Returns a specific builder to create a contract call transaction
|
|
31
|
-
*
|
|
32
|
-
* @param {Transaction} [tx] The transaction to initialize builder
|
|
33
|
-
* @returns {ContractCallBuilder} The specific contract call builder
|
|
34
|
-
*/
|
|
35
|
-
getContractCallBuilder(tx) {
|
|
36
|
-
return this.initializeBuilder(tx, new contractCallBuilder_1.ContractCallBuilder(this._coinConfig));
|
|
37
|
-
}
|
|
38
|
-
getTransactionBuilder(tx) {
|
|
39
|
-
return this.initializeBuilder(tx, new transactionBuilder_1.TransactionBuilder(this._coinConfig));
|
|
40
|
-
}
|
|
41
|
-
getTokenTransferBuilder(tx) {
|
|
42
|
-
return this.initializeBuilder(tx, new tokenTransferBuilder_1.TokenTransferBuilder(this._coinConfig));
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Returns a specific builder to create a freeze balance transaction
|
|
46
|
-
*
|
|
47
|
-
* @param {TransactionReceipt} transaction - The transaction to initialize builder
|
|
48
|
-
* @returns {FreezeBalanceTxBuilder} The specific freeze balance builder
|
|
49
|
-
*/
|
|
50
|
-
getFreezeBalanceV2TxBuilder(tx) {
|
|
51
|
-
return this.initializeBuilder(tx, new freezeBalanceTxBuilder_1.FreezeBalanceTxBuilder(this._coinConfig));
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Returns a specific builder to create a vote witness transaction
|
|
55
|
-
*
|
|
56
|
-
* @param {TransactionReceipt} transaction - The transaction to initialize builder
|
|
57
|
-
* @returns {VoteWitnessTxBuilder} The specific vote witness builder
|
|
58
|
-
*/
|
|
59
|
-
getVoteWitnessTxBuilder(tx) {
|
|
60
|
-
return this.initializeBuilder(tx, new voteWitnessTxBuilder_1.VoteWitnessTxBuilder(this._coinConfig));
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Returns a specific builder to create an unfreeze balance transaction
|
|
64
|
-
*
|
|
65
|
-
* @param {Transaction} [tx] The transaction to initialize builder
|
|
66
|
-
* @returns {UnfreezeBalanceTxBuilder} The specific unfreeze builder
|
|
67
|
-
*/
|
|
68
|
-
getUnfreezeBalanceV2TxBuilder(tx) {
|
|
69
|
-
return this.initializeBuilder(tx, new unfreezeBalanceTxBuilder_1.UnfreezeBalanceTxBuilder(this._coinConfig));
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Returns a specific builder to create a withdraw expire unfreeze transaction
|
|
73
|
-
*
|
|
74
|
-
* @param {Transaction} [tx] The transaction to initialize builder
|
|
75
|
-
* @returns {WithdrawExpireUnfreezeTxBuilder} The specific withdraw builder
|
|
76
|
-
*/
|
|
77
|
-
getWithdrawExpireUnfreezeTxBuilder(tx) {
|
|
78
|
-
return this.initializeBuilder(tx, new withdrawExpireUnfreezeTxBuilder_1.WithdrawExpireUnfreezeTxBuilder(this._coinConfig));
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Returns a specific builder to create a withdraw balance transaction
|
|
82
|
-
*
|
|
83
|
-
* @param {Transaction} [tx] The transaction to initialize builder
|
|
84
|
-
* @returns {WithdrawBalanceTxBuilder} The specific withdraw balance builder
|
|
85
|
-
*/
|
|
86
|
-
getWithdrawBalanceTxBuilder(tx) {
|
|
87
|
-
return this.initializeBuilder(tx, new withdrawBuilder_1.WithdrawBalanceTxBuilder(this._coinConfig));
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* Returns a specific builder to create a delegate resource transaction
|
|
91
|
-
*
|
|
92
|
-
* @param {TransactionReceipt | string} [tx] The transaction to initialize builder
|
|
93
|
-
* @returns {DelegateResourceTxBuilder} The specific delegate resource builder
|
|
94
|
-
*/
|
|
95
|
-
getDelegateResourceTxBuilder(tx) {
|
|
96
|
-
return this.initializeBuilder(tx, new delegateResourceTxBuilder_1.DelegateResourceTxBuilder(this._coinConfig));
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Returns a specific builder to create a undelegate resource transaction
|
|
100
|
-
*
|
|
101
|
-
* @param {TransactionReceipt | string} [tx] The transaction to initialize builder
|
|
102
|
-
* @returns {UndelegateResourceTxBuilder} The specific delegate resource builder
|
|
103
|
-
*/
|
|
104
|
-
getUnDelegateResourceTxBuilder(tx) {
|
|
105
|
-
return this.initializeBuilder(tx, new undelegateResourceTxBuilder_1.UndelegateResourceTxBuilder(this._coinConfig));
|
|
106
|
-
}
|
|
107
|
-
initializeBuilder(tx, builder) {
|
|
108
|
-
if (tx) {
|
|
109
|
-
builder.initBuilder(tx);
|
|
110
|
-
}
|
|
111
|
-
return builder;
|
|
112
|
-
}
|
|
113
|
-
/** @inheritdoc */
|
|
114
|
-
extendValidTo(extensionMs) {
|
|
115
|
-
this._builder.extendValidTo(extensionMs);
|
|
116
|
-
}
|
|
117
|
-
/** @inheritdoc */
|
|
118
|
-
sign(key) {
|
|
119
|
-
this._builder.sign(key);
|
|
120
|
-
}
|
|
121
|
-
/** @inheritdoc */
|
|
122
|
-
async build() {
|
|
123
|
-
return this._builder.build();
|
|
124
|
-
}
|
|
125
|
-
/** @inheritdoc */
|
|
126
|
-
from(raw) {
|
|
127
|
-
this.validateRawTransaction(raw);
|
|
128
|
-
const rawDataHex = this.getTxReceipt(raw);
|
|
129
|
-
const decodedTx = (0, utils_1.decodeTransaction)(rawDataHex);
|
|
130
|
-
const contractType = decodedTx.contractType;
|
|
131
|
-
switch (contractType) {
|
|
132
|
-
case enum_1.ContractType.Transfer:
|
|
133
|
-
case enum_1.ContractType.AccountPermissionUpdate:
|
|
134
|
-
this._builder = this.getTransactionBuilder(raw);
|
|
135
|
-
return this._builder;
|
|
136
|
-
case enum_1.ContractType.TriggerSmartContract:
|
|
137
|
-
return this.getContractCallBuilder(raw);
|
|
138
|
-
case enum_1.ContractType.FreezeBalanceV2:
|
|
139
|
-
return this.getFreezeBalanceV2TxBuilder(raw);
|
|
140
|
-
case enum_1.ContractType.VoteWitness:
|
|
141
|
-
return this.getVoteWitnessTxBuilder(raw);
|
|
142
|
-
case enum_1.ContractType.UnfreezeBalanceV2:
|
|
143
|
-
return this.getUnfreezeBalanceV2TxBuilder(raw);
|
|
144
|
-
case enum_1.ContractType.WithdrawExpireUnfreeze:
|
|
145
|
-
return this.getWithdrawExpireUnfreezeTxBuilder(raw);
|
|
146
|
-
case enum_1.ContractType.WithdrawBalance:
|
|
147
|
-
return this.getWithdrawBalanceTxBuilder(raw);
|
|
148
|
-
case enum_1.ContractType.DelegateResourceContract:
|
|
149
|
-
return this.getDelegateResourceTxBuilder(raw);
|
|
150
|
-
case enum_1.ContractType.UnDelegateResourceContract:
|
|
151
|
-
return this.getUnDelegateResourceTxBuilder(raw);
|
|
152
|
-
default:
|
|
153
|
-
throw new sdk_core_1.InvalidTransactionError('Invalid transaction type: ' + contractType);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
* Get the raw data hex from a raw transaction
|
|
158
|
-
*
|
|
159
|
-
* @param {string | { [key: string]: any }} raw the raw transaction as a string or as an object
|
|
160
|
-
* @returns {string} the raw data hex
|
|
161
|
-
*/
|
|
162
|
-
getTxReceipt(raw) {
|
|
163
|
-
return raw['raw_data_hex'] || this.getTxReceipt(JSON.parse(raw));
|
|
164
|
-
}
|
|
165
|
-
/** @inheritdoc */
|
|
166
|
-
validateAddress(address) {
|
|
167
|
-
this._builder.validateAddress(address);
|
|
168
|
-
}
|
|
169
|
-
/** @inheritdoc */
|
|
170
|
-
validateKey(key) {
|
|
171
|
-
try {
|
|
172
|
-
new keyPair_1.KeyPair({ prv: key.key });
|
|
173
|
-
}
|
|
174
|
-
catch (err) {
|
|
175
|
-
throw new Error('The provided key is not valid');
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
/** @inheritdoc */
|
|
179
|
-
validateRawTransaction(rawTransaction) {
|
|
180
|
-
this._builder.validateRawTransaction(rawTransaction);
|
|
181
|
-
}
|
|
182
|
-
/** @inheritdoc */
|
|
183
|
-
validateTransaction(transaction) {
|
|
184
|
-
this._builder.validateTransaction(transaction);
|
|
185
|
-
}
|
|
186
|
-
/** @inheritdoc */
|
|
187
|
-
validateValue(value) {
|
|
188
|
-
this._builder.validateValue(value);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
exports.WrappedBuilder = WrappedBuilder;
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JhcHBlZEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3dyYXBwZWRCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLG1EQUF5RjtBQUd6Riw2REFBMEQ7QUFDMUQsdUNBQW9DO0FBQ3BDLG1DQUE0QztBQUM1QyxpQ0FBc0M7QUFDdEMsK0RBQTREO0FBRTVELGlFQUE4RDtBQUM5RCxxRUFBa0U7QUFDbEUsaUVBQThEO0FBQzlELHlFQUFzRTtBQUN0RSx1RkFBb0Y7QUFDcEYsdURBQTZEO0FBQzdELDJFQUF3RTtBQUN4RSwrRUFBNEU7QUFFNUU7Ozs7R0FJRztBQUNILE1BQWEsY0FBZSxTQUFRLHVDQUFrQjtJQUdwRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQiwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHVDQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQixDQUFDLEVBQWdDO1FBQ3JELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsRUFBRSxJQUFJLHlDQUFtQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxFQUFnQztRQUNwRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLEVBQUUsSUFBSSx1Q0FBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsdUJBQXVCLENBQUMsRUFBZ0M7UUFDdEQsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksMkNBQW9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsMkJBQTJCLENBQUMs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QztJQUVELGtCQUFrQjtJQUNsQixXQUFXLENBQUMsR0FBWTtRQUN0QixJQUFJLENBQUM7WUFDSCxJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQztRQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFDRCxrQkFBa0I7SUFDbEIsc0JBQXNCLENBQUMsY0FBbUI7UUFDeEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLG1CQUFtQixDQUFDLFdBQXdCO1FBQzFDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixhQUFhLENBQUMsS0FBZ0I7UUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztDQUNGO0FBNUxELHdDQTRMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJhc2VLZXksIEJhc2VUcmFuc2FjdGlvbiwgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4vYWRkcmVzcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBLZXlQYWlyIH0gZnJvbSAnLi9rZXlQYWlyJztcbmltcG9ydCB7IGRlY29kZVRyYW5zYWN0aW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBDb250cmFjdFR5cGUgfSBmcm9tICcuL2VudW0nO1xuaW1wb3J0IHsgQ29udHJhY3RDYWxsQnVpbGRlciB9IGZyb20gJy4vY29udHJhY3RDYWxsQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblJlY2VpcHQgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFRva2VuVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90b2tlblRyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBGcmVlemVCYWxhbmNlVHhCdWlsZGVyIH0gZnJvbSAnLi9mcmVlemVCYWxhbmNlVHhCdWlsZGVyJztcbmltcG9ydCB7IFZvdGVXaXRuZXNzVHhCdWlsZGVyIH0gZnJvbSAnLi92b3RlV2l0bmVzc1R4QnVpbGRlcic7XG5pbXBvcnQgeyBVbmZyZWV6ZUJhbGFuY2VUeEJ1aWxkZXIgfSBmcm9tICcuL3VuZnJlZXplQmFsYW5jZVR4QnVpbGRlcic7XG5pbXBvcnQgeyBXaXRoZHJhd0V4cGlyZVVuZnJlZXplVHhCdWlsZGVyIH0gZnJvbSAnLi93aXRoZHJhd0V4cGlyZVVuZnJlZXplVHhCdWlsZGVyJztcbmltcG9ydCB7IFdpdGhkcmF3QmFsYW5jZVR4QnVpbGRlciB9IGZyb20gJy4vd2l0aGRyYXdCdWlsZGVyJztcbmltcG9ydCB7IERlbGVnYXRlUmVzb3VyY2VUeEJ1aWxkZXIgfSBmcm9tICcuL2RlbGVnYXRlUmVzb3VyY2VUeEJ1aWxkZXInO1xuaW1wb3J0IHsgVW5kZWxlZ2F0ZVJlc291cmNlVHhCdWlsZGVyIH0gZnJvbSAnLi91bmRlbGVnYXRlUmVzb3VyY2VUeEJ1aWxkZXInO1xuXG4vKipcbiAqIFdyYXBwZWQgQnVpbGRlciBjbGFzc1xuICogVGhpcyBidWlsZGVyIGlzIGNyZWF0ZWQgdG8gbWFpbnRhaW4gY29tcGF0aWJpbGl0eSB3aXRoIHRoZSBjdXJyZW50IHVzZXMgb2YgYWNjb3VudC1saWJcbiAqIEl0IGhhcyBhbiBpbnN0YW5jZSBvZiBUcmFuc2FjdGlvbiBCdWlsZGVyIG9yIENvbnRyYWN0IENhbGwgQnVpbGRlciBhcyByZXF1aXJlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFdyYXBwZWRCdWlsZGVyIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBfYnVpbGRlcjogVHJhbnNhY3Rpb25CdWlsZGVyO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICAvLyBkZWZhdWx0cyB0byBvbGQgYnVpbGRlclxuICAgIHRoaXMuX2J1aWxkZXIgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyKF9jb2luQ29uZmlnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3BlY2lmaWMgYnVpbGRlciB0byBjcmVhdGUgYSBjb250cmFjdCBjYWxsIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IFt0eF0gVGhlIHRyYW5zYWN0aW9uIHRvIGluaXRpYWxpemUgYnVpbGRlclxuICAgKiBAcmV0dXJucyB7Q29udHJhY3RDYWxsQnVpbGRlcn0gVGhlIHNwZWNpZmljIGNvbnRyYWN0IGNhbGwgYnVpbGRlclxuICAgKi9cbiAgZ2V0Q29udHJhY3RDYWxsQnVpbGRlcih0eD86IFRyYW5zYWN0aW9uUmVjZWlwdCB8IHN0cmluZyk6IENvbnRyYWN0Q2FsbEJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgQ29udHJhY3RDYWxsQnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICBnZXRUcmFuc2FjdGlvbkJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvblJlY2VpcHQgfCBzdHJpbmcpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIGdldFRva2VuVHJhbnNmZXJCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb25SZWNlaXB0IHwgc3RyaW5nKTogVG9rZW5UcmFuc2ZlckJ1aWxkZXIge1xuICAgIHJldHVybiB0aGlzLmluaXRpYWxpemVCdWlsZGVyKHR4LCBuZXcgVG9rZW5UcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzcGVjaWZpYyBidWlsZGVyIHRvIGNyZWF0ZSBhIGZyZWV6ZSBiYWxhbmNlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25SZWNlaXB0fSB0cmFuc2FjdGlvbiAtIFRoZSB0cmFuc2FjdGlvbiB0byBpbml0aWFsaXplIGJ1aWxkZXJcbiAgICogQHJldHVybnMge0ZyZWV6ZUJhbGFuY2VUeEJ1aWxkZXJ9IFRoZSBzcGVjaWZpYyBmcmVlemUgYmFsYW5jZSBidWlsZGVyXG4gICAqL1xuICBnZXRGcmVlemVCYWxhbmNlVjJUeEJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvblJlY2VpcHQgfCBzdHJpbmcpOiBGcmVlemVCYWxhbmNlVHhCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IEZyZWV6ZUJhbGFuY2VUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzcGVjaWZpYyBidWlsZGVyIHRvIGNyZWF0ZSBhIHZvdGUgd2l0bmVzcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uUmVjZWlwdH0gdHJhbnNhY3Rpb24gLSBUaGUgdHJhbnNhY3Rpb24gdG8gaW5pdGlhbGl6ZSBidWlsZGVyXG4gICAqIEByZXR1cm5zIHtWb3RlV2l0bmVzc1R4QnVpbGRlcn0gVGhlIHNwZWNpZmljIHZvdGUgd2l0bmVzcyBidWlsZGVyXG4gICAqL1xuICBnZXRWb3RlV2l0bmVzc1R4QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uUmVjZWlwdCB8IHN0cmluZyk6IFZvdGVXaXRuZXNzVHhCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFZvdGVXaXRuZXNzVHhCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3BlY2lmaWMgYnVpbGRlciB0byBjcmVhdGUgYW4gdW5mcmVlemUgYmFsYW5jZSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSBbdHhdIFRoZSB0cmFuc2FjdGlvbiB0byBpbml0aWFsaXplIGJ1aWxkZXJcbiAgICogQHJldHVybnMge1VuZnJlZXplQmFsYW5jZVR4QnVpbGRlcn0gVGhlIHNwZWNpZmljIHVuZnJlZXplIGJ1aWxkZXJcbiAgICovXG4gIGdldFVuZnJlZXplQmFsYW5jZVYyVHhCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb25SZWNlaXB0IHwgc3RyaW5nKTogVW5mcmVlemVCYWxhbmNlVHhCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFVuZnJlZXplQmFsYW5jZVR4QnVpbGRlcih0aGlzLl9jb2luQ29uZmlnKSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHNwZWNpZmljIGJ1aWxkZXIgdG8gY3JlYXRlIGEgd2l0aGRyYXcgZXhwaXJlIHVuZnJlZXplIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb259IFt0eF0gVGhlIHRyYW5zYWN0aW9uIHRvIGluaXRpYWxpemUgYnVpbGRlclxuICAgKiBAcmV0dXJucyB7V2l0aGRyYXdFeHBpcmVVbmZyZWV6ZVR4QnVpbGRlcn0gVGhlIHNwZWNpZmljIHdpdGhkcmF3IGJ1aWxkZXJcbiAgICovXG4gIGdldFdpdGhkcmF3RXhwaXJlVW5mcmVlemVUeEJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvblJlY2VpcHQgfCBzdHJpbmcpOiBXaXRoZHJhd0V4cGlyZVVuZnJlZXplVHhCdWlsZGVyIHtcbiAgICByZXR1cm4gdGhpcy5pbml0aWFsaXplQnVpbGRlcih0eCwgbmV3IFdpdGhkcmF3RXhwaXJlVW5mcmVlemVUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzcGVjaWZpYyBidWlsZGVyIHRvIGNyZWF0ZSBhIHdpdGhkcmF3IGJhbGFuY2UgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gW3R4XSBUaGUgdHJhbnNhY3Rpb24gdG8gaW5pdGlhbGl6ZSBidWlsZGVyXG4gICAqIEByZXR1cm5zIHtXaXRoZHJhd0JhbGFuY2VUeEJ1aWxkZXJ9IFRoZSBzcGVjaWZpYyB3aXRoZHJhdyBiYWxhbmNlIGJ1aWxkZXJcbiAgICovXG4gIGdldFdpdGhkcmF3QmFsYW5jZVR4QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uUmVjZWlwdCB8IHN0cmluZyk6IFdpdGhkcmF3QmFsYW5jZVR4QnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBXaXRoZHJhd0JhbGFuY2VUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzcGVjaWZpYyBidWlsZGVyIHRvIGNyZWF0ZSBhIGRlbGVnYXRlIHJlc291cmNlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25SZWNlaXB0IHwgc3RyaW5nfSBbdHhdIFRoZSB0cmFuc2FjdGlvbiB0byBpbml0aWFsaXplIGJ1aWxkZXJcbiAgICogQHJldHVybnMge0RlbGVnYXRlUmVzb3VyY2VUeEJ1aWxkZXJ9IFRoZSBzcGVjaWZpYyBkZWxlZ2F0ZSByZXNvdXJjZSBidWlsZGVyXG4gICAqL1xuICBnZXREZWxlZ2F0ZVJlc291cmNlVHhCdWlsZGVyKHR4PzogVHJhbnNhY3Rpb25SZWNlaXB0IHwgc3RyaW5nKTogRGVsZWdhdGVSZXNvdXJjZVR4QnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBEZWxlZ2F0ZVJlc291cmNlVHhCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3BlY2lmaWMgYnVpbGRlciB0byBjcmVhdGUgYSB1bmRlbGVnYXRlIHJlc291cmNlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25SZWNlaXB0IHwgc3RyaW5nfSBbdHhdIFRoZSB0cmFuc2FjdGlvbiB0byBpbml0aWFsaXplIGJ1aWxkZXJcbiAgICogQHJldHVybnMge1VuZGVsZWdhdGVSZXNvdXJjZVR4QnVpbGRlcn0gVGhlIHNwZWNpZmljIGRlbGVnYXRlIHJlc291cmNlIGJ1aWxkZXJcbiAgICovXG4gIGdldFVuRGVsZWdhdGVSZXNvdXJjZVR4QnVpbGRlcih0eD86IFRyYW5zYWN0aW9uUmVjZWlwdCB8IHN0cmluZyk6IFVuZGVsZWdhdGVSZXNvdXJjZVR4QnVpbGRlciB7XG4gICAgcmV0dXJuIHRoaXMuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBVbmRlbGVnYXRlUmVzb3VyY2VUeEJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZykpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0aWFsaXplQnVpbGRlcjxUIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPih0eDogVHJhbnNhY3Rpb25SZWNlaXB0IHwgc3RyaW5nIHwgdW5kZWZpbmVkLCBidWlsZGVyOiBUKTogVCB7XG4gICAgaWYgKHR4KSB7XG4gICAgICBidWlsZGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICB9XG4gICAgcmV0dXJuIGJ1aWxkZXI7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgZXh0ZW5kVmFsaWRUbyhleHRlbnNpb25NczogbnVtYmVyKSB7XG4gICAgdGhpcy5fYnVpbGRlci5leHRlbmRWYWxpZFRvKGV4dGVuc2lvbk1zKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBzaWduKGtleTogQmFzZUtleSkge1xuICAgIHRoaXMuX2J1aWxkZXIuc2lnbihrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFzeW5jIGJ1aWxkKCk6IFByb21pc2U8QmFzZVRyYW5zYWN0aW9uPiB7XG4gICAgcmV0dXJuIHRoaXMuX2J1aWxkZXIuYnVpbGQoKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tKHJhdzogYW55KSB7XG4gICAgdGhpcy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhdyk7XG4gICAgY29uc3QgcmF3RGF0YUhleCA9IHRoaXMuZ2V0VHhSZWNlaXB0KHJhdyk7XG4gICAgY29uc3QgZGVjb2RlZFR4ID0gZGVjb2RlVHJhbnNhY3Rpb24ocmF3RGF0YUhleCk7XG4gICAgY29uc3QgY29udHJhY3RUeXBlID0gZGVjb2RlZFR4LmNvbnRyYWN0VHlwZTtcbiAgICBzd2l0Y2ggKGNvbnRyYWN0VHlwZSkge1xuICAgICAgY2FzZSBDb250cmFjdFR5cGUuVHJhbnNmZXI6XG4gICAgICBjYXNlIENvbnRyYWN0VHlwZS5BY2NvdW50UGVybWlzc2lvblVwZGF0ZTpcbiAgICAgICAgdGhpcy5fYnVpbGRlciA9IHRoaXMuZ2V0VHJhbnNhY3Rpb25CdWlsZGVyKHJhdyk7XG4gICAgICAgIHJldHVybiB0aGlzLl9idWlsZGVyO1xuICAgICAgY2FzZSBDb250cmFjdFR5cGUuVHJpZ2dlclNtYXJ0Q29udHJhY3Q6XG4gICAgICAgIHJldHVybiB0aGlzLmdldENvbnRyYWN0Q2FsbEJ1aWxkZXIocmF3KTtcbiAgICAgIGNhc2UgQ29udHJhY3RUeXBlLkZyZWV6ZUJhbGFuY2VWMjpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RnJlZXplQmFsYW5jZVYyVHhCdWlsZGVyKHJhdyk7XG4gICAgICBjYXNlIENvbnRyYWN0VHlwZS5Wb3RlV2l0bmVzczpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Vm90ZVdpdG5lc3NUeEJ1aWxkZXIocmF3KTtcbiAgICAgIGNhc2UgQ29udHJhY3RUeXBlLlVuZnJlZXplQmFsYW5jZVYyOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRVbmZyZWV6ZUJhbGFuY2VWMlR4QnVpbGRlcihyYXcpO1xuICAgICAgY2FzZSBDb250cmFjdFR5cGUuV2l0aGRyYXdFeHBpcmVVbmZyZWV6ZTpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0V2l0aGRyYXdFeHBpcmVVbmZyZWV6ZVR4QnVpbGRlcihyYXcpO1xuICAgICAgY2FzZSBDb250cmFjdFR5cGUuV2l0aGRyYXdCYWxhbmNlOlxuICAgICAgICByZXR1cm4gdGhpcy5nZXRXaXRoZHJhd0JhbGFuY2VUeEJ1aWxkZXIocmF3KTtcbiAgICAgIGNhc2UgQ29udHJhY3RUeXBlLkRlbGVnYXRlUmVzb3VyY2VDb250cmFjdDpcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVsZWdhdGVSZXNvdXJjZVR4QnVpbGRlcihyYXcpO1xuICAgICAgY2FzZSBDb250cmFjdFR5cGUuVW5EZWxlZ2F0ZVJlc291cmNlQ29udHJhY3Q6XG4gICAgICAgIHJldHVybiB0aGlzLmdldFVuRGVsZWdhdGVSZXNvdXJjZVR4QnVpbGRlcihyYXcpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uIHR5cGU6ICcgKyBjb250cmFjdFR5cGUpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHJhdyBkYXRhIGhleCBmcm9tIGEgcmF3IHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfX0gcmF3IHRoZSByYXcgdHJhbnNhY3Rpb24gYXMgYSBzdHJpbmcgb3IgYXMgYW4gb2JqZWN0XG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IHRoZSByYXcgZGF0YSBoZXhcbiAgICovXG4gIHByaXZhdGUgZ2V0VHhSZWNlaXB0KHJhdzogc3RyaW5nIHwgeyBba2V5OiBzdHJpbmddOiBhbnkgfSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHJhd1sncmF3X2RhdGFfaGV4J10gfHwgdGhpcy5nZXRUeFJlY2VpcHQoSlNPTi5wYXJzZShyYXcgYXMgc3RyaW5nKSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVBZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkIHtcbiAgICB0aGlzLl9idWlsZGVyLnZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZUtleShrZXk6IEJhc2VLZXkpOiB2b2lkIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEtleVBhaXIoeyBwcnY6IGtleS5rZXkgfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZSBwcm92aWRlZCBrZXkgaXMgbm90IHZhbGlkJyk7XG4gICAgfVxuICB9XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl9idWlsZGVyLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fYnVpbGRlci52YWxpZGF0ZVRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9idWlsZGVyLnZhbGlkYXRlVmFsdWUodmFsdWUpO1xuICB9XG59XG4iXX0=
|
package/dist/src/register.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAKjD,eAAO,MAAM,QAAQ,QAAS,SAAS,KAAG,IAMzC,CAAC"}
|
package/dist/src/register.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.register = void 0;
|
|
4
|
-
const trx_1 = require("./trx");
|
|
5
|
-
const trxToken_1 = require("./trxToken");
|
|
6
|
-
const ttrx_1 = require("./ttrx");
|
|
7
|
-
const register = (sdk) => {
|
|
8
|
-
sdk.register('trx', trx_1.Trx.createInstance);
|
|
9
|
-
sdk.register('ttrx', ttrx_1.Ttrx.createInstance);
|
|
10
|
-
trxToken_1.TrxToken.createTokenConstructors().forEach(({ name, coinConstructor }) => {
|
|
11
|
-
sdk.register(name, coinConstructor);
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
|
-
exports.register = register;
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmVnaXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsK0JBQTRCO0FBQzVCLHlDQUFzQztBQUN0QyxpQ0FBOEI7QUFFdkIsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFjLEVBQVEsRUFBRTtJQUMvQyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxTQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsV0FBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFDLG1CQUFRLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsRUFBRSxFQUFFO1FBQ3ZFLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBTlcsUUFBQSxRQUFRLFlBTW5CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQml0R29CYXNlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJ4IH0gZnJvbSAnLi90cngnO1xuaW1wb3J0IHsgVHJ4VG9rZW4gfSBmcm9tICcuL3RyeFRva2VuJztcbmltcG9ydCB7IFR0cnggfSBmcm9tICcuL3R0cngnO1xuXG5leHBvcnQgY29uc3QgcmVnaXN0ZXIgPSAoc2RrOiBCaXRHb0Jhc2UpOiB2b2lkID0+IHtcbiAgc2RrLnJlZ2lzdGVyKCd0cngnLCBUcnguY3JlYXRlSW5zdGFuY2UpO1xuICBzZGsucmVnaXN0ZXIoJ3R0cngnLCBUdHJ4LmNyZWF0ZUluc3RhbmNlKTtcbiAgVHJ4VG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3RvcnMoKS5mb3JFYWNoKCh7IG5hbWUsIGNvaW5Db25zdHJ1Y3RvciB9KSA9PiB7XG4gICAgc2RrLnJlZ2lzdGVyKG5hbWUsIGNvaW5Db25zdHJ1Y3Rvcik7XG4gIH0pO1xufTtcbiJdfQ==
|