@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.
@@ -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
- * Placeholder: Verify coin and token match
92
- * TODO: Implement when transaction logic is added
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
- return true;
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
- * Placeholder: Get send method arguments
99
- * TODO: Implement for token transfers
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
- // TODO: Implement for token transfers
103
- // Return empty array to prevent downstream services from breaking
104
- return [];
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
- * Placeholder: Get operation for token transfer
108
- * TODO: Implement for token transfers
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
- // TODO: Implement for token transfers
112
- // Return empty array to prevent downstream services from breaking
113
- return [];
114
- }
115
- /**
116
- * Placeholder: Query token balance
117
- * TODO: Implement using Tempo block explorer or RPC
118
- */
119
- async queryAddressTokenBalance(tokenContractAddress, walletAddress, apiKey) {
120
- // TODO: Implement using Tempo block explorer or RPC
121
- // Return 0 balance to prevent downstream services from breaking
122
- return '0';
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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tip20.d.ts.map
@@ -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,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../test/unit/transactionBuilder.ts"],"names":[],"mappings":""}