@bitgo-beta/sdk-coin-tempo 1.0.1-beta.47 → 1.0.1-beta.48
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/dist/src/lib/constants.d.ts +16 -0
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +21 -4
- package/dist/src/lib/index.d.ts +3 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +4 -1
- package/dist/src/lib/tip20Abi.d.ts +90 -17
- package/dist/src/lib/tip20Abi.d.ts.map +1 -1
- package/dist/src/lib/tip20Abi.js +53 -25
- package/dist/src/lib/transaction.d.ts +70 -0
- package/dist/src/lib/transaction.d.ts.map +1 -0
- package/dist/src/lib/transaction.js +73 -0
- package/dist/src/lib/transactionBuilder.d.ts +100 -0
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/transactionBuilder.js +204 -0
- package/dist/src/lib/types.d.ts +17 -0
- package/dist/src/lib/types.d.ts.map +1 -0
- package/dist/src/lib/types.js +3 -0
- package/dist/src/lib/utils.d.ts +46 -2
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +88 -4
- package/dist/src/tip20Token.d.ts +16 -12
- package/dist/src/tip20Token.d.ts.map +1 -1
- package/dist/src/tip20Token.js +95 -23
- package/dist/test/integration/tip20.d.ts +2 -0
- package/dist/test/integration/tip20.d.ts.map +1 -0
- package/dist/test/integration/tip20.js +115 -0
- package/dist/test/unit/transactionBuilder.d.ts +2 -0
- package/dist/test/unit/transactionBuilder.d.ts.map +1 -0
- package/dist/test/unit/transactionBuilder.js +252 -0
- package/dist/test/unit/utils.js +4 -3
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -7
package/dist/src/tip20Token.js
CHANGED
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.Tip20Token = void 0;
|
|
4
4
|
const statics_1 = require("@bitgo-beta/statics");
|
|
5
5
|
const tempo_1 = require("./tempo");
|
|
6
|
+
const utils_1 = require("./lib/utils");
|
|
6
7
|
/**
|
|
7
8
|
* TIP20 Token Implementation (Skeleton)
|
|
8
9
|
*
|
|
@@ -88,39 +89,110 @@ class Tip20Token extends tempo_1.Tempo {
|
|
|
88
89
|
return 'ecdsa';
|
|
89
90
|
}
|
|
90
91
|
/**
|
|
91
|
-
*
|
|
92
|
-
*
|
|
92
|
+
* Verify that the transaction coin/token matches this token
|
|
93
|
+
* @param txPrebuild - Transaction prebuild object
|
|
94
|
+
* @returns true if valid, false otherwise
|
|
93
95
|
*/
|
|
94
96
|
verifyCoin(txPrebuild) {
|
|
95
|
-
|
|
97
|
+
if (!txPrebuild) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
// Check if the coin or token matches this token's configuration
|
|
101
|
+
const coinMatch = txPrebuild.coin === this.tokenConfig.coin || txPrebuild.coin === this.tokenConfig.type;
|
|
102
|
+
const tokenMatch = !txPrebuild.token ||
|
|
103
|
+
txPrebuild.token === this.tokenConfig.tokenContractAddress ||
|
|
104
|
+
txPrebuild.token === this.tokenConfig.type;
|
|
105
|
+
return coinMatch && tokenMatch;
|
|
96
106
|
}
|
|
97
107
|
/**
|
|
98
|
-
*
|
|
99
|
-
*
|
|
108
|
+
* Get send method arguments for TIP-20 token transfer with memo
|
|
109
|
+
* @param txInfo - Transaction information including recipient and amount
|
|
110
|
+
* @returns Array of send method arguments for ABI encoding
|
|
100
111
|
*/
|
|
101
112
|
getSendMethodArgs(txInfo) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
113
|
+
const { recipient } = txInfo;
|
|
114
|
+
if (!recipient) {
|
|
115
|
+
throw new Error('Recipient is required for token transfer');
|
|
116
|
+
}
|
|
117
|
+
if (!(0, utils_1.isValidAddress)(recipient.address)) {
|
|
118
|
+
throw new Error(`Invalid recipient address: ${recipient.address}`);
|
|
119
|
+
}
|
|
120
|
+
if (!(0, utils_1.isValidTip20Amount)(recipient.amount)) {
|
|
121
|
+
throw new Error(`Invalid amount: ${recipient.amount}`);
|
|
122
|
+
}
|
|
123
|
+
const memo = recipient.memo;
|
|
124
|
+
if (memo && Buffer.byteLength(memo, 'utf-8') > 32) {
|
|
125
|
+
throw new Error('Memo too long: maximum 32 bytes');
|
|
126
|
+
}
|
|
127
|
+
const amountInUnits = (0, utils_1.amountToTip20Units)(recipient.amount);
|
|
128
|
+
const data = (0, utils_1.encodeTip20TransferWithMemo)(recipient.address, amountInUnits, memo);
|
|
129
|
+
return [
|
|
130
|
+
{
|
|
131
|
+
name: 'toAddress',
|
|
132
|
+
type: 'address',
|
|
133
|
+
value: recipient.address,
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
name: 'value',
|
|
137
|
+
type: 'uint',
|
|
138
|
+
value: recipient.amount,
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: 'tokenContractAddress',
|
|
142
|
+
type: 'address',
|
|
143
|
+
value: this.tokenConfig.tokenContractAddress,
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
name: 'data',
|
|
147
|
+
type: 'bytes',
|
|
148
|
+
value: Buffer.from(data.slice(2), 'hex'),
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: 'expireTime',
|
|
152
|
+
type: 'uint',
|
|
153
|
+
value: txInfo.expireTime,
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
name: 'sequenceId',
|
|
157
|
+
type: 'uint',
|
|
158
|
+
value: txInfo.contractSequenceId,
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: 'signature',
|
|
162
|
+
type: 'bytes',
|
|
163
|
+
value: Buffer.from(txInfo.signature.replace('0x', ''), 'hex'),
|
|
164
|
+
},
|
|
165
|
+
];
|
|
105
166
|
}
|
|
106
167
|
/**
|
|
107
|
-
*
|
|
108
|
-
*
|
|
168
|
+
* Get operation object for TIP-20 token transfer (for batch transactions)
|
|
169
|
+
* @param recipient - Recipient information with address, amount, and optional memo
|
|
170
|
+
* @param expireTime - Transaction expiration time
|
|
171
|
+
* @param contractSequenceId - Contract sequence ID
|
|
172
|
+
* @returns Operation array for ABI encoding
|
|
109
173
|
*/
|
|
110
174
|
getOperation(recipient, expireTime, contractSequenceId) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
175
|
+
if (!(0, utils_1.isValidAddress)(recipient.address)) {
|
|
176
|
+
throw new Error(`Invalid recipient address: ${recipient.address}`);
|
|
177
|
+
}
|
|
178
|
+
if (!(0, utils_1.isValidTip20Amount)(recipient.amount)) {
|
|
179
|
+
throw new Error(`Invalid amount: ${recipient.amount}`);
|
|
180
|
+
}
|
|
181
|
+
// Validate memo byte length (handles multi-byte UTF-8 characters)
|
|
182
|
+
if (recipient.memo !== undefined && recipient.memo !== null && recipient.memo !== '') {
|
|
183
|
+
const memoByteLength = new TextEncoder().encode(recipient.memo).length;
|
|
184
|
+
if (memoByteLength > 32) {
|
|
185
|
+
throw new Error(`Memo too long: ${memoByteLength} bytes. Maximum 32 bytes.`);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
const amountInUnits = (0, utils_1.amountToTip20Units)(recipient.amount);
|
|
189
|
+
const data = (0, utils_1.encodeTip20TransferWithMemo)(recipient.address, amountInUnits, recipient.memo);
|
|
190
|
+
// Return format compatible with parent class for ABI encoding
|
|
191
|
+
return [
|
|
192
|
+
['address', 'bytes'],
|
|
193
|
+
[this.tokenConfig.tokenContractAddress, Buffer.from(data.slice(2), 'hex')],
|
|
194
|
+
];
|
|
123
195
|
}
|
|
124
196
|
}
|
|
125
197
|
exports.Tip20Token = Tip20Token;
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwMjBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aXAyMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLGlEQUE0QztBQUU1QyxtQ0FBZ0M7QUFjaEM7Ozs7OztHQU1HO0FBQ0gsTUFBYSxVQUFXLFNBQVEsYUFBSztJQUduQyxZQUFZLEtBQWdCLEVBQUUsV0FBNkI7UUFDekQsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3hFLE1BQU0sV0FBVyxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsc0JBQXNCLENBQUMsTUFBd0I7UUFDcEQsT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLHVCQUF1QixDQUFDLFlBQWlDO1FBQzlELE1BQU0sT0FBTyxHQUFHLFlBQVksSUFBSSxFQUFFLENBQUM7UUFDbkMsTUFBTSxXQUFXLEdBQTJCLEVBQUUsQ0FBQztRQUUvQyxLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzVCLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xFLHlCQUF5QjtZQUN6QixXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztZQUMxRSxnREFBZ0Q7WUFDaEQsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUM1RixDQUFDO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELHlCQUF5QjtJQUN6QixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCx5QkFBeUI7SUFDekIsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUMvQixDQUFDO0lBRUQsd0JBQXdCO0lBQ3hCLElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELHNCQUFzQjtJQUN0QixJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxxQ0FBcUM7SUFDckMsSUFBSSxvQkFBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDO0lBQy9DLENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO0lBQy9CLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVztRQUNULE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsYUFBYTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLHdCQUF3QjtRQUN0QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVUsQ0FBQyxVQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxNQUFnQztRQUNoRCxzQ0FBc0M7UUFDdEMsa0VBQWtFO1FBQ2xFLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVksQ0FDVixTQUE4QyxFQUM5QyxVQUFrQixFQUNsQixrQkFBMEI7UUFFMUIsc0NBQXNDO1FBQ3RDLGtFQUFrRTtRQUNsRSxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsd0JBQXdCLENBQzVCLG9CQUE0QixFQUM1QixhQUFxQixFQUNyQixNQUFlO1FBRWYsb0RBQW9EO1FBQ3BELGdFQUFnRTtRQUNoRSxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7Q0FDRjtBQTdJRCxnQ0E2SUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgeyBCaXRHb0Jhc2UsIENvaW5Db25zdHJ1Y3RvciwgTVBDQWxnb3JpdGhtLCBOYW1lZENvaW5Db25zdHJ1Y3RvciB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBHZXRTZW5kTWV0aG9kQXJnc09wdGlvbnMsIFNlbmRNZXRob2RBcmdzIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtZXRoJztcbmltcG9ydCB7IFRlbXBvIH0gZnJvbSAnLi90ZW1wbyc7XG5cbi8qKlxuICogVElQMjAgVG9rZW4gQ29uZmlndXJhdGlvbiBJbnRlcmZhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaXAyMFRva2VuQ29uZmlnIHtcbiAgdHlwZTogc3RyaW5nOyAvLyBUb2tlbiBpZGVudGlmaWVyIChlLmcuLCAndGVtcG86dXNkYycpXG4gIGNvaW46IHN0cmluZzsgLy8gQmFzZSBjb2luIChlLmcuLCAndGVtcG8nIG9yICd0dGVtcG8nKVxuICBuZXR3b3JrOiAnTWFpbm5ldCcgfCAnVGVzdG5ldCc7XG4gIG5hbWU6IHN0cmluZzsgLy8gVG9rZW4gZnVsbCBuYW1lXG4gIHRva2VuQ29udHJhY3RBZGRyZXNzOiBzdHJpbmc7IC8vIFNtYXJ0IGNvbnRyYWN0IGFkZHJlc3MgKDB4Li4uKVxuICBkZWNpbWFsUGxhY2VzOiBudW1iZXI7IC8vIFRva2VuIGRlY2ltYWwgcGxhY2VzXG59XG5cbi8qKlxuICogVElQMjAgVG9rZW4gSW1wbGVtZW50YXRpb24gKFNrZWxldG9uKVxuICpcbiAqIFRoaXMgaXMgYSBtaW5pbWFsIHNrZWxldG9uIGZvciBUSVAyMCB0b2tlbnMgb24gVGVtcG8gYmxvY2tjaGFpbi5cbiAqXG4gKiBUT0RPOiBBbGwgbWV0aG9kcyB3aWxsIGJlIGltcGxlbWVudGVkIHByb2dyZXNzaXZlbHlcbiAqL1xuZXhwb3J0IGNsYXNzIFRpcDIwVG9rZW4gZXh0ZW5kcyBUZW1wbyB7XG4gIHB1YmxpYyByZWFkb25seSB0b2tlbkNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZztcblxuICBjb25zdHJ1Y3RvcihiaXRnbzogQml0R29CYXNlLCB0b2tlbkNvbmZpZzogVGlwMjBUb2tlbkNvbmZpZykge1xuICAgIGNvbnN0IGNvaW5OYW1lID0gdG9rZW5Db25maWcubmV0d29yayA9PT0gJ01haW5uZXQnID8gJ3RlbXBvJyA6ICd0dGVtcG8nO1xuICAgIGNvbnN0IHN0YXRpY3NDb2luID0gY29pbnMuZ2V0KGNvaW5OYW1lKTtcbiAgICBzdXBlcihiaXRnbywgc3RhdGljc0NvaW4pO1xuICAgIHRoaXMudG9rZW5Db25maWcgPSB0b2tlbkNvbmZpZztcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBjb2luIGNvbnN0cnVjdG9yIGZvciBhIHNwZWNpZmljIHRva2VuXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlVG9rZW5Db25zdHJ1Y3Rvcihjb25maWc6IFRpcDIwVG9rZW5Db25maWcpOiBDb2luQ29uc3RydWN0b3Ige1xuICAgIHJldHVybiAoYml0Z286IEJpdEdvQmFzZSkgPT4gbmV3IFRpcDIwVG9rZW4oYml0Z28sIGNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIHRva2VuIGNvbnN0cnVjdG9ycyBmb3IgYWxsIFRJUDIwIHRva2Vuc1xuICAgKiBAcGFyYW0gdG9rZW5Db25maWdzIC0gQXJyYXkgb2YgdG9rZW4gY29uZmlndXJhdGlvbnMgKG9wdGlvbmFsKVxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVRva2VuQ29uc3RydWN0b3JzKHRva2VuQ29uZmlncz86IFRpcDIwVG9rZW5Db25maWdbXSk6IE5hbWVkQ29pbkNvbnN0cnVjdG9yW10ge1xuICAgIGNvbnN0IGNvbmZpZ3MgPSB0b2tlbkNvbmZpZ3MgfHwgW107XG4gICAgY29uc3QgdG9rZW5zQ3RvcnM6IE5hbWVkQ29pbkNvbnN0cnVjdG9yW10gPSBbXTtcblxuICAgIGZvciAoY29uc3QgdG9rZW4gb2YgY29uZmlncykge1xuICAgICAgY29uc3QgdG9rZW5Db25zdHJ1Y3RvciA9IFRpcDIwVG9rZW4uY3JlYXRlVG9rZW5Db25zdHJ1Y3Rvcih0b2tlbik7XG4gICAgICAvLyBSZWdpc3RlciBieSB0b2tlbiB0eXBlXG4gICAgICB0b2tlbnNDdG9ycy5wdXNoKHsgbmFtZTogdG9rZW4udHlwZSwgY29pbkNvbnN0cnVjdG9yOiB0b2tlbkNvbnN0cnVjdG9yIH0pO1xuICAgICAgLy8gQWxzbyByZWdpc3RlciBieSBjb250cmFjdCBhZGRyZXNzIGZvciBsb29rdXBzXG4gICAgICB0b2tlbnNDdG9ycy5wdXNoKHsgbmFtZTogdG9rZW4udG9rZW5Db250cmFjdEFkZHJlc3MsIGNvaW5Db25zdHJ1Y3RvcjogdG9rZW5Db25zdHJ1Y3RvciB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdG9rZW5zQ3RvcnM7XG4gIH1cblxuICAvKiogR2V0IHRoZSB0b2tlbiB0eXBlICovXG4gIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcudHlwZTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHRva2VuIG5hbWUgKi9cbiAgZ2V0IG5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5uYW1lO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgYmFzZSBjb2luICovXG4gIGdldCBjb2luKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuY29pbjtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIG5ldHdvcmsgKi9cbiAgZ2V0IG5ldHdvcmsoKTogJ01haW5uZXQnIHwgJ1Rlc3RuZXQnIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5uZXR3b3JrO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdG9rZW4gY29udHJhY3QgYWRkcmVzcyAqL1xuICBnZXQgdG9rZW5Db250cmFjdEFkZHJlc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy50b2tlbkNvbnRyYWN0QWRkcmVzcztcbiAgfVxuXG4gIC8qKiBHZXQgdG9rZW4gZGVjaW1hbCBwbGFjZXMgKi9cbiAgZ2V0IGRlY2ltYWxQbGFjZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy50b2tlbkNvbmZpZy5kZWNpbWFsUGxhY2VzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGdldENoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcudHlwZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRGdWxsTmFtZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnVElQMjAgVG9rZW4nO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIGdldEJhc2VGYWN0b3IoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5wb3coMTAsIHRoaXMudG9rZW5Db25maWcuZGVjaW1hbFBsYWNlcyk7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgdmFsdWVsZXNzVHJhbnNmZXJBbGxvd2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBzdXBwb3J0c1RzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRNUENBbGdvcml0aG0oKTogTVBDQWxnb3JpdGhtIHtcbiAgICByZXR1cm4gJ2VjZHNhJztcbiAgfVxuXG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlcjogVmVyaWZ5IGNvaW4gYW5kIHRva2VuIG1hdGNoXG4gICAqIFRPRE86IEltcGxlbWVudCB3aGVuIHRyYW5zYWN0aW9uIGxvZ2ljIGlzIGFkZGVkXG4gICAqL1xuICB2ZXJpZnlDb2luKHR4UHJlYnVpbGQ6IHVua25vd24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlcjogR2V0IHNlbmQgbWV0aG9kIGFyZ3VtZW50c1xuICAgKiBUT0RPOiBJbXBsZW1lbnQgZm9yIHRva2VuIHRyYW5zZmVyc1xuICAgKi9cbiAgZ2V0U2VuZE1ldGhvZEFyZ3ModHhJbmZvOiBHZXRTZW5kTWV0aG9kQXJnc09wdGlvbnMpOiBTZW5kTWV0aG9kQXJnc1tdIHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgZm9yIHRva2VuIHRyYW5zZmVyc1xuICAgIC8vIFJldHVybiBlbXB0eSBhcnJheSB0byBwcmV2ZW50IGRvd25zdHJlYW0gc2VydmljZXMgZnJvbSBicmVha2luZ1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQbGFjZWhvbGRlcjogR2V0IG9wZXJhdGlvbiBmb3IgdG9rZW4gdHJhbnNmZXJcbiAgICogVE9ETzogSW1wbGVtZW50IGZvciB0b2tlbiB0cmFuc2ZlcnNcbiAgICovXG4gIGdldE9wZXJhdGlvbihcbiAgICByZWNpcGllbnQ6IHsgYWRkcmVzczogc3RyaW5nOyBhbW91bnQ6IHN0cmluZyB9LFxuICAgIGV4cGlyZVRpbWU6IG51bWJlcixcbiAgICBjb250cmFjdFNlcXVlbmNlSWQ6IG51bWJlclxuICApOiAoc3RyaW5nIHwgQnVmZmVyKVtdW10ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBmb3IgdG9rZW4gdHJhbnNmZXJzXG4gICAgLy8gUmV0dXJuIGVtcHR5IGFycmF5IHRvIHByZXZlbnQgZG93bnN0cmVhbSBzZXJ2aWNlcyBmcm9tIGJyZWFraW5nXG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIFBsYWNlaG9sZGVyOiBRdWVyeSB0b2tlbiBiYWxhbmNlXG4gICAqIFRPRE86IEltcGxlbWVudCB1c2luZyBUZW1wbyBibG9jayBleHBsb3JlciBvciBSUENcbiAgICovXG4gIGFzeW5jIHF1ZXJ5QWRkcmVzc1Rva2VuQmFsYW5jZShcbiAgICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nLFxuICAgIHdhbGxldEFkZHJlc3M6IHN0cmluZyxcbiAgICBhcGlLZXk/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAvLyBUT0RPOiBJbXBsZW1lbnQgdXNpbmcgVGVtcG8gYmxvY2sgZXhwbG9yZXIgb3IgUlBDXG4gICAgLy8gUmV0dXJuIDAgYmFsYW5jZSB0byBwcmV2ZW50IGRvd25zdHJlYW0gc2VydmljZXMgZnJvbSBicmVha2luZ1xuICAgIHJldHVybiAnMCc7XG4gIH1cbn1cbiJdfQ==
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwMjBUb2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90aXAyMFRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLGlEQUE0QztBQUc1QyxtQ0FBZ0M7QUFDaEMsdUNBQWtIO0FBY2xIOzs7Ozs7R0FNRztBQUNILE1BQWEsVUFBVyxTQUFRLGFBQUs7SUFHbkMsWUFBWSxLQUFnQixFQUFFLFdBQTZCO1FBQ3pELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxPQUFPLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztRQUN4RSxNQUFNLFdBQVcsR0FBRyxlQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUFDLE1BQXdCO1FBQ3BELE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxZQUFpQztRQUM5RCxNQUFNLE9BQU8sR0FBRyxZQUFZLElBQUksRUFBRSxDQUFDO1FBQ25DLE1BQU0sV0FBVyxHQUEyQixFQUFFLENBQUM7UUFFL0MsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUM1QixNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsRSx5QkFBeUI7WUFDekIsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0Is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QUMsQ0FBQztZQUMvRSxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLElBQUEsMEJBQWtCLEVBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzNELE1BQU0sSUFBSSxHQUFHLElBQUEsbUNBQTJCLEVBQUMsU0FBUyxDQUFDLE9BQWtCLEVBQUUsYUFBYSxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV0Ryw4REFBOEQ7UUFDOUQsT0FBTztZQUNMLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQztZQUNwQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQzNFLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE3TkQsZ0NBNk5DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHsgQml0R29CYXNlLCBDb2luQ29uc3RydWN0b3IsIE1QQ0FsZ29yaXRobSwgTmFtZWRDb2luQ29uc3RydWN0b3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBjb2lucyB9IGZyb20gJ0BiaXRnby1iZXRhL3N0YXRpY3MnO1xuaW1wb3J0IHsgR2V0U2VuZE1ldGhvZEFyZ3NPcHRpb25zLCBTZW5kTWV0aG9kQXJncyB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgeyBBZGRyZXNzIH0gZnJvbSAnLi9saWIvdHlwZXMnO1xuaW1wb3J0IHsgVGVtcG8gfSBmcm9tICcuL3RlbXBvJztcbmltcG9ydCB7IGVuY29kZVRpcDIwVHJhbnNmZXJXaXRoTWVtbywgYW1vdW50VG9UaXAyMFVuaXRzLCBpc1ZhbGlkQWRkcmVzcywgaXNWYWxpZFRpcDIwQW1vdW50IH0gZnJvbSAnLi9saWIvdXRpbHMnO1xuXG4vKipcbiAqIFRJUDIwIFRva2VuIENvbmZpZ3VyYXRpb24gSW50ZXJmYWNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGlwMjBUb2tlbkNvbmZpZyB7XG4gIHR5cGU6IHN0cmluZzsgLy8gVG9rZW4gaWRlbnRpZmllciAoZS5nLiwgJ3RlbXBvOnVzZGMnKVxuICBjb2luOiBzdHJpbmc7IC8vIEJhc2UgY29pbiAoZS5nLiwgJ3RlbXBvJyBvciAndHRlbXBvJylcbiAgbmV0d29yazogJ01haW5uZXQnIHwgJ1Rlc3RuZXQnO1xuICBuYW1lOiBzdHJpbmc7IC8vIFRva2VuIGZ1bGwgbmFtZVxuICB0b2tlbkNvbnRyYWN0QWRkcmVzczogc3RyaW5nOyAvLyBTbWFydCBjb250cmFjdCBhZGRyZXNzICgweC4uLilcbiAgZGVjaW1hbFBsYWNlczogbnVtYmVyOyAvLyBUb2tlbiBkZWNpbWFsIHBsYWNlc1xufVxuXG4vKipcbiAqIFRJUDIwIFRva2VuIEltcGxlbWVudGF0aW9uIChTa2VsZXRvbilcbiAqXG4gKiBUaGlzIGlzIGEgbWluaW1hbCBza2VsZXRvbiBmb3IgVElQMjAgdG9rZW5zIG9uIFRlbXBvIGJsb2NrY2hhaW4uXG4gKlxuICogVE9ETzogQWxsIG1ldGhvZHMgd2lsbCBiZSBpbXBsZW1lbnRlZCBwcm9ncmVzc2l2ZWx5XG4gKi9cbmV4cG9ydCBjbGFzcyBUaXAyMFRva2VuIGV4dGVuZHMgVGVtcG8ge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9rZW5Db25maWc6IFRpcDIwVG9rZW5Db25maWc7XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgdG9rZW5Db25maWc6IFRpcDIwVG9rZW5Db25maWcpIHtcbiAgICBjb25zdCBjb2luTmFtZSA9IHRva2VuQ29uZmlnLm5ldHdvcmsgPT09ICdNYWlubmV0JyA/ICd0ZW1wbycgOiAndHRlbXBvJztcbiAgICBjb25zdCBzdGF0aWNzQ29pbiA9IGNvaW5zLmdldChjb2luTmFtZSk7XG4gICAgc3VwZXIoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgICB0aGlzLnRva2VuQ29uZmlnID0gdG9rZW5Db25maWc7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgY29pbiBjb25zdHJ1Y3RvciBmb3IgYSBzcGVjaWZpYyB0b2tlblxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZVRva2VuQ29uc3RydWN0b3IoY29uZmlnOiBUaXAyMFRva2VuQ29uZmlnKTogQ29pbkNvbnN0cnVjdG9yIHtcbiAgICByZXR1cm4gKGJpdGdvOiBCaXRHb0Jhc2UpID0+IG5ldyBUaXAyMFRva2VuKGJpdGdvLCBjb25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSB0b2tlbiBjb25zdHJ1Y3RvcnMgZm9yIGFsbCBUSVAyMCB0b2tlbnNcbiAgICogQHBhcmFtIHRva2VuQ29uZmlncyAtIEFycmF5IG9mIHRva2VuIGNvbmZpZ3VyYXRpb25zIChvcHRpb25hbClcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVUb2tlbkNvbnN0cnVjdG9ycyh0b2tlbkNvbmZpZ3M/OiBUaXAyMFRva2VuQ29uZmlnW10pOiBOYW1lZENvaW5Db25zdHJ1Y3RvcltdIHtcbiAgICBjb25zdCBjb25maWdzID0gdG9rZW5Db25maWdzIHx8IFtdO1xuICAgIGNvbnN0IHRva2Vuc0N0b3JzOiBOYW1lZENvaW5Db25zdHJ1Y3RvcltdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IHRva2VuIG9mIGNvbmZpZ3MpIHtcbiAgICAgIGNvbnN0IHRva2VuQ29uc3RydWN0b3IgPSBUaXAyMFRva2VuLmNyZWF0ZVRva2VuQ29uc3RydWN0b3IodG9rZW4pO1xuICAgICAgLy8gUmVnaXN0ZXIgYnkgdG9rZW4gdHlwZVxuICAgICAgdG9rZW5zQ3RvcnMucHVzaCh7IG5hbWU6IHRva2VuLnR5cGUsIGNvaW5Db25zdHJ1Y3RvcjogdG9rZW5Db25zdHJ1Y3RvciB9KTtcbiAgICAgIC8vIEFsc28gcmVnaXN0ZXIgYnkgY29udHJhY3QgYWRkcmVzcyBmb3IgbG9va3Vwc1xuICAgICAgdG9rZW5zQ3RvcnMucHVzaCh7IG5hbWU6IHRva2VuLnRva2VuQ29udHJhY3RBZGRyZXNzLCBjb2luQ29uc3RydWN0b3I6IHRva2VuQ29uc3RydWN0b3IgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRva2Vuc0N0b3JzO1xuICB9XG5cbiAgLyoqIEdldCB0aGUgdG9rZW4gdHlwZSAqL1xuICBnZXQgdHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gIH1cblxuICAvKiogR2V0IHRoZSB0b2tlbiBuYW1lICovXG4gIGdldCBuYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcubmFtZTtcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIGJhc2UgY29pbiAqL1xuICBnZXQgY29pbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLmNvaW47XG4gIH1cblxuICAvKiogR2V0IHRoZSBuZXR3b3JrICovXG4gIGdldCBuZXR3b3JrKCk6ICdNYWlubmV0JyB8ICdUZXN0bmV0JyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcubmV0d29yaztcbiAgfVxuXG4gIC8qKiBHZXQgdGhlIHRva2VuIGNvbnRyYWN0IGFkZHJlc3MgKi9cbiAgZ2V0IHRva2VuQ29udHJhY3RBZGRyZXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcudG9rZW5Db250cmFjdEFkZHJlc3M7XG4gIH1cblxuICAvKiogR2V0IHRva2VuIGRlY2ltYWwgcGxhY2VzICovXG4gIGdldCBkZWNpbWFsUGxhY2VzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5Db25maWcuZGVjaW1hbFBsYWNlcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRDaGFpbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1RJUDIwIFRva2VuJztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIE1hdGgucG93KDEwLCB0aGlzLnRva2VuQ29uZmlnLmRlY2ltYWxQbGFjZXMpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0RG9jICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZ5IHRoYXQgdGhlIHRyYW5zYWN0aW9uIGNvaW4vdG9rZW4gbWF0Y2hlcyB0aGlzIHRva2VuXG4gICAqIEBwYXJhbSB0eFByZWJ1aWxkIC0gVHJhbnNhY3Rpb24gcHJlYnVpbGQgb2JqZWN0XG4gICAqIEByZXR1cm5zIHRydWUgaWYgdmFsaWQsIGZhbHNlIG90aGVyd2lzZVxuICAgKi9cbiAgdmVyaWZ5Q29pbih0eFByZWJ1aWxkOiB7IGNvaW4/OiBzdHJpbmc7IHRva2VuPzogc3RyaW5nIH0pOiBib29sZWFuIHtcbiAgICBpZiAoIXR4UHJlYnVpbGQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBDaGVjayBpZiB0aGUgY29pbiBvciB0b2tlbiBtYXRjaGVzIHRoaXMgdG9rZW4ncyBjb25maWd1cmF0aW9uXG4gICAgY29uc3QgY29pbk1hdGNoID0gdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLmNvaW4gfHwgdHhQcmVidWlsZC5jb2luID09PSB0aGlzLnRva2VuQ29uZmlnLnR5cGU7XG4gICAgY29uc3QgdG9rZW5NYXRjaCA9XG4gICAgICAhdHhQcmVidWlsZC50b2tlbiB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50b2tlbkNvbnRyYWN0QWRkcmVzcyB8fFxuICAgICAgdHhQcmVidWlsZC50b2tlbiA9PT0gdGhpcy50b2tlbkNvbmZpZy50eXBlO1xuXG4gICAgcmV0dXJuIGNvaW5NYXRjaCAmJiB0b2tlbk1hdGNoO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIFRJUC0yMCB0b2tlbiB0cmFuc2ZlciB3aXRoIG1lbW9cbiAgICogQHBhcmFtIHR4SW5mbyAtIFRyYW5zYWN0aW9uIGluZm9ybWF0aW9uIGluY2x1ZGluZyByZWNpcGllbnQgYW5kIGFtb3VudFxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBzZW5kIG1ldGhvZCBhcmd1bWVudHMgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0U2VuZE1ldGhvZEFyZ3ModHhJbmZvOiBHZXRTZW5kTWV0aG9kQXJnc09wdGlvbnMpOiBTZW5kTWV0aG9kQXJnc1tdIHtcbiAgICBjb25zdCB7IHJlY2lwaWVudCB9ID0gdHhJbmZvO1xuXG4gICAgaWYgKCFyZWNpcGllbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVjaXBpZW50IGlzIHJlcXVpcmVkIGZvciB0b2tlbiB0cmFuc2ZlcicpO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZEFkZHJlc3MocmVjaXBpZW50LmFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcmVjaXBpZW50IGFkZHJlc3M6ICR7cmVjaXBpZW50LmFkZHJlc3N9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkVGlwMjBBbW91bnQocmVjaXBpZW50LmFtb3VudCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBhbW91bnQ6ICR7cmVjaXBpZW50LmFtb3VudH1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBtZW1vID0gKHJlY2lwaWVudCBhcyB7IG1lbW8/OiBzdHJpbmcgfSkubWVtbztcblxuICAgIGlmIChtZW1vICYmIEJ1ZmZlci5ieXRlTGVuZ3RoKG1lbW8sICd1dGYtOCcpID4gMzIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTWVtbyB0b28gbG9uZzogbWF4aW11bSAzMiBieXRlcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGFtb3VudEluVW5pdHMgPSBhbW91bnRUb1RpcDIwVW5pdHMocmVjaXBpZW50LmFtb3VudCk7XG4gICAgY29uc3QgZGF0YSA9IGVuY29kZVRpcDIwVHJhbnNmZXJXaXRoTWVtbyhyZWNpcGllbnQuYWRkcmVzcyBhcyBBZGRyZXNzLCBhbW91bnRJblVuaXRzLCBtZW1vKTtcblxuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0b0FkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiByZWNpcGllbnQuYWRkcmVzcyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd2YWx1ZScsXG4gICAgICAgIHR5cGU6ICd1aW50JyxcbiAgICAgICAgdmFsdWU6IHJlY2lwaWVudC5hbW91bnQsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndG9rZW5Db250cmFjdEFkZHJlc3MnLFxuICAgICAgICB0eXBlOiAnYWRkcmVzcycsXG4gICAgICAgIHZhbHVlOiB0aGlzLnRva2VuQ29uZmlnLnRva2VuQ29udHJhY3RBZGRyZXNzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2RhdGEnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20oZGF0YS5zbGljZSgyKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2V4cGlyZVRpbWUnLFxuICAgICAgICB0eXBlOiAndWludCcsXG4gICAgICAgIHZhbHVlOiB0eEluZm8uZXhwaXJlVGltZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzZXF1ZW5jZUlkJyxcbiAgICAgICAgdHlwZTogJ3VpbnQnLFxuICAgICAgICB2YWx1ZTogdHhJbmZvLmNvbnRyYWN0U2VxdWVuY2VJZCxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdzaWduYXR1cmUnLFxuICAgICAgICB0eXBlOiAnYnl0ZXMnLFxuICAgICAgICB2YWx1ZTogQnVmZmVyLmZyb20odHhJbmZvLnNpZ25hdHVyZS5yZXBsYWNlKCcweCcsICcnKSwgJ2hleCcpLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBvcGVyYXRpb24gb2JqZWN0IGZvciBUSVAtMjAgdG9rZW4gdHJhbnNmZXIgKGZvciBiYXRjaCB0cmFuc2FjdGlvbnMpXG4gICAqIEBwYXJhbSByZWNpcGllbnQgLSBSZWNpcGllbnQgaW5mb3JtYXRpb24gd2l0aCBhZGRyZXNzLCBhbW91bnQsIGFuZCBvcHRpb25hbCBtZW1vXG4gICAqIEBwYXJhbSBleHBpcmVUaW1lIC0gVHJhbnNhY3Rpb24gZXhwaXJhdGlvbiB0aW1lXG4gICAqIEBwYXJhbSBjb250cmFjdFNlcXVlbmNlSWQgLSBDb250cmFjdCBzZXF1ZW5jZSBJRFxuICAgKiBAcmV0dXJucyBPcGVyYXRpb24gYXJyYXkgZm9yIEFCSSBlbmNvZGluZ1xuICAgKi9cbiAgZ2V0T3BlcmF0aW9uKFxuICAgIHJlY2lwaWVudDogeyBhZGRyZXNzOiBzdHJpbmc7IGFtb3VudDogc3RyaW5nOyBtZW1vPzogc3RyaW5nIH0sXG4gICAgZXhwaXJlVGltZTogbnVtYmVyLFxuICAgIGNvbnRyYWN0U2VxdWVuY2VJZDogbnVtYmVyXG4gICk6IChzdHJpbmcgfCBCdWZmZXIpW11bXSB7XG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhyZWNpcGllbnQuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCByZWNpcGllbnQgYWRkcmVzczogJHtyZWNpcGllbnQuYWRkcmVzc31gKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRUaXAyMEFtb3VudChyZWNpcGllbnQuYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGFtb3VudDogJHtyZWNpcGllbnQuYW1vdW50fWApO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIG1lbW8gYnl0ZSBsZW5ndGggKGhhbmRsZXMgbXVsdGktYnl0ZSBVVEYtOCBjaGFyYWN0ZXJzKVxuICAgIGlmIChyZWNpcGllbnQubWVtbyAhPT0gdW5kZWZpbmVkICYmIHJlY2lwaWVudC5tZW1vICE9PSBudWxsICYmIHJlY2lwaWVudC5tZW1vICE9PSAnJykge1xuICAgICAgY29uc3QgbWVtb0J5dGVMZW5ndGggPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUocmVjaXBpZW50Lm1lbW8pLmxlbmd0aDtcbiAgICAgIGlmIChtZW1vQnl0ZUxlbmd0aCA+IDMyKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWVtbyB0b28gbG9uZzogJHttZW1vQnl0ZUxlbmd0aH0gYnl0ZXMuIE1heGltdW0gMzIgYnl0ZXMuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYW1vdW50SW5Vbml0cyA9IGFtb3VudFRvVGlwMjBVbml0cyhyZWNpcGllbnQuYW1vdW50KTtcbiAgICBjb25zdCBkYXRhID0gZW5jb2RlVGlwMjBUcmFuc2ZlcldpdGhNZW1vKHJlY2lwaWVudC5hZGRyZXNzIGFzIEFkZHJlc3MsIGFtb3VudEluVW5pdHMsIHJlY2lwaWVudC5tZW1vKTtcblxuICAgIC8vIFJldHVybiBmb3JtYXQgY29tcGF0aWJsZSB3aXRoIHBhcmVudCBjbGFzcyBmb3IgQUJJIGVuY29kaW5nXG4gICAgcmV0dXJuIFtcbiAgICAgIFsnYWRkcmVzcycsICdieXRlcyddLFxuICAgICAgW3RoaXMudG9rZW5Db25maWcudG9rZW5Db250cmFjdEFkZHJlc3MsIEJ1ZmZlci5mcm9tKGRhdGEuc2xpY2UoMiksICdoZXgnKV0sXG4gICAgXTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tip20.d.ts","sourceRoot":"","sources":["../../../test/integration/tip20.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const mocha_1 = require("mocha");
|
|
4
|
+
const transactionBuilder_1 = require("../../src/lib/transactionBuilder");
|
|
5
|
+
const statics_1 = require("@bitgo-beta/statics");
|
|
6
|
+
const mockCoinConfig = statics_1.coins.get('ttempo');
|
|
7
|
+
(0, mocha_1.describe)('TIP-20 Integration Tests', () => {
|
|
8
|
+
const ALPHA_USD_TOKEN = '0x...';
|
|
9
|
+
const BETA_USD_TOKEN = '0x...';
|
|
10
|
+
const THETA_USD_TOKEN = '0x...';
|
|
11
|
+
const RECEIVER_ADDRESS = '0x...';
|
|
12
|
+
mocha_1.describe.skip('Single Transfer', () => {
|
|
13
|
+
(0, mocha_1.it)('should build single TIP-20 transfer without memo', async () => {
|
|
14
|
+
const builder = new transactionBuilder_1.Tip20TransactionBuilder(mockCoinConfig);
|
|
15
|
+
builder.addOperation({
|
|
16
|
+
token: ALPHA_USD_TOKEN,
|
|
17
|
+
to: RECEIVER_ADDRESS,
|
|
18
|
+
amount: '1.0',
|
|
19
|
+
});
|
|
20
|
+
builder.feeToken(ALPHA_USD_TOKEN);
|
|
21
|
+
// TODO: const tx = await builder.build();
|
|
22
|
+
});
|
|
23
|
+
(0, mocha_1.it)('should build single TIP-20 transfer with memo', async () => {
|
|
24
|
+
const builder = new transactionBuilder_1.Tip20TransactionBuilder(mockCoinConfig);
|
|
25
|
+
builder.addOperation({
|
|
26
|
+
token: ALPHA_USD_TOKEN,
|
|
27
|
+
to: RECEIVER_ADDRESS,
|
|
28
|
+
amount: '1.0',
|
|
29
|
+
memo: '12345',
|
|
30
|
+
});
|
|
31
|
+
builder.feeToken(ALPHA_USD_TOKEN);
|
|
32
|
+
// TODO: const tx = await builder.build();
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
mocha_1.describe.skip('Batch Transfer', () => {
|
|
36
|
+
(0, mocha_1.it)('should build batch transfer with multiple memos', async () => {
|
|
37
|
+
const builder = new transactionBuilder_1.Tip20TransactionBuilder(mockCoinConfig);
|
|
38
|
+
builder
|
|
39
|
+
.addOperation({
|
|
40
|
+
token: ALPHA_USD_TOKEN,
|
|
41
|
+
to: RECEIVER_ADDRESS,
|
|
42
|
+
amount: '0.5',
|
|
43
|
+
memo: '1001',
|
|
44
|
+
})
|
|
45
|
+
.addOperation({
|
|
46
|
+
token: ALPHA_USD_TOKEN,
|
|
47
|
+
to: RECEIVER_ADDRESS,
|
|
48
|
+
amount: '0.3',
|
|
49
|
+
memo: '1002',
|
|
50
|
+
})
|
|
51
|
+
.addOperation({
|
|
52
|
+
token: ALPHA_USD_TOKEN,
|
|
53
|
+
to: RECEIVER_ADDRESS,
|
|
54
|
+
amount: '0.2',
|
|
55
|
+
memo: '1003',
|
|
56
|
+
});
|
|
57
|
+
builder.feeToken(ALPHA_USD_TOKEN);
|
|
58
|
+
// TODO: const tx = await builder.build();
|
|
59
|
+
});
|
|
60
|
+
(0, mocha_1.it)('should build multi-token batch transfer', async () => {
|
|
61
|
+
const builder = new transactionBuilder_1.Tip20TransactionBuilder(mockCoinConfig);
|
|
62
|
+
builder
|
|
63
|
+
.addOperation({
|
|
64
|
+
token: ALPHA_USD_TOKEN,
|
|
65
|
+
to: RECEIVER_ADDRESS,
|
|
66
|
+
amount: '1.5',
|
|
67
|
+
memo: '2001',
|
|
68
|
+
})
|
|
69
|
+
.addOperation({
|
|
70
|
+
token: BETA_USD_TOKEN,
|
|
71
|
+
to: RECEIVER_ADDRESS,
|
|
72
|
+
amount: '2.0',
|
|
73
|
+
memo: '2002',
|
|
74
|
+
})
|
|
75
|
+
.addOperation({
|
|
76
|
+
token: THETA_USD_TOKEN,
|
|
77
|
+
to: RECEIVER_ADDRESS,
|
|
78
|
+
amount: '0.75',
|
|
79
|
+
memo: '2003',
|
|
80
|
+
});
|
|
81
|
+
builder.feeToken(BETA_USD_TOKEN);
|
|
82
|
+
// TODO: const tx = await builder.build();
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
mocha_1.describe.skip('Transaction Signing', () => {
|
|
86
|
+
(0, mocha_1.it)('should sign and serialize transaction', async () => {
|
|
87
|
+
const builder = new transactionBuilder_1.Tip20TransactionBuilder(mockCoinConfig);
|
|
88
|
+
builder.addOperation({
|
|
89
|
+
token: ALPHA_USD_TOKEN,
|
|
90
|
+
to: RECEIVER_ADDRESS,
|
|
91
|
+
amount: '1.0',
|
|
92
|
+
memo: '9999',
|
|
93
|
+
});
|
|
94
|
+
builder.feeToken(ALPHA_USD_TOKEN);
|
|
95
|
+
// TODO: Implement signing with ethers.js Wallet
|
|
96
|
+
// TODO: const tx = await builder.build();
|
|
97
|
+
// TODO: tx.setSignature(signature);
|
|
98
|
+
// TODO: const serialized = await tx.toBroadcastFormat();
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
mocha_1.describe.skip('Fee Token Selection', () => {
|
|
102
|
+
(0, mocha_1.it)('should pay fees with different token than transfer', async () => {
|
|
103
|
+
const builder = new transactionBuilder_1.Tip20TransactionBuilder(mockCoinConfig);
|
|
104
|
+
builder.addOperation({
|
|
105
|
+
token: ALPHA_USD_TOKEN,
|
|
106
|
+
to: RECEIVER_ADDRESS,
|
|
107
|
+
amount: '1.0',
|
|
108
|
+
memo: '5555',
|
|
109
|
+
});
|
|
110
|
+
builder.feeToken(BETA_USD_TOKEN);
|
|
111
|
+
// TODO: const tx = await builder.build();
|
|
112
|
+
});
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwMjAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi90ZXN0L2ludGVncmF0aW9uL3RpcDIwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsaUNBQXFDO0FBQ3JDLHlFQUEyRTtBQUUzRSxpREFBNEM7QUFFNUMsTUFBTSxjQUFjLEdBQUcsZUFBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUUzQyxJQUFBLGdCQUFRLEVBQUMsMEJBQTBCLEVBQUUsR0FBRyxFQUFFO0lBQ3hDLE1BQU0sZUFBZSxHQUFHLE9BQWtCLENBQUM7SUFDM0MsTUFBTSxjQUFjLEdBQUcsT0FBa0IsQ0FBQztJQUMxQyxNQUFNLGVBQWUsR0FBRyxPQUFrQixDQUFDO0lBQzNDLE1BQU0sZ0JBQWdCLEdBQUcsT0FBa0IsQ0FBQztJQUU1QyxnQkFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7UUFDcEMsSUFBQSxVQUFFLEVBQUMsa0RBQWtELEVBQUUsS0FBSyxJQUFJLEVBQUU7WUFDaEUsTUFBTSxPQUFPLEdBQUcsSUFBSSw0Q0FBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1RCxPQUFPLENBQUMsWUFBWSxDQUFDO2dCQUNuQixLQUFLLEVBQUUsZUFBZTtnQkFDdEIsRUFBRSxFQUFFLGdCQUFnQjtnQkFDcEIsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDLENBQUM7WUFDSCxPQUFPLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xDLDBDQUEwQztRQUM1QyxDQUFDLENBQUMsQ0FBQztRQUVILElBQUEsVUFBRSxFQUFDLCtDQUErQyxFQUFFLEtBQUssSUFBSSxFQUFFO1lBQzdELE1BQU0sT0FBTyxHQUFHLElBQUksNENBQXVCLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUQsT0FBTyxDQUFDLFlBQVksQ0FBQztnQkFDbkIsS0FBSyxFQUFFLGVBQWU7Z0JBQ3RCLEVBQUUsRUFBRSxnQkFBZ0I7Z0JBQ3BC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QU8sR0FBRyxJQUFJLDRDQUF1QixDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVELE9BQU8sQ0FBQyxZQUFZLENBQUM7Z0JBQ25CLEtBQUssRUFBRSxlQUFlO2dCQUN0QixFQUFFLEVBQUUsZ0JBQWdCO2dCQUNwQixNQUFNLEVBQUUsS0FBSztnQkFDYixJQUFJLEVBQUUsTUFBTTthQUNiLENBQUMsQ0FBQztZQUNILE9BQU8sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDakMsMENBQTBDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGRlc2NyaWJlLCBpdCB9IGZyb20gJ21vY2hhJztcbmltcG9ydCB7IFRpcDIwVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuaW1wb3J0IHsgQWRkcmVzcyB9IGZyb20gJy4uLy4uL3NyYy9saWIvdHlwZXMnO1xuaW1wb3J0IHsgY29pbnMgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcblxuY29uc3QgbW9ja0NvaW5Db25maWcgPSBjb2lucy5nZXQoJ3R0ZW1wbycpO1xuXG5kZXNjcmliZSgnVElQLTIwIEludGVncmF0aW9uIFRlc3RzJywgKCkgPT4ge1xuICBjb25zdCBBTFBIQV9VU0RfVE9LRU4gPSAnMHguLi4nIGFzIEFkZHJlc3M7XG4gIGNvbnN0IEJFVEFfVVNEX1RPS0VOID0gJzB4Li4uJyBhcyBBZGRyZXNzO1xuICBjb25zdCBUSEVUQV9VU0RfVE9LRU4gPSAnMHguLi4nIGFzIEFkZHJlc3M7XG4gIGNvbnN0IFJFQ0VJVkVSX0FERFJFU1MgPSAnMHguLi4nIGFzIEFkZHJlc3M7XG5cbiAgZGVzY3JpYmUuc2tpcCgnU2luZ2xlIFRyYW5zZmVyJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgc2luZ2xlIFRJUC0yMCB0cmFuc2ZlciB3aXRob3V0IG1lbW8nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IFRpcDIwVHJhbnNhY3Rpb25CdWlsZGVyKG1vY2tDb2luQ29uZmlnKTtcbiAgICAgIGJ1aWxkZXIuYWRkT3BlcmF0aW9uKHtcbiAgICAgICAgdG9rZW46IEFMUEhBX1VTRF9UT0tFTixcbiAgICAgICAgdG86IFJFQ0VJVkVSX0FERFJFU1MsXG4gICAgICAgIGFtb3VudDogJzEuMCcsXG4gICAgICB9KTtcbiAgICAgIGJ1aWxkZXIuZmVlVG9rZW4oQUxQSEFfVVNEX1RPS0VOKTtcbiAgICAgIC8vIFRPRE86IGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBzaW5nbGUgVElQLTIwIHRyYW5zZmVyIHdpdGggbWVtbycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVGlwMjBUcmFuc2FjdGlvbkJ1aWxkZXIobW9ja0NvaW5Db25maWcpO1xuICAgICAgYnVpbGRlci5hZGRPcGVyYXRpb24oe1xuICAgICAgICB0b2tlbjogQUxQSEFfVVNEX1RPS0VOLFxuICAgICAgICB0bzogUkVDRUlWRVJfQUREUkVTUyxcbiAgICAgICAgYW1vdW50OiAnMS4wJyxcbiAgICAgICAgbWVtbzogJzEyMzQ1JyxcbiAgICAgIH0pO1xuICAgICAgYnVpbGRlci5mZWVUb2tlbihBTFBIQV9VU0RfVE9LRU4pO1xuICAgICAgLy8gVE9ETzogY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlLnNraXAoJ0JhdGNoIFRyYW5zZmVyJywgKCkgPT4ge1xuICAgIGl0KCdzaG91bGQgYnVpbGQgYmF0Y2ggdHJhbnNmZXIgd2l0aCBtdWx0aXBsZSBtZW1vcycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVGlwMjBUcmFuc2FjdGlvbkJ1aWxkZXIobW9ja0NvaW5Db25maWcpO1xuICAgICAgYnVpbGRlclxuICAgICAgICAuYWRkT3BlcmF0aW9uKHtcbiAgICAgICAgICB0b2tlbjogQUxQSEFfVVNEX1RPS0VOLFxuICAgICAgICAgIHRvOiBSRUNFSVZFUl9BRERSRVNTLFxuICAgICAgICAgIGFtb3VudDogJzAuNScsXG4gICAgICAgICAgbWVtbzogJzEwMDEnLFxuICAgICAgICB9KVxuICAgICAgICAuYWRkT3BlcmF0aW9uKHtcbiAgICAgICAgICB0b2tlbjogQUxQSEFfVVNEX1RPS0VOLFxuICAgICAgICAgIHRvOiBSRUNFSVZFUl9BRERSRVNTLFxuICAgICAgICAgIGFtb3VudDogJzAuMycsXG4gICAgICAgICAgbWVtbzogJzEwMDInLFxuICAgICAgICB9KVxuICAgICAgICAuYWRkT3BlcmF0aW9uKHtcbiAgICAgICAgICB0b2tlbjogQUxQSEFfVVNEX1RPS0VOLFxuICAgICAgICAgIHRvOiBSRUNFSVZFUl9BRERSRVNTLFxuICAgICAgICAgIGFtb3VudDogJzAuMicsXG4gICAgICAgICAgbWVtbzogJzEwMDMnLFxuICAgICAgICB9KTtcbiAgICAgIGJ1aWxkZXIuZmVlVG9rZW4oQUxQSEFfVVNEX1RPS0VOKTtcbiAgICAgIC8vIFRPRE86IGNvbnN0IHR4ID0gYXdhaXQgYnVpbGRlci5idWlsZCgpO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBidWlsZCBtdWx0aS10b2tlbiBiYXRjaCB0cmFuc2ZlcicsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGJ1aWxkZXIgPSBuZXcgVGlwMjBUcmFuc2FjdGlvbkJ1aWxkZXIobW9ja0NvaW5Db25maWcpO1xuICAgICAgYnVpbGRlclxuICAgICAgICAuYWRkT3BlcmF0aW9uKHtcbiAgICAgICAgICB0b2tlbjogQUxQSEFfVVNEX1RPS0VOLFxuICAgICAgICAgIHRvOiBSRUNFSVZFUl9BRERSRVNTLFxuICAgICAgICAgIGFtb3VudDogJzEuNScsXG4gICAgICAgICAgbWVtbzogJzIwMDEnLFxuICAgICAgICB9KVxuICAgICAgICAuYWRkT3BlcmF0aW9uKHtcbiAgICAgICAgICB0b2tlbjogQkVUQV9VU0RfVE9LRU4sXG4gICAgICAgICAgdG86IFJFQ0VJVkVSX0FERFJFU1MsXG4gICAgICAgICAgYW1vdW50OiAnMi4wJyxcbiAgICAgICAgICBtZW1vOiAnMjAwMicsXG4gICAgICAgIH0pXG4gICAgICAgIC5hZGRPcGVyYXRpb24oe1xuICAgICAgICAgIHRva2VuOiBUSEVUQV9VU0RfVE9LRU4sXG4gICAgICAgICAgdG86IFJFQ0VJVkVSX0FERFJFU1MsXG4gICAgICAgICAgYW1vdW50OiAnMC43NScsXG4gICAgICAgICAgbWVtbzogJzIwMDMnLFxuICAgICAgICB9KTtcbiAgICAgIGJ1aWxkZXIuZmVlVG9rZW4oQkVUQV9VU0RfVE9LRU4pO1xuICAgICAgLy8gVE9ETzogY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlLnNraXAoJ1RyYW5zYWN0aW9uIFNpZ25pbmcnLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBzaWduIGFuZCBzZXJpYWxpemUgdHJhbnNhY3Rpb24nLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBidWlsZGVyID0gbmV3IFRpcDIwVHJhbnNhY3Rpb25CdWlsZGVyKG1vY2tDb2luQ29uZmlnKTtcbiAgICAgIGJ1aWxkZXIuYWRkT3BlcmF0aW9uKHtcbiAgICAgICAgdG9rZW46IEFMUEhBX1VTRF9UT0tFTixcbiAgICAgICAgdG86IFJFQ0VJVkVSX0FERFJFU1MsXG4gICAgICAgIGFtb3VudDogJzEuMCcsXG4gICAgICAgIG1lbW86ICc5OTk5JyxcbiAgICAgIH0pO1xuICAgICAgYnVpbGRlci5mZWVUb2tlbihBTFBIQV9VU0RfVE9LRU4pO1xuICAgICAgLy8gVE9ETzogSW1wbGVtZW50IHNpZ25pbmcgd2l0aCBldGhlcnMuanMgV2FsbGV0XG4gICAgICAvLyBUT0RPOiBjb25zdCB0eCA9IGF3YWl0IGJ1aWxkZXIuYnVpbGQoKTtcbiAgICAgIC8vIFRPRE86IHR4LnNldFNpZ25hdHVyZShzaWduYXR1cmUpO1xuICAgICAgLy8gVE9ETzogY29uc3Qgc2VyaWFsaXplZCA9IGF3YWl0IHR4LnRvQnJvYWRjYXN0Rm9ybWF0KCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlLnNraXAoJ0ZlZSBUb2tlbiBTZWxlY3Rpb24nLCAoKSA9PiB7XG4gICAgaXQoJ3Nob3VsZCBwYXkgZmVlcyB3aXRoIGRpZmZlcmVudCB0b2tlbiB0aGFuIHRyYW5zZmVyJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgYnVpbGRlciA9IG5ldyBUaXAyMFRyYW5zYWN0aW9uQnVpbGRlcihtb2NrQ29pbkNvbmZpZyk7XG4gICAgICBidWlsZGVyLmFkZE9wZXJhdGlvbih7XG4gICAgICAgIHRva2VuOiBBTFBIQV9VU0RfVE9LRU4sXG4gICAgICAgIHRvOiBSRUNFSVZFUl9BRERSRVNTLFxuICAgICAgICBhbW91bnQ6ICcxLjAnLFxuICAgICAgICBtZW1vOiAnNTU1NScsXG4gICAgICB9KTtcbiAgICAgIGJ1aWxkZXIuZmVlVG9rZW4oQkVUQV9VU0RfVE9LRU4pO1xuICAgICAgLy8gVE9ETzogY29uc3QgdHggPSBhd2FpdCBidWlsZGVyLmJ1aWxkKCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/transactionBuilder.ts"],"names":[],"mappings":""}
|