@bitgo-beta/sdk-coin-trx 1.2.3-alpha.317 → 1.2.3-alpha.319
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 +16 -0
- package/dist/resources/protobuf/Contract.proto +16 -0
- package/dist/resources/protobuf/tron.d.ts +1012 -0
- package/dist/resources/protobuf/tron.js +4169 -1231
- package/dist/resources/protobuf/tron.proto +4 -0
- package/dist/src/lib/contractCallBuilder.d.ts +1 -35
- package/dist/src/lib/contractCallBuilder.d.ts.map +1 -1
- package/dist/src/lib/contractCallBuilder.js +3 -66
- package/dist/src/lib/enum.d.ts +24 -1
- package/dist/src/lib/enum.d.ts.map +1 -1
- package/dist/src/lib/enum.js +26 -2
- package/dist/src/lib/freezeBalanceTxBuilder.d.ts +71 -0
- package/dist/src/lib/freezeBalanceTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/freezeBalanceTxBuilder.js +211 -0
- package/dist/src/lib/iface.d.ts +171 -2
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +1 -1
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +51 -1
- package/dist/src/lib/transactionBuilder.d.ts +50 -5
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +83 -8
- package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts +65 -0
- package/dist/src/lib/unfreezeBalanceTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/unfreezeBalanceTxBuilder.js +204 -0
- package/dist/src/lib/utils.d.ts +34 -2
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +178 -3
- package/dist/src/lib/voteWitnessTxBuilder.d.ts +62 -0
- package/dist/src/lib/voteWitnessTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/voteWitnessTxBuilder.js +219 -0
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts +49 -0
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.d.ts.map +1 -0
- package/dist/src/lib/withdrawExpireUnfreezeTxBuilder.js +167 -0
- package/dist/src/lib/wrappedBuilder.d.ts +32 -0
- package/dist/src/lib/wrappedBuilder.d.ts.map +1 -1
- package/dist/src/lib/wrappedBuilder.js +49 -1
- package/dist/src/trx.d.ts +0 -2
- package/dist/src/trx.d.ts.map +1 -1
- package/dist/src/trx.js +5 -6
- package/package.json +8 -7
- package/resources/protobuf/Contract.proto +16 -0
- package/resources/protobuf/tron.d.ts +1012 -0
- package/resources/protobuf/tron.js +4169 -1231
- package/resources/protobuf/tron.proto +4 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VoteWitnessTxBuilder = 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 utils_1 = require("./utils");
|
|
9
|
+
const tron_1 = require("../../resources/protobuf/tron");
|
|
10
|
+
var ContractType = tron_1.protocol.Transaction.Contract.ContractType;
|
|
11
|
+
class VoteWitnessTxBuilder 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.StakingVote;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Set the votes to be used in the transaction
|
|
23
|
+
*
|
|
24
|
+
* @param votes vote data containing vote address and vote count
|
|
25
|
+
* @returns the builder with the new parameter set
|
|
26
|
+
*/
|
|
27
|
+
setVotes(votes) {
|
|
28
|
+
this.validateVotes(votes);
|
|
29
|
+
this._votes = votes.map((vote) => ({
|
|
30
|
+
...vote,
|
|
31
|
+
vote_address: (0, utils_1.getHexAddressFromBase58Address)(vote.vote_address),
|
|
32
|
+
}));
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/** @inheritdoc */
|
|
36
|
+
extendValidTo(extensionMs) {
|
|
37
|
+
if (this.transaction.signature && this.transaction.signature.length > 0) {
|
|
38
|
+
throw new sdk_core_1.ExtendTransactionError('Cannot extend a signed transaction');
|
|
39
|
+
}
|
|
40
|
+
if (extensionMs <= 0) {
|
|
41
|
+
throw new Error('Value cannot be below zero');
|
|
42
|
+
}
|
|
43
|
+
if (extensionMs > utils_1.TRANSACTION_MAX_EXPIRATION) {
|
|
44
|
+
throw new sdk_core_1.ExtendTransactionError('The expiration cannot be extended more than one year');
|
|
45
|
+
}
|
|
46
|
+
if (this._expiration) {
|
|
47
|
+
this._expiration = this._expiration + extensionMs;
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
throw new Error('There is not expiration to extend');
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Initialize the transaction builder fields using the transaction data
|
|
55
|
+
*
|
|
56
|
+
* @param {TransactionReceipt | string} rawTransaction the transaction data in a string or JSON format
|
|
57
|
+
* @returns {VoteWitnessTxBuilder} the builder with the transaction data set
|
|
58
|
+
*/
|
|
59
|
+
initBuilder(rawTransaction) {
|
|
60
|
+
this.transaction = this.fromImplementation(rawTransaction);
|
|
61
|
+
this.transaction.setTransactionType(this.transactionType);
|
|
62
|
+
this.validateRawTransaction(rawTransaction);
|
|
63
|
+
const tx = this.fromImplementation(rawTransaction);
|
|
64
|
+
this.transaction = tx;
|
|
65
|
+
this._signingKeys = [];
|
|
66
|
+
const rawData = tx.toJson().raw_data;
|
|
67
|
+
this._refBlockBytes = rawData.ref_block_bytes;
|
|
68
|
+
this._refBlockHash = rawData.ref_block_hash;
|
|
69
|
+
this._expiration = rawData.expiration;
|
|
70
|
+
this._timestamp = rawData.timestamp;
|
|
71
|
+
this.transaction.setTransactionType(sdk_core_1.TransactionType.StakingVote);
|
|
72
|
+
const contractCall = rawData.contract[0];
|
|
73
|
+
this.initVoteWitnessContractCall(contractCall);
|
|
74
|
+
return this;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Initialize the votewitnesscontract call specific data
|
|
78
|
+
*
|
|
79
|
+
* @param {VoteWitnessContract} contractCall object with transfer data
|
|
80
|
+
*/
|
|
81
|
+
initVoteWitnessContractCall(voteWitnessContractCall) {
|
|
82
|
+
const { votes, owner_address } = voteWitnessContractCall.parameter.value;
|
|
83
|
+
if (owner_address) {
|
|
84
|
+
this.source({ address: (0, utils_1.getBase58AddressFromHex)(owner_address) });
|
|
85
|
+
}
|
|
86
|
+
if (votes) {
|
|
87
|
+
this.setVotes(votes.map((vote) => ({
|
|
88
|
+
...vote,
|
|
89
|
+
vote_address: (0, utils_1.getBase58AddressFromHex)(vote.vote_address),
|
|
90
|
+
})));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async buildImplementation() {
|
|
94
|
+
this.createVoteWitnessContractTransaction();
|
|
95
|
+
/** @inheritdoccreateTransaction */
|
|
96
|
+
// This method must be extended on child classes
|
|
97
|
+
if (this._signingKeys.length > 0) {
|
|
98
|
+
this.applySignatures();
|
|
99
|
+
}
|
|
100
|
+
if (!this.transaction.id) {
|
|
101
|
+
throw new sdk_core_1.BuildTransactionError('A valid transaction must have an id');
|
|
102
|
+
}
|
|
103
|
+
return Promise.resolve(this.transaction);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Creates the vote witness transaction
|
|
107
|
+
*/
|
|
108
|
+
createVoteWitnessContractTransaction() {
|
|
109
|
+
const rawDataHex = this.getVoteWitnessRawDataHex();
|
|
110
|
+
const rawData = (0, utils_1.decodeTransaction)(rawDataHex);
|
|
111
|
+
const contract = rawData.contract[0];
|
|
112
|
+
const contractParameter = contract.parameter;
|
|
113
|
+
contractParameter.value.owner_address = this._ownerAddress.toLocaleLowerCase();
|
|
114
|
+
contractParameter.value.votes = this._votes;
|
|
115
|
+
contractParameter.type_url = 'type.googleapis.com/protocol.VoteWitnessContract';
|
|
116
|
+
contract.type = 'VoteWitnessContract';
|
|
117
|
+
const hexBuffer = Buffer.from(rawDataHex, 'hex');
|
|
118
|
+
const id = (0, crypto_1.createHash)('sha256').update(hexBuffer).digest('hex');
|
|
119
|
+
const txRecip = {
|
|
120
|
+
raw_data: rawData,
|
|
121
|
+
raw_data_hex: rawDataHex,
|
|
122
|
+
txID: id,
|
|
123
|
+
signature: this.transaction.signature,
|
|
124
|
+
};
|
|
125
|
+
this.transaction = new transaction_1.Transaction(this._coinConfig, txRecip);
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Helper method to get the vote witness transaction raw data hex
|
|
129
|
+
* @returns vote witness transaction raw data hex
|
|
130
|
+
*/
|
|
131
|
+
getVoteWitnessRawDataHex() {
|
|
132
|
+
const voteArray = this._votes.map((vote) => {
|
|
133
|
+
const voteObject = tron_1.protocol.Vote.fromObject({
|
|
134
|
+
voteAddress: (0, utils_1.getByteArrayFromHexAddress)(vote.vote_address),
|
|
135
|
+
voteCount: vote.vote_count,
|
|
136
|
+
});
|
|
137
|
+
return tron_1.protocol.Vote.create(voteObject);
|
|
138
|
+
});
|
|
139
|
+
const rawContract = {
|
|
140
|
+
ownerAddress: (0, utils_1.getByteArrayFromHexAddress)(this._ownerAddress),
|
|
141
|
+
votes: voteArray,
|
|
142
|
+
};
|
|
143
|
+
const voteWitnessContract = tron_1.protocol.VoteWitnessContract.fromObject(rawContract);
|
|
144
|
+
const voteWitnessContractBytes = tron_1.protocol.VoteWitnessContract.encode(voteWitnessContract).finish();
|
|
145
|
+
const txContract = {
|
|
146
|
+
type: ContractType.VoteWitnessContract,
|
|
147
|
+
parameter: {
|
|
148
|
+
value: voteWitnessContractBytes,
|
|
149
|
+
type_url: 'type.googleapis.com/protocol.VoteWitnessContract',
|
|
150
|
+
},
|
|
151
|
+
};
|
|
152
|
+
const raw = {
|
|
153
|
+
refBlockBytes: Buffer.from(this._refBlockBytes, 'hex'),
|
|
154
|
+
refBlockHash: Buffer.from(this._refBlockHash, 'hex'),
|
|
155
|
+
expiration: this._expiration || Date.now() + utils_1.TRANSACTION_DEFAULT_EXPIRATION,
|
|
156
|
+
timestamp: this._timestamp || Date.now(),
|
|
157
|
+
contract: [txContract],
|
|
158
|
+
};
|
|
159
|
+
const rawTx = tron_1.protocol.Transaction.raw.create(raw);
|
|
160
|
+
return Buffer.from(tron_1.protocol.Transaction.raw.encode(rawTx).finish()).toString('hex');
|
|
161
|
+
}
|
|
162
|
+
/** @inheritdoc */
|
|
163
|
+
signImplementation(key) {
|
|
164
|
+
if (this._signingKeys.some((signingKey) => signingKey.key === key.key)) {
|
|
165
|
+
throw new sdk_core_1.SigningError('Duplicated key');
|
|
166
|
+
}
|
|
167
|
+
this._signingKeys.push(key);
|
|
168
|
+
// We keep this return for compatibility but is not meant to be use
|
|
169
|
+
return this.transaction;
|
|
170
|
+
}
|
|
171
|
+
applySignatures() {
|
|
172
|
+
if (!this.transaction.inputs) {
|
|
173
|
+
throw new sdk_core_1.SigningError('Transaction has no inputs');
|
|
174
|
+
}
|
|
175
|
+
this._signingKeys.forEach((key) => this.applySignature(key));
|
|
176
|
+
}
|
|
177
|
+
validateTransaction(transaction) {
|
|
178
|
+
this.validateVoteTransactionFields();
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Validates the votes array
|
|
182
|
+
*
|
|
183
|
+
* @param {VoteWitnessData[]} votes - The votes array to validate
|
|
184
|
+
* @throws {Error} when the votes array is invalid
|
|
185
|
+
*/
|
|
186
|
+
validateVotes(votes) {
|
|
187
|
+
if (!votes || votes.length === 0) {
|
|
188
|
+
throw new Error('Votes array is missing or empty');
|
|
189
|
+
}
|
|
190
|
+
votes.forEach((vote) => {
|
|
191
|
+
if (!vote.vote_address) {
|
|
192
|
+
throw new Error('Vote address is missing');
|
|
193
|
+
}
|
|
194
|
+
this.validateAddress({ address: vote.vote_address });
|
|
195
|
+
if (vote.vote_count == null || vote.vote_count < 0) {
|
|
196
|
+
throw new Error('Invalid vote count');
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Validates if the transaction is a valid vote transaction
|
|
202
|
+
* @param {TransactionReceipt} transaction - The transaction to validate
|
|
203
|
+
* @throws {InvalidTransactionError} when the transaction is invalid
|
|
204
|
+
*/
|
|
205
|
+
validateVoteTransactionFields() {
|
|
206
|
+
if (!this._ownerAddress) {
|
|
207
|
+
throw new sdk_core_1.BuildTransactionError('Missing parameter: source');
|
|
208
|
+
}
|
|
209
|
+
if (!this._refBlockBytes || !this._refBlockHash) {
|
|
210
|
+
throw new sdk_core_1.BuildTransactionError('Missing block reference information');
|
|
211
|
+
}
|
|
212
|
+
// Validate votes
|
|
213
|
+
if (!this._votes || this._votes.length === 0) {
|
|
214
|
+
throw new sdk_core_1.BuildTransactionError('Missing or empty votes array');
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
exports.VoteWitnessTxBuilder = VoteWitnessTxBuilder;
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm90ZVdpdG5lc3NUeEJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3ZvdGVXaXRuZXNzVHhCdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFvQztBQUNwQyxtREFBNkg7QUFFN0gsNkRBQTBEO0FBQzFELCtDQUE0QztBQUU1QyxtQ0FPaUI7QUFDakIsd0RBQXlEO0FBRXpELElBQU8sWUFBWSxHQUFHLGVBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQztBQUVqRSxNQUFhLG9CQUFxQixTQUFRLHVDQUFrQjtJQUkxRCxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLElBQWMsZUFBZTtRQUMzQixPQUFPLDBCQUFlLENBQUMsV0FBVyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBQyxLQUF3QjtRQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNqQyxHQUFHLElBQUk7WUFDUCxZQUFZLEVBQUUsSUFBQSxzQ0FBOEIsRUFBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ2hFLENBQUMsQ0FBQyxDQUFDO1FBQ0osT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGFBQWEsQ0FBQyxXQUFtQjtRQUMvQixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMs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Q0FBQztZQUNoRCxNQUFNLElBQUksZ0NBQXFCLENBQUMscUNBQXFDLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUEzT0Qsb0RBMk9DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvblR5cGUsIEJhc2VLZXksIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgU2lnbmluZ0Vycm9yLCBFeHRlbmRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uUmVjZWlwdCwgVm90ZVdpdG5lc3NEYXRhLCBWb3RlV2l0bmVzc0NvbnRyYWN0IH0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQge1xuICBkZWNvZGVUcmFuc2FjdGlvbixcbiAgZ2V0SGV4QWRkcmVzc0Zyb21CYXNlNThBZGRyZXNzLFxuICBnZXRCeXRlQXJyYXlGcm9tSGV4QWRkcmVzcyxcbiAgZ2V0QmFzZTU4QWRkcmVzc0Zyb21IZXgsXG4gIFRSQU5TQUNUSU9OX0RFRkFVTFRfRVhQSVJBVElPTixcbiAgVFJBTlNBQ1RJT05fTUFYX0VYUElSQVRJT04sXG59IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgcHJvdG9jb2wgfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvcHJvdG9idWYvdHJvbic7XG5cbmltcG9ydCBDb250cmFjdFR5cGUgPSBwcm90b2NvbC5UcmFuc2FjdGlvbi5Db250cmFjdC5Db250cmFjdFR5cGU7XG5cbmV4cG9ydCBjbGFzcyBWb3RlV2l0bmVzc1R4QnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfc2lnbmluZ0tleXM6IEJhc2VLZXlbXTtcbiAgcHJpdmF0ZSBfdm90ZXM6IFZvdGVXaXRuZXNzRGF0YVtdO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl9zaWduaW5nS2V5cyA9IFtdO1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24oX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBnZXQgdHJhbnNhY3Rpb25UeXBlKCk6IFRyYW5zYWN0aW9uVHlwZSB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uVHlwZS5TdGFraW5nVm90ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIHZvdGVzIHRvIGJlIHVzZWQgaW4gdGhlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB2b3RlcyB2b3RlIGRhdGEgY29udGFpbmluZyB2b3RlIGFkZHJlc3MgYW5kIHZvdGUgY291bnRcbiAgICogQHJldHVybnMgdGhlIGJ1aWxkZXIgd2l0aCB0aGUgbmV3IHBhcmFtZXRlciBzZXRcbiAgICovXG4gIHNldFZvdGVzKHZvdGVzOiBWb3RlV2l0bmVzc0RhdGFbXSk6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVWb3Rlcyh2b3Rlcyk7XG4gICAgdGhpcy5fdm90ZXMgPSB2b3Rlcy5tYXAoKHZvdGUpID0+ICh7XG4gICAgICAuLi52b3RlLFxuICAgICAgdm90ZV9hZGRyZXNzOiBnZXRIZXhBZGRyZXNzRnJvbUJhc2U1OEFkZHJlc3Modm90ZS52b3RlX2FkZHJlc3MpLFxuICAgIH0pKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBleHRlbmRWYWxpZFRvKGV4dGVuc2lvbk1zOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5zaWduYXR1cmUgJiYgdGhpcy50cmFuc2FjdGlvbi5zaWduYXR1cmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgbmV3IEV4dGVuZFRyYW5zYWN0aW9uRXJyb3IoJ0Nhbm5vdCBleHRlbmQgYSBzaWduZWQgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAoZXh0ZW5zaW9uTXMgPD0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdWYWx1ZSBjYW5ub3QgYmUgYmVsb3cgemVybycpO1xuICAgIH1cblxuICAgIGlmIChleHRlbnNpb25NcyA+IFRSQU5TQUNUSU9OX01BWF9FWFBJUkFUSU9OKSB7XG4gICAgICB0aHJvdyBuZXcgRXh0ZW5kVHJhbnNhY3Rpb25FcnJvcignVGhlIGV4cGlyYXRpb24gY2Fubm90IGJlIGV4dGVuZGVkIG1vcmUgdGhhbiBvbmUgeWVhcicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9leHBpcmF0aW9uKSB7XG4gICAgICB0aGlzLl9leHBpcmF0aW9uID0gdGhpcy5fZXhwaXJhdGlvbiArIGV4dGVuc2lvbk1zO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoZXJlIGlzIG5vdCBleHBpcmF0aW9uIHRvIGV4dGVuZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB0cmFuc2FjdGlvbiBidWlsZGVyIGZpZWxkcyB1c2luZyB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uUmVjZWlwdCB8IHN0cmluZ30gcmF3VHJhbnNhY3Rpb24gdGhlIHRyYW5zYWN0aW9uIGRhdGEgaW4gYSBzdHJpbmcgb3IgSlNPTiBmb3JtYXRcbiAgICogQHJldHVybnMge1ZvdGVXaXRuZXNzVHhCdWlsZGVyfSB0aGUgYnVpbGRlciB3aXRoIHRoZSB0cmFuc2FjdGlvbiBkYXRhIHNldFxuICAgKi9cbiAgaW5pdEJ1aWxkZXIocmF3VHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uUmVjZWlwdCB8IHN0cmluZyk6IHRoaXMge1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSB0aGlzLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUodGhpcy50cmFuc2FjdGlvblR5cGUpO1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgdHggPSB0aGlzLmZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IHR4O1xuICAgIHRoaXMuX3NpZ25pbmdLZXlzID0gW107XG4gICAgY29uc3QgcmF3RGF0YSA9IHR4LnRvSnNvbigpLnJhd19kYXRhO1xuICAgIHRoaXMuX3JlZkJsb2NrQnl0ZXMgPSByYXdEYXRhLnJlZl9ibG9ja19ieXRlcztcbiAgICB0aGlzLl9yZWZCbG9ja0hhc2ggPSByYXdEYXRhLnJlZl9ibG9ja19oYXNoO1xuICAgIHRoaXMuX2V4cGlyYXRpb24gPSByYXdEYXRhLmV4cGlyYXRpb247XG4gICAgdGhpcy5fdGltZXN0YW1wID0gcmF3RGF0YS50aW1lc3RhbXA7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvblR5cGUoVHJhbnNhY3Rpb25UeXBlLlN0YWtpbmdWb3RlKTtcbiAgICBjb25zdCBjb250cmFjdENhbGwgPSByYXdEYXRhLmNvbnRyYWN0WzBdIGFzIFZvdGVXaXRuZXNzQ29udHJhY3Q7XG4gICAgdGhpcy5pbml0Vm90ZVdpdG5lc3NDb250cmFjdENhbGwoY29udHJhY3RDYWxsKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSB2b3Rld2l0bmVzc2NvbnRyYWN0IGNhbGwgc3BlY2lmaWMgZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1ZvdGVXaXRuZXNzQ29udHJhY3R9IGNvbnRyYWN0Q2FsbCBvYmplY3Qgd2l0aCB0cmFuc2ZlciBkYXRhXG4gICAqL1xuICBwcm90ZWN0ZWQgaW5pdFZvdGVXaXRuZXNzQ29udHJhY3RDYWxsKHZvdGVXaXRuZXNzQ29udHJhY3RDYWxsOiBWb3RlV2l0bmVzc0NvbnRyYWN0KTogdm9pZCB7XG4gICAgY29uc3QgeyB2b3Rlcywgb3duZXJfYWRkcmVzcyB9ID0gdm90ZVdpdG5lc3NDb250cmFjdENhbGwucGFyYW1ldGVyLnZhbHVlO1xuICAgIGlmIChvd25lcl9hZGRyZXNzKSB7XG4gICAgICB0aGlzLnNvdXJjZSh7IGFkZHJlc3M6IGdldEJhc2U1OEFkZHJlc3NGcm9tSGV4KG93bmVyX2FkZHJlc3MpIH0pO1xuICAgIH1cblxuICAgIGlmICh2b3Rlcykge1xuICAgICAgdGhpcy5zZXRWb3RlcyhcbiAgICAgICAgdm90ZXMubWFwKCh2b3RlKSA9PiAoe1xuICAgICAgICAgIC4uLnZvdGUsXG4gICAgICAgICAgdm90ZV9hZGRyZXNzOiBnZXRCYXNlNThBZGRyZXNzRnJvbUhleCh2b3RlLnZvdGVfYWRkcmVzcyksXG4gICAgICAgIH0pKVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy5jcmVhdGVWb3RlV2l0bmVzc0NvbnRyYWN0VHJhbnNhY3Rpb24oKTtcbiAgICAvKiogQGluaGVyaXRkb2NjcmVhdGVUcmFuc2FjdGlvbiAqL1xuICAgIC8vIFRoaXMgbWV0aG9kIG11c3QgYmUgZXh0ZW5kZWQgb24gY2hpbGQgY2xhc3Nlc1xuICAgIGlmICh0aGlzLl9zaWduaW5nS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFwcGx5U2lnbmF0dXJlcygpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbi5pZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignQSB2YWxpZCB0cmFuc2FjdGlvbiBtdXN0IGhhdmUgYW4gaWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0aGlzLnRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIHRoZSB2b3RlIHdpdG5lc3MgdHJhbnNhY3Rpb25cbiAgICovXG4gIHByaXZhdGUgY3JlYXRlVm90ZVdpdG5lc3NDb250cmFjdFRyYW5zYWN0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IHJhd0RhdGFIZXggPSB0aGlzLmdldFZvdGVXaXRuZXNzUmF3RGF0YUhleCgpO1xuICAgIGNvbnN0IHJhd0RhdGEgPSBkZWNvZGVUcmFuc2FjdGlvbihyYXdEYXRhSGV4KTtcbiAgICBjb25zdCBjb250cmFjdCA9IHJhd0RhdGEuY29udHJhY3RbMF0gYXMgVm90ZVdpdG5lc3NDb250cmFjdDtcbiAgICBjb25zdCBjb250cmFjdFBhcmFtZXRlciA9IGNvbnRyYWN0LnBhcmFtZXRlcjtcbiAgICBjb250cmFjdFBhcmFtZXRlci52YWx1ZS5vd25lcl9hZGRyZXNzID0gdGhpcy5fb3duZXJBZGRyZXNzLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgY29udHJhY3RQYXJhbWV0ZXIudmFsdWUudm90ZXMgPSB0aGlzLl92b3RlcztcbiAgICBjb250cmFjdFBhcmFtZXRlci50eXBlX3VybCA9ICd0eXBlLmdvb2dsZWFwaXMuY29tL3Byb3RvY29sLlZvdGVXaXRuZXNzQ29udHJhY3QnO1xuICAgIGNvbnRyYWN0LnR5cGUgPSAnVm90ZVdpdG5lc3NDb250cmFjdCc7XG4gICAgY29uc3QgaGV4QnVmZmVyID0gQnVmZmVyLmZyb20ocmF3RGF0YUhleCwgJ2hleCcpO1xuICAgIGNvbnN0IGlkID0gY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKGhleEJ1ZmZlcikuZGlnZXN0KCdoZXgnKTtcbiAgICBjb25zdCB0eFJlY2lwOiBUcmFuc2FjdGlvblJlY2VpcHQgPSB7XG4gICAgICByYXdfZGF0YTogcmF3RGF0YSxcbiAgICAgIHJhd19kYXRhX2hleDogcmF3RGF0YUhleCxcbiAgICAgIHR4SUQ6IGlkLFxuICAgICAgc2lnbmF0dXJlOiB0aGlzLnRyYW5zYWN0aW9uLnNpZ25hdHVyZSxcbiAgICB9O1xuICAgIHRoaXMudHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZywgdHhSZWNpcCk7XG4gIH1cblxuICAvKipcbiAgICogSGVscGVyIG1ldGhvZCB0byBnZXQgdGhlIHZvdGUgd2l0bmVzcyB0cmFuc2FjdGlvbiByYXcgZGF0YSBoZXhcbiAgICogQHJldHVybnMgdm90ZSB3aXRuZXNzIHRyYW5zYWN0aW9uIHJhdyBkYXRhIGhleFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRWb3RlV2l0bmVzc1Jhd0RhdGFIZXgoKTogc3RyaW5nIHtcbiAgICBjb25zdCB2b3RlQXJyYXkgPSB0aGlzLl92b3Rlcy5tYXAoKHZvdGUpID0+IHtcbiAgICAgIGNvbnN0IHZvdGVPYmplY3QgPSBwcm90b2NvbC5Wb3RlLmZyb21PYmplY3Qoe1xuICAgICAgICB2b3RlQWRkcmVzczogZ2V0Qnl0ZUFycmF5RnJvbUhleEFkZHJlc3Modm90ZS52b3RlX2FkZHJlc3MpLFxuICAgICAgICB2b3RlQ291bnQ6IHZvdGUudm90ZV9jb3VudCxcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcHJvdG9jb2wuVm90ZS5jcmVhdGUodm90ZU9iamVjdCk7XG4gICAgfSk7XG4gICAgY29uc3QgcmF3Q29udHJhY3QgPSB7XG4gICAgICBvd25lckFkZHJlc3M6IGdldEJ5dGVBcnJheUZyb21IZXhBZGRyZXNzKHRoaXMuX293bmVyQWRkcmVzcyksXG4gICAgICB2b3Rlczogdm90ZUFycmF5LFxuICAgIH07XG5cbiAgICBjb25zdCB2b3RlV2l0bmVzc0NvbnRyYWN0ID0gcHJvdG9jb2wuVm90ZVdpdG5lc3NDb250cmFjdC5mcm9tT2JqZWN0KHJhd0NvbnRyYWN0KTtcbiAgICBjb25zdCB2b3RlV2l0bmVzc0NvbnRyYWN0Qnl0ZXMgPSBwcm90b2NvbC5Wb3RlV2l0bmVzc0NvbnRyYWN0LmVuY29kZSh2b3RlV2l0bmVzc0NvbnRyYWN0KS5maW5pc2goKTtcbiAgICBjb25zdCB0eENvbnRyYWN0ID0ge1xuICAgICAgdHlwZTogQ29udHJhY3RUeXBlLlZvdGVXaXRuZXNzQ29udHJhY3QsXG4gICAgICBwYXJhbWV0ZXI6IHtcbiAgICAgICAgdmFsdWU6IHZvdGVXaXRuZXNzQ29udHJhY3RCeXRlcyxcbiAgICAgICAgdHlwZV91cmw6ICd0eXBlLmdvb2dsZWFwaXMuY29tL3Byb3RvY29sLlZvdGVXaXRuZXNzQ29udHJhY3QnLFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHJhdyA9IHtcbiAgICAgIHJlZkJsb2NrQnl0ZXM6IEJ1ZmZlci5mcm9tKHRoaXMuX3JlZkJsb2NrQnl0ZXMsICdoZXgnKSxcbiAgICAgIHJlZkJsb2NrSGFzaDogQnVmZmVyLmZyb20odGhpcy5fcmVmQmxvY2tIYXNoLCAnaGV4JyksXG4gICAgICBleHBpcmF0aW9uOiB0aGlzLl9leHBpcmF0aW9uIHx8IERhdGUubm93KCkgKyBUUkFOU0FDVElPTl9ERUZBVUxUX0VYUElSQVRJT04sXG4gICAgICB0aW1lc3RhbXA6IHRoaXMuX3RpbWVzdGFtcCB8fCBEYXRlLm5vdygpLFxuICAgICAgY29udHJhY3Q6IFt0eENvbnRyYWN0XSxcbiAgICB9O1xuICAgIGNvbnN0IHJhd1R4ID0gcHJvdG9jb2wuVHJhbnNhY3Rpb24ucmF3LmNyZWF0ZShyYXcpO1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShwcm90b2NvbC5UcmFuc2FjdGlvbi5yYXcuZW5jb2RlKHJhd1R4KS5maW5pc2goKSkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBzaWduSW1wbGVtZW50YXRpb24oa2V5OiBCYXNlS2V5KTogVHJhbnNhY3Rpb24ge1xuICAgIGlmICh0aGlzLl9zaWduaW5nS2V5cy5zb21lKChzaWduaW5nS2V5KSA9PiBzaWduaW5nS2V5LmtleSA9PT0ga2V5LmtleSkpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0R1cGxpY2F0ZWQga2V5Jyk7XG4gICAgfVxuICAgIHRoaXMuX3NpZ25pbmdLZXlzLnB1c2goa2V5KTtcblxuICAgIC8vIFdlIGtlZXAgdGhpcyByZXR1cm4gZm9yIGNvbXBhdGliaWxpdHkgYnV0IGlzIG5vdCBtZWFudCB0byBiZSB1c2VcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlTaWduYXR1cmVzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy50cmFuc2FjdGlvbi5pbnB1dHMpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ1RyYW5zYWN0aW9uIGhhcyBubyBpbnB1dHMnKTtcbiAgICB9XG4gICAgdGhpcy5fc2lnbmluZ0tleXMuZm9yRWFjaCgoa2V5KSA9PiB0aGlzLmFwcGx5U2lnbmF0dXJlKGtleSkpO1xuICB9XG5cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkYXRlVm90ZVRyYW5zYWN0aW9uRmllbGRzKCk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSB2b3RlcyBhcnJheVxuICAgKlxuICAgKiBAcGFyYW0ge1ZvdGVXaXRuZXNzRGF0YVtdfSB2b3RlcyAtIFRoZSB2b3RlcyBhcnJheSB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIHtFcnJvcn0gd2hlbiB0aGUgdm90ZXMgYXJyYXkgaXMgaW52YWxpZFxuICAgKi9cbiAgdmFsaWRhdGVWb3Rlcyh2b3RlczogVm90ZVdpdG5lc3NEYXRhW10pOiB2b2lkIHtcbiAgICBpZiAoIXZvdGVzIHx8IHZvdGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdWb3RlcyBhcnJheSBpcyBtaXNzaW5nIG9yIGVtcHR5Jyk7XG4gICAgfVxuXG4gICAgdm90ZXMuZm9yRWFjaCgodm90ZSkgPT4ge1xuICAgICAgaWYgKCF2b3RlLnZvdGVfYWRkcmVzcykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZvdGUgYWRkcmVzcyBpcyBtaXNzaW5nJyk7XG4gICAgICB9XG4gICAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcyh7IGFkZHJlc3M6IHZvdGUudm90ZV9hZGRyZXNzIH0pO1xuXG4gICAgICBpZiAodm90ZS52b3RlX2NvdW50ID09IG51bGwgfHwgdm90ZS52b3RlX2NvdW50IDwgMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdm90ZSBjb3VudCcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgYSB2YWxpZCB2b3RlIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb25SZWNlaXB0fSB0cmFuc2FjdGlvbiAtIFRoZSB0cmFuc2FjdGlvbiB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIHtJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcn0gd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMgaW52YWxpZFxuICAgKi9cbiAgcHJpdmF0ZSB2YWxpZGF0ZVZvdGVUcmFuc2FjdGlvbkZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX293bmVyQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTWlzc2luZyBwYXJhbWV0ZXI6IHNvdXJjZScpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fcmVmQmxvY2tCeXRlcyB8fCAhdGhpcy5fcmVmQmxvY2tIYXNoKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdNaXNzaW5nIGJsb2NrIHJlZmVyZW5jZSBpbmZvcm1hdGlvbicpO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIHZvdGVzXG4gICAgaWYgKCF0aGlzLl92b3RlcyB8fCB0aGlzLl92b3Rlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ01pc3Npbmcgb3IgZW1wdHkgdm90ZXMgYXJyYXknKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { TransactionType, BaseKey } from '@bitgo-beta/sdk-core';
|
|
2
|
+
import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
|
|
3
|
+
import { TransactionBuilder } from './transactionBuilder';
|
|
4
|
+
import { Transaction } from './transaction';
|
|
5
|
+
import { TransactionReceipt, WithdrawExpireUnfreezeContract } from './iface';
|
|
6
|
+
export declare class WithdrawExpireUnfreezeTxBuilder extends TransactionBuilder {
|
|
7
|
+
protected _signingKeys: BaseKey[];
|
|
8
|
+
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
9
|
+
/** @inheritdoc */
|
|
10
|
+
protected get transactionType(): TransactionType;
|
|
11
|
+
/** @inheritdoc */
|
|
12
|
+
extendValidTo(extensionMs: number): void;
|
|
13
|
+
initBuilder(rawTransaction: TransactionReceipt | string): this;
|
|
14
|
+
/**
|
|
15
|
+
* Initialize the withdraw expire unfreeze contract call specific data
|
|
16
|
+
*
|
|
17
|
+
* @param {WithdrawExpireUnfreezeContract} withdrawExpireUnfreezeContractCall object with freeze txn data
|
|
18
|
+
*/
|
|
19
|
+
protected initWithdrawExpireUnfreezeContractCall(withdrawExpireUnfreezeContractCall: WithdrawExpireUnfreezeContract): void;
|
|
20
|
+
protected buildImplementation(): Promise<Transaction>;
|
|
21
|
+
/**
|
|
22
|
+
* Helper method to create the withdraw expire unfreeze transaction
|
|
23
|
+
*/
|
|
24
|
+
private createWithdrawExpireUnfreezeTransaction;
|
|
25
|
+
/**
|
|
26
|
+
* Helper method to get the withdraw expire unfreeze transaction raw data hex
|
|
27
|
+
*
|
|
28
|
+
* @returns {string} the freeze balance transaction raw data hex
|
|
29
|
+
*/
|
|
30
|
+
private getWithdrawExpireUnfreezeRawDataHex;
|
|
31
|
+
/** @inheritdoc */
|
|
32
|
+
protected signImplementation(key: BaseKey): Transaction;
|
|
33
|
+
private applySignatures;
|
|
34
|
+
/**
|
|
35
|
+
* Validates the transaction
|
|
36
|
+
*
|
|
37
|
+
* @param {Transaction} transaction - The transaction to validate
|
|
38
|
+
* @throws {BuildTransactionError} when the transaction is invalid
|
|
39
|
+
*/
|
|
40
|
+
validateTransaction(transaction: Transaction): void;
|
|
41
|
+
/**
|
|
42
|
+
* Validates if the transaction is a valid withdraw expire unfreeze transaction
|
|
43
|
+
*
|
|
44
|
+
* @param {TransactionReceipt} transaction - The transaction to validate
|
|
45
|
+
* @throws {BuildTransactionError} when the transaction is invalid
|
|
46
|
+
*/
|
|
47
|
+
private validateWithdrawExpireUnfreezeTransactionFields;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=withdrawExpireUnfreezeTxBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withdrawExpireUnfreezeTxBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/withdrawExpireUnfreezeTxBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,OAAO,EAA+D,MAAM,sBAAsB,CAAC;AAC7H,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,SAAS,CAAC;AAY7E,qBAAa,+BAAgC,SAAQ,kBAAkB;IACrE,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;gBAEtB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;IAClB,SAAS,KAAK,eAAe,IAAI,eAAe,CAE/C;IAED,kBAAkB;IAClB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAoBxC,WAAW,CAAC,cAAc,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI;IAiB9D;;;;OAIG;IACH,SAAS,CAAC,sCAAsC,CAC9C,kCAAkC,EAAE,8BAA8B,GACjE,IAAI;cAOS,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAc3D;;OAEG;IACH,OAAO,CAAC,uCAAuC;IAmB/C;;;;OAIG;IACH,OAAO,CAAC,mCAAmC;IAyB3C,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW;IAUvD,OAAO,CAAC,eAAe;IAQvB;;;;;OAKG;IACH,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAInD;;;;;OAKG;IACH,OAAO,CAAC,+CAA+C;CASxD"}
|
|
@@ -0,0 +1,167 @@
|
|
|
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
|
|
@@ -7,6 +7,10 @@ import { TransactionBuilder } from './transactionBuilder';
|
|
|
7
7
|
import { ContractCallBuilder } from './contractCallBuilder';
|
|
8
8
|
import { TransactionReceipt } from './iface';
|
|
9
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';
|
|
10
14
|
/**
|
|
11
15
|
* Wrapped Builder class
|
|
12
16
|
* This builder is created to maintain compatibility with the current uses of account-lib
|
|
@@ -24,6 +28,34 @@ export declare class WrappedBuilder extends TransactionBuilder {
|
|
|
24
28
|
getContractCallBuilder(tx?: TransactionReceipt | string): ContractCallBuilder;
|
|
25
29
|
getTransactionBuilder(tx?: TransactionReceipt | string): TransactionBuilder;
|
|
26
30
|
getTokenTransferBuilder(tx?: TransactionReceipt | string): TokenTransferBuilder;
|
|
31
|
+
/**
|
|
32
|
+
* Returns a specific builder to create a freeze balance transaction
|
|
33
|
+
*
|
|
34
|
+
* @param {TransactionReceipt} transaction - The transaction to initialize builder
|
|
35
|
+
* @returns {FreezeBalanceTxBuilder} The specific freeze balance builder
|
|
36
|
+
*/
|
|
37
|
+
getFreezeBalanceV2TxBuilder(tx?: TransactionReceipt | string): FreezeBalanceTxBuilder;
|
|
38
|
+
/**
|
|
39
|
+
* Returns a specific builder to create a vote witness transaction
|
|
40
|
+
*
|
|
41
|
+
* @param {TransactionReceipt} transaction - The transaction to initialize builder
|
|
42
|
+
* @returns {VoteWitnessTxBuilder} The specific vote witness builder
|
|
43
|
+
*/
|
|
44
|
+
getVoteWitnessTxBuilder(tx?: TransactionReceipt | string): VoteWitnessTxBuilder;
|
|
45
|
+
/**
|
|
46
|
+
* Returns a specific builder to create an unfreeze balance transaction
|
|
47
|
+
*
|
|
48
|
+
* @param {Transaction} [tx] The transaction to initialize builder
|
|
49
|
+
* @returns {UnfreezeBalanceTxBuilder} The specific unfreeze builder
|
|
50
|
+
*/
|
|
51
|
+
getUnfreezeBalanceV2TxBuilder(tx?: TransactionReceipt | string): UnfreezeBalanceTxBuilder;
|
|
52
|
+
/**
|
|
53
|
+
* Returns a specific builder to create a withdraw expire unfreeze transaction
|
|
54
|
+
*
|
|
55
|
+
* @param {Transaction} [tx] The transaction to initialize builder
|
|
56
|
+
* @returns {WithdrawExpireUnfreezeTxBuilder} The specific withdraw builder
|
|
57
|
+
*/
|
|
58
|
+
getWithdrawExpireUnfreezeTxBuilder(tx?: TransactionReceipt | string): WithdrawExpireUnfreezeTxBuilder;
|
|
27
59
|
private initializeBuilder;
|
|
28
60
|
/** @inheritdoc */
|
|
29
61
|
extendValidTo(extensionMs: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrappedBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/wrappedBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"wrappedBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/wrappedBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,eAAe,EAA2B,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAI1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAEpF;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,kBAAkB;IACpD,OAAO,CAAC,QAAQ,CAAqB;gBAEzB,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,mBAAmB;IAI7E,qBAAqB,CAAC,EAAE,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,kBAAkB;IAI3E,uBAAuB,CAAC,EAAE,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,oBAAoB;IAI/E;;;;;OAKG;IACH,2BAA2B,CAAC,EAAE,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,sBAAsB;IAIrF;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,oBAAoB;IAI/E;;;;;OAKG;IACH,6BAA6B,CAAC,EAAE,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,wBAAwB;IAIzF;;;;;OAKG;IACH,kCAAkC,CAAC,EAAE,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,+BAA+B;IAIrG,OAAO,CAAC,iBAAiB;IAOzB,kBAAkB;IAClB,aAAa,CAAC,WAAW,EAAE,MAAM;IAIjC,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,OAAO;IAIjB,kBAAkB;IACZ,KAAK,IAAI,OAAO,CAAC,eAAe,CAAC;IAIvC,kBAAkB;IAClB,IAAI,CAAC,GAAG,EAAE,GAAG;IAyBb;;;;;OAKG;IACH,OAAO,CAAC,YAAY;IAIpB,kBAAkB;IAClB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIvC,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAO/B,kBAAkB;IAClB,sBAAsB,CAAC,cAAc,EAAE,GAAG,GAAG,IAAI;IAIjD,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAInD,kBAAkB;IAClB,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;CAGtC"}
|