@bitgo/sdk-coin-icp 1.8.0 → 1.10.0
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 +18 -0
- package/dist/src/lib/iface.d.ts +7 -0
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +5 -2
- package/dist/src/lib/signedTransactionBuilder.js +3 -3
- package/dist/src/lib/transaction.d.ts +4 -1
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +22 -12
- package/dist/src/lib/transactionBuilder.d.ts +4 -1
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +13 -1
- package/dist/src/lib/transactionBuilderFactory.d.ts +1 -1
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +3 -3
- package/dist/src/lib/transferBuilder.d.ts +0 -1
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +4 -10
- package/dist/src/lib/unsignedTransactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/unsignedTransactionBuilder.js +3 -6
- package/dist/src/lib/utils.d.ts +1 -1
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +6 -3
- package/package.json +6 -6
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,24 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.10.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-icp@1.9.0...@bitgo/sdk-coin-icp@1.10.0) (2025-03-28)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- **sdk-coin-icp:** change combine method visibility from protected to public ([ff50dff](https://github.com/BitGo/BitGoJS/commit/ff50dff5222fe29fbd313909c97a3ad28043e49f))
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
- **sdk-coin-icp:** implement combine method for signed transaction generation ([9bf8d85](https://github.com/BitGo/BitGoJS/commit/9bf8d85a09c1f603227548d346e68905dafd3df0))
|
|
15
|
+
- **sdk-coin-icp:** improve transaction signature validation ([6c8151e](https://github.com/BitGo/BitGoJS/commit/6c8151e639143e840707b6d56636c451ac96f192))
|
|
16
|
+
|
|
17
|
+
# [1.9.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-icp@1.8.0...@bitgo/sdk-coin-icp@1.9.0) (2025-03-20)
|
|
18
|
+
|
|
19
|
+
### Features
|
|
20
|
+
|
|
21
|
+
- **sdk-coin-icp:** enhance raw transaction handling ([d9402f4](https://github.com/BitGo/BitGoJS/commit/d9402f443f0cc70eb1cf95f692a6f91f91ffadb6))
|
|
22
|
+
- **sdk-coin-icp:** make from method asynchronous for improved transaction handling ([de96c9d](https://github.com/BitGo/BitGoJS/commit/de96c9d7a80da44f130df640178af12255ed1d5b))
|
|
23
|
+
|
|
6
24
|
# [1.8.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/sdk-coin-icp@1.7.0...@bitgo/sdk-coin-icp@1.8.0) (2025-03-18)
|
|
7
25
|
|
|
8
26
|
### Bug Fixes
|
package/dist/src/lib/iface.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { TransactionExplanation as BaseTransactionExplanation, TransactionType as BitGoTransactionType } from '@bitgo/sdk-core';
|
|
2
2
|
export declare const REQUEST_STATUS = "request_status";
|
|
3
|
+
export declare const MAX_INGRESS_TTL: number;
|
|
4
|
+
export declare const PERMITTED_DRIFT: number;
|
|
5
|
+
export declare const LEDGER_CANISTER_ID: Uint8Array<ArrayBuffer>;
|
|
3
6
|
export declare enum RequestType {
|
|
4
7
|
CALL = "call",
|
|
5
8
|
READ_STATE = "read_state"
|
|
@@ -167,4 +170,8 @@ export interface SignedTransactionRequest {
|
|
|
167
170
|
network_identifier: NetworkIdentifier;
|
|
168
171
|
signed_transaction: string;
|
|
169
172
|
}
|
|
173
|
+
export interface RawTransaction {
|
|
174
|
+
serializedTxHex: string;
|
|
175
|
+
publicKey: string;
|
|
176
|
+
}
|
|
170
177
|
//# sourceMappingURL=iface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,IAAI,0BAA0B,EACpD,eAAe,IAAI,oBAAoB,EACxC,MAAM,iBAAiB,CAAC;AAEzB,eAAO,MAAM,cAAc,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"iface.d.ts","sourceRoot":"","sources":["../../../src/lib/iface.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/iface.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Network = exports.MethodName = exports.OperationType = exports.CurveType = exports.SignatureType = exports.RequestType = exports.REQUEST_STATUS = void 0;
|
|
3
|
+
exports.Network = exports.MethodName = exports.OperationType = exports.CurveType = exports.SignatureType = exports.RequestType = exports.LEDGER_CANISTER_ID = exports.PERMITTED_DRIFT = exports.MAX_INGRESS_TTL = exports.REQUEST_STATUS = void 0;
|
|
4
4
|
exports.REQUEST_STATUS = 'request_status';
|
|
5
|
+
exports.MAX_INGRESS_TTL = 5 * 60 * 1000000000; // 5 minutes in nanoseconds
|
|
6
|
+
exports.PERMITTED_DRIFT = 60 * 1000000000; // 60 seconds in nanoseconds
|
|
7
|
+
exports.LEDGER_CANISTER_ID = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 2, 1, 1]); // Uint8Array value for "00000000000000020101" and the string value is "ryjl3-tyaaa-aaaaa-aaaba-cai"
|
|
5
8
|
var RequestType;
|
|
6
9
|
(function (RequestType) {
|
|
7
10
|
RequestType["CALL"] = "call";
|
|
@@ -28,4 +31,4 @@ var Network;
|
|
|
28
31
|
(function (Network) {
|
|
29
32
|
Network["ID"] = "00000000000000020101";
|
|
30
33
|
})(Network || (exports.Network = Network = {}));
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2lmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUthLFFBQUEsY0FBYyxHQUFHLGdCQUFnQixDQUFDO0FBQ2xDLFFBQUEsZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsVUFBWSxDQUFDLENBQUMsMkJBQTJCO0FBQ3BFLFFBQUEsZUFBZSxHQUFHLEVBQUUsR0FBRyxVQUFZLENBQUMsQ0FBQyw0QkFBNEI7QUFDakUsUUFBQSxrQkFBa0IsR0FBRyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvR0FBb0c7QUFFdEwsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDRCQUFhLENBQUE7SUFDYix3Q0FBeUIsQ0FBQTtBQUMzQixDQUFDLEVBSFcsV0FBVywyQkFBWCxXQUFXLFFBR3RCO0FBRUQsSUFBWSxhQUVYO0FBRkQsV0FBWSxhQUFhO0lBQ3ZCLGdDQUFlLENBQUE7QUFDakIsQ0FBQyxFQUZXLGFBQWEsNkJBQWIsYUFBYSxRQUV4QjtBQUVELElBQVksU0FFWDtBQUZELFdBQVksU0FBUztJQUNuQixvQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBRlcsU0FBUyx5QkFBVCxTQUFTLFFBRXBCO0FBRUQsSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3ZCLDRDQUEyQixDQUFBO0lBQzNCLDRCQUFXLENBQUE7QUFDYixDQUFDLEVBSFcsYUFBYSw2QkFBYixhQUFhLFFBR3hCO0FBRUQsSUFBWSxVQUVYO0FBRkQsV0FBWSxVQUFVO0lBQ3BCLGlDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFGVyxVQUFVLDBCQUFWLFVBQVUsUUFFckI7QUFFRCxJQUFZLE9BRVg7QUFGRCxXQUFZLE9BQU87SUFDakIsc0NBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQUZXLE9BQU8sdUJBQVAsT0FBTyxRQUVsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gYXMgQmFzZVRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG4gIFRyYW5zYWN0aW9uVHlwZSBhcyBCaXRHb1RyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcblxuZXhwb3J0IGNvbnN0IFJFUVVFU1RfU1RBVFVTID0gJ3JlcXVlc3Rfc3RhdHVzJztcbmV4cG9ydCBjb25zdCBNQVhfSU5HUkVTU19UVEwgPSA1ICogNjAgKiAxMDAwXzAwMF8wMDA7IC8vIDUgbWludXRlcyBpbiBuYW5vc2Vjb25kc1xuZXhwb3J0IGNvbnN0IFBFUk1JVFRFRF9EUklGVCA9IDYwICogMTAwMF8wMDBfMDAwOyAvLyA2MCBzZWNvbmRzIGluIG5hbm9zZWNvbmRzXG5leHBvcnQgY29uc3QgTEVER0VSX0NBTklTVEVSX0lEID0gbmV3IFVpbnQ4QXJyYXkoWzAsIDAsIDAsIDAsIDAsIDAsIDAsIDIsIDEsIDFdKTsgLy8gVWludDhBcnJheSB2YWx1ZSBmb3IgXCIwMDAwMDAwMDAwMDAwMDAyMDEwMVwiIGFuZCB0aGUgc3RyaW5nIHZhbHVlIGlzIFwicnlqbDMtdHlhYWEtYWFhYWEtYWFhYmEtY2FpXCJcblxuZXhwb3J0IGVudW0gUmVxdWVzdFR5cGUge1xuICBDQUxMID0gJ2NhbGwnLFxuICBSRUFEX1NUQVRFID0gJ3JlYWRfc3RhdGUnLFxufVxuXG5leHBvcnQgZW51bSBTaWduYXR1cmVUeXBlIHtcbiAgRUNEU0EgPSAnZWNkc2EnLFxufVxuXG5leHBvcnQgZW51bSBDdXJ2ZVR5cGUge1xuICBTRUNQMjU2SzEgPSAnc2VjcDI1NmsxJyxcbn1cblxuZXhwb3J0IGVudW0gT3BlcmF0aW9uVHlwZSB7XG4gIFRSQU5TQUNUSU9OID0gJ1RSQU5TQUNUSU9OJyxcbiAgRkVFID0gJ0ZFRScsXG59XG5cbmV4cG9ydCBlbnVtIE1ldGhvZE5hbWUge1xuICBTRU5EX1BCID0gJ3NlbmRfcGInLCAvLyBzZW5kX3BiIGlzIHRoZSBtZXRob2QgbmFtZSBmb3IgSUNQIHRyYW5zZmVyIHRyYW5zYWN0aW9uXG59XG5cbmV4cG9ydCBlbnVtIE5ldHdvcmsge1xuICBJRCA9ICcwMDAwMDAwMDAwMDAwMDAyMDEwMScsIC8vIElDUCBkb2VzIG5vdCBoYXZlIGRpZmZlcmVudCBuZXR3b3JrIElEcyBmb3IgbWFpbm5ldCBhbmQgdGVzdG5ldFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljcFRyYW5zYWN0aW9uRGF0YSB7XG4gIHNlbmRlckFkZHJlc3M6IHN0cmluZztcbiAgcmVjZWl2ZXJBZGRyZXNzOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xuICBmZWU6IHN0cmluZztcbiAgc2VuZGVyUHVibGljS2V5SGV4OiBzdHJpbmc7XG4gIG1lbW86IG51bWJlciB8IEJpZ0ludDsgLy8gbWVtbyBpbiBzdHJpbmcgaXMgbm90IGFjY2VwdGVkIGJ5IElDUCBjaGFpbi5cbiAgdHJhbnNhY3Rpb25UeXBlOiBPcGVyYXRpb25UeXBlO1xuICBleHBpcnlUaW1lOiBudW1iZXIgfCBCaWdJbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNwUHVibGljS2V5IHtcbiAgaGV4X2J5dGVzOiBzdHJpbmc7XG4gIGN1cnZlX3R5cGU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY3BBY2NvdW50IHtcbiAgYWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljcEN1cnJlbmN5IHtcbiAgc3ltYm9sOiBzdHJpbmc7XG4gIGRlY2ltYWxzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNwQW1vdW50IHtcbiAgdmFsdWU6IHN0cmluZztcbiAgY3VycmVuY3k6IEljcEN1cnJlbmN5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljcE9wZXJhdGlvbiB7XG4gIHR5cGU6IHN0cmluZztcbiAgYWNjb3VudDogSWNwQWNjb3VudDtcbiAgYW1vdW50OiBJY3BBbW91bnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNwTWV0YWRhdGEge1xuICBjcmVhdGVkX2F0X3RpbWU6IG51bWJlcjtcbiAgbWVtbzogbnVtYmVyIHwgQmlnSW50OyAvLyBtZW1vIGluIHN0cmluZyBpcyBub3QgYWNjZXB0ZWQgYnkgSUNQIGNoYWluLlxuICBpbmdyZXNzX3N0YXJ0PzogbnVtYmVyIHwgQmlnSW50OyAvLyBpdCBzaG91bGQgYmUgbmFubyBzZWNvbmRzXG4gIGluZ3Jlc3NfZW5kPzogbnVtYmVyIHwgQmlnSW50OyAvLyBpdCBzaG91bGQgYmUgbmFubyBzZWNvbmRzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWNwVHJhbnNhY3Rpb24ge1xuICBwdWJsaWNfa2V5czogSWNwUHVibGljS2V5W107XG4gIG9wZXJhdGlvbnM6IEljcE9wZXJhdGlvbltdO1xuICBtZXRhZGF0YTogSWNwTWV0YWRhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGFyc2VkVHJhbnNhY3Rpb24ge1xuICBvcGVyYXRpb25zOiBJY3BPcGVyYXRpb25bXTtcbiAgYWNjb3VudF9pZGVudGlmaWVyX3NpZ25lcnM6IEljcEFjY291bnRbXTtcbiAgbWV0YWRhdGE6IEljcE1ldGFkYXRhO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljcEFjY291bnRJZGVudGlmaWVyIHtcbiAgYWRkcmVzczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlbmRBcmdzIHtcbiAgbWVtbzogeyBtZW1vOiBudW1iZXIgfCBCaWdJbnQgfTtcbiAgcGF5bWVudDogeyByZWNlaXZlckdldHM6IHsgZThzOiBudW1iZXIgfSB9O1xuICBtYXhGZWU6IHsgZThzOiBudW1iZXIgfTtcbiAgdG86IHsgaGFzaDogQnVmZmVyIH07XG4gIGNyZWF0ZWRBdFRpbWU6IHsgdGltZXN0YW1wTmFub3M6IG51bWJlciB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBDYW5pc3RlclVwZGF0ZSB7XG4gIGNhbmlzdGVyX2lkOiBVaW50OEFycmF5O1xuICBtZXRob2RfbmFtZTogTWV0aG9kTmFtZTtcbiAgYXJnOiBVaW50OEFycmF5O1xuICBzZW5kZXI6IFVpbnQ4QXJyYXk7XG4gIGluZ3Jlc3NfZXhwaXJ5OiBiaWdpbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmluZ1BheWxvYWQge1xuICBhY2NvdW50X2lkZW50aWZpZXI6IEljcEFjY291bnRJZGVudGlmaWVyO1xuICBoZXhfYnl0ZXM6IHN0cmluZztcbiAgc2lnbmF0dXJlX3R5cGU6IFNpZ25hdHVyZVR5cGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bG9hZHNEYXRhIHtcbiAgcGF5bG9hZHM6IFNpZ25pbmdQYXlsb2FkW107XG4gIHVuc2lnbmVkX3RyYW5zYWN0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmF0dXJlcyB7XG4gIHNpZ25pbmdfcGF5bG9hZDogU2lnbmluZ1BheWxvYWQ7XG4gIHNpZ25hdHVyZV90eXBlOiBTaWduYXR1cmVUeXBlO1xuICBwdWJsaWNfa2V5OiBJY3BQdWJsaWNLZXk7XG4gIGhleF9ieXRlczogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENib3JVbnNpZ25lZFRyYW5zYWN0aW9uIHtcbiAgdXBkYXRlczogW3N0cmluZywgSHR0cENhbmlzdGVyVXBkYXRlXVtdO1xuICBpbmdyZXNzX2V4cGlyaWVzOiBiaWdpbnRbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWFkU3RhdGUge1xuICBzZW5kZXI6IFVpbnQ4QXJyYXk7XG4gIHBhdGhzOiBBcnJheTxbQnVmZmVyLCBCdWZmZXJdPjtcbiAgaW5ncmVzc19leHBpcnk6IGJpZ2ludDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVFbnZlbG9wZSB7XG4gIGNvbnRlbnQ6IHtcbiAgICByZXF1ZXN0X3R5cGU6IFJlcXVlc3RUeXBlO1xuICAgIGNhbmlzdGVyX2lkOiBVaW50OEFycmF5O1xuICAgIG1ldGhvZF9uYW1lOiBNZXRob2ROYW1lO1xuICAgIGFyZzogVWludDhBcnJheTtcbiAgICBzZW5kZXI6IFVpbnQ4QXJyYXk7XG4gICAgaW5ncmVzc19leHBpcnk6IGJpZ2ludDtcbiAgfTtcbiAgc2VuZGVyX3B1YmtleTogVWludDhBcnJheTtcbiAgc2VuZGVyX3NpZzogVWludDhBcnJheTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWFkU3RhdGVFbnZlbG9wZSB7XG4gIGNvbnRlbnQ6IFJlYWRTdGF0ZSAmIHtcbiAgICByZXF1ZXN0X3R5cGU6IFJlcXVlc3RUeXBlO1xuICB9O1xuICBzZW5kZXJfcHVia2V5OiBVaW50OEFycmF5O1xuICBzZW5kZXJfc2lnOiBVaW50OEFycmF5O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RFbnZlbG9wZSB7XG4gIHVwZGF0ZTogVXBkYXRlRW52ZWxvcGU7XG4gIHJlYWRfc3RhdGU6IFJlYWRTdGF0ZUVudmVsb3BlO1xufVxuXG4vKipcbiAqIFRoZSB0cmFuc2FjdGlvbiBkYXRhIHJldHVybmVkIGZyb20gdGhlIHRvSnNvbigpIGZ1bmN0aW9uIG9mIGEgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeERhdGEge1xuICBpZD86IHN0cmluZztcbiAgc2VuZGVyOiBzdHJpbmc7XG4gIHNlbmRlclB1YmxpY0tleTogc3RyaW5nO1xuICByZWNpcGllbnQ6IHN0cmluZztcbiAgbWVtbzogbnVtYmVyIHwgQmlnSW50O1xuICBmZWVBbW91bnQ6IHN0cmluZztcbiAgZXhwaXJhdGlvblRpbWU6IG51bWJlciB8IEJpZ0ludDtcbiAgdHlwZT86IEJpdEdvVHJhbnNhY3Rpb25UeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljcFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIHNlbmRlcj86IHN0cmluZztcbiAgdHlwZT86IEJpdEdvVHJhbnNhY3Rpb25UeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJZGVudGlmaWVyIHtcbiAgYmxvY2tjaGFpbjogc3RyaW5nO1xuICBuZXR3b3JrOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2lnbmVkVHJhbnNhY3Rpb25SZXF1ZXN0IHtcbiAgbmV0d29ya19pZGVudGlmaWVyOiBOZXR3b3JrSWRlbnRpZmllcjtcbiAgc2lnbmVkX3RyYW5zYWN0aW9uOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmF3VHJhbnNhY3Rpb24ge1xuICBzZXJpYWxpemVkVHhIZXg6IHN0cmluZztcbiAgcHVibGljS2V5OiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -38,11 +38,11 @@ class SignedTransactionBuilder {
|
|
|
38
38
|
const readState = utils_1.default.makeReadStateFromUpdate(update);
|
|
39
39
|
const transactionSignature = utils_1.default.getTransactionSignature(signatureMap, update);
|
|
40
40
|
if (!transactionSignature) {
|
|
41
|
-
throw new Error('Transaction signature is
|
|
41
|
+
throw new Error('Transaction signature is invalid');
|
|
42
42
|
}
|
|
43
43
|
const readStateSignature = utils_1.default.getReadStateSignature(signatureMap, readState);
|
|
44
44
|
if (!readStateSignature) {
|
|
45
|
-
throw new Error('read state signature is
|
|
45
|
+
throw new Error('read state signature is invalid');
|
|
46
46
|
}
|
|
47
47
|
const pk_der = utils_1.default.getPublicKeyInDERFormat(transactionSignature.public_key.hex_bytes);
|
|
48
48
|
const updateEnvelope = {
|
|
@@ -66,4 +66,4 @@ class SignedTransactionBuilder {
|
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
exports.SignedTransactionBuilder = SignedTransactionBuilder;
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9zaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbUNBT2lCO0FBQ2pCLG9EQUE0QjtBQUM1QixvREFBNEI7QUFFNUIsTUFBYSx3QkFBd0I7SUFJbkMsWUFBWSxvQkFBNEIsRUFBRSxVQUF3QjtRQUNoRSxJQUFJLENBQUMscUJBQXFCLEdBQUcsb0JBQW9CLENBQUM7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLE1BQU0sY0FBYyxHQUFHO1lBQ3JCLFVBQVUsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ2xDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxxQkFBcUI7U0FDakQsQ0FBQztRQUNGLE1BQU0sWUFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDL0IsS0FBSyxNQUFNLEdBQUcsSUFBSSxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDNUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsTUFBTSxtQkFBbUIsR0FBRyxlQUFLLENBQUMsVUFBVSxDQUMxQyxlQUFLLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUM1QixDQUFDO1FBQzdCLElBQUEsZ0JBQU0sRUFBQyxjQUFjLENBQUMsVUFBVSxDQUFDLE1BQU0sS0FBSyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0YsSUFBQSxnQkFBTSxFQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN2RSxNQUFNLGVBQWUsR0FBRyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNoRCxNQUFNLGlCQUFpQixHQUFHLGVBQUssQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDNUQsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWSxDQUNWLG1CQUE0QyxFQUM1QyxZQUFxQztRQUVyQyxNQUFNLFNBQVMsR0FBa0MsRUFBRSxDQUFDO1FBQ3BELEtBQUssTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1RCxNQUFNLGdCQUFnQixHQUFzQixFQUFFLENBQUM7WUFDL0MsS0FBSyxNQUFNLGFBQWEsSUFBSSxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUNqRSxNQUFNLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztnQkFFdEMsTUFBTSxTQUFTLEdBQUcsZUFBSyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN4RCxNQUFNLG9CQUFvQixHQUFHLGVBQUssQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQ2pGLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO29CQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7Z0JBQ3RELENBQUM7Z0JBRUQsTUFBTSxrQkFBa0IsR0FBRyxlQUFLLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNoRixJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztvQkFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO2dCQUNyRCxDQUFDO2dCQUVELE1BQU0sTUFBTSxHQUFHLGVBQUssQ0FBQyx1QkFBdUIsQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ3hGLE1BQU0sY0FBYyxHQUFtQjtvQkFDckMsT0FBTyxFQUFFLEVBQUUsWUFBWSxFQUFFLG1CQUFXLENBQUMsSUFBSSxFQUFFLEdBQUcsTUFBTSxFQUFFO29CQUN0RCxhQUFhLEVBQUUsTUFBTTtvQkFDckIsVUFBVSxFQUFFLGVBQUssQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO2lCQUM5RCxDQUFDO2dCQUVGLE1BQU0saUJBQWlCLEdBQXNCO29CQUMzQyxPQUFPLEVBQUUsRUFBRSxZQUFZLEVBQUUsbUJBQVcsQ0FBQyxVQUFVLEVBQUUsR0FBRyxTQUFTLEVBQUU7b0JBQy9ELGFBQWEsRUFBRSxNQUFNO29CQUNyQixVQUFVLEVBQUUsZUFBSyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7aUJBQzVELENBQUM7Z0JBRUYsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO29CQUNwQixNQUFNLEVBQUUsY0FBYztvQkFDdEIsVUFBVSxFQUFFLGlCQUFpQjtpQkFDOUIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0NBQ0Y7QUF4RUQsNERBd0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2JvclVuc2lnbmVkVHJhbnNhY3Rpb24sXG4gIFJlcXVlc3RUeXBlLFxuICBTaWduYXR1cmVzLFxuICBVcGRhdGVFbnZlbG9wZSxcbiAgUmVhZFN0YXRlRW52ZWxvcGUsXG4gIFJlcXVlc3RFbnZlbG9wZSxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmV4cG9ydCBjbGFzcyBTaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3Vuc2lnbmVkX3RyYW5zYWN0aW9uOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfc2lnbmF0dXJlUGF5bG9hZDogU2lnbmF0dXJlc1tdO1xuXG4gIGNvbnN0cnVjdG9yKHVuc2lnbmVkX3RyYW5zYWN0aW9uOiBzdHJpbmcsIHNpZ25hdHVyZXM6IFNpZ25hdHVyZXNbXSkge1xuICAgIHRoaXMuX3Vuc2lnbmVkX3RyYW5zYWN0aW9uID0gdW5zaWduZWRfdHJhbnNhY3Rpb247XG4gICAgdGhpcy5fc2lnbmF0dXJlUGF5bG9hZCA9IHNpZ25hdHVyZXM7XG4gIH1cblxuICBnZXRTaWduVHJhbnNhY3Rpb24oKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb21iaW5lUmVxdWVzdCA9IHtcbiAgICAgIHNpZ25hdHVyZXM6IHRoaXMuX3NpZ25hdHVyZVBheWxvYWQsXG4gICAgICB1bnNpZ25lZF90cmFuc2FjdGlvbjogdGhpcy5fdW5zaWduZWRfdHJhbnNhY3Rpb24sXG4gICAgfTtcbiAgICBjb25zdCBzaWduYXR1cmVNYXAgPSBuZXcgTWFwKCk7XG4gICAgZm9yIChjb25zdCBzaWcgb2YgY29tYmluZVJlcXVlc3Quc2lnbmF0dXJlcykge1xuICAgICAgc2lnbmF0dXJlTWFwLnNldChzaWcuc2lnbmluZ19wYXlsb2FkLmhleF9ieXRlcywgc2lnKTtcbiAgICB9XG4gICAgY29uc3QgdW5zaWduZWRUcmFuc2FjdGlvbiA9IHV0aWxzLmNib3JEZWNvZGUoXG4gICAgICB1dGlscy5ibG9iRnJvbUhleChjb21iaW5lUmVxdWVzdC51bnNpZ25lZF90cmFuc2FjdGlvbilcbiAgICApIGFzIENib3JVbnNpZ25lZFRyYW5zYWN0aW9uO1xuICAgIGFzc2VydChjb21iaW5lUmVxdWVzdC5zaWduYXR1cmVzLmxlbmd0aCA9PT0gdW5zaWduZWRUcmFuc2FjdGlvbi5pbmdyZXNzX2V4cGlyaWVzLmxlbmd0aCAqIDIpO1xuICAgIGFzc2VydCh1bnNpZ25lZFRyYW5zYWN0aW9uLnVwZGF0ZXMubGVuZ3RoID09PSAxKTtcbiAgICBjb25zdCBlbnZlbG9wZXMgPSB0aGlzLmdldEVudmVsb3Blcyh1bnNpZ25lZFRyYW5zYWN0aW9uLCBzaWduYXR1cmVNYXApO1xuICAgIGNvbnN0IGVudmVsb3BSZXF1ZXN0cyA9IHsgcmVxdWVzdHM6IGVudmVsb3BlcyB9O1xuICAgIGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uID0gdXRpbHMuY2JvckVuY29kZShlbnZlbG9wUmVxdWVzdHMpO1xuICAgIHJldHVybiBzaWduZWRUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIGdldEVudmVsb3BlcyhcbiAgICB1bnNpZ25lZFRyYW5zYWN0aW9uOiBDYm9yVW5zaWduZWRUcmFuc2FjdGlvbixcbiAgICBzaWduYXR1cmVNYXA6IE1hcDxzdHJpbmcsIFNpZ25hdHVyZXM+XG4gICk6IFtzdHJpbmcsIFJlcXVlc3RFbnZlbG9wZVtdXVtdIHtcbiAgICBjb25zdCBlbnZlbG9wZXM6IFtzdHJpbmcsIFJlcXVlc3RFbnZlbG9wZVtdXVtdID0gW107XG4gICAgZm9yIChjb25zdCBbcmVxVHlwZSwgdXBkYXRlXSBvZiB1bnNpZ25lZFRyYW5zYWN0aW9uLnVwZGF0ZXMpIHtcbiAgICAgIGNvbnN0IHJlcXVlc3RFbnZlbG9wZXM6IFJlcXVlc3RFbnZlbG9wZVtdID0gW107XG4gICAgICBmb3IgKGNvbnN0IGluZ3Jlc3NFeHBpcnkgb2YgdW5zaWduZWRUcmFuc2FjdGlvbi5pbmdyZXNzX2V4cGlyaWVzKSB7XG4gICAgICAgIHVwZGF0ZS5pbmdyZXNzX2V4cGlyeSA9IGluZ3Jlc3NFeHBpcnk7XG5cbiAgICAgICAgY29uc3QgcmVhZFN0YXRlID0gdXRpbHMubWFrZVJlYWRTdGF0ZUZyb21VcGRhdGUodXBkYXRlKTtcbiAgICAgICAgY29uc3QgdHJhbnNhY3Rpb25TaWduYXR1cmUgPSB1dGlscy5nZXRUcmFuc2FjdGlvblNpZ25hdHVyZShzaWduYXR1cmVNYXAsIHVwZGF0ZSk7XG4gICAgICAgIGlmICghdHJhbnNhY3Rpb25TaWduYXR1cmUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyYW5zYWN0aW9uIHNpZ25hdHVyZSBpcyBpbnZhbGlkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWFkU3RhdGVTaWduYXR1cmUgPSB1dGlscy5nZXRSZWFkU3RhdGVTaWduYXR1cmUoc2lnbmF0dXJlTWFwLCByZWFkU3RhdGUpO1xuICAgICAgICBpZiAoIXJlYWRTdGF0ZVNpZ25hdHVyZSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcigncmVhZCBzdGF0ZSBzaWduYXR1cmUgaXMgaW52YWxpZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcGtfZGVyID0gdXRpbHMuZ2V0UHVibGljS2V5SW5ERVJGb3JtYXQodHJhbnNhY3Rpb25TaWduYXR1cmUucHVibGljX2tleS5oZXhfYnl0ZXMpO1xuICAgICAgICBjb25zdCB1cGRhdGVFbnZlbG9wZTogVXBkYXRlRW52ZWxvcGUgPSB7XG4gICAgICAgICAgY29udGVudDogeyByZXF1ZXN0X3R5cGU6IFJlcXVlc3RUeXBlLkNBTEwsIC4uLnVwZGF0ZSB9LFxuICAgICAgICAgIHNlbmRlcl9wdWJrZXk6IHBrX2RlcixcbiAgICAgICAgICBzZW5kZXJfc2lnOiB1dGlscy5ibG9iRnJvbUhleCh0cmFuc2FjdGlvblNpZ25hdHVyZS5oZXhfYnl0ZXMpLFxuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IHJlYWRTdGF0ZUVudmVsb3BlOiBSZWFkU3RhdGVFbnZlbG9wZSA9IHtcbiAgICAgICAgICBjb250ZW50OiB7IHJlcXVlc3RfdHlwZTogUmVxdWVzdFR5cGUuUkVBRF9TVEFURSwgLi4ucmVhZFN0YXRlIH0sXG4gICAgICAgICAgc2VuZGVyX3B1YmtleTogcGtfZGVyLFxuICAgICAgICAgIHNlbmRlcl9zaWc6IHV0aWxzLmJsb2JGcm9tSGV4KHJlYWRTdGF0ZVNpZ25hdHVyZS5oZXhfYnl0ZXMpLFxuICAgICAgICB9O1xuXG4gICAgICAgIHJlcXVlc3RFbnZlbG9wZXMucHVzaCh7XG4gICAgICAgICAgdXBkYXRlOiB1cGRhdGVFbnZlbG9wZSxcbiAgICAgICAgICByZWFkX3N0YXRlOiByZWFkU3RhdGVFbnZlbG9wZSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBlbnZlbG9wZXMucHVzaChbcmVxVHlwZSwgcmVxdWVzdEVudmVsb3Blc10pO1xuICAgIH1cbiAgICByZXR1cm4gZW52ZWxvcGVzO1xuICB9XG59XG4iXX0=
|
|
@@ -8,6 +8,7 @@ export declare class Transaction extends BaseTransaction {
|
|
|
8
8
|
protected _payloadsData: PayloadsData;
|
|
9
9
|
protected _signedTransaction: string;
|
|
10
10
|
protected _signaturePayload: Signatures[];
|
|
11
|
+
protected _createdTimestamp: number | bigint | undefined;
|
|
11
12
|
protected _utils: Utils;
|
|
12
13
|
constructor(_coinConfig: Readonly<CoinConfig>, utils: Utils);
|
|
13
14
|
get icpTransactionData(): IcpTransactionData;
|
|
@@ -20,7 +21,9 @@ export declare class Transaction extends BaseTransaction {
|
|
|
20
21
|
get signedTransaction(): string;
|
|
21
22
|
set payloadsData(payloadsData: PayloadsData);
|
|
22
23
|
get payloadsData(): PayloadsData;
|
|
23
|
-
|
|
24
|
+
set createdTimestamp(createdTimestamp: number);
|
|
25
|
+
get createdTimestamp(): number | bigint | undefined;
|
|
26
|
+
fromRawTransaction(rawTransaction: string): Promise<void>;
|
|
24
27
|
addSignature(signaturePayloads: Signatures[]): void;
|
|
25
28
|
/** @inheritdoc */
|
|
26
29
|
toJson(): TxData;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAKhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,YAAY,EAEZ,UAAU,EACV,MAAM,EACN,yBAAyB,EAKzB,iBAAiB,
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAKhB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,YAAY,EAEZ,UAAU,EACV,MAAM,EACN,yBAAyB,EAKzB,iBAAiB,EAMlB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,qBAAa,WAAY,SAAQ,eAAe;IAC9C,SAAS,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;IAClD,SAAS,CAAC,eAAe,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC;IACtC,SAAS,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACrC,SAAS,CAAC,iBAAiB,EAAE,UAAU,EAAE,CAAC;IAC1C,SAAS,CAAC,iBAAiB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzD,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;gBAEZ,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK;IAK3D,IAAI,kBAAkB,IAAI,kBAAkB,CAE3C;IAED,IAAI,kBAAkB,CAAC,kBAAkB,EAAE,kBAAkB,EAE5D;IAED,IAAI,cAAc,IAAI,cAAc,CAEnC;IAED,IAAI,cAAc,CAAC,cAAc,EAAE,cAAc,EAEhD;IAED,IAAI,mBAAmB,IAAI,MAAM,CAEhC;IAED,IAAI,gBAAgB,IAAI,UAAU,EAAE,CAEnC;IAED,IAAI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAEtC;IAED,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED,IAAI,YAAY,CAAC,YAAY,EAAE,YAAY,EAE1C;IAED,IAAI,YAAY,IAAI,YAAY,CAE/B;IAED,IAAI,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,EAE5C;IAED,IAAI,gBAAgB,IAAI,MAAM,GAAG,MAAM,GAAG,SAAS,CAElD;IAEK,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B/D,YAAY,CAAC,iBAAiB,EAAE,UAAU,EAAE,GAAG,IAAI;IAUnD,kBAAkB;IAClB,MAAM,IAAI,MAAM;IAqBhB,kBAAkB;IAClB,kBAAkB,IAAI,yBAAyB;IAwB/C;;;;;OAKG;IACH,0BAA0B,CAAC,iBAAiB,EAAE,yBAAyB,GAAG,yBAAyB;IAcnG,kBAAkB;IAClB,iBAAiB,IAAI,MAAM;IAO3B,SAAS,IAAI,MAAM;IAWb,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;YASpE,8BAA8B;IA+DtC,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAShF,kBAAkB;IAClB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;CAG/B"}
|
|
@@ -38,20 +38,29 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
38
38
|
get payloadsData() {
|
|
39
39
|
return this._payloadsData;
|
|
40
40
|
}
|
|
41
|
-
|
|
41
|
+
set createdTimestamp(createdTimestamp) {
|
|
42
|
+
this._createdTimestamp = createdTimestamp;
|
|
43
|
+
}
|
|
44
|
+
get createdTimestamp() {
|
|
45
|
+
return this._createdTimestamp;
|
|
46
|
+
}
|
|
47
|
+
async fromRawTransaction(rawTransaction) {
|
|
42
48
|
try {
|
|
43
|
-
const
|
|
44
|
-
|
|
49
|
+
const jsonRawTransaction = JSON.parse(rawTransaction);
|
|
50
|
+
const parsedTx = await this.parseUnsignedTransaction(jsonRawTransaction.serializedTxHex);
|
|
51
|
+
const senderPublicKeyHex = jsonRawTransaction.publicKey;
|
|
52
|
+
const transactionType = parsedTx.operations[0].type;
|
|
53
|
+
switch (transactionType) {
|
|
45
54
|
case iface_1.OperationType.TRANSACTION:
|
|
46
55
|
this._icpTransactionData = {
|
|
47
|
-
senderAddress: parsedTx.address,
|
|
48
|
-
receiverAddress: parsedTx.
|
|
49
|
-
amount: parsedTx.
|
|
50
|
-
fee: parsedTx.
|
|
51
|
-
senderPublicKeyHex:
|
|
52
|
-
memo: parsedTx.
|
|
53
|
-
transactionType:
|
|
54
|
-
expiryTime: parsedTx.
|
|
56
|
+
senderAddress: parsedTx.operations[0].account.address,
|
|
57
|
+
receiverAddress: parsedTx.operations[1].account.address,
|
|
58
|
+
amount: parsedTx.operations[1].amount.value,
|
|
59
|
+
fee: parsedTx.operations[2].amount.value,
|
|
60
|
+
senderPublicKeyHex: senderPublicKeyHex,
|
|
61
|
+
memo: parsedTx.metadata.memo,
|
|
62
|
+
transactionType: transactionType,
|
|
63
|
+
expiryTime: Number(parsedTx.metadata.created_at_time + (iface_1.MAX_INGRESS_TTL - iface_1.PERMITTED_DRIFT)),
|
|
55
64
|
};
|
|
56
65
|
this._utils.validateRawTransaction(this._icpTransactionData);
|
|
57
66
|
break;
|
|
@@ -207,6 +216,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
207
216
|
},
|
|
208
217
|
account_identifier_signers: accountIdentifierSigners,
|
|
209
218
|
};
|
|
219
|
+
this.createdTimestamp = args.createdAtTime.timestampNanos;
|
|
210
220
|
return parsedTxn;
|
|
211
221
|
}
|
|
212
222
|
async parseSignedTransaction(rawTransaction) {
|
|
@@ -223,4 +233,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
|
|
|
223
233
|
}
|
|
224
234
|
}
|
|
225
235
|
exports.Transaction = Transaction;
|
|
226
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQU95QjtBQUV6QixtQ0FlaUI7QUFHakIsTUFBYSxXQUFZLFNBQVEsMEJBQWU7SUFROUMsWUFBWSxXQUFpQyxFQUFFLEtBQVk7UUFDekQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxrQkFBa0IsQ0FBQyxrQkFBc0M7UUFDM0QsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDO0lBQ2hELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxjQUE4QjtRQUMvQyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxpQkFBaUIsQ0FBQyxTQUFpQjtRQUNyQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxZQUFZLENBQUMsWUFBMEI7UUFDekMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7SUFDcEMsQ0FBQztJQUVE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RyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQTZCLENBQUM7UUFDcEUsT0FBTyxNQUFNLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLE9BQU8sQ0FBQyxHQUFZO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBbFFELGtDQWtRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEJhc2VLZXksXG4gIEJhc2VUcmFuc2FjdGlvbixcbiAgVHJhbnNhY3Rpb25SZWNpcGllbnQsXG4gIFRyYW5zYWN0aW9uVHlwZSxcbiAgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IsXG4gIFRyYW5zYWN0aW9uVHlwZSBhcyBCaXRHb1RyYW5zYWN0aW9uVHlwZSxcbn0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQge1xuICBJY3BUcmFuc2FjdGlvbixcbiAgSWNwVHJhbnNhY3Rpb25EYXRhLFxuICBQYXlsb2Fkc0RhdGEsXG4gIE9wZXJhdGlvblR5cGUsXG4gIFNpZ25hdHVyZXMsXG4gIFR4RGF0YSxcbiAgSWNwVHJhbnNhY3Rpb25FeHBsYW5hdGlvbixcbiAgU2lnbmVkVHJhbnNhY3Rpb25SZXF1ZXN0LFxuICBOZXR3b3JrLFxuICBDYm9yVW5zaWduZWRUcmFuc2FjdGlvbixcbiAgSHR0cENhbmlzdGVyVXBkYXRlLFxuICBQYXJzZWRUcmFuc2FjdGlvbixcbiAgSWNwT3BlcmF0aW9uLFxuICBJY3BBY2NvdW50LFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbiBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbiB7XG4gIHByb3RlY3RlZCBfaWNwVHJhbnNhY3Rpb25EYXRhOiBJY3BUcmFuc2FjdGlvbkRhdGE7XG4gIHByb3RlY3RlZCBfaWNwVHJhbnNhY3Rpb246IEljcFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3BheWxvYWRzRGF0YTogUGF5bG9hZHNEYXRhO1xuICBwcm90ZWN0ZWQgX3NpZ25lZFRyYW5zYWN0aW9uOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfc2lnbmF0dXJlUGF5bG9hZDogU2lnbmF0dXJlc1tdO1xuICBwcm90ZWN0ZWQgX3V0aWxzOiBVdGlscztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4sIHV0aWxzOiBVdGlscykge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl91dGlscyA9IHV0aWxzO1xuICB9XG5cbiAgZ2V0IGljcFRyYW5zYWN0aW9uRGF0YSgpOiBJY3BUcmFuc2FjdGlvbkRhdGEge1xuICAgIHJldHVybiB0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGE7XG4gIH1cblxuICBzZXQgaWNwVHJhbnNhY3Rpb25EYXRhKGljcFRyYW5zYWN0aW9uRGF0YTogSWNwVHJhbnNhY3Rpb25EYXRhKSB7XG4gICAgdGhpcy5faWNwVHJhbnNhY3Rpb25EYXRhID0gaWNwVHJhbnNhY3Rpb25EYXRhO1xuICB9XG5cbiAgZ2V0IGljcFRyYW5zYWN0aW9uKCk6IEljcFRyYW5zYWN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5faWNwVHJhbnNhY3Rpb247XG4gIH1cblxuICBzZXQgaWNwVHJhbnNhY3Rpb24oaWNwVHJhbnNhY3Rpb246IEljcFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5faWNwVHJhbnNhY3Rpb24gPSBpY3BUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIGdldCB1bnNpZ25lZFRyYW5zYWN0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3BheWxvYWRzRGF0YS51bnNpZ25lZF90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIGdldCBzaWduYXR1cmVQYXlsb2FkKCk6IFNpZ25hdHVyZXNbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZVBheWxvYWQ7XG4gIH1cblxuICBzZXQgc2lnbmVkVHJhbnNhY3Rpb24oc2lnbmF0dXJlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbiA9IHNpZ25hdHVyZTtcbiAgfVxuXG4gIGdldCBzaWduZWRUcmFuc2FjdGlvbigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9zaWduZWRUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCBwYXlsb2Fkc0RhdGEocGF5bG9hZHNEYXRhOiBQYXlsb2Fkc0RhdGEpIHtcbiAgICB0aGlzLl9wYXlsb2Fkc0RhdGEgPSBwYXlsb2Fkc0RhdGE7XG4gIH1cblxuICBnZXQgcGF5bG9hZHNEYXRhKCk6IFBheWxvYWRzRGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuX3BheWxvYWRzRGF0YTtcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZFR4ID0gSlNPTi5wYXJzZShyYXdUcmFuc2FjdGlvbik7XG4gICAgICBzd2l0Y2ggKHBhcnNlZFR4LnR5cGUpIHtcbiAgICAgICAgY2FzZSBPcGVyYXRpb25UeXBlLlRSQU5TQUNUSU9OOlxuICAgICAgICAgIHRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YSA9IHtcbiAgICAgICAgICAgIHNlbmRlckFkZHJlc3M6IHBhcnNlZFR4LmFkZHJlc3MsXG4gICAgICAgICAgICByZWNlaXZlckFkZHJlc3M6IHBhcnNlZFR4LmV4dGVybmFsT3V0cHV0c1swXS5hZGRyZXNzLFxuICAgICAgICAgICAgYW1vdW50OiBwYXJzZWRUeC5zcGVuZEFtb3VudFN0cmluZyxcbiAgICAgICAgICAgIGZlZTogcGFyc2VkVHguZmVlLFxuICAgICAgICAgICAgc2VuZGVyUHVibGljS2V5SGV4OiBwYXJzZWRUeC5zZW5kZXJLZXksXG4gICAgICAgICAgICBtZW1vOiBwYXJzZWRUeC5zZXFubyxcbiAgICAgICAgICAgIHRyYW5zYWN0aW9uVHlwZTogcGFyc2VkVHgudHlwZSxcbiAgICAgICAgICAgIGV4cGlyeVRpbWU6IHBhcnNlZFR4LmV4cGlyeVRpbWUsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLl91dGlscy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIGFkZFNpZ25hdHVyZShzaWduYXR1cmVQYXlsb2FkczogU2lnbmF0dXJlc1tdKTogdm9pZCB7XG4gICAgaWYgKCFzaWduYXR1cmVQYXlsb2Fkcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzaWduYXR1cmVzIG5vdCBwcm92aWRlZCcpO1xuICAgIH1cbiAgICBpZiAoc2lnbmF0dXJlUGF5bG9hZHMubGVuZ3RoICE9PSB0aGlzLl9wYXlsb2Fkc0RhdGEucGF5bG9hZHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NpZ25hdHVyZXMgbGVuZ3RoIGlzIG5vdCBtYXRjaGluZycpO1xuICAgIH1cbiAgICB0aGlzLl9zaWduYXR1cmVQYXlsb2FkID0gc2lnbmF0dXJlUGF5bG9hZHM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgc3dpdGNoICh0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEudHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIE9wZXJhdGlvblR5cGUuVFJBTlNBQ1RJT046XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgICAgIHNlbmRlcjogdGhpcy5faWNwVHJhbnNhY3Rpb25EYXRhLnNlbmRlckFkZHJlc3MsXG4gICAgICAgICAgc2VuZGVyUHVibGljS2V5OiB0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEuc2VuZGVyUHVibGljS2V5SGV4LFxuICAgICAgICAgIHJlY2lwaWVudDogdGhpcy5faWNwVHJhbnNhY3Rpb25EYXRhLnJlY2VpdmVyQWRkcmVzcyxcbiAgICAgICAgICBtZW1vOiB0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEubWVtbyxcbiAgICAgICAgICBmZWVBbW91bnQ6IHRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YS5mZWUsXG4gICAgICAgICAgZXhwaXJhdGlvblRpbWU6IHRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YS5leHBpcnlUaW1lLFxuICAgICAgICAgIHR5cGU6IEJpdEdvVHJhbnNhY3Rpb25UeXBlLlNlbmQsXG4gICAgICAgIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IEljcFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydpZCcsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnXTtcbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW107XG5cbiAgICBjb25zdCBleHBsYW5hdGlvblJlc3VsdCA9IHtcbiAgICAgIGRpc3BsYXlPcmRlcixcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgb3V0cHV0cyxcbiAgICAgIG91dHB1dEFtb3VudDogJzAnLFxuICAgICAgZmVlOiB7IGZlZTogJzAnIH0sXG4gICAgICB0eXBlOiByZXN1bHQudHlwZSxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLCAvLyBhY2NvdW50IGJhc2VkIGRvZXMgbm90IHVzZSBjaGFuZ2Ugb3V0cHV0c1xuICAgICAgY2hhbmdlQW1vdW50OiAnMCcsIC8vIGFjY291bnQgYmFzZWQgZG9lcyBub3QgbWFrZSBjaGFuZ2VcbiAgICB9O1xuXG4gICAgc3dpdGNoIChleHBsYW5hdGlvblJlc3VsdC50eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluVHJhbnNmZXJUcmFuc2FjdGlvbihleHBsYW5hdGlvblJlc3VsdCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIHR5cGUgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBsYWlucyBhIHRyYW5zZmVyIHRyYW5zYWN0aW9uIGJ5IHByb3ZpZGluZyBkZXRhaWxzIGFib3V0IHRoZSByZWNpcGllbnRzIGFuZCB0aGUgdG90YWwgb3V0cHV0IGFtb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtJY3BUcmFuc2FjdGlvbkV4cGxhbmF0aW9ufSBleHBsYW5hdGlvblJlc3VsdCAtIFRoZSBpbml0aWFsIGV4cGxhbmF0aW9uIHJlc3VsdCB0byBiZSBleHRlbmRlZC5cbiAgICogQHJldHVybnMge0ljcFRyYW5zYWN0aW9uRXhwbGFuYXRpb259IFRoZSBleHRlbmRlZCBleHBsYW5hdGlvbiByZXN1bHQgaW5jbHVkaW5nIHRoZSBvdXRwdXQgYW1vdW50IGFuZCByZWNpcGllbnRzLlxuICAgKi9cbiAgZXhwbGFpblRyYW5zZmVyVHJhbnNhY3Rpb24oZXhwbGFuYXRpb25SZXN1bHQ6IEljcFRyYW5zYWN0aW9uRXhwbGFuYXRpb24pOiBJY3BUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBleHBsYW5hdGlvblJlc3VsdC5mZWUgPSB7IGZlZTogdGhpcy5pY3BUcmFuc2FjdGlvbkRhdGEuZmVlIH07XG4gICAgY29uc3QgcmVjaXBpZW50cyA9IHRoaXMuX3V0aWxzLmdldFJlY2lwaWVudHModGhpcy5pY3BUcmFuc2FjdGlvbkRhdGEpO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbcmVjaXBpZW50c107XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50Qk4gPSByZWNpcGllbnRzLmFtb3VudDtcbiAgICBjb25zdCBvdXRwdXRBbW91bnQgPSBvdXRwdXRBbW91bnRCTi50b1N0cmluZygpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmV4cGxhbmF0aW9uUmVzdWx0LFxuICAgICAgb3V0cHV0QW1vdW50LFxuICAgICAgb3V0cHV0cyxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9zaWduZWRUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIHNlcmlhbGl6ZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uOiBTaWduZWRUcmFuc2FjdGlvblJlcXVlc3QgPSB7XG4gICAgICBzaWduZWRfdHJhbnNhY3Rpb246IHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uLFxuICAgICAgbmV0d29ya19pZGVudGlmaWVyOiB7XG4gICAgICAgIGJsb2NrY2hhaW46IHRoaXMuX2NvaW5Db25maWcuZnVsbE5hbWUsXG4gICAgICAgIG5ldHdvcms6IE5ldHdvcmsuSUQsXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIGFzeW5jIHBhcnNlVW5zaWduZWRUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHVuc2lnbmVkVHJhbnNhY3Rpb24gPSB0aGlzLl91dGlscy5jYm9yRGVjb2RlKFxuICAgICAgdGhpcy5fdXRpbHMuYmxvYkZyb21IZXgocmF3VHJhbnNhY3Rpb24pXG4gICAgKSBhcyBDYm9yVW5zaWduZWRUcmFuc2FjdGlvbjtcbiAgICBjb25zdCB1cGRhdGUgPSB1bnNpZ25lZFRyYW5zYWN0aW9uLnVwZGF0ZXNbMF07XG4gICAgY29uc3QgaHR0cENhbmlzdGVyVXBkYXRlID0gdXBkYXRlWzFdIGFzIEh0dHBDYW5pc3RlclVwZGF0ZTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRQYXJzZWRUcmFuc2FjdGlvbkZyb21VcGRhdGUoaHR0cENhbmlzdGVyVXBkYXRlLCBmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFBhcnNlZFRyYW5zYWN0aW9uRnJvbVVwZGF0ZShcbiAgICBodHRwQ2FuaXN0ZXJVcGRhdGU6IEh0dHBDYW5pc3RlclVwZGF0ZSxcbiAgICBpc1NpZ25lZDogYm9vbGVhblxuICApOiBQcm9taXNlPFBhcnNlZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3Qgc2VuZGVyUHJpbmNpcGFsID0gdGhpcy5fdXRpbHMuY29udmVydFNlbmRlckJsb2JUb1ByaW5jaXBhbChodHRwQ2FuaXN0ZXJVcGRhdGUuc2VuZGVyKTtcbiAgICBjb25zdCBBQ0NPVU5UX0lEX1BSRUZJWCA9IHRoaXMuX3V0aWxzLmdldEFjY291bnRJZFByZWZpeCgpO1xuICAgIGNvbnN0IHN1YkFjY291bnQgPSBuZXcgVWludDhBcnJheSgzMik7XG4gICAgY29uc3Qgc2VuZGVyQWNjb3VudCA9IHRoaXMuX3V0aWxzLmdldEFjY291bnRJZEZyb21QcmluY2lwYWxCeXRlcyhcbiAgICAgIEFDQ09VTlRfSURfUFJFRklYLFxuICAgICAgQnVmZmVyLmZyb20oc2VuZGVyUHJpbmNpcGFsLmJ1ZmZlciksXG4gICAgICBzdWJBY2NvdW50XG4gICAgKTtcbiAgICBjb25zdCBhcmdzID0gYXdhaXQgdGhpcy5fdXRpbHMuZnJvbUFyZ3MoaHR0cENhbmlzdGVyVXBkYXRlLmFyZyk7XG4gICAgY29uc3Qgc2VuZGVyT3BlcmF0aW9uOiBJY3BPcGVyYXRpb24gPSB7XG4gICAgICB0eXBlOiBPcGVyYXRpb25UeXBlLlRSQU5TQUNUSU9OLFxuICAgICAgYWNjb3VudDogeyBhZGRyZXNzOiBzZW5kZXJBY2NvdW50IH0sXG4gICAgICBhbW91bnQ6IHtcbiAgICAgICAgdmFsdWU6IGAtJHthcmdzLnBheW1lbnQucmVjZWl2ZXJHZXRzLmU4cy50b1N0cmluZygpfWAsXG4gICAgICAgIGN1cnJlbmN5OiB7XG4gICAgICAgICAgc3ltYm9sOiB0aGlzLl9jb2luQ29uZmlnLmZhbWlseSxcbiAgICAgICAgICBkZWNpbWFsczogdGhpcy5fY29pbkNvbmZpZy5kZWNpbWFsUGxhY2VzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHJlY2VpdmVyT3BlcmF0aW9uOiBJY3BPcGVyYXRpb24gPSB7XG4gICAgICB0eXBlOiBPcGVyYXRpb25UeXBlLlRSQU5TQUNUSU9OLFxuICAgICAgYWNjb3VudDogeyBhZGRyZXNzOiBhcmdzLnRvLmhhc2gudG9TdHJpbmcoJ2hleCcpIH0sXG4gICAgICBhbW91bnQ6IHtcbiAgICAgICAgdmFsdWU6IGFyZ3MucGF5bWVudC5yZWNlaXZlckdldHMuZThzLnRvU3RyaW5nKCksXG4gICAgICAgIGN1cnJlbmN5OiB7XG4gICAgICAgICAgc3ltYm9sOiB0aGlzLl9jb2luQ29uZmlnLmZhbWlseSxcbiAgICAgICAgICBkZWNpbWFsczogdGhpcy5fY29pbkNvbmZpZy5kZWNpbWFsUGxhY2VzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgZmVlT3BlcmF0aW9uOiBJY3BPcGVyYXRpb24gPSB7XG4gICAgICB0eXBlOiBPcGVyYXRpb25UeXBlLkZFRSxcbiAgICAgIGFjY291bnQ6IHsgYWRkcmVzczogc2VuZGVyQWNjb3VudCB9LFxuICAgICAgYW1vdW50OiB7XG4gICAgICAgIHZhbHVlOiBgLSR7YXJncy5tYXhGZWUuZThzLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgY3VycmVuY3k6IHtcbiAgICAgICAgICBzeW1ib2w6IHRoaXMuX2NvaW5Db25maWcuZmFtaWx5LFxuICAgICAgICAgIGRlY2ltYWxzOiB0aGlzLl9jb2luQ29uZmlnLmRlY2ltYWxQbGFjZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgYWNjb3VudElkZW50aWZpZXJTaWduZXJzOiBJY3BBY2NvdW50W10gPSBbXTtcbiAgICBpZiAoaXNTaWduZWQpIHtcbiAgICAgIGFjY291bnRJZGVudGlmaWVyU2lnbmVycy5wdXNoKHsgYWRkcmVzczogc2VuZGVyQWNjb3VudCB9KTtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VkVHhuOiBQYXJzZWRUcmFuc2FjdGlvbiA9IHtcbiAgICAgIG9wZXJhdGlvbnM6IFtzZW5kZXJPcGVyYXRpb24sIHJlY2VpdmVyT3BlcmF0aW9uLCBmZWVPcGVyYXRpb25dLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgY3JlYXRlZF9hdF90aW1lOiBhcmdzLmNyZWF0ZWRBdFRpbWUudGltZXN0YW1wTmFub3MsXG4gICAgICAgIG1lbW86IE51bWJlcihhcmdzLm1lbW8ubWVtbyksXG4gICAgICB9LFxuICAgICAgYWNjb3VudF9pZGVudGlmaWVyX3NpZ25lcnM6IGFjY291bnRJZGVudGlmaWVyU2lnbmVycyxcbiAgICB9O1xuICAgIHJldHVybiBwYXJzZWRUeG47XG4gIH1cblxuICBhc3luYyBwYXJzZVNpZ25lZFRyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBQcm9taXNlPFBhcnNlZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3Qgc2lnbmVkVHJhbnNhY3Rpb24gPSB0aGlzLl91dGlscy5jYm9yRGVjb2RlKHRoaXMuX3V0aWxzLmJsb2JGcm9tSGV4KHJhd1RyYW5zYWN0aW9uKSk7XG4gICAgY29uc3Qgc2lnbmVkVHJhbnNhY3Rpb25UeXBlZCA9IHNpZ25lZFRyYW5zYWN0aW9uIGFzIHsgcmVxdWVzdHM6IGFueVtdIH07XG4gICAgY29uc3QgZW52ZWxvcGVzID0gc2lnbmVkVHJhbnNhY3Rpb25UeXBlZC5yZXF1ZXN0c1swXVsxXTtcbiAgICBjb25zdCB1cGRhdGVzID0gZW52ZWxvcGVzLm1hcCgoZW52ZWxvcGUpID0+IGVudmVsb3BlLnVwZGF0ZSk7XG4gICAgY29uc3QgaHR0cENhbmlzdGVyVXBkYXRlID0gdXBkYXRlc1swXS5jb250ZW50IGFzIEh0dHBDYW5pc3RlclVwZGF0ZTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRQYXJzZWRUcmFuc2FjdGlvbkZyb21VcGRhdGUoaHR0cENhbmlzdGVyVXBkYXRlLCB0cnVlKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBjYW5TaWduKGtleTogQmFzZUtleSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG4iXX0=
|
|
236
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDhDQU95QjtBQUV6QixtQ0FrQmlCO0FBR2pCLE1BQWEsV0FBWSxTQUFRLDBCQUFlO0lBUzlDLFlBQVksV0FBaUMsRUFBRSxLQUFZO1FBQ3pELEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsa0JBQXNDO1FBQzNELElBQUksQ0FBQyxtQkFBbUIsR0FBRyxrQkFBa0IsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsY0FBOEI7UUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQUksaUJBQWlCLENBQUMsU0FBaUI7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFNBQVMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksWUFBWSxDQUFDLFlBQTBCO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO0lBQ3BDLENBQUM7SUFF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QUEvUUQsa0NBK1FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZUtleSxcbiAgQmFzZVRyYW5zYWN0aW9uLFxuICBUcmFuc2FjdGlvblJlY2lwaWVudCxcbiAgVHJhbnNhY3Rpb25UeXBlLFxuICBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcixcbiAgVHJhbnNhY3Rpb25UeXBlIGFzIEJpdEdvVHJhbnNhY3Rpb25UeXBlLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7XG4gIEljcFRyYW5zYWN0aW9uLFxuICBJY3BUcmFuc2FjdGlvbkRhdGEsXG4gIFBheWxvYWRzRGF0YSxcbiAgT3BlcmF0aW9uVHlwZSxcbiAgU2lnbmF0dXJlcyxcbiAgVHhEYXRhLFxuICBJY3BUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLFxuICBTaWduZWRUcmFuc2FjdGlvblJlcXVlc3QsXG4gIE5ldHdvcmssXG4gIENib3JVbnNpZ25lZFRyYW5zYWN0aW9uLFxuICBIdHRwQ2FuaXN0ZXJVcGRhdGUsXG4gIFBhcnNlZFRyYW5zYWN0aW9uLFxuICBJY3BPcGVyYXRpb24sXG4gIEljcEFjY291bnQsXG4gIE1BWF9JTkdSRVNTX1RUTCxcbiAgUEVSTUlUVEVEX0RSSUZULFxuICBSYXdUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcm90ZWN0ZWQgX2ljcFRyYW5zYWN0aW9uRGF0YTogSWNwVHJhbnNhY3Rpb25EYXRhO1xuICBwcm90ZWN0ZWQgX2ljcFRyYW5zYWN0aW9uOiBJY3BUcmFuc2FjdGlvbjtcbiAgcHJvdGVjdGVkIF9wYXlsb2Fkc0RhdGE6IFBheWxvYWRzRGF0YTtcbiAgcHJvdGVjdGVkIF9zaWduZWRUcmFuc2FjdGlvbjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3NpZ25hdHVyZVBheWxvYWQ6IFNpZ25hdHVyZXNbXTtcbiAgcHJvdGVjdGVkIF9jcmVhdGVkVGltZXN0YW1wOiBudW1iZXIgfCBiaWdpbnQgfCB1bmRlZmluZWQ7XG4gIHByb3RlY3RlZCBfdXRpbHM6IFV0aWxzO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPiwgdXRpbHM6IFV0aWxzKSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3V0aWxzID0gdXRpbHM7XG4gIH1cblxuICBnZXQgaWNwVHJhbnNhY3Rpb25EYXRhKCk6IEljcFRyYW5zYWN0aW9uRGF0YSB7XG4gICAgcmV0dXJuIHRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YTtcbiAgfVxuXG4gIHNldCBpY3BUcmFuc2FjdGlvbkRhdGEoaWNwVHJhbnNhY3Rpb25EYXRhOiBJY3BUcmFuc2FjdGlvbkRhdGEpIHtcbiAgICB0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEgPSBpY3BUcmFuc2FjdGlvbkRhdGE7XG4gIH1cblxuICBnZXQgaWNwVHJhbnNhY3Rpb24oKTogSWNwVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl9pY3BUcmFuc2FjdGlvbjtcbiAgfVxuXG4gIHNldCBpY3BUcmFuc2FjdGlvbihpY3BUcmFuc2FjdGlvbjogSWNwVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl9pY3BUcmFuc2FjdGlvbiA9IGljcFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgZ2V0IHVuc2lnbmVkVHJhbnNhY3Rpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fcGF5bG9hZHNEYXRhLnVuc2lnbmVkX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgZ2V0IHNpZ25hdHVyZVBheWxvYWQoKTogU2lnbmF0dXJlc1tdIHtcbiAgICByZXR1cm4gdGhpcy5fc2lnbmF0dXJlUGF5bG9hZDtcbiAgfVxuXG4gIHNldCBzaWduZWRUcmFuc2FjdGlvbihzaWduYXR1cmU6IHN0cmluZykge1xuICAgIHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uID0gc2lnbmF0dXJlO1xuICB9XG5cbiAgZ2V0IHNpZ25lZFRyYW5zYWN0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgc2V0IHBheWxvYWRzRGF0YShwYXlsb2Fkc0RhdGE6IFBheWxvYWRzRGF0YSkge1xuICAgIHRoaXMuX3BheWxvYWRzRGF0YSA9IHBheWxvYWRzRGF0YTtcbiAgfVxuXG4gIGdldCBwYXlsb2Fkc0RhdGEoKTogUGF5bG9hZHNEYXRhIHtcbiAgICByZXR1cm4gdGhpcy5fcGF5bG9hZHNEYXRhO1xuICB9XG5cbiAgc2V0IGNyZWF0ZWRUaW1lc3RhbXAoY3JlYXRlZFRpbWVzdGFtcDogbnVtYmVyKSB7XG4gICAgdGhpcy5fY3JlYXRlZFRpbWVzdGFtcCA9IGNyZWF0ZWRUaW1lc3RhbXA7XG4gIH1cblxuICBnZXQgY3JlYXRlZFRpbWVzdGFtcCgpOiBudW1iZXIgfCBiaWdpbnQgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9jcmVhdGVkVGltZXN0YW1wO1xuICB9XG5cbiAgYXN5bmMgZnJvbVJhd1RyYW5zYWN0aW9uKHJhd1RyYW5zYWN0aW9uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QganNvblJhd1RyYW5zYWN0aW9uOiBSYXdUcmFuc2FjdGlvbiA9IEpTT04ucGFyc2UocmF3VHJhbnNhY3Rpb24pO1xuICAgICAgY29uc3QgcGFyc2VkVHggPSBhd2FpdCB0aGlzLnBhcnNlVW5zaWduZWRUcmFuc2FjdGlvbihqc29uUmF3VHJhbnNhY3Rpb24uc2VyaWFsaXplZFR4SGV4KTtcbiAgICAgIGNvbnN0IHNlbmRlclB1YmxpY0tleUhleCA9IGpzb25SYXdUcmFuc2FjdGlvbi5wdWJsaWNLZXk7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvblR5cGUgPSBwYXJzZWRUeC5vcGVyYXRpb25zWzBdLnR5cGU7XG4gICAgICBzd2l0Y2ggKHRyYW5zYWN0aW9uVHlwZSkge1xuICAgICAgICBjYXNlIE9wZXJhdGlvblR5cGUuVFJBTlNBQ1RJT046XG4gICAgICAgICAgdGhpcy5faWNwVHJhbnNhY3Rpb25EYXRhID0ge1xuICAgICAgICAgICAgc2VuZGVyQWRkcmVzczogcGFyc2VkVHgub3BlcmF0aW9uc1swXS5hY2NvdW50LmFkZHJlc3MsXG4gICAgICAgICAgICByZWNlaXZlckFkZHJlc3M6IHBhcnNlZFR4Lm9wZXJhdGlvbnNbMV0uYWNjb3VudC5hZGRyZXNzLFxuICAgICAgICAgICAgYW1vdW50OiBwYXJzZWRUeC5vcGVyYXRpb25zWzFdLmFtb3VudC52YWx1ZSxcbiAgICAgICAgICAgIGZlZTogcGFyc2VkVHgub3BlcmF0aW9uc1syXS5hbW91bnQudmFsdWUsXG4gICAgICAgICAgICBzZW5kZXJQdWJsaWNLZXlIZXg6IHNlbmRlclB1YmxpY0tleUhleCxcbiAgICAgICAgICAgIG1lbW86IHBhcnNlZFR4Lm1ldGFkYXRhLm1lbW8sXG4gICAgICAgICAgICB0cmFuc2FjdGlvblR5cGU6IHRyYW5zYWN0aW9uVHlwZSxcbiAgICAgICAgICAgIGV4cGlyeVRpbWU6IE51bWJlcihwYXJzZWRUeC5tZXRhZGF0YS5jcmVhdGVkX2F0X3RpbWUgKyAoTUFYX0lOR1JFU1NfVFRMIC0gUEVSTUlUVEVEX0RSSUZUKSksXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLl91dGlscy52YWxpZGF0ZVJhd1RyYW5zYWN0aW9uKHRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIGFkZFNpZ25hdHVyZShzaWduYXR1cmVQYXlsb2FkczogU2lnbmF0dXJlc1tdKTogdm9pZCB7XG4gICAgaWYgKCFzaWduYXR1cmVQYXlsb2Fkcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdzaWduYXR1cmVzIG5vdCBwcm92aWRlZCcpO1xuICAgIH1cbiAgICBpZiAoc2lnbmF0dXJlUGF5bG9hZHMubGVuZ3RoICE9PSB0aGlzLl9wYXlsb2Fkc0RhdGEucGF5bG9hZHMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3NpZ25hdHVyZXMgbGVuZ3RoIGlzIG5vdCBtYXRjaGluZycpO1xuICAgIH1cbiAgICB0aGlzLl9zaWduYXR1cmVQYXlsb2FkID0gc2lnbmF0dXJlUGF5bG9hZHM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdG9Kc29uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEpIHtcbiAgICAgIHRocm93IG5ldyBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvcignRW1wdHkgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gICAgc3dpdGNoICh0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEudHJhbnNhY3Rpb25UeXBlKSB7XG4gICAgICBjYXNlIE9wZXJhdGlvblR5cGUuVFJBTlNBQ1RJT046XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaWQ6IHRoaXMuX2lkLFxuICAgICAgICAgIHNlbmRlcjogdGhpcy5faWNwVHJhbnNhY3Rpb25EYXRhLnNlbmRlckFkZHJlc3MsXG4gICAgICAgICAgc2VuZGVyUHVibGljS2V5OiB0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEuc2VuZGVyUHVibGljS2V5SGV4LFxuICAgICAgICAgIHJlY2lwaWVudDogdGhpcy5faWNwVHJhbnNhY3Rpb25EYXRhLnJlY2VpdmVyQWRkcmVzcyxcbiAgICAgICAgICBtZW1vOiB0aGlzLl9pY3BUcmFuc2FjdGlvbkRhdGEubWVtbyxcbiAgICAgICAgICBmZWVBbW91bnQ6IHRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YS5mZWUsXG4gICAgICAgICAgZXhwaXJhdGlvblRpbWU6IHRoaXMuX2ljcFRyYW5zYWN0aW9uRGF0YS5leHBpcnlUaW1lLFxuICAgICAgICAgIHR5cGU6IEJpdEdvVHJhbnNhY3Rpb25UeXBlLlNlbmQsXG4gICAgICAgIH07XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXREb2MgKi9cbiAgZXhwbGFpblRyYW5zYWN0aW9uKCk6IEljcFRyYW5zYWN0aW9uRXhwbGFuYXRpb24ge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMudG9Kc29uKCk7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydpZCcsICdvdXRwdXRBbW91bnQnLCAnY2hhbmdlQW1vdW50JywgJ291dHB1dHMnLCAnY2hhbmdlT3V0cHV0cycsICdmZWUnXTtcbiAgICBjb25zdCBvdXRwdXRzOiBUcmFuc2FjdGlvblJlY2lwaWVudFtdID0gW107XG5cbiAgICBjb25zdCBleHBsYW5hdGlvblJlc3VsdCA9IHtcbiAgICAgIGRpc3BsYXlPcmRlcixcbiAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgb3V0cHV0cyxcbiAgICAgIG91dHB1dEFtb3VudDogJzAnLFxuICAgICAgZmVlOiB7IGZlZTogJzAnIH0sXG4gICAgICB0eXBlOiByZXN1bHQudHlwZSxcbiAgICAgIGNoYW5nZU91dHB1dHM6IFtdLCAvLyBhY2NvdW50IGJhc2VkIGRvZXMgbm90IHVzZSBjaGFuZ2Ugb3V0cHV0c1xuICAgICAgY2hhbmdlQW1vdW50OiAnMCcsIC8vIGFjY291bnQgYmFzZWQgZG9lcyBub3QgbWFrZSBjaGFuZ2VcbiAgICB9O1xuXG4gICAgc3dpdGNoIChleHBsYW5hdGlvblJlc3VsdC50eXBlKSB7XG4gICAgICBjYXNlIFRyYW5zYWN0aW9uVHlwZS5TZW5kOlxuICAgICAgICByZXR1cm4gdGhpcy5leHBsYWluVHJhbnNmZXJUcmFuc2FjdGlvbihleHBsYW5hdGlvblJlc3VsdCk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ1RyYW5zYWN0aW9uIHR5cGUgbm90IHN1cHBvcnRlZCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeHBsYWlucyBhIHRyYW5zZmVyIHRyYW5zYWN0aW9uIGJ5IHByb3ZpZGluZyBkZXRhaWxzIGFib3V0IHRoZSByZWNpcGllbnRzIGFuZCB0aGUgdG90YWwgb3V0cHV0IGFtb3VudC5cbiAgICpcbiAgICogQHBhcmFtIHtJY3BUcmFuc2FjdGlvbkV4cGxhbmF0aW9ufSBleHBsYW5hdGlvblJlc3VsdCAtIFRoZSBpbml0aWFsIGV4cGxhbmF0aW9uIHJlc3VsdCB0byBiZSBleHRlbmRlZC5cbiAgICogQHJldHVybnMge0ljcFRyYW5zYWN0aW9uRXhwbGFuYXRpb259IFRoZSBleHRlbmRlZCBleHBsYW5hdGlvbiByZXN1bHQgaW5jbHVkaW5nIHRoZSBvdXRwdXQgYW1vdW50IGFuZCByZWNpcGllbnRzLlxuICAgKi9cbiAgZXhwbGFpblRyYW5zZmVyVHJhbnNhY3Rpb24oZXhwbGFuYXRpb25SZXN1bHQ6IEljcFRyYW5zYWN0aW9uRXhwbGFuYXRpb24pOiBJY3BUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgICBleHBsYW5hdGlvblJlc3VsdC5mZWUgPSB7IGZlZTogdGhpcy5pY3BUcmFuc2FjdGlvbkRhdGEuZmVlIH07XG4gICAgY29uc3QgcmVjaXBpZW50cyA9IHRoaXMuX3V0aWxzLmdldFJlY2lwaWVudHModGhpcy5pY3BUcmFuc2FjdGlvbkRhdGEpO1xuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbcmVjaXBpZW50c107XG4gICAgY29uc3Qgb3V0cHV0QW1vdW50Qk4gPSByZWNpcGllbnRzLmFtb3VudDtcbiAgICBjb25zdCBvdXRwdXRBbW91bnQgPSBvdXRwdXRBbW91bnRCTi50b1N0cmluZygpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmV4cGxhbmF0aW9uUmVzdWx0LFxuICAgICAgb3V0cHV0QW1vdW50LFxuICAgICAgb3V0cHV0cyxcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRvQnJvYWRjYXN0Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9zaWduZWRUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdFbXB0eSB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zZXJpYWxpemUoKTtcbiAgfVxuXG4gIHNlcmlhbGl6ZSgpOiBzdHJpbmcge1xuICAgIGNvbnN0IHRyYW5zYWN0aW9uOiBTaWduZWRUcmFuc2FjdGlvblJlcXVlc3QgPSB7XG4gICAgICBzaWduZWRfdHJhbnNhY3Rpb246IHRoaXMuX3NpZ25lZFRyYW5zYWN0aW9uLFxuICAgICAgbmV0d29ya19pZGVudGlmaWVyOiB7XG4gICAgICAgIGJsb2NrY2hhaW46IHRoaXMuX2NvaW5Db25maWcuZnVsbE5hbWUsXG4gICAgICAgIG5ldHdvcms6IE5ldHdvcmsuSUQsXG4gICAgICB9LFxuICAgIH07XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRyYW5zYWN0aW9uKTtcbiAgfVxuXG4gIGFzeW5jIHBhcnNlVW5zaWduZWRUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHVuc2lnbmVkVHJhbnNhY3Rpb24gPSB0aGlzLl91dGlscy5jYm9yRGVjb2RlKFxuICAgICAgdGhpcy5fdXRpbHMuYmxvYkZyb21IZXgocmF3VHJhbnNhY3Rpb24pXG4gICAgKSBhcyBDYm9yVW5zaWduZWRUcmFuc2FjdGlvbjtcbiAgICBjb25zdCB1cGRhdGUgPSB1bnNpZ25lZFRyYW5zYWN0aW9uLnVwZGF0ZXNbMF07XG4gICAgY29uc3QgaHR0cENhbmlzdGVyVXBkYXRlID0gdXBkYXRlWzFdIGFzIEh0dHBDYW5pc3RlclVwZGF0ZTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5nZXRQYXJzZWRUcmFuc2FjdGlvbkZyb21VcGRhdGUoaHR0cENhbmlzdGVyVXBkYXRlLCBmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFBhcnNlZFRyYW5zYWN0aW9uRnJvbVVwZGF0ZShcbiAgICBodHRwQ2FuaXN0ZXJVcGRhdGU6IEh0dHBDYW5pc3RlclVwZGF0ZSxcbiAgICBpc1NpZ25lZDogYm9vbGVhblxuICApOiBQcm9taXNlPFBhcnNlZFRyYW5zYWN0aW9uPiB7XG4gICAgY29uc3Qgc2VuZGVyUHJpbmNpcGFsID0gdGhpcy5fdXRpbHMuY29udmVydFNlbmRlckJsb2JUb1ByaW5jaXBhbChodHRwQ2FuaXN0ZXJVcGRhdGUuc2VuZGVyKTtcbiAgICBjb25zdCBBQ0NPVU5UX0lEX1BSRUZJWCA9IHRoaXMuX3V0aWxzLmdldEFjY291bnRJZFByZWZpeCgpO1xuICAgIGNvbnN0IHN1YkFjY291bnQgPSBuZXcgVWludDhBcnJheSgzMik7XG4gICAgY29uc3Qgc2VuZGVyQWNjb3VudCA9IHRoaXMuX3V0aWxzLmdldEFjY291bnRJZEZyb21QcmluY2lwYWxCeXRlcyhcbiAgICAgIEFDQ09VTlRfSURfUFJFRklYLFxuICAgICAgQnVmZmVyLmZyb20oc2VuZGVyUHJpbmNpcGFsLmJ1ZmZlciksXG4gICAgICBzdWJBY2NvdW50XG4gICAgKTtcbiAgICBjb25zdCBhcmdzID0gYXdhaXQgdGhpcy5fdXRpbHMuZnJvbUFyZ3MoaHR0cENhbmlzdGVyVXBkYXRlLmFyZyk7XG4gICAgY29uc3Qgc2VuZGVyT3BlcmF0aW9uOiBJY3BPcGVyYXRpb24gPSB7XG4gICAgICB0eXBlOiBPcGVyYXRpb25UeXBlLlRSQU5TQUNUSU9OLFxuICAgICAgYWNjb3VudDogeyBhZGRyZXNzOiBzZW5kZXJBY2NvdW50IH0sXG4gICAgICBhbW91bnQ6IHtcbiAgICAgICAgdmFsdWU6IGAtJHthcmdzLnBheW1lbnQucmVjZWl2ZXJHZXRzLmU4cy50b1N0cmluZygpfWAsXG4gICAgICAgIGN1cnJlbmN5OiB7XG4gICAgICAgICAgc3ltYm9sOiB0aGlzLl9jb2luQ29uZmlnLmZhbWlseSxcbiAgICAgICAgICBkZWNpbWFsczogdGhpcy5fY29pbkNvbmZpZy5kZWNpbWFsUGxhY2VzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuICAgIGNvbnN0IHJlY2VpdmVyT3BlcmF0aW9uOiBJY3BPcGVyYXRpb24gPSB7XG4gICAgICB0eXBlOiBPcGVyYXRpb25UeXBlLlRSQU5TQUNUSU9OLFxuICAgICAgYWNjb3VudDogeyBhZGRyZXNzOiBhcmdzLnRvLmhhc2gudG9TdHJpbmcoJ2hleCcpIH0sXG4gICAgICBhbW91bnQ6IHtcbiAgICAgICAgdmFsdWU6IGFyZ3MucGF5bWVudC5yZWNlaXZlckdldHMuZThzLnRvU3RyaW5nKCksXG4gICAgICAgIGN1cnJlbmN5OiB7XG4gICAgICAgICAgc3ltYm9sOiB0aGlzLl9jb2luQ29uZmlnLmZhbWlseSxcbiAgICAgICAgICBkZWNpbWFsczogdGhpcy5fY29pbkNvbmZpZy5kZWNpbWFsUGxhY2VzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgZmVlT3BlcmF0aW9uOiBJY3BPcGVyYXRpb24gPSB7XG4gICAgICB0eXBlOiBPcGVyYXRpb25UeXBlLkZFRSxcbiAgICAgIGFjY291bnQ6IHsgYWRkcmVzczogc2VuZGVyQWNjb3VudCB9LFxuICAgICAgYW1vdW50OiB7XG4gICAgICAgIHZhbHVlOiBgLSR7YXJncy5tYXhGZWUuZThzLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgY3VycmVuY3k6IHtcbiAgICAgICAgICBzeW1ib2w6IHRoaXMuX2NvaW5Db25maWcuZmFtaWx5LFxuICAgICAgICAgIGRlY2ltYWxzOiB0aGlzLl9jb2luQ29uZmlnLmRlY2ltYWxQbGFjZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgYWNjb3VudElkZW50aWZpZXJTaWduZXJzOiBJY3BBY2NvdW50W10gPSBbXTtcbiAgICBpZiAoaXNTaWduZWQpIHtcbiAgICAgIGFjY291bnRJZGVudGlmaWVyU2lnbmVycy5wdXNoKHsgYWRkcmVzczogc2VuZGVyQWNjb3VudCB9KTtcbiAgICB9XG4gICAgY29uc3QgcGFyc2VkVHhuOiBQYXJzZWRUcmFuc2FjdGlvbiA9IHtcbiAgICAgIG9wZXJhdGlvbnM6IFtzZW5kZXJPcGVyYXRpb24sIHJlY2VpdmVyT3BlcmF0aW9uLCBmZWVPcGVyYXRpb25dLFxuICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgY3JlYXRlZF9hdF90aW1lOiBhcmdzLmNyZWF0ZWRBdFRpbWUudGltZXN0YW1wTmFub3MsXG4gICAgICAgIG1lbW86IE51bWJlcihhcmdzLm1lbW8ubWVtbyksXG4gICAgICB9LFxuICAgICAgYWNjb3VudF9pZGVudGlmaWVyX3NpZ25lcnM6IGFjY291bnRJZGVudGlmaWVyU2lnbmVycyxcbiAgICB9O1xuICAgIHRoaXMuY3JlYXRlZFRpbWVzdGFtcCA9IGFyZ3MuY3JlYXRlZEF0VGltZS50aW1lc3RhbXBOYW5vcztcbiAgICByZXR1cm4gcGFyc2VkVHhuO1xuICB9XG5cbiAgYXN5bmMgcGFyc2VTaWduZWRUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogUHJvbWlzZTxQYXJzZWRUcmFuc2FjdGlvbj4ge1xuICAgIGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uID0gdGhpcy5fdXRpbHMuY2JvckRlY29kZSh0aGlzLl91dGlscy5ibG9iRnJvbUhleChyYXdUcmFuc2FjdGlvbikpO1xuICAgIGNvbnN0IHNpZ25lZFRyYW5zYWN0aW9uVHlwZWQgPSBzaWduZWRUcmFuc2FjdGlvbiBhcyB7IHJlcXVlc3RzOiBhbnlbXSB9O1xuICAgIGNvbnN0IGVudmVsb3BlcyA9IHNpZ25lZFRyYW5zYWN0aW9uVHlwZWQucmVxdWVzdHNbMF1bMV07XG4gICAgY29uc3QgdXBkYXRlcyA9IGVudmVsb3Blcy5tYXAoKGVudmVsb3BlKSA9PiBlbnZlbG9wZS51cGRhdGUpO1xuICAgIGNvbnN0IGh0dHBDYW5pc3RlclVwZGF0ZSA9IHVwZGF0ZXNbMF0uY29udGVudCBhcyBIdHRwQ2FuaXN0ZXJVcGRhdGU7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZ2V0UGFyc2VkVHJhbnNhY3Rpb25Gcm9tVXBkYXRlKGh0dHBDYW5pc3RlclVwZGF0ZSwgdHJ1ZSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuIl19
|
|
@@ -2,7 +2,7 @@ import { BaseCoin as CoinConfig } from '@bitgo/statics';
|
|
|
2
2
|
import BigNumber from 'bignumber.js';
|
|
3
3
|
import { BaseTransactionBuilder, BaseAddress, BaseKey } from '@bitgo/sdk-core';
|
|
4
4
|
import { Transaction } from './transaction';
|
|
5
|
-
import { IcpTransactionData } from './iface';
|
|
5
|
+
import { IcpTransactionData, Signatures } from './iface';
|
|
6
6
|
export declare abstract class TransactionBuilder extends BaseTransactionBuilder {
|
|
7
7
|
protected _transaction: Transaction;
|
|
8
8
|
protected _sender: string;
|
|
@@ -11,6 +11,8 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
|
|
|
11
11
|
protected _receiverId: string;
|
|
12
12
|
protected _amount: string;
|
|
13
13
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
14
|
+
signaturePayload(): Signatures[];
|
|
15
|
+
unsignedTransaction(): string;
|
|
14
16
|
/**
|
|
15
17
|
* Sets the public key and the address of the sender of this transaction.
|
|
16
18
|
*
|
|
@@ -60,5 +62,6 @@ export declare abstract class TransactionBuilder extends BaseTransactionBuilder
|
|
|
60
62
|
validateRawTransaction(rawTransaction: IcpTransactionData): void;
|
|
61
63
|
/** @inheritdoc */
|
|
62
64
|
validateKey(key: BaseKey): void;
|
|
65
|
+
combine(): void;
|
|
63
66
|
}
|
|
64
67
|
//# sourceMappingURL=transactionBuilder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAyB,WAAW,EAAgB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACpH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAyB,WAAW,EAAgB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACpH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGzD,8BAAsB,kBAAmB,SAAQ,sBAAsB;IACrE,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC;IACpC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEd,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAKtC,gBAAgB,IAAI,UAAU,EAAE;IAIhC,mBAAmB,IAAI,MAAM;IAIpC;;;;;;OAMG;IACI,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAYpD;;;;;OAKG;IACI,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ/B;;;;;OAKG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ1C,kBAAkB;IAClB,IAAI,WAAW,IAAI,WAAW,CAE7B;IAED,kBAAkB;IAClB,IAAI,WAAW,CAAC,WAAW,EAAE,WAAW,EAEvC;IAED,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED,kBAAkB;IAClB,kBAAkB,CAAC,cAAc,EAAE,kBAAkB,GAAG,WAAW;IAMnE,kBAAkB;IAClB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAOnD;;;;;OAKG;IACI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMlC,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAIrC;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAUlC,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAM3C,sBAAsB,CAAC,cAAc,EAAE,kBAAkB,GAAG,IAAI;IAIhE,kBAAkB;IAClB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAUxB,OAAO,IAAI,IAAI;CAOvB"}
|
|
@@ -8,11 +8,18 @@ const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
|
8
8
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
9
9
|
const transaction_1 = require("./transaction");
|
|
10
10
|
const utils_1 = __importDefault(require("./utils"));
|
|
11
|
+
const signedTransactionBuilder_1 = require("./signedTransactionBuilder");
|
|
11
12
|
class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
12
13
|
constructor(_coinConfig) {
|
|
13
14
|
super(_coinConfig);
|
|
14
15
|
this._transaction = new transaction_1.Transaction(_coinConfig, utils_1.default);
|
|
15
16
|
}
|
|
17
|
+
signaturePayload() {
|
|
18
|
+
return this._transaction.signaturePayload;
|
|
19
|
+
}
|
|
20
|
+
unsignedTransaction() {
|
|
21
|
+
return this._transaction.payloadsData.unsigned_transaction;
|
|
22
|
+
}
|
|
16
23
|
/**
|
|
17
24
|
* Sets the public key and the address of the sender of this transaction.
|
|
18
25
|
*
|
|
@@ -126,6 +133,11 @@ class TransactionBuilder extends sdk_core_1.BaseTransactionBuilder {
|
|
|
126
133
|
throw new sdk_core_1.SigningError('Invalid private key');
|
|
127
134
|
}
|
|
128
135
|
}
|
|
136
|
+
// combine the unsigned transaction with the signature payload and generates the signed transaction
|
|
137
|
+
combine() {
|
|
138
|
+
const signedTransactionBuilder = new signedTransactionBuilder_1.SignedTransactionBuilder(this._transaction.unsignedTransaction, this._transaction.signaturePayload);
|
|
139
|
+
this._transaction.signedTransaction = signedTransactionBuilder.getSignTransaction();
|
|
140
|
+
}
|
|
129
141
|
}
|
|
130
142
|
exports.TransactionBuilder = TransactionBuilder;
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsZ0VBQXFDO0FBQ3JDLDhDQUFvSDtBQUNwSCwrQ0FBNEM7QUFDNUMsb0RBQTRCO0FBRzVCLE1BQXNCLGtCQUFtQixTQUFRLGlDQUFzQjtJQVFyRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUkseUJBQVcsQ0FBQyxXQUFXLEVBQUUsZUFBSyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLE1BQU0sQ0FBQyxPQUFlLEVBQUUsTUFBYztRQUMzQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsZUFBSyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzFELE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxtQ0FBbUMsR0FBRyxPQUFPLENBQUMsQ0FBQztRQUNqRixDQUFDO1FBQ0QsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLGVBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxrQ0FBa0MsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7UUFDekIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxJQUFJLENBQUMsSUFBWTtRQUN0QixJQUFJLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxpQkFBaUIsSUFBSSxFQUFF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RyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSx1QkFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUMsQ0FBQztRQUNELElBQUksQ0FBQyxlQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxJQUFJLHVCQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUNoRCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBM0lELGdEQTJJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIEJhc2VBZGRyZXNzLCBTaWduaW5nRXJyb3IsIEJhc2VLZXkgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEljcFRyYW5zYWN0aW9uRGF0YSB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3NlbmRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3B1YmxpY0tleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX21lbW86IG51bWJlciB8IEJpZ0ludDtcbiAgcHJvdGVjdGVkIF9yZWNlaXZlcklkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfYW1vdW50OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnLCB1dGlscyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgcHVibGljIGtleSBhbmQgdGhlIGFkZHJlc3Mgb2YgdGhlIHNlbmRlciBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyB0aGUgYWNjb3VudCB0aGF0IGlzIHNlbmRpbmcgdGhpcyB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHViS2V5IHRoZSBwdWJsaWMga2V5IHRoYXQgaXMgc2VuZGluZyB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IFRoaXMgdHJhbnNhY3Rpb24gYnVpbGRlclxuICAgKi9cbiAgcHVibGljIHNlbmRlcihhZGRyZXNzOiBzdHJpbmcsIHB1YktleTogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFhZGRyZXNzIHx8ICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhZGRyZXNzLnRvU3RyaW5nKCkpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgYWRkcmVzcywgZ290OiAnICsgYWRkcmVzcyk7XG4gICAgfVxuICAgIGlmICghcHViS2V5IHx8ICF1dGlscy5pc1ZhbGlkUHVibGljS2V5KHB1YktleSkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgb3IgbWlzc2luZyBwdWJLZXksIGdvdDogJyArIHB1YktleSk7XG4gICAgfVxuICAgIHRoaXMuX3NlbmRlciA9IGFkZHJlc3M7XG4gICAgdGhpcy5fcHVibGljS2V5ID0gcHViS2V5O1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbWVtb1xuICAgKlxuICAgKiBAcGFyYW0ge251bWJlcn0gbWVtbyAtIG51bWJlciB0aGF0IHRvIGJlIHVzZWQgYXMgbWVtb1xuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHB1YmxpYyBtZW1vKG1lbW86IG51bWJlcik6IHRoaXMge1xuICAgIGlmIChtZW1vIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBtZW1vOiAke21lbW99YCk7XG4gICAgfVxuICAgIHRoaXMuX21lbW8gPSBtZW1vO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFjY291bnQgSWQgb2YgdGhlIHJlY2VpdmVyIG9mIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhY2NvdW50SWQgdGhlIGFjY291bnQgaWQgb2YgdGhlIGFjY291bnQgdGhhdCBpcyByZWNlaXZpbmcgdGhpcyB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHB1YmxpYyByZWNlaXZlcklkKGFjY291bnRJZDogc3RyaW5nKTogdGhpcyB7XG4gICAgaWYgKCFhY2NvdW50SWQgfHwgIXV0aWxzLmlzVmFsaWRBZGRyZXNzKGFjY291bnRJZCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgb3IgbWlzc2luZyBhY2NvdW50SWQgZm9yIHJlY2VpdmVyLCBnb3Q6ICcgKyBhY2NvdW50SWQpO1xuICAgIH1cbiAgICB0aGlzLl9yZWNlaXZlcklkID0gYWNjb3VudElkO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldCB0cmFuc2FjdGlvbigpOiBUcmFuc2FjdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHNldCB0cmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbiA9IHRyYW5zYWN0aW9uO1xuICB9XG5cbiAgZ2V0IHRyYW5zYWN0aW9uVHlwZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbi5pY3BUcmFuc2FjdGlvbkRhdGEudHJhbnNhY3Rpb25UeXBlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGZyb21JbXBsZW1lbnRhdGlvbihyYXdUcmFuc2FjdGlvbjogSWNwVHJhbnNhY3Rpb25EYXRhKTogVHJhbnNhY3Rpb24ge1xuICAgIHRoaXMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdGhpcy5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBpZiAoIXRyYW5zYWN0aW9uIHx8ICF0cmFuc2FjdGlvbi5pY3BUcmFuc2FjdGlvbkRhdGEpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdXRpbHMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbih0cmFuc2FjdGlvbi5pY3BUcmFuc2FjdGlvbkRhdGEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGFtb3VudCBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdmFsdWUgdGhlIGFtb3VudCB0byBiZSBzZW50IGluIGU4cyAoMSBJQ1AgPSAxZTggZThzKVxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHB1YmxpYyBhbW91bnQodmFsdWU6IHN0cmluZyk6IHRoaXMge1xuICAgIHV0aWxzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcih2YWx1ZSkpO1xuICAgIHRoaXMuX2Ftb3VudCA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgdmFsaWRhdGVWYWx1ZSh2YWx1ZTogQmlnTnVtYmVyKTogdm9pZCB7XG4gICAgdXRpbHMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHZhbHVlKSk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0eDtcbiAgICBjb25zdCBpY3BUcmFuc2FjdGlvbkRhdGEgPSB0eC5pY3BUcmFuc2FjdGlvbkRhdGE7XG4gICAgdGhpcy5fc2VuZGVyID0gaWNwVHJhbnNhY3Rpb25EYXRhLnNlbmRlckFkZHJlc3M7XG4gICAgdGhpcy5fbWVtbyA9IGljcFRyYW5zYWN0aW9uRGF0YS5tZW1vO1xuICAgIHRoaXMuX3JlY2VpdmVySWQgPSBpY3BUcmFuc2FjdGlvbkRhdGEucmVjZWl2ZXJBZGRyZXNzO1xuICAgIHRoaXMuX3B1YmxpY0tleSA9IGljcFRyYW5zYWN0aW9uRGF0YS5zZW5kZXJQdWJsaWNLZXlIZXg7XG4gICAgdGhpcy5fYW1vdW50ID0gaWNwVHJhbnNhY3Rpb25EYXRhLmFtb3VudDtcbiAgfVxuXG4gIHZhbGlkYXRlQWRkcmVzcyhhZGRyZXNzOiBCYXNlQWRkcmVzcyk6IHZvaWQge1xuICAgIGlmICghdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy5hZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBhZGRyZXNzJyk7XG4gICAgfVxuICB9XG5cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogSWNwVHJhbnNhY3Rpb25EYXRhKTogdm9pZCB7XG4gICAgdXRpbHMudmFsaWRhdGVSYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgdmFsaWRhdGVLZXkoa2V5OiBCYXNlS2V5KTogdm9pZCB7XG4gICAgaWYgKCFrZXkgfHwgIWtleS5rZXkpIHtcbiAgICAgIHRocm93IG5ldyBTaWduaW5nRXJyb3IoJ0tleSBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRQcml2YXRlS2V5KGtleS5rZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdJbnZhbGlkIHByaXZhdGUga2V5Jyk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsZ0VBQXFDO0FBQ3JDLDhDQUFvSDtBQUNwSCwrQ0FBNEM7QUFDNUMsb0RBQTRCO0FBRTVCLHlFQUFzRTtBQUV0RSxNQUFzQixrQkFBbUIsU0FBUSxpQ0FBc0I7SUFRckUsWUFBWSxXQUFpQztRQUMzQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLHlCQUFXLENBQUMsV0FBVyxFQUFFLGVBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO0lBQzVDLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLE9BQWUsRUFBRSxNQUFjO1FBQzNDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDMUQsTUFBTSxJQUFJLGdDQUFxQixDQUFDLG1DQUFtQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQ2pGLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsZUFBSyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDL0MsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGtDQUFrQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1FBQy9FLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFH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Q0FBQztRQUNyRCxDQUFDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLGNBQWtDO1FBQ3ZELGVBQUssQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxHQUFZO1FBQ3RCLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLHVCQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksdUJBQVksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBRUQsbUdBQW1HO0lBQzVGLE9BQU87UUFDWixNQUFNLHdCQUF3QixHQUFHLElBQUksbURBQXdCLENBQzNELElBQUksQ0FBQyxZQUFZLENBQUMsbUJBQW1CLEVBQ3JDLElBQUksQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQ25DLENBQUM7UUFDRixJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixHQUFHLHdCQUF3QixDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDdEYsQ0FBQztDQUNGO0FBNUpELGdEQTRKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb25CdWlsZGVyLCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsIEJhc2VBZGRyZXNzLCBTaWduaW5nRXJyb3IsIEJhc2VLZXkgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB1dGlscyBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEljcFRyYW5zYWN0aW9uRGF0YSwgU2lnbmF0dXJlcyB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgU2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi9zaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXInO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uO1xuICBwcm90ZWN0ZWQgX3NlbmRlcjogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX3B1YmxpY0tleTogc3RyaW5nO1xuICBwcm90ZWN0ZWQgX21lbW86IG51bWJlciB8IEJpZ0ludDtcbiAgcHJvdGVjdGVkIF9yZWNlaXZlcklkOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfYW1vdW50OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKF9jb2luQ29uZmlnLCB1dGlscyk7XG4gIH1cblxuICBwdWJsaWMgc2lnbmF0dXJlUGF5bG9hZCgpOiBTaWduYXR1cmVzW10ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbi5zaWduYXR1cmVQYXlsb2FkO1xuICB9XG5cbiAgcHVibGljIHVuc2lnbmVkVHJhbnNhY3Rpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb24ucGF5bG9hZHNEYXRhLnVuc2lnbmVkX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHB1YmxpYyBrZXkgYW5kIHRoZSBhZGRyZXNzIG9mIHRoZSBzZW5kZXIgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgdGhlIGFjY291bnQgdGhhdCBpcyBzZW5kaW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IHB1YktleSB0aGUgcHVibGljIGtleSB0aGF0IGlzIHNlbmRpbmcgdGhpcyB0cmFuc2FjdGlvblxuICAgKiBAcmV0dXJucyB7VHJhbnNhY3Rpb25CdWlsZGVyfSBUaGlzIHRyYW5zYWN0aW9uIGJ1aWxkZXJcbiAgICovXG4gIHB1YmxpYyBzZW5kZXIoYWRkcmVzczogc3RyaW5nLCBwdWJLZXk6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghYWRkcmVzcyB8fCAhdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcy50b1N0cmluZygpKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBvciBtaXNzaW5nIGFkZHJlc3MsIGdvdDogJyArIGFkZHJlc3MpO1xuICAgIH1cbiAgICBpZiAoIXB1YktleSB8fCAhdXRpbHMuaXNWYWxpZFB1YmxpY0tleShwdWJLZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgcHViS2V5LCBnb3Q6ICcgKyBwdWJLZXkpO1xuICAgIH1cbiAgICB0aGlzLl9zZW5kZXIgPSBhZGRyZXNzO1xuICAgIHRoaXMuX3B1YmxpY0tleSA9IHB1YktleTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIG1lbW9cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXJ9IG1lbW8gLSBudW1iZXIgdGhhdCB0byBiZSB1c2VkIGFzIG1lbW9cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgbWVtbyhtZW1vOiBudW1iZXIpOiB0aGlzIHtcbiAgICBpZiAobWVtbyA8IDApIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgbWVtbzogJHttZW1vfWApO1xuICAgIH1cbiAgICB0aGlzLl9tZW1vID0gbWVtbztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhY2NvdW50IElkIG9mIHRoZSByZWNlaXZlciBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWNjb3VudElkIHRoZSBhY2NvdW50IGlkIG9mIHRoZSBhY2NvdW50IHRoYXQgaXMgcmVjZWl2aW5nIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgcmVjZWl2ZXJJZChhY2NvdW50SWQ6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghYWNjb3VudElkIHx8ICF1dGlscy5pc1ZhbGlkQWRkcmVzcyhhY2NvdW50SWQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgYWNjb3VudElkIGZvciByZWNlaXZlciwgZ290OiAnICsgYWNjb3VudElkKTtcbiAgICB9XG4gICAgdGhpcy5fcmVjZWl2ZXJJZCA9IGFjY291bnRJZDtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXQgdHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb24ge1xuICAgIHJldHVybiB0aGlzLl90cmFuc2FjdGlvbjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBzZXQgdHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvbjtcbiAgfVxuXG4gIGdldCB0cmFuc2FjdGlvblR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb24uaWNwVHJhbnNhY3Rpb25EYXRhLnRyYW5zYWN0aW9uVHlwZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBmcm9tSW1wbGVtZW50YXRpb24ocmF3VHJhbnNhY3Rpb246IEljcFRyYW5zYWN0aW9uRGF0YSk6IFRyYW5zYWN0aW9uIHtcbiAgICB0aGlzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuYnVpbGRJbXBsZW1lbnRhdGlvbigpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVHJhbnNhY3Rpb24odHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0cmFuc2FjdGlvbiB8fCAhdHJhbnNhY3Rpb24uaWNwVHJhbnNhY3Rpb25EYXRhKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHV0aWxzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24odHJhbnNhY3Rpb24uaWNwVHJhbnNhY3Rpb25EYXRhKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBhbW91bnQgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIHRoZSBhbW91bnQgdG8gYmUgc2VudCBpbiBlOHMgKDEgSUNQID0gMWU4IGU4cylcbiAgICogQHJldHVybnMge1RyYW5zYWN0aW9uQnVpbGRlcn0gVGhpcyB0cmFuc2FjdGlvbiBidWlsZGVyXG4gICAqL1xuICBwdWJsaWMgYW1vdW50KHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICB1dGlscy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIodmFsdWUpKTtcbiAgICB0aGlzLl9hbW91bnQgPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IHZvaWQge1xuICAgIHV0aWxzLnZhbGlkYXRlVmFsdWUobmV3IEJpZ051bWJlcih2YWx1ZSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uID0gdHg7XG4gICAgY29uc3QgaWNwVHJhbnNhY3Rpb25EYXRhID0gdHguaWNwVHJhbnNhY3Rpb25EYXRhO1xuICAgIHRoaXMuX3NlbmRlciA9IGljcFRyYW5zYWN0aW9uRGF0YS5zZW5kZXJBZGRyZXNzO1xuICAgIHRoaXMuX21lbW8gPSBpY3BUcmFuc2FjdGlvbkRhdGEubWVtbztcbiAgICB0aGlzLl9yZWNlaXZlcklkID0gaWNwVHJhbnNhY3Rpb25EYXRhLnJlY2VpdmVyQWRkcmVzcztcbiAgICB0aGlzLl9wdWJsaWNLZXkgPSBpY3BUcmFuc2FjdGlvbkRhdGEuc2VuZGVyUHVibGljS2V5SGV4O1xuICAgIHRoaXMuX2Ftb3VudCA9IGljcFRyYW5zYWN0aW9uRGF0YS5hbW91bnQ7XG4gIH1cblxuICB2YWxpZGF0ZUFkZHJlc3MoYWRkcmVzczogQmFzZUFkZHJlc3MpOiB2b2lkIHtcbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MuYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgYWRkcmVzcycpO1xuICAgIH1cbiAgfVxuXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IEljcFRyYW5zYWN0aW9uRGF0YSk6IHZvaWQge1xuICAgIHV0aWxzLnZhbGlkYXRlUmF3VHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlS2V5KGtleTogQmFzZUtleSk6IHZvaWQge1xuICAgIGlmICgha2V5IHx8ICFrZXkua2V5KSB7XG4gICAgICB0aHJvdyBuZXcgU2lnbmluZ0Vycm9yKCdLZXkgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkUHJpdmF0ZUtleShrZXkua2V5KSkge1xuICAgICAgdGhyb3cgbmV3IFNpZ25pbmdFcnJvcignSW52YWxpZCBwcml2YXRlIGtleScpO1xuICAgIH1cbiAgfVxuXG4gIC8vIGNvbWJpbmUgdGhlIHVuc2lnbmVkIHRyYW5zYWN0aW9uIHdpdGggdGhlIHNpZ25hdHVyZSBwYXlsb2FkIGFuZCBnZW5lcmF0ZXMgdGhlIHNpZ25lZCB0cmFuc2FjdGlvblxuICBwdWJsaWMgY29tYmluZSgpOiB2b2lkIHtcbiAgICBjb25zdCBzaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIgPSBuZXcgU2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyKFxuICAgICAgdGhpcy5fdHJhbnNhY3Rpb24udW5zaWduZWRUcmFuc2FjdGlvbixcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNpZ25hdHVyZVBheWxvYWRcbiAgICApO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnNpZ25lZFRyYW5zYWN0aW9uID0gc2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyLmdldFNpZ25UcmFuc2FjdGlvbigpO1xuICB9XG59XG4iXX0=
|
|
@@ -7,7 +7,7 @@ import { ParsedTransaction } from './iface';
|
|
|
7
7
|
export declare class TransactionBuilderFactory extends BaseTransactionBuilderFactory {
|
|
8
8
|
constructor(_coinConfig: Readonly<CoinConfig>);
|
|
9
9
|
/** @inheritdoc */
|
|
10
|
-
from(rawTransaction: string): TransactionBuilder
|
|
10
|
+
from(rawTransaction: string): Promise<TransactionBuilder>;
|
|
11
11
|
/**
|
|
12
12
|
* Initialize the builder with the given transaction
|
|
13
13
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAsD,MAAM,iBAAiB,CAAC;AACpH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE3D,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;
|
|
1
|
+
{"version":3,"file":"transactionBuilderFactory.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilderFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAsD,MAAM,iBAAiB,CAAC;AACpH,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,EAAiB,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE3D,qBAAa,yBAA0B,SAAQ,6BAA6B;gBAC9D,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,kBAAkB;IACZ,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAe/D;;;;;;OAMG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAOhC,kBAAkB;IAClB,kBAAkB,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,eAAe;IAIrD,gBAAgB,CAAC,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAWvF,kBAAkB;IAClB,8BAA8B,IAAI,IAAI;CAGvC"}
|
|
@@ -11,9 +11,9 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
11
11
|
super(_coinConfig);
|
|
12
12
|
}
|
|
13
13
|
/** @inheritdoc */
|
|
14
|
-
from(rawTransaction) {
|
|
14
|
+
async from(rawTransaction) {
|
|
15
15
|
const transaction = new transaction_1.Transaction(this._coinConfig, new utils_1.Utils());
|
|
16
|
-
transaction.fromRawTransaction(rawTransaction);
|
|
16
|
+
await transaction.fromRawTransaction(rawTransaction);
|
|
17
17
|
try {
|
|
18
18
|
switch (transaction.icpTransactionData.transactionType) {
|
|
19
19
|
case iface_1.OperationType.TRANSACTION:
|
|
@@ -59,4 +59,4 @@ class TransactionBuilderFactory extends sdk_core_1.BaseTransactionBuilderFactory
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
exports.TransactionBuilderFactory = TransactionBuilderFactory;
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw4Q0FBb0g7QUFFcEgsK0NBQTRDO0FBRTVDLHVEQUFvRDtBQUNwRCxtQ0FBZ0M7QUFDaEMsbUNBQTJEO0FBRTNELE1BQWEseUJBQTBCLFNBQVEsd0NBQTZCO0lBQzFFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFzQjtRQUMvQixNQUFNLFdBQVcsR0FBRyxJQUFJLHlCQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLGFBQUssRUFBRSxDQUFDLENBQUM7UUFDbkUsTUFBTSxXQUFXLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDO1lBQ0gsUUFBUSxXQUFXLENBQUMsa0JBQWtCLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3ZELEtBQUsscUJBQWEsQ0FBQyxXQUFXO29CQUM1QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDOUM7b0JBQ0UsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDN0QsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLGtDQUF1QixDQUFDLHVCQUF1QixHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RSxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBK0IsRUFBMkIsRUFBRSxPQUFVO1FBQ3BHLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGtCQUFrQixDQUFDLEVBQWdCO1FBQ2pDLE9BQU8seUJBQXlCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLElBQUksaUNBQWUsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksYUFBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxjQUFzQixFQUFFLFFBQWlCO1FBQ3hELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksa0NBQXVCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsTUFBTSxXQUFXLEdBQUcsSUFBSSx5QkFBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxhQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixPQUFPLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUMsd0JBQXdCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELGtCQUFrQjtJQUNsQiw4QkFBOEI7UUFDNUIsTUFBTSxJQUFJLG9DQUF5QixFQUFFLENBQUM7SUFDeEMsQ0FBQztDQUNGO0FBdkRELDhEQXVEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5LCBJbnZhbGlkVHJhbnNhY3Rpb25FcnJvciwgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvciB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBPcGVyYXRpb25UeXBlLCBQYXJzZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4vaWZhY2UnO1xuXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSBleHRlbmRzIEJhc2VUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGFzeW5jIGZyb20ocmF3VHJhbnNhY3Rpb246IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25CdWlsZGVyPiB7XG4gICAgY29uc3QgdHJhbnNhY3Rpb24gPSBuZXcgVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZywgbmV3IFV0aWxzKCkpO1xuICAgIGF3YWl0IHRyYW5zYWN0aW9uLmZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgdHJ5IHtcbiAgICAgIHN3aXRjaCAodHJhbnNhY3Rpb24uaWNwVHJhbnNhY3Rpb25EYXRhLnRyYW5zYWN0aW9uVHlwZSkge1xuICAgICAgICBjYXNlIE9wZXJhdGlvblR5cGUuVFJBTlNBQ1RJT046XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VHJhbnNmZXJCdWlsZGVyKHRyYW5zYWN0aW9uKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb24nKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aHJvdyBuZXcgSW52YWxpZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdHJhbnNhY3Rpb246ICcgKyBlLm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplIHRoZSBidWlsZGVyIHdpdGggdGhlIGdpdmVuIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSB7VHJhbnNhY3Rpb24gfCB1bmRlZmluZWR9IHR4IC0gdGhlIHRyYW5zYWN0aW9uIHVzZWQgdG8gaW5pdGlhbGl6ZSB0aGUgYnVpbGRlclxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9uQnVpbGRlcn0gYnVpbGRlciAtIHRoZSBidWlsZGVyIHRvIGJlIGluaXRpYWxpemVkXG4gICAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbkJ1aWxkZXJ9IHRoZSBidWlsZGVyIGluaXRpYWxpemVkXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBpbml0aWFsaXplQnVpbGRlcjxUIGV4dGVuZHMgVHJhbnNhY3Rpb25CdWlsZGVyPih0eDogVHJhbnNhY3Rpb24gfCB1bmRlZmluZWQsIGJ1aWxkZXI6IFQpOiBUIHtcbiAgICBpZiAodHgpIHtcbiAgICAgIGJ1aWxkZXIuaW5pdEJ1aWxkZXIodHgpO1xuICAgIH1cbiAgICByZXR1cm4gYnVpbGRlcjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBnZXRUcmFuc2ZlckJ1aWxkZXIodHg/OiBUcmFuc2FjdGlvbik6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlckZhY3RvcnkuaW5pdGlhbGl6ZUJ1aWxkZXIodHgsIG5ldyBUcmFuc2ZlckJ1aWxkZXIodGhpcy5fY29pbkNvbmZpZywgbmV3IFV0aWxzKCkpKTtcbiAgfVxuXG4gIHBhcnNlVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb246IHN0cmluZywgaXNTaWduZWQ6IGJvb2xlYW4pOiBQcm9taXNlPFBhcnNlZFRyYW5zYWN0aW9uPiB7XG4gICAgaWYgKCFyYXdUcmFuc2FjdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEludmFsaWRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiBpcyBlbXB0eScpO1xuICAgIH1cbiAgICBjb25zdCB0cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnLCBuZXcgVXRpbHMoKSk7XG4gICAgaWYgKGlzU2lnbmVkKSB7XG4gICAgICByZXR1cm4gdHJhbnNhY3Rpb24ucGFyc2VTaWduZWRUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbik7XG4gICAgfVxuICAgIHJldHVybiB0cmFuc2FjdGlvbi5wYXJzZVVuc2lnbmVkVHJhbnNhY3Rpb24ocmF3VHJhbnNhY3Rpb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGdldFdhbGxldEluaXRpYWxpemF0aW9uQnVpbGRlcigpOiB2b2lkIHtcbiAgICB0aHJvdyBuZXcgTWV0aG9kTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG59XG4iXX0=
|
|
@@ -15,7 +15,6 @@ export declare class TransferBuilder extends TransactionBuilder {
|
|
|
15
15
|
/** @inheritdoc */
|
|
16
16
|
protected buildImplementation(): Promise<Transaction>;
|
|
17
17
|
protected buildIcpTransactionData(): void;
|
|
18
|
-
protected combine(): BaseTransaction;
|
|
19
18
|
/** @inheritdoc */
|
|
20
19
|
protected signImplementation(key: BaseKey): BaseTransaction;
|
|
21
20
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAyB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAyB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAClF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAa5C,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC;gBAEZ,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,KAAK;IAK3D;;;;OAIG;IACH,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAIlC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAS3D,SAAS,CAAC,uBAAuB,IAAI,IAAI;IAsEzC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe;CAK5D"}
|
|
@@ -8,7 +8,6 @@ const transactionBuilder_1 = require("./transactionBuilder");
|
|
|
8
8
|
const sdk_core_1 = require("@bitgo/sdk-core");
|
|
9
9
|
const unsignedTransactionBuilder_1 = require("./unsignedTransactionBuilder");
|
|
10
10
|
const iface_1 = require("./iface");
|
|
11
|
-
const signedTransactionBuilder_1 = require("./signedTransactionBuilder");
|
|
12
11
|
const assert_1 = __importDefault(require("assert"));
|
|
13
12
|
class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
14
13
|
constructor(_coinConfig, utils) {
|
|
@@ -37,7 +36,7 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
|
37
36
|
(0, assert_1.default)(this._publicKey, new sdk_core_1.BuildTransactionError('sender public key is required before building'));
|
|
38
37
|
(0, assert_1.default)(this._amount, new sdk_core_1.BuildTransactionError('amount is required before building'));
|
|
39
38
|
(0, assert_1.default)(this._receiverId, new sdk_core_1.BuildTransactionError('receiver is required before building'));
|
|
40
|
-
|
|
39
|
+
this._utils.validateMemo(this._memo);
|
|
41
40
|
const publicKey = {
|
|
42
41
|
hex_bytes: this._publicKey,
|
|
43
42
|
curve_type: iface_1.CurveType.SECP256K1,
|
|
@@ -75,7 +74,8 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
|
75
74
|
},
|
|
76
75
|
},
|
|
77
76
|
};
|
|
78
|
-
const
|
|
77
|
+
const createdTimestamp = this._transaction.createdTimestamp;
|
|
78
|
+
const { metaData, ingressEndTime } = this._utils.getMetaData(this._memo, createdTimestamp);
|
|
79
79
|
const icpTransaction = {
|
|
80
80
|
public_keys: [publicKey],
|
|
81
81
|
operations: [senderOperation, receiverOperation, feeOperation],
|
|
@@ -94,12 +94,6 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
|
94
94
|
this._transaction.icpTransactionData = icpTransactionData;
|
|
95
95
|
this._transaction.icpTransaction = icpTransaction;
|
|
96
96
|
}
|
|
97
|
-
// combine the unsigned transaction with the signature payload and generates the signed transaction
|
|
98
|
-
combine() {
|
|
99
|
-
const signedTransactionBuilder = new signedTransactionBuilder_1.SignedTransactionBuilder(this._transaction.unsignedTransaction, this._transaction.signaturePayload);
|
|
100
|
-
this._transaction.signedTransaction = signedTransactionBuilder.getSignTransaction();
|
|
101
|
-
return this._transaction;
|
|
102
|
-
}
|
|
103
97
|
/** @inheritdoc */
|
|
104
98
|
signImplementation(key) {
|
|
105
99
|
const signatures = this._utils.getSignatures(this._transaction.payloadsData, this._publicKey, key.key);
|
|
@@ -108,4 +102,4 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
|
|
|
108
102
|
}
|
|
109
103
|
}
|
|
110
104
|
exports.TransferBuilder = TransferBuilder;
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsNkRBQTBEO0FBQzFELDhDQUFrRjtBQUdsRiw2RUFBMEU7QUFDMUUsbUNBUWlCO0FBQ2pCLHlFQUFzRTtBQUN0RSxvREFBNEI7QUFFNUIsTUFBYSxlQUFnQixTQUFRLHVDQUFrQjtJQUdyRCxZQUFZLFdBQWlDLEVBQUUsS0FBWTtRQUN6RCxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsRUFBZTtRQUN6QixLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDL0IsTUFBTSwwQkFBMEIsR0FBRyxJQUFJLHVEQUEwQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDcEcsTUFBTSxZQUFZLEdBQUcsTUFBTSwwQkFBMEIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQy9FLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVTLHVCQUF1QjtRQUMvQixJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLGdDQUFxQixDQUFDLG9DQUFvQyxDQUFDLENBQUMsQ0FBQztRQUN0RixJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLFVBQVUs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QztRQUMxRCxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDcEQsQ0FBQztJQUVELG1HQUFtRztJQUN6RixPQUFPO1FBQ2YsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLG1EQUF3QixDQUMzRCxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUNyQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUNuQyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsR0FBRyx3QkFBd0IsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BGLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCLENBQUMsR0FBWTtRQUN2QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMzQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBaEhELDBDQWdIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBCYXNlVHJhbnNhY3Rpb24sIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgQmFzZUtleSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBVdGlscyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9uJztcbmltcG9ydCB7IFVuc2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi91bnNpZ25lZFRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQge1xuICBDdXJ2ZVR5cGUsXG4gIEljcE1ldGFkYXRhLFxuICBJY3BPcGVyYXRpb24sXG4gIEljcFB1YmxpY0tleSxcbiAgSWNwVHJhbnNhY3Rpb24sXG4gIEljcFRyYW5zYWN0aW9uRGF0YSxcbiAgT3BlcmF0aW9uVHlwZSxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBTaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3NpZ25lZFRyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3V0aWxzOiBVdGlscztcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4sIHV0aWxzOiBVdGlscykge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLl91dGlscyA9IHV0aWxzO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHRyYW5zYWN0aW9uIGJ1aWxkZXIgZmllbGRzIHVzaW5nIHRoZSBkZWNvZGVkIHRyYW5zYWN0aW9uIGRhdGFcbiAgICpcbiAgICogQHBhcmFtIHtUcmFuc2FjdGlvbn0gdHggdGhlIHRyYW5zYWN0aW9uIGRhdGFcbiAgICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRJbXBsZW1lbnRhdGlvbigpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgdGhpcy52YWxpZGF0ZVRyYW5zYWN0aW9uKHRoaXMuX3RyYW5zYWN0aW9uKTtcbiAgICB0aGlzLmJ1aWxkSWNwVHJhbnNhY3Rpb25EYXRhKCk7XG4gICAgY29uc3QgdW5zaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIgPSBuZXcgVW5zaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIodGhpcy5fdHJhbnNhY3Rpb24uaWNwVHJhbnNhY3Rpb24pO1xuICAgIGNvbnN0IHBheWxvYWRzRGF0YSA9IGF3YWl0IHVuc2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyLmdldFVuc2lnbmVkVHJhbnNhY3Rpb24oKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5wYXlsb2Fkc0RhdGEgPSBwYXlsb2Fkc0RhdGE7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG5cbiAgcHJvdGVjdGVkIGJ1aWxkSWNwVHJhbnNhY3Rpb25EYXRhKCk6IHZvaWQge1xuICAgIGFzc2VydCh0aGlzLl9zZW5kZXIsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3NlbmRlciBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3B1YmxpY0tleSwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignc2VuZGVyIHB1YmxpYyBrZXkgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIGFzc2VydCh0aGlzLl9hbW91bnQsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ2Ftb3VudCBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX3JlY2VpdmVySWQsIG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3JlY2VpdmVyIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fbWVtbywgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignbWVtbyBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgY29uc3QgcHVibGljS2V5OiBJY3BQdWJsaWNLZXkgPSB7XG4gICAgICBoZXhfYnl0ZXM6IHRoaXMuX3B1YmxpY0tleSxcbiAgICAgIGN1cnZlX3R5cGU6IEN1cnZlVHlwZS5TRUNQMjU2SzEsXG4gICAgfTtcblxuICAgIGNvbnN0IHNlbmRlck9wZXJhdGlvbjogSWNwT3BlcmF0aW9uID0ge1xuICAgICAgdHlwZTogT3BlcmF0aW9uVHlwZS5UUkFOU0FDVElPTixcbiAgICAgIGFjY291bnQ6IHsgYWRkcmVzczogdGhpcy5fc2VuZGVyIH0sXG4gICAgICBhbW91bnQ6IHtcbiAgICAgICAgdmFsdWU6IGAtJHt0aGlzLl9hbW91bnR9YCxcbiAgICAgICAgY3VycmVuY3k6IHtcbiAgICAgICAgICBzeW1ib2w6IHRoaXMuX2NvaW5Db25maWcuZmFtaWx5LFxuICAgICAgICAgIGRlY2ltYWxzOiB0aGlzLl9jb2luQ29uZmlnLmRlY2ltYWxQbGFjZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCByZWNlaXZlck9wZXJhdGlvbjogSWNwT3BlcmF0aW9uID0ge1xuICAgICAgdHlwZTogT3BlcmF0aW9uVHlwZS5UUkFOU0FDVElPTixcbiAgICAgIGFjY291bnQ6IHsgYWRkcmVzczogdGhpcy5fcmVjZWl2ZXJJZCB9LFxuICAgICAgYW1vdW50OiB7XG4gICAgICAgIHZhbHVlOiB0aGlzLl9hbW91bnQsXG4gICAgICAgIGN1cnJlbmN5OiB7XG4gICAgICAgICAgc3ltYm9sOiB0aGlzLl9jb2luQ29uZmlnLmZhbWlseSxcbiAgICAgICAgICBkZWNpbWFsczogdGhpcy5fY29pbkNvbmZpZy5kZWNpbWFsUGxhY2VzLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29uc3QgZmVlT3BlcmF0aW9uOiBJY3BPcGVyYXRpb24gPSB7XG4gICAgICB0eXBlOiBPcGVyYXRpb25UeXBlLkZFRSxcbiAgICAgIGFjY291bnQ6IHsgYWRkcmVzczogdGhpcy5fc2VuZGVyIH0sXG4gICAgICBhbW91bnQ6IHtcbiAgICAgICAgdmFsdWU6IHRoaXMuX3V0aWxzLmdhc0RhdGEoKSxcbiAgICAgICAgY3VycmVuY3k6IHtcbiAgICAgICAgICBzeW1ib2w6IHRoaXMuX2NvaW5Db25maWcuZmFtaWx5LFxuICAgICAgICAgIGRlY2ltYWxzOiB0aGlzLl9jb2luQ29uZmlnLmRlY2ltYWxQbGFjZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCB7IG1ldGFEYXRhLCBpbmdyZXNzRW5kVGltZSB9OiB7IG1ldGFEYXRhOiBJY3BNZXRhZGF0YTsgaW5ncmVzc0VuZFRpbWU6IG51bWJlciB8IEJpZ0ludCB9ID1cbiAgICAgIHRoaXMuX3V0aWxzLmdldE1ldGFEYXRhKHRoaXMuX21lbW8pO1xuXG4gICAgY29uc3QgaWNwVHJhbnNhY3Rpb246IEljcFRyYW5zYWN0aW9uID0ge1xuICAgICAgcHVibGljX2tleXM6IFtwdWJsaWNLZXldLFxuICAgICAgb3BlcmF0aW9uczogW3NlbmRlck9wZXJhdGlvbiwgcmVjZWl2ZXJPcGVyYXRpb24sIGZlZU9wZXJhdGlvbl0sXG4gICAgICBtZXRhZGF0YTogbWV0YURhdGEsXG4gICAgfTtcbiAgICBjb25zdCBpY3BUcmFuc2FjdGlvbkRhdGE6IEljcFRyYW5zYWN0aW9uRGF0YSA9IHtcbiAgICAgIHNlbmRlckFkZHJlc3M6IHRoaXMuX3NlbmRlcixcbiAgICAgIHJlY2VpdmVyQWRkcmVzczogdGhpcy5fcmVjZWl2ZXJJZCxcbiAgICAgIGFtb3VudDogdGhpcy5fYW1vdW50LFxuICAgICAgZmVlOiB0aGlzLl91dGlscy5nYXNEYXRhKCksXG4gICAgICBzZW5kZXJQdWJsaWNLZXlIZXg6IHRoaXMuX3B1YmxpY0tleSxcbiAgICAgIG1lbW86IHRoaXMuX21lbW8sXG4gICAgICB0cmFuc2FjdGlvblR5cGU6IE9wZXJhdGlvblR5cGUuVFJBTlNBQ1RJT04sXG4gICAgICBleHBpcnlUaW1lOiBpbmdyZXNzRW5kVGltZSxcbiAgICB9O1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLmljcFRyYW5zYWN0aW9uRGF0YSA9IGljcFRyYW5zYWN0aW9uRGF0YTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5pY3BUcmFuc2FjdGlvbiA9IGljcFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLy8gY29tYmluZSB0aGUgdW5zaWduZWQgdHJhbnNhY3Rpb24gd2l0aCB0aGUgc2lnbmF0dXJlIHBheWxvYWQgYW5kIGdlbmVyYXRlcyB0aGUgc2lnbmVkIHRyYW5zYWN0aW9uXG4gIHByb3RlY3RlZCBjb21iaW5lKCk6IEJhc2VUcmFuc2FjdGlvbiB7XG4gICAgY29uc3Qgc2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyID0gbmV3IFNpZ25lZFRyYW5zYWN0aW9uQnVpbGRlcihcbiAgICAgIHRoaXMuX3RyYW5zYWN0aW9uLnVuc2lnbmVkVHJhbnNhY3Rpb24sXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbi5zaWduYXR1cmVQYXlsb2FkXG4gICAgKTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5zaWduZWRUcmFuc2FjdGlvbiA9IHNpZ25lZFRyYW5zYWN0aW9uQnVpbGRlci5nZXRTaWduVHJhbnNhY3Rpb24oKTtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBCYXNlVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHNpZ25hdHVyZXMgPSB0aGlzLl91dGlscy5nZXRTaWduYXR1cmVzKHRoaXMuX3RyYW5zYWN0aW9uLnBheWxvYWRzRGF0YSwgdGhpcy5fcHVibGljS2V5LCBrZXkua2V5KTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUoc2lnbmF0dXJlcyk7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG59XG4iXX0=
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsNkRBQTBEO0FBQzFELDhDQUFrRjtBQUdsRiw2RUFBMEU7QUFDMUUsbUNBUWlCO0FBQ2pCLG9EQUE0QjtBQUU1QixNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBR3JELFlBQVksV0FBaUMsRUFBRSxLQUFZO1FBQ3pELEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVELGtCQUFrQjtJQUNSLEtBQUssQ0FBQyxtQkFBbUI7UUFDakMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUMvQixNQUFNLDBCQUEwQixHQUFHLElBQUksdURBQTBCLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNwRyxNQUFNLFlBQVksR0FBRyxNQUFNLDBCQUEwQixDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDL0UsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQzlDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0lBRVMsdUJBQXVCO1FBQy9CLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksZ0NBQXFCLENBQUMsb0NBQW9DLENBQUMsQ0FBQyxDQUFDO1FBQ3RGLElBQUEsZ0JBQU0sRUFBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksZ0NB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QyxZQUFZLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDMUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3BELENBQUM7SUFFRCxrQkFBa0I7SUFDUixrQkFBa0IsQ0FBQyxHQUFZO1FBQ3ZDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUF2R0QsMENBdUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uQnVpbGRlciB9IGZyb20gJy4vdHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbiwgQnVpbGRUcmFuc2FjdGlvbkVycm9yLCBCYXNlS2V5IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgVW5zaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3Vuc2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyJztcbmltcG9ydCB7XG4gIEN1cnZlVHlwZSxcbiAgSWNwTWV0YWRhdGEsXG4gIEljcE9wZXJhdGlvbixcbiAgSWNwUHVibGljS2V5LFxuICBJY3BUcmFuc2FjdGlvbixcbiAgSWNwVHJhbnNhY3Rpb25EYXRhLFxuICBPcGVyYXRpb25UeXBlLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuZXhwb3J0IGNsYXNzIFRyYW5zZmVyQnVpbGRlciBleHRlbmRzIFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByb3RlY3RlZCBfdXRpbHM6IFV0aWxzO1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPiwgdXRpbHM6IFV0aWxzKSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX3V0aWxzID0gdXRpbHM7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgdHJhbnNhY3Rpb24gYnVpbGRlciBmaWVsZHMgdXNpbmcgdGhlIGRlY29kZWQgdHJhbnNhY3Rpb24gZGF0YVxuICAgKlxuICAgKiBAcGFyYW0ge1RyYW5zYWN0aW9ufSB0eCB0aGUgdHJhbnNhY3Rpb24gZGF0YVxuICAgKi9cbiAgaW5pdEJ1aWxkZXIodHg6IFRyYW5zYWN0aW9uKTogdm9pZCB7XG4gICAgc3VwZXIuaW5pdEJ1aWxkZXIodHgpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNhY3Rpb24odGhpcy5fdHJhbnNhY3Rpb24pO1xuICAgIHRoaXMuYnVpbGRJY3BUcmFuc2FjdGlvbkRhdGEoKTtcbiAgICBjb25zdCB1bnNpZ25lZFRyYW5zYWN0aW9uQnVpbGRlciA9IG5ldyBVbnNpZ25lZFRyYW5zYWN0aW9uQnVpbGRlcih0aGlzLl90cmFuc2FjdGlvbi5pY3BUcmFuc2FjdGlvbik7XG4gICAgY29uc3QgcGF5bG9hZHNEYXRhID0gYXdhaXQgdW5zaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIuZ2V0VW5zaWduZWRUcmFuc2FjdGlvbigpO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLnBheWxvYWRzRGF0YSA9IHBheWxvYWRzRGF0YTtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNhY3Rpb247XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRJY3BUcmFuc2FjdGlvbkRhdGEoKTogdm9pZCB7XG4gICAgYXNzZXJ0KHRoaXMuX3NlbmRlciwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignc2VuZGVyIGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fcHVibGljS2V5LCBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdzZW5kZXIgcHVibGljIGtleSBpcyByZXF1aXJlZCBiZWZvcmUgYnVpbGRpbmcnKSk7XG4gICAgYXNzZXJ0KHRoaXMuX2Ftb3VudCwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignYW1vdW50IGlzIHJlcXVpcmVkIGJlZm9yZSBidWlsZGluZycpKTtcbiAgICBhc3NlcnQodGhpcy5fcmVjZWl2ZXJJZCwgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcigncmVjZWl2ZXIgaXMgcmVxdWlyZWQgYmVmb3JlIGJ1aWxkaW5nJykpO1xuICAgIHRoaXMuX3V0aWxzLnZhbGlkYXRlTWVtbyh0aGlzLl9tZW1vKTtcbiAgICBjb25zdCBwdWJsaWNLZXk6IEljcFB1YmxpY0tleSA9IHtcbiAgICAgIGhleF9ieXRlczogdGhpcy5fcHVibGljS2V5LFxuICAgICAgY3VydmVfdHlwZTogQ3VydmVUeXBlLlNFQ1AyNTZLMSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc2VuZGVyT3BlcmF0aW9uOiBJY3BPcGVyYXRpb24gPSB7XG4gICAgICB0eXBlOiBPcGVyYXRpb25UeXBlLlRSQU5TQUNUSU9OLFxuICAgICAgYWNjb3VudDogeyBhZGRyZXNzOiB0aGlzLl9zZW5kZXIgfSxcbiAgICAgIGFtb3VudDoge1xuICAgICAgICB2YWx1ZTogYC0ke3RoaXMuX2Ftb3VudH1gLFxuICAgICAgICBjdXJyZW5jeToge1xuICAgICAgICAgIHN5bWJvbDogdGhpcy5fY29pbkNvbmZpZy5mYW1pbHksXG4gICAgICAgICAgZGVjaW1hbHM6IHRoaXMuX2NvaW5Db25maWcuZGVjaW1hbFBsYWNlcyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IHJlY2VpdmVyT3BlcmF0aW9uOiBJY3BPcGVyYXRpb24gPSB7XG4gICAgICB0eXBlOiBPcGVyYXRpb25UeXBlLlRSQU5TQUNUSU9OLFxuICAgICAgYWNjb3VudDogeyBhZGRyZXNzOiB0aGlzLl9yZWNlaXZlcklkIH0sXG4gICAgICBhbW91bnQ6IHtcbiAgICAgICAgdmFsdWU6IHRoaXMuX2Ftb3VudCxcbiAgICAgICAgY3VycmVuY3k6IHtcbiAgICAgICAgICBzeW1ib2w6IHRoaXMuX2NvaW5Db25maWcuZmFtaWx5LFxuICAgICAgICAgIGRlY2ltYWxzOiB0aGlzLl9jb2luQ29uZmlnLmRlY2ltYWxQbGFjZXMsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBjb25zdCBmZWVPcGVyYXRpb246IEljcE9wZXJhdGlvbiA9IHtcbiAgICAgIHR5cGU6IE9wZXJhdGlvblR5cGUuRkVFLFxuICAgICAgYWNjb3VudDogeyBhZGRyZXNzOiB0aGlzLl9zZW5kZXIgfSxcbiAgICAgIGFtb3VudDoge1xuICAgICAgICB2YWx1ZTogdGhpcy5fdXRpbHMuZ2FzRGF0YSgpLFxuICAgICAgICBjdXJyZW5jeToge1xuICAgICAgICAgIHN5bWJvbDogdGhpcy5fY29pbkNvbmZpZy5mYW1pbHksXG4gICAgICAgICAgZGVjaW1hbHM6IHRoaXMuX2NvaW5Db25maWcuZGVjaW1hbFBsYWNlcyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGNyZWF0ZWRUaW1lc3RhbXAgPSB0aGlzLl90cmFuc2FjdGlvbi5jcmVhdGVkVGltZXN0YW1wO1xuICAgIGNvbnN0IHsgbWV0YURhdGEsIGluZ3Jlc3NFbmRUaW1lIH06IHsgbWV0YURhdGE6IEljcE1ldGFkYXRhOyBpbmdyZXNzRW5kVGltZTogbnVtYmVyIHwgQmlnSW50IH0gPVxuICAgICAgdGhpcy5fdXRpbHMuZ2V0TWV0YURhdGEodGhpcy5fbWVtbywgY3JlYXRlZFRpbWVzdGFtcCk7XG5cbiAgICBjb25zdCBpY3BUcmFuc2FjdGlvbjogSWNwVHJhbnNhY3Rpb24gPSB7XG4gICAgICBwdWJsaWNfa2V5czogW3B1YmxpY0tleV0sXG4gICAgICBvcGVyYXRpb25zOiBbc2VuZGVyT3BlcmF0aW9uLCByZWNlaXZlck9wZXJhdGlvbiwgZmVlT3BlcmF0aW9uXSxcbiAgICAgIG1ldGFkYXRhOiBtZXRhRGF0YSxcbiAgICB9O1xuICAgIGNvbnN0IGljcFRyYW5zYWN0aW9uRGF0YTogSWNwVHJhbnNhY3Rpb25EYXRhID0ge1xuICAgICAgc2VuZGVyQWRkcmVzczogdGhpcy5fc2VuZGVyLFxuICAgICAgcmVjZWl2ZXJBZGRyZXNzOiB0aGlzLl9yZWNlaXZlcklkLFxuICAgICAgYW1vdW50OiB0aGlzLl9hbW91bnQsXG4gICAgICBmZWU6IHRoaXMuX3V0aWxzLmdhc0RhdGEoKSxcbiAgICAgIHNlbmRlclB1YmxpY0tleUhleDogdGhpcy5fcHVibGljS2V5LFxuICAgICAgbWVtbzogdGhpcy5fbWVtbyxcbiAgICAgIHRyYW5zYWN0aW9uVHlwZTogT3BlcmF0aW9uVHlwZS5UUkFOU0FDVElPTixcbiAgICAgIGV4cGlyeVRpbWU6IGluZ3Jlc3NFbmRUaW1lLFxuICAgIH07XG4gICAgdGhpcy5fdHJhbnNhY3Rpb24uaWNwVHJhbnNhY3Rpb25EYXRhID0gaWNwVHJhbnNhY3Rpb25EYXRhO1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uLmljcFRyYW5zYWN0aW9uID0gaWNwVHJhbnNhY3Rpb247XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgcHJvdGVjdGVkIHNpZ25JbXBsZW1lbnRhdGlvbihrZXk6IEJhc2VLZXkpOiBCYXNlVHJhbnNhY3Rpb24ge1xuICAgIGNvbnN0IHNpZ25hdHVyZXMgPSB0aGlzLl91dGlscy5nZXRTaWduYXR1cmVzKHRoaXMuX3RyYW5zYWN0aW9uLnBheWxvYWRzRGF0YSwgdGhpcy5fcHVibGljS2V5LCBrZXkua2V5KTtcbiAgICB0aGlzLl90cmFuc2FjdGlvbi5hZGRTaWduYXR1cmUoc2lnbmF0dXJlcyk7XG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uO1xuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsignedTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/unsignedTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,YAAY,
|
|
1
|
+
{"version":3,"file":"unsignedTransactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/unsignedTransactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,EACR,kBAAkB,EAClB,cAAc,EACd,YAAY,EAOb,MAAM,SAAS,CAAC;AAGjB,qBAAa,0BAA0B;IACrC,OAAO,CAAC,sBAAsB,CAAiB;gBACnC,qBAAqB,EAAE,cAAc;IAI3C,sBAAsB,IAAI,OAAO,CAAC,YAAY,CAAC;IA+BrD,WAAW,CACT,QAAQ,EAAE,cAAc,EAAE,EAC1B,eAAe,EAAE,MAAM,EAAE,EACzB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,kBAAkB,GACzB,cAAc,EAAE;IA+BnB,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE;IAWlH,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAW9G,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAcvF"}
|
|
@@ -6,9 +6,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.UnsignedTransactionBuilder = void 0;
|
|
7
7
|
const iface_1 = require("./iface");
|
|
8
8
|
const utils_1 = __importDefault(require("./utils"));
|
|
9
|
-
const MAX_INGRESS_TTL = 5 * 60 * 1000000000; // 5 minutes in nanoseconds
|
|
10
|
-
const PERMITTED_DRIFT = 60 * 1000000000; // 60 seconds in nanoseconds
|
|
11
|
-
const LEDGER_CANISTER_ID = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 2, 1, 1]); // Uint8Array value for "00000000000000020101" and the string value is "ryjl3-tyaaa-aaaaa-aaaba-cai"
|
|
12
9
|
class UnsignedTransactionBuilder {
|
|
13
10
|
constructor(icpTransactionPayload) {
|
|
14
11
|
this._icpTransactionPayload = icpTransactionPayload;
|
|
@@ -62,7 +59,7 @@ class UnsignedTransactionBuilder {
|
|
|
62
59
|
getIngressExpiries(ingressStartTime, ingressEndTime, interval) {
|
|
63
60
|
const ingressExpiries = [];
|
|
64
61
|
for (let now = Number(ingressStartTime); now < Number(ingressEndTime); now += interval) {
|
|
65
|
-
const ingressExpiry = BigInt(now + (MAX_INGRESS_TTL - PERMITTED_DRIFT));
|
|
62
|
+
const ingressExpiry = BigInt(now + (iface_1.MAX_INGRESS_TTL - iface_1.PERMITTED_DRIFT));
|
|
66
63
|
ingressExpiries.push(ingressExpiry);
|
|
67
64
|
}
|
|
68
65
|
return ingressExpiries;
|
|
@@ -80,7 +77,7 @@ class UnsignedTransactionBuilder {
|
|
|
80
77
|
async getUpdate(sendArgs, publicKeyHex) {
|
|
81
78
|
const principalId = utils_1.default.getPrincipalIdFromPublicKey(publicKeyHex).toUint8Array();
|
|
82
79
|
const senderBlob = Buffer.from(principalId);
|
|
83
|
-
const canisterIdBuffer = Buffer.from(LEDGER_CANISTER_ID);
|
|
80
|
+
const canisterIdBuffer = Buffer.from(iface_1.LEDGER_CANISTER_ID);
|
|
84
81
|
const args = await utils_1.default.toArg(sendArgs);
|
|
85
82
|
const update = {
|
|
86
83
|
canister_id: canisterIdBuffer,
|
|
@@ -93,4 +90,4 @@ class UnsignedTransactionBuilder {
|
|
|
93
90
|
}
|
|
94
91
|
}
|
|
95
92
|
exports.UnsignedTransactionBuilder = UnsignedTransactionBuilder;
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Vuc2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1DQVNpQjtBQUNqQixvREFBNEI7QUFFNUIsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxVQUFZLENBQUMsQ0FBQywyQkFBMkI7QUFDMUUsTUFBTSxlQUFlLEdBQUcsRUFBRSxHQUFHLFVBQVksQ0FBQyxDQUFDLDRCQUE0QjtBQUN2RSxNQUFNLGtCQUFrQixHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLG9HQUFvRztBQUUvSyxNQUFhLDBCQUEwQjtJQUVyQyxZQUFZLHFCQUFxQztRQUMvQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcscUJBQXFCLENBQUM7SUFDdEQsQ0FBQztJQUVELEtBQUssQ0FBQyxzQkFBc0I7UUFDMUIscVFBQXFRO1FBQ3JRLE1BQU0sUUFBUSxHQUNaLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztZQUN4RCxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLHNCQUFzQjtRQUNwRixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQzdDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsYUFBYyxFQUNuRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLFdBQVksRUFDakQsUUFBUSxDQUNULENBQUM7UUFDRixNQUFNLFFBQVEsR0FBRyxJ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Q0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsUUFBa0IsRUFBRSxZQUFvQjtRQUN0RCxNQUFNLFdBQVcsR0FBRyxlQUFLLENBQUMsMkJBQTJCLENBQUMsWUFBWSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbkYsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUM1QyxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxNQUFNLGVBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQXVCO1lBQ2pDLFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsV0FBVyxFQUFFLGtCQUFVLENBQUMsT0FBTztZQUMvQixHQUFHLEVBQUUsSUFBSTtZQUNULE1BQU0sRUFBRSxVQUFVO1lBQ2xCLGNBQWMsRUFBRSxFQUFFO1NBQ25CLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUE3R0QsZ0VBNkdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSWNwVHJhbnNhY3Rpb24sXG4gIFNlbmRBcmdzLFxuICBIdHRwQ2FuaXN0ZXJVcGRhdGUsXG4gIFNpZ25pbmdQYXlsb2FkLFxuICBQYXlsb2Fkc0RhdGEsXG4gIFNpZ25hdHVyZVR5cGUsXG4gIE9wZXJhdGlvblR5cGUsXG4gIE1ldGhvZE5hbWUsXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5jb25zdCBNQVhfSU5HUkVTU19UVEwgPSA1ICogNjAgKiAxMDAwXzAwMF8wMDA7IC8vIDUgbWludXRlcyBpbiBuYW5vc2Vjb25kc1xuY29uc3QgUEVSTUlUVEVEX0RSSUZUID0gNjAgKiAxMDAwXzAwMF8wMDA7IC8vIDYwIHNlY29uZHMgaW4gbmFub3NlY29uZHNcbmNvbnN0IExFREdFUl9DQU5JU1RFUl9JRCA9IG5ldyBVaW50OEFycmF5KFswLCAwLCAwLCAwLCAwLCAwLCAwLCAyLCAxLCAxXSk7IC8vIFVpbnQ4QXJyYXkgdmFsdWUgZm9yIFwiMDAwMDAwMDAwMDAwMDAwMjAxMDFcIiBhbmQgdGhlIHN0cmluZyB2YWx1ZSBpcyBcInJ5amwzLXR5YWFhLWFhYWFhLWFhYWJhLWNhaVwiXG5cbmV4cG9ydCBjbGFzcyBVbnNpZ25lZFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgX2ljcFRyYW5zYWN0aW9uUGF5bG9hZDogSWNwVHJhbnNhY3Rpb247XG4gIGNvbnN0cnVjdG9yKGljcFRyYW5zYWN0aW9uUGF5bG9hZDogSWNwVHJhbnNhY3Rpb24pIHtcbiAgICB0aGlzLl9pY3BUcmFuc2FjdGlvblBheWxvYWQgPSBpY3BUcmFuc2FjdGlvblBheWxvYWQ7XG4gIH1cblxuICBhc3luYyBnZXRVbnNpZ25lZFRyYW5zYWN0aW9uKCk6IFByb21pc2U8UGF5bG9hZHNEYXRhPiB7XG4gICAgLy8gaW50ZXJ2YWwgdmFsdWUgY2FuIGJlIGFsdGVyZWQgaGVyZSB0byBjaGFuZ2UgdGhlIGNvdW50IG9mIGluZ3Jlc3NFeHBpcmllcyB3aGljaCBldmVudHVhbGx5IGNoYW5nZXMgdGhlIG51bWJlciBvZiBpbnRlcnZhbCB2YWx1ZSBjYW4gYmUgYWx0ZXJlZCBoZXJlIHRvIGNoYW5nZSB0aGUgY291bnQgb2YgaW5ncmVzc0V4cGlyaWVzIHdoaWNoIGV2ZW50dWFsbHkgY2hhbmdlcyB0aGUgbnVtYmVyIG9mIHBheWxvYWRzIHRoYXQgbmVlZHMgdG8gYmUgc2lnbmVkXG4gICAgY29uc3QgaW50ZXJ2YWwgPVxuICAgICAgTnVtYmVyKHRoaXMuX2ljcFRyYW5zYWN0aW9uUGF5bG9hZC5tZXRhZGF0YS5pbmdyZXNzX2VuZCkgLVxuICAgICAgTnVtYmVyKHRoaXMuX2ljcFRyYW5zYWN0aW9uUGF5bG9hZC5tZXRhZGF0YS5pbmdyZXNzX3N0YXJ0KTsgLy8gMzAwcyBpbiBuYW5vc2Vjb25kc1xuICAgIGNvbnN0IGluZ3Jlc3NFeHBpcmllcyA9IHRoaXMuZ2V0SW5ncmVzc0V4cGlyaWVzKFxuICAgICAgdGhpcy5faWNwVHJhbnNhY3Rpb25QYXlsb2FkLm1ldGFkYXRhLmluZ3Jlc3Nfc3RhcnQhLFxuICAgICAgdGhpcy5faWNwVHJhbnNhY3Rpb25QYXlsb2FkLm1ldGFkYXRhLmluZ3Jlc3NfZW5kISxcbiAgICAgIGludGVydmFsXG4gICAgKTtcbiAgICBjb25zdCBzZW5kQXJncyA9IHRoaXMuZ2V0U2VuZEFyZ3MoXG4gICAgICB0aGlzLl9pY3BUcmFuc2FjdGlvblBheWxvYWQubWV0YWRhdGEubWVtbyxcbiAgICAgIHRoaXMuX2ljcFRyYW5zYWN0aW9uUGF5bG9hZC5tZXRhZGF0YS5jcmVhdGVkX2F0X3RpbWUsXG4gICAgICB0aGlzLl9pY3BUcmFuc2FjdGlvblBheWxvYWQub3BlcmF0aW9uc1sxXS5hbW91bnQudmFsdWUsXG4gICAgICB0aGlzLl9pY3BUcmFuc2FjdGlvblBheWxvYWQub3BlcmF0aW9uc1syXS5hbW91bnQudmFsdWUsXG4gICAgICB0aGlzLl9pY3BUcmFuc2FjdGlvblBheWxvYWQub3BlcmF0aW9uc1sxXS5hY2NvdW50LmFkZHJlc3NcbiAgICApO1xuICAgIGNvbnN0IHVwZGF0ZSA9IGF3YWl0IHRoaXMuZ2V0VXBkYXRlKHNlbmRBcmdzLCB0aGlzLl9pY3BUcmFuc2FjdGlvblBheWxvYWQucHVibGljX2tleXNbMF0uaGV4X2J5dGVzKTtcbiAgICBjb25zdCB1cGRhdGVzOiBbc3RyaW5nLCBIdHRwQ2FuaXN0ZXJVcGRhdGVdW10gPSBbXTtcbiAgICB1cGRhdGVzLnB1c2goW09wZXJhdGlvblR5cGUuVFJBTlNBQ1RJT04sIHVwZGF0ZV0pO1xuICAgIGNvbnN0IHR4biA9IHsgdXBkYXRlczogdXBkYXRlcywgaW5ncmVzc19leHBpcmllczogaW5ncmVzc0V4cGlyaWVzIH07XG4gICAgY29uc3QgdW5zaWduZWRUcmFuc2FjdGlvbiA9IHV0aWxzLmNib3JFbmNvZGUodHhuKTtcbiAgICBjb25zdCBwYXlsb2FkczogU2lnbmluZ1BheWxvYWRbXSA9IFtdO1xuICAgIHRoaXMuZ2V0UGF5bG9hZHMocGF5bG9hZHMsIGluZ3Jlc3NFeHBpcmllcywgdGhpcy5faWNwVHJhbnNhY3Rpb25QYXlsb2FkLm9wZXJhdGlvbnNbMF0uYWNjb3VudC5hZGRyZXNzLCB1cGRhdGUpO1xuICAgIGNvbnN0IHBheWxvYWRzRGF0YSA9IHtcbiAgICAgIHBheWxvYWRzOiBwYXlsb2FkcyxcbiAgICAgIHVuc2lnbmVkX3RyYW5zYWN0aW9uOiB1bnNpZ25lZFRyYW5zYWN0aW9uLFxuICAgIH07XG4gICAgcmV0dXJuIHBheWxvYWRzRGF0YTtcbiAgfVxuXG4gIGdldFBheWxvYWRzKFxuICAgIHBheWxvYWRzOiBTaWduaW5nUGF5bG9hZFtdLFxuICAgIGluZ3Jlc3NFeHBpcmllczogYmlnaW50W10sXG4gICAgYWNjb3VudEFkZHJlc3M6IHN0cmluZyxcbiAgICB1cGRhdGU6IEh0dHBDYW5pc3RlclVwZGF0ZVxuICApOiBTaWduaW5nUGF5bG9hZFtdIHtcbiAgICBmb3IgKGNvbnN0IGluZ3Jlc3NFeHBpcnkgb2YgaW5ncmVzc0V4cGlyaWVzKSB7XG4gICAgICBjb25zdCBjbG9uZWRVcGRhdGU6IEh0dHBDYW5pc3RlclVwZGF0ZSA9IHtcbiAgICAgICAgY2FuaXN0ZXJfaWQ6IEJ1ZmZlci5mcm9tKHVwZGF0ZS5jYW5pc3Rlcl9pZCksXG4gICAgICAgIG1ldGhvZF9uYW1lOiB1cGRhdGUubWV0aG9kX25hbWUsXG4gICAgICAgIGFyZzogdXBkYXRlLmFyZyxcbiAgICAgICAgc2VuZGVyOiB1cGRhdGUuc2VuZGVyLFxuICAgICAgICBpbmdyZXNzX2V4cGlyeTogaW5ncmVzc0V4cGlyeSxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHJlcHJlc2VudGF0aW9uSW5kZXBlbmRlbnRIYXNoID0gdXRpbHMuSHR0cENhbmlzdGVyVXBkYXRlUmVwcmVzZW50YXRpb25JbmRlcGVuZGVudEhhc2goY2xvbmVkVXBkYXRlKTtcbiAgICAgIGNvbnN0IHRyYW5zYWN0aW9uUGF5bG9hZDogU2lnbmluZ1BheWxvYWQgPSB7XG4gICAgICAgIGhleF9ieXRlczogdXRpbHMuYmxvYlRvSGV4KHV0aWxzLm1ha2VTaWduYXR1cmVEYXRhKHJlcHJlc2VudGF0aW9uSW5kZXBlbmRlbnRIYXNoKSksXG4gICAgICAgIGFjY291bnRfaWRlbnRpZmllcjogeyBhZGRyZXNzOiBhY2NvdW50QWRkcmVzcyB9LFxuICAgICAgICBzaWduYXR1cmVfdHlwZTogU2lnbmF0dXJlVHlwZS5FQ0RTQSxcbiAgICAgIH07XG4gICAgICBwYXlsb2Fkcy5wdXNoKHRyYW5zYWN0aW9uUGF5bG9hZCk7XG5cbiAgICAgIGNvbnN0IHJlYWRTdGF0ZSA9IHV0aWxzLm1ha2VSZWFkU3RhdGVGcm9tVXBkYXRlKGNsb25lZFVwZGF0ZSk7XG4gICAgICBjb25zdCByZWFkU3RhdGVNZXNzYWdlSWQgPSB1dGlscy5IdHRwUmVhZFN0YXRlUmVwcmVzZW50YXRpb25JbmRlcGVuZGVudEhhc2gocmVhZFN0YXRlKTtcbiAgICAgIGNvbnN0IHJlYWRTdGF0ZVBheWxvYWQ6IFNpZ25pbmdQYXlsb2FkID0ge1xuICAgICAgICBoZXhfYnl0ZXM6IHV0aWxzLmJsb2JUb0hleCh1dGlscy5tYWtlU2lnbmF0dXJlRGF0YShyZWFkU3RhdGVNZXNzYWdlSWQpKSxcbiAgICAgICAgYWNjb3VudF9pZGVudGlmaWVyOiB7IGFkZHJlc3M6IGFjY291bnRBZGRyZXNzIH0sXG4gICAgICAgIHNpZ25hdHVyZV90eXBlOiBTaWduYXR1cmVUeXBlLkVDRFNBLFxuICAgICAgfTtcbiAgICAgIHBheWxvYWRzLnB1c2gocmVhZFN0YXRlUGF5bG9hZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBheWxvYWRzO1xuICB9XG5cbiAgZ2V0SW5ncmVzc0V4cGlyaWVzKGluZ3Jlc3NTdGFydFRpbWU6IG51bWJlciB8IEJpZ0ludCwgaW5ncmVzc0VuZFRpbWU6IG51bWJlciB8IEJpZ0ludCwgaW50ZXJ2YWw6IG51bWJlcik6IGJpZ2ludFtdIHtcbiAgICBjb25zdCBpbmdyZXNzRXhwaXJpZXM6IGJpZ2ludFtdID0gW107XG5cbiAgICBmb3IgKGxldCBub3cgPSBOdW1iZXIoaW5ncmVzc1N0YXJ0VGltZSk7IG5vdyA8IE51bWJlcihpbmdyZXNzRW5kVGltZSk7IG5vdyArPSBpbnRlcnZhbCkge1xuICAgICAgY29uc3QgaW5ncmVzc0V4cGlyeSA9IEJpZ0ludChub3cgKyAoTUFYX0lOR1JFU1NfVFRMIC0gUEVSTUlUVEVEX0RSSUZUKSk7XG4gICAgICBpbmdyZXNzRXhwaXJpZXMucHVzaChpbmdyZXNzRXhwaXJ5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gaW5ncmVzc0V4cGlyaWVzO1xuICB9XG5cbiAgZ2V0U2VuZEFyZ3MobWVtbzogbnVtYmVyIHwgQmlnSW50LCBjcmVhdGVkX2F0X3RpbWU6IG51bWJlciwgYW1vdW50OiBzdHJpbmcsIGZlZTogc3RyaW5nLCByZWNlaXZlcjogc3RyaW5nKTogU2VuZEFyZ3Mge1xuICAgIGNvbnN0IHNlbmRBcmdzOiBTZW5kQXJncyA9IHtcbiAgICAgIG1lbW86IHsgbWVtbzogbWVtbyB9LFxuICAgICAgcGF5bWVudDogeyByZWNlaXZlckdldHM6IHsgZThzOiBOdW1iZXIoYW1vdW50KSB9IH0sXG4gICAgICBtYXhGZWU6IHsgZThzOiAtTnVtYmVyKGZlZSkgfSxcbiAgICAgIHRvOiB7IGhhc2g6IEJ1ZmZlci5mcm9tKHJlY2VpdmVyLCAnaGV4JykgfSxcbiAgICAgIGNyZWF0ZWRBdFRpbWU6IHsgdGltZXN0YW1wTmFub3M6IE51bWJlcihjcmVhdGVkX2F0X3RpbWUpIH0sXG4gICAgfTtcbiAgICByZXR1cm4gc2VuZEFyZ3M7XG4gIH1cblxuICBhc3luYyBnZXRVcGRhdGUoc2VuZEFyZ3M6IFNlbmRBcmdzLCBwdWJsaWNLZXlIZXg6IHN0cmluZyk6IFByb21pc2U8SHR0cENhbmlzdGVyVXBkYXRlPiB7XG4gICAgY29uc3QgcHJpbmNpcGFsSWQgPSB1dGlscy5nZXRQcmluY2lwYWxJZEZyb21QdWJsaWNLZXkocHVibGljS2V5SGV4KS50b1VpbnQ4QXJyYXkoKTtcbiAgICBjb25zdCBzZW5kZXJCbG9iID0gQnVmZmVyLmZyb20ocHJpbmNpcGFsSWQpO1xuICAgIGNvbnN0IGNhbmlzdGVySWRCdWZmZXIgPSBCdWZmZXIuZnJvbShMRURHRVJfQ0FOSVNURVJfSUQpO1xuICAgIGNvbnN0IGFyZ3MgPSBhd2FpdCB1dGlscy50b0FyZyhzZW5kQXJncyk7XG4gICAgY29uc3QgdXBkYXRlOiBIdHRwQ2FuaXN0ZXJVcGRhdGUgPSB7XG4gICAgICBjYW5pc3Rlcl9pZDogY2FuaXN0ZXJJZEJ1ZmZlcixcbiAgICAgIG1ldGhvZF9uYW1lOiBNZXRob2ROYW1lLlNFTkRfUEIsXG4gICAgICBhcmc6IGFyZ3MsXG4gICAgICBzZW5kZXI6IHNlbmRlckJsb2IsXG4gICAgICBpbmdyZXNzX2V4cGlyeTogMG4sXG4gICAgfTtcbiAgICByZXR1cm4gdXBkYXRlO1xuICB9XG59XG4iXX0=
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3Vuc2lnbmVkVHJhbnNhY3Rpb25CdWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG1DQVlpQjtBQUNqQixvREFBNEI7QUFFNUIsTUFBYSwwQkFBMEI7SUFFckMsWUFBWSxxQkFBcUM7UUFDL0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFDO0lBQ3RELENBQUM7SUFFRCxLQUFLLENBQUMsc0JBQXNCO1FBQzFCLHFRQUFxUTtRQUNyUSxNQUFNLFFBQVEsR0FDWixNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDeEQsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxzQkFBc0I7UUFDcEYsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUM3QyxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLGFBQWMsRUFDbkQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxXQUFZLEVBQ2pELFFBQVEsQ0FDVCxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FDL0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ3pDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxFQUNwRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ3RELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFDdEQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENB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QUMsUUFBUSxDQUFDLENBQUM7UUFDekMsTUFBTSxNQUFNLEdBQXVCO1lBQ2pDLFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsV0FBVyxFQUFFLGtCQUFVLENBQUMsT0FBTztZQUMvQixHQUFHLEVBQUUsSUFBSTtZQUNULE1BQU0sRUFBRSxVQUFVO1lBQ2xCLGNBQWMsRUFBRSxFQUFFO1NBQ25CLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0Y7QUE3R0QsZ0VBNkdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgSWNwVHJhbnNhY3Rpb24sXG4gIFNlbmRBcmdzLFxuICBIdHRwQ2FuaXN0ZXJVcGRhdGUsXG4gIFNpZ25pbmdQYXlsb2FkLFxuICBQYXlsb2Fkc0RhdGEsXG4gIFNpZ25hdHVyZVR5cGUsXG4gIE9wZXJhdGlvblR5cGUsXG4gIE1ldGhvZE5hbWUsXG4gIE1BWF9JTkdSRVNTX1RUTCxcbiAgUEVSTUlUVEVEX0RSSUZULFxuICBMRURHRVJfQ0FOSVNURVJfSUQsXG59IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgVW5zaWduZWRUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcml2YXRlIF9pY3BUcmFuc2FjdGlvblBheWxvYWQ6IEljcFRyYW5zYWN0aW9uO1xuICBjb25zdHJ1Y3RvcihpY3BUcmFuc2FjdGlvblBheWxvYWQ6IEljcFRyYW5zYWN0aW9uKSB7XG4gICAgdGhpcy5faWNwVHJhbnNhY3Rpb25QYXlsb2FkID0gaWNwVHJhbnNhY3Rpb25QYXlsb2FkO1xuICB9XG5cbiAgYXN5bmMgZ2V0VW5zaWduZWRUcmFuc2FjdGlvbigpOiBQcm9taXNlPFBheWxvYWRzRGF0YT4ge1xuICAgIC8vIGludGVydmFsIHZhbHVlIGNhbiBiZSBhbHRlcmVkIGhlcmUgdG8gY2hhbmdlIHRoZSBjb3VudCBvZiBpbmdyZXNzRXhwaXJpZXMgd2hpY2ggZXZlbnR1YWxseSBjaGFuZ2VzIHRoZSBudW1iZXIgb2YgaW50ZXJ2YWwgdmFsdWUgY2FuIGJlIGFsdGVyZWQgaGVyZSB0byBjaGFuZ2UgdGhlIGNvdW50IG9mIGluZ3Jlc3NFeHBpcmllcyB3aGljaCBldmVudHVhbGx5IGNoYW5nZXMgdGhlIG51bWJlciBvZiBwYXlsb2FkcyB0aGF0IG5lZWRzIHRvIGJlIHNpZ25lZFxuICAgIGNvbnN0IGludGVydmFsID1cbiAgICAgIE51bWJlcih0aGlzLl9pY3BUcmFuc2FjdGlvblBheWxvYWQubWV0YWRhdGEuaW5ncmVzc19lbmQpIC1cbiAgICAgIE51bWJlcih0aGlzLl9pY3BUcmFuc2FjdGlvblBheWxvYWQubWV0YWRhdGEuaW5ncmVzc19zdGFydCk7IC8vIDMwMHMgaW4gbmFub3NlY29uZHNcbiAgICBjb25zdCBpbmdyZXNzRXhwaXJpZXMgPSB0aGlzLmdldEluZ3Jlc3NFeHBpcmllcyhcbiAgICAgIHRoaXMuX2ljcFRyYW5zYWN0aW9uUGF5bG9hZC5tZXRhZGF0YS5pbmdyZXNzX3N0YXJ0ISxcbiAgICAgIHRoaXMuX2ljcFRyYW5zYWN0aW9uUGF5bG9hZC5tZXRhZGF0YS5pbmdyZXNzX2VuZCEsXG4gICAgICBpbnRlcnZhbFxuICAgICk7XG4gICAgY29uc3Qgc2VuZEFyZ3MgPSB0aGlzLmdldFNlbmRBcmdzKFxuICAgICAgdGhpcy5faWNwVHJhbnNhY3Rpb25QYXlsb2FkLm1ldGFkYXRhLm1lbW8sXG4gICAgICB0aGlzLl9pY3BUcmFuc2FjdGlvblBheWxvYWQubWV0YWRhdGEuY3JlYXRlZF9hdF90aW1lLFxuICAgICAgdGhpcy5faWNwVHJhbnNhY3Rpb25QYXlsb2FkLm9wZXJhdGlvbnNbMV0uYW1vdW50LnZhbHVlLFxuICAgICAgdGhpcy5faWNwVHJhbnNhY3Rpb25QYXlsb2FkLm9wZXJhdGlvbnNbMl0uYW1vdW50LnZhbHVlLFxuICAgICAgdGhpcy5faWNwVHJhbnNhY3Rpb25QYXlsb2FkLm9wZXJhdGlvbnNbMV0uYWNjb3VudC5hZGRyZXNzXG4gICAgKTtcbiAgICBjb25zdCB1cGRhdGUgPSBhd2FpdCB0aGlzLmdldFVwZGF0ZShzZW5kQXJncywgdGhpcy5faWNwVHJhbnNhY3Rpb25QYXlsb2FkLnB1YmxpY19rZXlzWzBdLmhleF9ieXRlcyk7XG4gICAgY29uc3QgdXBkYXRlczogW3N0cmluZywgSHR0cENhbmlzdGVyVXBkYXRlXVtdID0gW107XG4gICAgdXBkYXRlcy5wdXNoKFtPcGVyYXRpb25UeXBlLlRSQU5TQUNUSU9OLCB1cGRhdGVdKTtcbiAgICBjb25zdCB0eG4gPSB7IHVwZGF0ZXM6IHVwZGF0ZXMsIGluZ3Jlc3NfZXhwaXJpZXM6IGluZ3Jlc3NFeHBpcmllcyB9O1xuICAgIGNvbnN0IHVuc2lnbmVkVHJhbnNhY3Rpb24gPSB1dGlscy5jYm9yRW5jb2RlKHR4bik7XG4gICAgY29uc3QgcGF5bG9hZHM6IFNpZ25pbmdQYXlsb2FkW10gPSBbXTtcbiAgICB0aGlzLmdldFBheWxvYWRzKHBheWxvYWRzLCBpbmdyZXNzRXhwaXJpZXMsIHRoaXMuX2ljcFRyYW5zYWN0aW9uUGF5bG9hZC5vcGVyYXRpb25zWzBdLmFjY291bnQuYWRkcmVzcywgdXBkYXRlKTtcbiAgICBjb25zdCBwYXlsb2Fkc0RhdGEgPSB7XG4gICAgICBwYXlsb2FkczogcGF5bG9hZHMsXG4gICAgICB1bnNpZ25lZF90cmFuc2FjdGlvbjogdW5zaWduZWRUcmFuc2FjdGlvbixcbiAgICB9O1xuICAgIHJldHVybiBwYXlsb2Fkc0RhdGE7XG4gIH1cblxuICBnZXRQYXlsb2FkcyhcbiAgICBwYXlsb2FkczogU2lnbmluZ1BheWxvYWRbXSxcbiAgICBpbmdyZXNzRXhwaXJpZXM6IGJpZ2ludFtdLFxuICAgIGFjY291bnRBZGRyZXNzOiBzdHJpbmcsXG4gICAgdXBkYXRlOiBIdHRwQ2FuaXN0ZXJVcGRhdGVcbiAgKTogU2lnbmluZ1BheWxvYWRbXSB7XG4gICAgZm9yIChjb25zdCBpbmdyZXNzRXhwaXJ5IG9mIGluZ3Jlc3NFeHBpcmllcykge1xuICAgICAgY29uc3QgY2xvbmVkVXBkYXRlOiBIdHRwQ2FuaXN0ZXJVcGRhdGUgPSB7XG4gICAgICAgIGNhbmlzdGVyX2lkOiBCdWZmZXIuZnJvbSh1cGRhdGUuY2FuaXN0ZXJfaWQpLFxuICAgICAgICBtZXRob2RfbmFtZTogdXBkYXRlLm1ldGhvZF9uYW1lLFxuICAgICAgICBhcmc6IHVwZGF0ZS5hcmcsXG4gICAgICAgIHNlbmRlcjogdXBkYXRlLnNlbmRlcixcbiAgICAgICAgaW5ncmVzc19leHBpcnk6IGluZ3Jlc3NFeHBpcnksXG4gICAgICB9O1xuXG4gICAgICBjb25zdCByZXByZXNlbnRhdGlvbkluZGVwZW5kZW50SGFzaCA9IHV0aWxzLkh0dHBDYW5pc3RlclVwZGF0ZVJlcHJlc2VudGF0aW9uSW5kZXBlbmRlbnRIYXNoKGNsb25lZFVwZGF0ZSk7XG4gICAgICBjb25zdCB0cmFuc2FjdGlvblBheWxvYWQ6IFNpZ25pbmdQYXlsb2FkID0ge1xuICAgICAgICBoZXhfYnl0ZXM6IHV0aWxzLmJsb2JUb0hleCh1dGlscy5tYWtlU2lnbmF0dXJlRGF0YShyZXByZXNlbnRhdGlvbkluZGVwZW5kZW50SGFzaCkpLFxuICAgICAgICBhY2NvdW50X2lkZW50aWZpZXI6IHsgYWRkcmVzczogYWNjb3VudEFkZHJlc3MgfSxcbiAgICAgICAgc2lnbmF0dXJlX3R5cGU6IFNpZ25hdHVyZVR5cGUuRUNEU0EsXG4gICAgICB9O1xuICAgICAgcGF5bG9hZHMucHVzaCh0cmFuc2FjdGlvblBheWxvYWQpO1xuXG4gICAgICBjb25zdCByZWFkU3RhdGUgPSB1dGlscy5tYWtlUmVhZFN0YXRlRnJvbVVwZGF0ZShjbG9uZWRVcGRhdGUpO1xuICAgICAgY29uc3QgcmVhZFN0YXRlTWVzc2FnZUlkID0gdXRpbHMuSHR0cFJlYWRTdGF0ZVJlcHJlc2VudGF0aW9uSW5kZXBlbmRlbnRIYXNoKHJlYWRTdGF0ZSk7XG4gICAgICBjb25zdCByZWFkU3RhdGVQYXlsb2FkOiBTaWduaW5nUGF5bG9hZCA9IHtcbiAgICAgICAgaGV4X2J5dGVzOiB1dGlscy5ibG9iVG9IZXgodXRpbHMubWFrZVNpZ25hdHVyZURhdGEocmVhZFN0YXRlTWVzc2FnZUlkKSksXG4gICAgICAgIGFjY291bnRfaWRlbnRpZmllcjogeyBhZGRyZXNzOiBhY2NvdW50QWRkcmVzcyB9LFxuICAgICAgICBzaWduYXR1cmVfdHlwZTogU2lnbmF0dXJlVHlwZS5FQ0RTQSxcbiAgICAgIH07XG4gICAgICBwYXlsb2Fkcy5wdXNoKHJlYWRTdGF0ZVBheWxvYWQpO1xuICAgIH1cblxuICAgIHJldHVybiBwYXlsb2FkcztcbiAgfVxuXG4gIGdldEluZ3Jlc3NFeHBpcmllcyhpbmdyZXNzU3RhcnRUaW1lOiBudW1iZXIgfCBCaWdJbnQsIGluZ3Jlc3NFbmRUaW1lOiBudW1iZXIgfCBCaWdJbnQsIGludGVydmFsOiBudW1iZXIpOiBiaWdpbnRbXSB7XG4gICAgY29uc3QgaW5ncmVzc0V4cGlyaWVzOiBiaWdpbnRbXSA9IFtdO1xuXG4gICAgZm9yIChsZXQgbm93ID0gTnVtYmVyKGluZ3Jlc3NTdGFydFRpbWUpOyBub3cgPCBOdW1iZXIoaW5ncmVzc0VuZFRpbWUpOyBub3cgKz0gaW50ZXJ2YWwpIHtcbiAgICAgIGNvbnN0IGluZ3Jlc3NFeHBpcnkgPSBCaWdJbnQobm93ICsgKE1BWF9JTkdSRVNTX1RUTCAtIFBFUk1JVFRFRF9EUklGVCkpO1xuICAgICAgaW5ncmVzc0V4cGlyaWVzLnB1c2goaW5ncmVzc0V4cGlyeSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZ3Jlc3NFeHBpcmllcztcbiAgfVxuXG4gIGdldFNlbmRBcmdzKG1lbW86IG51bWJlciB8IEJpZ0ludCwgY3JlYXRlZF9hdF90aW1lOiBudW1iZXIsIGFtb3VudDogc3RyaW5nLCBmZWU6IHN0cmluZywgcmVjZWl2ZXI6IHN0cmluZyk6IFNlbmRBcmdzIHtcbiAgICBjb25zdCBzZW5kQXJnczogU2VuZEFyZ3MgPSB7XG4gICAgICBtZW1vOiB7IG1lbW86IG1lbW8gfSxcbiAgICAgIHBheW1lbnQ6IHsgcmVjZWl2ZXJHZXRzOiB7IGU4czogTnVtYmVyKGFtb3VudCkgfSB9LFxuICAgICAgbWF4RmVlOiB7IGU4czogLU51bWJlcihmZWUpIH0sXG4gICAgICB0bzogeyBoYXNoOiBCdWZmZXIuZnJvbShyZWNlaXZlciwgJ2hleCcpIH0sXG4gICAgICBjcmVhdGVkQXRUaW1lOiB7IHRpbWVzdGFtcE5hbm9zOiBOdW1iZXIoY3JlYXRlZF9hdF90aW1lKSB9LFxuICAgIH07XG4gICAgcmV0dXJuIHNlbmRBcmdzO1xuICB9XG5cbiAgYXN5bmMgZ2V0VXBkYXRlKHNlbmRBcmdzOiBTZW5kQXJncywgcHVibGljS2V5SGV4OiBzdHJpbmcpOiBQcm9taXNlPEh0dHBDYW5pc3RlclVwZGF0ZT4ge1xuICAgIGNvbnN0IHByaW5jaXBhbElkID0gdXRpbHMuZ2V0UHJpbmNpcGFsSWRGcm9tUHVibGljS2V5KHB1YmxpY0tleUhleCkudG9VaW50OEFycmF5KCk7XG4gICAgY29uc3Qgc2VuZGVyQmxvYiA9IEJ1ZmZlci5mcm9tKHByaW5jaXBhbElkKTtcbiAgICBjb25zdCBjYW5pc3RlcklkQnVmZmVyID0gQnVmZmVyLmZyb20oTEVER0VSX0NBTklTVEVSX0lEKTtcbiAgICBjb25zdCBhcmdzID0gYXdhaXQgdXRpbHMudG9Bcmcoc2VuZEFyZ3MpO1xuICAgIGNvbnN0IHVwZGF0ZTogSHR0cENhbmlzdGVyVXBkYXRlID0ge1xuICAgICAgY2FuaXN0ZXJfaWQ6IGNhbmlzdGVySWRCdWZmZXIsXG4gICAgICBtZXRob2RfbmFtZTogTWV0aG9kTmFtZS5TRU5EX1BCLFxuICAgICAgYXJnOiBhcmdzLFxuICAgICAgc2VuZGVyOiBzZW5kZXJCbG9iLFxuICAgICAgaW5ncmVzc19leHBpcnk6IDBuLFxuICAgIH07XG4gICAgcmV0dXJuIHVwZGF0ZTtcbiAgfVxufVxuIl19
|
package/dist/src/lib/utils.d.ts
CHANGED
|
@@ -287,7 +287,7 @@ export declare class Utils implements BaseUtils {
|
|
|
287
287
|
getRecipients(icpTransactionData: IcpTransactionData): Recipient;
|
|
288
288
|
getTransactionSignature(signatureMap: Map<string, Signatures>, update: HttpCanisterUpdate): Signatures | undefined;
|
|
289
289
|
getReadStateSignature(signatureMap: Map<string, Signatures>, readState: ReadState): Signatures | undefined;
|
|
290
|
-
getMetaData(memo: number | BigInt): {
|
|
290
|
+
getMetaData(memo: number | BigInt, timestamp: number | bigint | undefined): {
|
|
291
291
|
metaData: IcpMetadata;
|
|
292
292
|
ingressEndTime: number | BigInt;
|
|
293
293
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/lib/utils.js
CHANGED
|
@@ -591,8 +591,11 @@ class Utils {
|
|
|
591
591
|
getReadStateSignature(signatureMap, readState) {
|
|
592
592
|
return signatureMap.get(this.blobToHex(this.makeSignatureData(this.HttpReadStateRepresentationIndependentHash(readState))));
|
|
593
593
|
}
|
|
594
|
-
getMetaData(memo) {
|
|
595
|
-
|
|
594
|
+
getMetaData(memo, timestamp) {
|
|
595
|
+
let currentTime = Date.now() * 1000000;
|
|
596
|
+
if (timestamp) {
|
|
597
|
+
currentTime = Number(timestamp);
|
|
598
|
+
}
|
|
596
599
|
const ingressStartTime = currentTime;
|
|
597
600
|
const ingressEndTime = ingressStartTime + 5 * 60 * 1000000000; // 5 mins in nanoseconds
|
|
598
601
|
const metaData = {
|
|
@@ -670,4 +673,4 @@ class Utils {
|
|
|
670
673
|
exports.Utils = Utils;
|
|
671
674
|
const utils = new Utils();
|
|
672
675
|
exports.default = utils;
|
|
673
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQU95QjtBQUN6QixrREFBbUU7QUFDbkUsc0RBQXdDO0FBQ3hDLG9EQUE0QjtBQUM1QixvREFBMkI7QUFDM0IsbUNBVWlCO0FBQ2pCLHVDQUFrRDtBQUNsRCxtQ0FBd0MsQ0FBQyxnTUFBZ007QUFDek8sMERBQWtDO0FBQ2xDLGdFQUFxQztBQUNyQyx1REFBb0Q7QUFDcEQsNERBQWtDO0FBQ2xDLHVEQUFvRDtBQUV2QyxRQUFBLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztBQUUvQyxNQUFhLEtBQUs7SUFBbEI7UUFvcEJFLGdCQUFXLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFVBQWtCLEVBQVUsRUFBRTtZQUMvRCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN2RCxNQUFNLFdBQVcsR0FBRyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckcsTUFBTSxTQUFTLEdBQUcscUJBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFD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V0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhLENBQUMsWUFBMEIsRUFBRSxlQUF1QixFQUFFLGdCQUF3QjtRQUN6RixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLGVBQWUsRUFBRSxPQUFPO1lBQ3hCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztZQUN0QyxVQUFVLEVBQUU7Z0JBQ1YsU0FBUyxFQUFFLGVBQWU7Z0JBQzFCLFVBQVUsRUFBRSxpQkFBUyxDQUFDLFNBQVM7YUFDaEM7WUFDRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDO1NBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztDQVVGO0FBNXBCRCxzQkE0cEJDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUMxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlVXRpbHMsXG4gIEtleVBhaXIsXG4gIFBhcnNlVHJhbnNhY3Rpb25FcnJvcixcbiAgUmVjaXBpZW50LFxuICBCdWlsZFRyYW5zYWN0aW9uRXJyb3IsXG4gIE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IsXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBQcmluY2lwYWwgYXMgRGZpbml0eVByaW5jaXBhbCB9IGZyb20gJ0BkZmluaXR5L3ByaW5jaXBhbCc7XG5pbXBvcnQgKiBhcyBhZ2VudCBmcm9tICdAZGZpbml0eS9hZ2VudCc7XG5pbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgY3JjMzIgZnJvbSAnY3JjLTMyJztcbmltcG9ydCB7XG4gIEh0dHBDYW5pc3RlclVwZGF0ZSxcbiAgSWNwVHJhbnNhY3Rpb25EYXRhLFxuICBSZWFkU3RhdGUsXG4gIFJlcXVlc3RUeXBlLFxuICBTaWduYXR1cmVzLFxuICBJY3BNZXRhZGF0YSxcbiAgU2VuZEFyZ3MsXG4gIFBheWxvYWRzRGF0YSxcbiAgQ3VydmVUeXBlLFxufSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEtleVBhaXIgYXMgSWNwS2V5UGFpciB9IGZyb20gJy4va2V5UGFpcic7XG5pbXBvcnQgeyBkZWNvZGUsIGVuY29kZSB9IGZyb20gJ2Nib3IteCc7IC8vIFRoZSBcImNib3IteFwiIGxpYnJhcnkgaXMgdXNlZCBoZXJlIGJlY2F1c2UgaXQgc3VwcG9ydHMgbW9kZXJuIGZlYXR1cmVzIGxpa2UgQmlnSW50LiBkbyBub3QgcmVwbGFjZSBpdCB3aXRoIFwiY2JvciBhcyBcImNib3JcIiBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFJ1c3QncyBzZXJkZV9jYm9yIHdoZW4gaGFuZGxpbmcgYmlnIG51bWJlcnMuXG5pbXBvcnQganNfc2hhMjU2IGZyb20gJ2pzLXNoYTI1Nic7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBzZWNwMjU2azEgfSBmcm9tICdAbm9ibGUvY3VydmVzL3NlY3AyNTZrMSc7XG5pbXBvcnQgcHJvdG9idWYgZnJvbSAncHJvdG9idWZqcyc7XG5pbXBvcnQgeyBwcm90b0RlZmluaXRpb24gfSBmcm9tICcuL3Byb3RvRGVmaW5pdGlvbic7XG5cbmV4cG9ydCBjb25zdCBSRVFVRVNUX1NUQVRVUyA9ICdyZXF1ZXN0X3N0YXR1cyc7XG5cbmV4cG9ydCBjbGFzcyBVdGlscyBpbXBsZW1lbnRzIEJhc2VVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IE1ldGhvZE5vdEltcGxlbWVudGVkRXJyb3IoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXRzIHRoZSBnYXMgZGF0YSBvZiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKi9cbiAgLy9UT0RPIFdJTi00MjQyOiB0byBtb3ZlZCB0byBhIGNvbmZpZyBhbmQgZXZlbnR1YWxseSB0byBhbiBBUEkgZm9yIGR5bmFtaWMgdmFsdWVcbiAgZ2FzRGF0YSgpOiBzdHJpbmcge1xuICAgIHJldHVybiAnLTEwMDAwJztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHByb3ZpZGVkIGFkZHJlc3MgaXMgYSB2YWxpZCBJQ1AgYWRkcmVzcy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBUaGUgYWRkcmVzcyB0byB2YWxpZGF0ZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGFkZHJlc3MgaXMgdmFsaWQsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgaXNWYWxpZEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgcm9vdEFkZHJlc3MgPSB0aGlzLnZhbGlkYXRlTWVtb0FuZFJldHVyblJvb3RBZGRyZXNzKGFkZHJlc3MpO1xuICAgIHJldHVybiByb290QWRkcmVzcyAhPT0gdW5kZWZpbmVkICYmIHRoaXMuaXNWYWxpZEhhc2gocm9vdEFkZHJlc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgbWVtbyBJRCBpbiB0aGUgYWRkcmVzcyBhbmQgcmV0dXJucyB0aGUgcm9vdCBhZGRyZXNzLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYWRkcmVzcyAtIFRoZSBhZGRyZXNzIHRvIHZhbGlkYXRlIGFuZCBleHRyYWN0IHRoZSByb290IGFkZHJlc3MgZnJvbS5cbiAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gLSBUaGUgcm9vdCBhZGRyZXNzIGlmIHZhbGlkLCBvdGhlcndpc2UgYHVuZGVmaW5lZGAuXG4gICAqL1xuICB2YWxpZGF0ZU1lbW9BbmRSZXR1cm5Sb290QWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICghYWRkcmVzcykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgW3Jvb3RBZGRyZXNzLCBtZW1vSWRdID0gYWRkcmVzcy5zcGxpdCgnP21lbW9JZD0nKTtcbiAgICBpZiAobWVtb0lkICYmIHRoaXMudmFsaWRhdGVNZW1vKEJpZ0ludChtZW1vSWQpKSkge1xuICAgICAgcmV0dXJuIHJvb3RBZGRyZXNzO1xuICAgIH1cbiAgICByZXR1cm4gYWRkcmVzcztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIHByb3ZpZGVkIGhleCBzdHJpbmcgaXMgYSB2YWxpZCBwdWJsaWMga2V5LlxuICAgKlxuICAgKiBBIHZhbGlkIHB1YmxpYyBrZXkgY2FuIGJlIGVpdGhlciBjb21wcmVzc2VkIG9yIHVuY29tcHJlc3NlZDpcbiAgICogLSBDb21wcmVzc2VkIHB1YmxpYyBrZXlzIGFyZSAzMyBieXRlcyBsb25nIGFuZCBzdGFydCB3aXRoIGVpdGhlciAweDAyIG9yIDB4MDMuXG4gICAqIC0gVW5jb21wcmVzc2VkIHB1YmxpYyBrZXlzIGFyZSA2NSBieXRlcyBsb25nIGFuZCBzdGFydCB3aXRoIDB4MDQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBoZXhTdHIgLSBUaGUgaGV4IHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgcHVibGljIGtleSB0byB2YWxpZGF0ZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGhleCBzdHJpbmcgaXMgYSB2YWxpZCBwdWJsaWMga2V5LCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICovXG4gIGlzVmFsaWRQdWJsaWNLZXkoaGV4U3RyOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZEhleChoZXhTdHIpIHx8ICF0aGlzLmlzVmFsaWRMZW5ndGgoaGV4U3RyKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IHB1YktleUJ5dGVzID0gdGhpcy5oZXhUb0J5dGVzKGhleFN0cik7XG4gICAgY29uc3QgZmlyc3RCeXRlID0gcHViS2V5Qnl0ZXNbMF07XG4gICAgY29uc3QgdmFsaWRDb21wcmVzc2VkID0gcHViS2V5Qnl0ZXMubGVuZ3RoID09PSAzMyAmJiAoZmlyc3RCeXRlID09PSAyIHx8IGZpcnN0Qnl0ZSA9PT0gMyk7XG4gICAgY29uc3QgdmFsaWRVbmNvbXByZXNzZWQgPSBwdWJLZXlCeXRlcy5sZW5ndGggPT09IDY1ICYmIGZpcnN0Qnl0ZSA9PT0gNDtcblxuICAgIHJldHVybiB2YWxpZENvbXByZXNzZWQgfHwgdmFsaWRVbmNvbXByZXNzZWQ7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlcyBhIHZhbHVlIGludG8gQ0JPUiBmb3JtYXQgYW5kIHJldHVybnMgaXQgYXMgYSBoZXggc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge3Vua25vd259IHZhbHVlIC0gVGhlIHZhbHVlIHRvIGVuY29kZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgQ0JPUiBlbmNvZGVkIHZhbHVlIGFzIGEgaGV4IHN0cmluZy5cbiAgICovXG4gIGNib3JFbmNvZGUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICAgIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1ZhbHVlIHRvIGVuY29kZSBjYW5ub3QgYmUgdW5kZWZpbmVkLicpO1xuICAgIH1cbiAgICBjb25zdCBjYm9yRGF0YSA9IGVuY29kZSh2YWx1ZSk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGNib3JEYXRhKS50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBsZW5ndGggb2YgdGhlIGdpdmVuIGhleGFkZWNpbWFsIHN0cmluZyBpcyB2YWxpZC5cbiAgICogQSB2YWxpZCBsZW5ndGggaXMgZWl0aGVyIDY2IGNoYXJhY3RlcnMgKDMzIGJ5dGVzKSBvciAxMzAgY2hhcmFjdGVycyAoNjUgYnl0ZXMpLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaGV4U3RyIC0gVGhlIGhleGFkZWNpbWFsIHN0cmluZyB0byBjaGVjay5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGxlbmd0aCBpcyB2YWxpZCwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gICAqL1xuICBpc1ZhbGlkTGVuZ3RoKGhleFN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGhleFN0ci5sZW5ndGggLyAyID09PSAzMyB8fCBoZXhTdHIubGVuZ3RoIC8gMiA9PT0gNjU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBwcm92aWRlZCBzdHJpbmcgaXMgYSB2YWxpZCBoZXhhZGVjaW1hbCBzdHJpbmcuXG4gICAqXG4gICAqIEEgdmFsaWQgaGV4YWRlY2ltYWwgc3RyaW5nIGNvbnNpc3RzIG9mIHBhaXJzIG9mIGhleGFkZWNpbWFsIGRpZ2l0cyAoMC05LCBhLWYsIEEtRikuXG4gICAqXG4gICAqIEBwYXJhbSBoZXhTdHIgLSBUaGUgc3RyaW5nIHRvIGJlIHZhbGlkYXRlZCBhcyBhIGhleGFkZWNpbWFsIHN0cmluZy5cbiAgICogQHJldHVybnMgVHJ1ZSBpZiB0aGUgc3RyaW5nIGlzIGEgdmFsaWQgaGV4YWRlY2ltYWwgc3RyaW5nLCBmYWxzZSBvdGhlcndpc2UuXG4gICAqL1xuICBpc1ZhbGlkSGV4KGhleFN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIC9eKFswLTlhLWZBLUZdezJ9KSskLy50ZXN0KGhleFN0cik7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBoZXhhZGVjaW1hbCBzdHJpbmcgdG8gYSBVaW50OEFycmF5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaGV4IC0gVGhlIGhleGFkZWNpbWFsIHN0cmluZyB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyB7VWludDhBcnJheX0gVGhlIHJlc3VsdGluZyBieXRlIGFycmF5LlxuICAgKi9cbiAgaGV4VG9CeXRlcyhoZXg6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAgIGNvbnN0IGJ5dGVzID0gbmV3IFVpbnQ4QXJyYXkoaGV4Lmxlbmd0aCAvIDIpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGV4Lmxlbmd0aDsgaSArPSAyKSB7XG4gICAgICBieXRlc1tpIC8gMl0gPSBwYXJzZUludChoZXguc3Vic3RyKGksIDIpLCAxNik7XG4gICAgfVxuICAgIHJldHVybiBieXRlcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkUHJpdmF0ZUtleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgd2hldGhlciB0aGUgcHJvdmlkZWQga2V5IGlzIGEgdmFsaWQgSUNQIHByaXZhdGUga2V5LlxuICAgKlxuICAgKiBUaGlzIGZ1bmN0aW9uIGF0dGVtcHRzIHRvIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSBvZiBgSWNwS2V5UGFpcmAgdXNpbmcgdGhlIHByb3ZpZGVkIGtleS5cbiAgICogSWYgdGhlIGtleSBpcyB2YWxpZCwgdGhlIGZ1bmN0aW9uIHJldHVybnMgYHRydWVgLiBJZiB0aGUga2V5IGlzIGludmFsaWQsIGFuIGVycm9yIGlzIHRocm93bixcbiAgICogYW5kIHRoZSBmdW5jdGlvbiByZXR1cm5zIGBmYWxzZWAuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUgcHJpdmF0ZSBrZXkgdG8gdmFsaWRhdGUuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIGB0cnVlYCBpZiB0aGUga2V5IGlzIHZhbGlkLCBgZmFsc2VgIG90aGVyd2lzZS5cbiAgICovXG4gIGlzVmFsaWRLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgbmV3IEljcEtleVBhaXIoeyBwcnY6IGtleSB9KTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2gge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb21wcmVzc2VzIGFuIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdW5jb21wcmVzc2VkS2V5IC0gVGhlIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5IGluIGhleGFkZWNpbWFsIGZvcm1hdC5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBUaGUgY29tcHJlc3NlZCBwdWJsaWMga2V5IGluIGhleGFkZWNpbWFsIGZvcm1hdC5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gSWYgdGhlIGlucHV0IGtleSBpcyBub3QgYSB2YWxpZCB1bmNvbXByZXNzZWQgcHVibGljIGtleS5cbiAgICovXG4gIGNvbXByZXNzUHVibGljS2V5KHVuY29tcHJlc3NlZEtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAodW5jb21wcmVzc2VkS2V5LnN0YXJ0c1dpdGgoJzAyJykgfHwgdW5jb21wcmVzc2VkS2V5LnN0YXJ0c1dpdGgoJzAzJykpIHtcbiAgICAgIHJldHVybiB1bmNvbXByZXNzZWRLZXk7XG4gICAgfVxuICAgIGlmICghdW5jb21wcmVzc2VkS2V5LnN0YXJ0c1dpdGgoJzA0JykgfHwgdW5jb21wcmVzc2VkS2V5Lmxlbmd0aCAhPT0gMTMwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdW5jb21wcmVzc2VkIHB1YmxpYyBrZXkgZm9ybWF0LicpO1xuICAgIH1cblxuICAgIGNvbnN0IHhIZXggPSB1bmNvbXByZXNzZWRLZXkuc2xpY2UoMiwgNjYpO1xuICAgIGNvbnN0IHlIZXggPSB1bmNvbXByZXNzZWRLZXkuc2xpY2UoNjYpO1xuICAgIGNvbnN0IHkgPSBCaWdJbnQoYDB4JHt5SGV4fWApO1xuICAgIGNvbnN0IHByZWZpeCA9IHkgJSAybiA9PT0gMG4gPyAnMDInIDogJzAzJztcblxuICAgIHJldHVybiBgJHtwcmVmaXh9JHt4SGV4fWA7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBwdWJsaWMga2V5IGZyb20gaXRzIGhleGFkZWNpbWFsIHN0cmluZyByZXByZXNlbnRhdGlvbiB0byBERVIgZm9ybWF0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHVibGljS2V5SGV4IC0gVGhlIHB1YmxpYyBrZXkgaW4gaGV4YWRlY2ltYWwgc3RyaW5nIGZvcm1hdC5cbiAgICogQHJldHVybnMgVGhlIHB1YmxpYyBrZXkgaW4gREVSIGZvcm1hdCBhcyBhIFVpbnQ4QXJyYXkuXG4gICAqL1xuICBnZXRQdWJsaWNLZXlJbkRFUkZvcm1hdChwdWJsaWNLZXlIZXg6IHN0cmluZyk6IFVpbnQ4QXJyYXkge1xuICAgIGNvbnN0IHB1YmxpY0tleUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHB1YmxpY0tleUhleCwgJ2hleCcpO1xuICAgIGNvbnN0IGVsbGlwdGljS2V5ID0gc2VjcDI1NmsxLlByb2plY3RpdmVQb2ludC5mcm9tSGV4KHB1YmxpY0tleUJ1ZmZlci50b1N0cmluZygnaGV4JykpO1xuICAgIGNvbnN0IHVuY29tcHJlc3NlZFB1YmxpY0tleUhleCA9IGVsbGlwdGljS2V5LnRvSGV4KGZhbHNlKTtcbiAgICBjb25zdCBkZXJFbmNvZGVkS2V5ID0gYWdlbnQud3JhcERFUihCdWZmZXIuZnJvbSh1bmNvbXByZXNzZWRQdWJsaWNLZXlIZXgsICdoZXgnKSwgYWdlbnQuU0VDUDI1NksxX09JRCk7XG4gICAgcmV0dXJuIGRlckVuY29kZWRLZXk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBwdWJsaWMga2V5IGluIGhleGFkZWNpbWFsIGZvcm1hdCB0byBhIERmaW5pdHkgUHJpbmNpcGFsIElELlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gcHVibGljS2V5SGV4IC0gVGhlIHB1YmxpYyBrZXkgaW4gaGV4YWRlY2ltYWwgZm9ybWF0LlxuICAgKiBAcmV0dXJucyBUaGUgY29ycmVzcG9uZGluZyBEZmluaXR5IFByaW5jaXBhbCBJRC5cbiAgICovXG4gIGdldFByaW5jaXBhbElkRnJvbVB1YmxpY0tleShwdWJsaWNLZXlIZXg6IHN0cmluZyk6IERmaW5pdHlQcmluY2lwYWwge1xuICAgIGNvbnN0IGRlckVuY29kZWRLZXkgPSB0aGlzLmdldFB1YmxpY0tleUluREVSRm9ybWF0KHB1YmxpY0tleUhleCk7XG4gICAgY29uc3QgcHJpbmNpcGFsSWQgPSBEZmluaXR5UHJpbmNpcGFsLnNlbGZBdXRoZW50aWNhdGluZyhCdWZmZXIuZnJvbShkZXJFbmNvZGVkS2V5KSk7XG4gICAgcmV0dXJuIHByaW5jaXBhbElkO1xuICB9XG5cbiAgLyoqXG4gICAqIERlcml2ZXMgYSBEZmluaXR5UHJpbmNpcGFsIGZyb20gYSBnaXZlbiBwdWJsaWMga2V5IGluIGhleGFkZWNpbWFsIGZvcm1hdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHB1YmxpY0tleUhleCAtIFRoZSBwdWJsaWMga2V5IGluIGhleGFkZWNpbWFsIGZvcm1hdC5cbiAgICogQHJldHVybnMgVGhlIGRlcml2ZWQgRGZpbml0eVByaW5jaXBhbC5cbiAgICogQHRocm93cyBXaWxsIHRocm93IGFuIGVycm9yIGlmIHRoZSBwcmluY2lwYWwgY2Fubm90IGJlIGRlcml2ZWQgZnJvbSB0aGUgcHVibGljIGtleS5cbiAgICovXG4gIGRlcml2ZVByaW5jaXBhbEZyb21QdWJsaWNLZXkocHVibGljS2V5SGV4OiBzdHJpbmcpOiBEZmluaXR5UHJpbmNpcGFsIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVyRW5jb2RlZEtleSA9IHRoaXMuZ2V0UHVibGljS2V5SW5ERVJGb3JtYXQocHVibGljS2V5SGV4KTtcbiAgICAgIGNvbnN0IHByaW5jaXBhbElkID0gRGZpbml0eVByaW5jaXBhbC5zZWxmQXV0aGVudGljYXRpbmcoQnVmZmVyLmZyb20oZGVyRW5jb2RlZEtleSkpO1xuICAgICAgY29uc3QgcHJpbmNpcGFsID0gRGZpbml0eVByaW5jaXBhbC5mcm9tVWludDhBcnJheShwcmluY2lwYWxJZC50b1VpbnQ4QXJyYXkoKSk7XG4gICAgICByZXR1cm4gcHJpbmNpcGFsO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBkZXJpdmUgcHJpbmNpcGFsIGZyb20gcHVibGljIGtleTogJHtlcnJvci5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIERmaW5pdHlQcmluY2lwYWwgYW5kIGFuIG9wdGlvbmFsIHN1YkFjY291bnQgdG8gYSBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgYW4gYWNjb3VudCBJRC5cbiAgICpcbiAgICogQHBhcmFtIHtEZmluaXR5UHJpbmNpcGFsfSBwcmluY2lwYWwgLSBUaGUgcHJpbmNpcGFsIHRvIGNvbnZlcnQuXG4gICAqIEBwYXJhbSB7VWludDhBcnJheX0gW3N1YkFjY291bnQ9bmV3IFVpbnQ4QXJyYXkoMzIpXSAtIEFuIG9wdGlvbmFsIHN1Yi1hY2NvdW50LCBkZWZhdWx0cyB0byBhIDMyLWJ5dGUgYXJyYXkgb2YgemVyb3MuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBoZXhhZGVjaW1hbCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFjY291bnQgSUQuXG4gICAqL1xuICBmcm9tUHJpbmNpcGFsKHByaW5jaXBhbDogRGZpbml0eVByaW5jaXBhbCwgc3ViQWNjb3VudDogVWludDhBcnJheSA9IG5ldyBVaW50OEFycmF5KDMyKSk6IHN0cmluZyB7XG4gICAgY29uc3QgcHJpbmNpcGFsQnl0ZXMgPSBCdWZmZXIuZnJvbShwcmluY2lwYWwudG9VaW50OEFycmF5KCkuYnVmZmVyKTtcbiAgICByZXR1cm4gdGhpcy5nZXRBY2NvdW50SWRGcm9tUHJpbmNpcGFsQnl0ZXModGhpcy5nZXRBY2NvdW50SWRQcmVmaXgoKSwgcHJpbmNpcGFsQnl0ZXMsIHN1YkFjY291bnQpO1xuICB9XG5cbiAgZ2V0QWNjb3VudElkRnJvbVByaW5jaXBhbEJ5dGVzKFxuICAgIEFDQ09VTlRfSURfUFJFRklYOiBCdWZmZXI8QXJyYXlCdWZmZXI+LFxuICAgIHByaW5jaXBhbEJ5dGVzOiBCdWZmZXI8QXJyYXlCdWZmZXJMaWtlPixcbiAgICBzdWJBY2NvdW50OiBVaW50OEFycmF5PEFycmF5QnVmZmVyTGlrZT5cbiAgKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb21iaW5lZEJ5dGVzID0gQnVmZmVyLmNvbmNhdChbQUNDT1VOVF9JRF9QUkVGSVgsIHByaW5jaXBhbEJ5dGVzLCBzdWJBY2NvdW50XSk7XG4gICAgY29uc3Qgc2hhMjI0SGFzaCA9IGNyeXB0by5jcmVhdGVIYXNoKCdzaGEyMjQnKS51cGRhdGUoY29tYmluZWRCeXRlcykuZGlnZXN0KCk7XG4gICAgY29uc3QgY2hlY2tzdW0gPSBCdWZmZXIuYWxsb2MoNCk7XG4gICAgY2hlY2tzdW0ud3JpdGVVSW50MzJCRShjcmMzMi5idWYoc2hhMjI0SGFzaCkgPj4+IDAsIDApO1xuICAgIGNvbnN0IGFjY291bnRJZEJ5dGVzID0gQnVmZmVyLmNvbmNhdChbY2hlY2tzdW0sIHNoYTIyNEhhc2hdKTtcbiAgICByZXR1cm4gYWNjb3VudElkQnl0ZXMudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyB0aGUgYWRkcmVzcyBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBoZXgtZW5jb2RlZCBwdWJsaWMga2V5LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaGV4RW5jb2RlZFB1YmxpY0tleSAtIFRoZSBwdWJsaWMga2V5IGluIGhleC1lbmNvZGVkIGZvcm1hdC5cbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nPn0gQSBwcm9taXNlIHRoYXQgcmVzb2x2ZXMgdG8gdGhlIGFkZHJlc3MgZGVyaXZlZCBmcm9tIHRoZSBwcm92aWRlZCBwdWJsaWMga2V5LlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gVGhyb3dzIGFuIGVycm9yIGlmIHRoZSBwcm92aWRlZCBwdWJsaWMga2V5IGlzIG5vdCBpbiBhIHZhbGlkIGhleC1lbmNvZGVkIGZvcm1hdC5cbiAgICovXG4gIGFzeW5jIGdldEFkZHJlc3NGcm9tUHVibGljS2V5KGhleEVuY29kZWRQdWJsaWNLZXk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRQdWJsaWNLZXkoaGV4RW5jb2RlZFB1YmxpY0tleSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBoZXgtZW5jb2RlZCBwdWJsaWMga2V5IGZvcm1hdC4nKTtcbiAgICB9XG4gICAgY29uc3QgY29tcHJlc3NlZEtleSA9IHRoaXMuY29tcHJlc3NQdWJsaWNLZXkoaGV4RW5jb2RlZFB1YmxpY0tleSk7XG4gICAgY29uc3Qga2V5UGFpciA9IG5ldyBJY3BLZXlQYWlyKHsgcHViOiBjb21wcmVzc2VkS2V5IH0pO1xuICAgIHJldHVybiBrZXlQYWlyLmdldEFkZHJlc3MoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBuZXcga2V5IHBhaXIuIElmIGEgc2VlZCBpcyBwcm92aWRlZCwgaXQgd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIHRoZSBrZXkgcGFpci5cbiAgICpcbiAgICogQHBhcmFtIHtCdWZmZXJ9IFtzZWVkXSAtIE9wdGlvbmFsIHNlZWQgZm9yIGtleSBnZW5lcmF0aW9uLlxuICAgKiBAcmV0dXJucyB7S2V5UGFpcn0gLSBUaGUgZ2VuZXJhdGVkIGtleSBwYWlyIGNvbnRhaW5pbmcgYm90aCBwdWJsaWMgYW5kIHByaXZhdGUga2V5cy5cbiAgICogQHRocm93cyB7RXJyb3J9IC0gSWYgdGhlIHByaXZhdGUga2V5IGlzIG1pc3NpbmcgaW4gdGhlIGdlbmVyYXRlZCBrZXkgcGFpci5cbiAgICovXG4gIHB1YmxpYyBnZW5lcmF0ZUtleVBhaXIoc2VlZD86IEJ1ZmZlcik6IEtleVBhaXIge1xuICAgIGNvbnN0IGtleVBhaXIgPSBzZWVkID8gbmV3IEljcEtleVBhaXIoeyBzZWVkIH0pIDogbmV3IEljcEtleVBhaXIoKTtcbiAgICBjb25zdCB7IHB1YiwgcHJ2IH0gPSBrZXlQYWlyLmdldEtleXMoKTtcbiAgICBpZiAoIXBydikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcml2YXRlIGtleSBpcyBtaXNzaW5nIGluIHRoZSBnZW5lcmF0ZWQga2V5IHBhaXIuJyk7XG4gICAgfVxuICAgIHJldHVybiB7IHB1YiwgcHJ2IH07XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSBwcm92aWRlZCBmZWUuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBmZWUgLSBUaGUgZmVlIHRvIHZhbGlkYXRlLlxuICAgKiBAdGhyb3dzIHtCdWlsZFRyYW5zYWN0aW9uRXJyb3J9IC0gSWYgdGhlIGZlZSBpcyB6ZXJvIG9yIGludmFsaWQuXG4gICAqL1xuICB2YWxpZGF0ZUZlZShmZWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGZlZVZhbHVlID0gbmV3IEJpZ051bWJlcihmZWUpO1xuICAgIGlmIChmZWVWYWx1ZS5pc1plcm8oKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignRmVlIGNhbm5vdCBiZSB6ZXJvJyk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHZhbGlkYXRlVmFsdWUodmFsdWU6IEJpZ051bWJlcik6IGJvb2xlYW4ge1xuICAgIGlmICh2YWx1ZS5pc0xlc3NUaGFuT3JFcXVhbFRvKDApKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdhbW91bnQgY2Fubm90IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB6ZXJvJyk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgcHJvdmlkZWQgbWVtby5cbiAgICpcbiAgICogQHBhcmFtIHtudW1iZXIgfCBCaWdJbnR9IG1lbW8gLSBUaGUgbWVtbyB0byB2YWxpZGF0ZS5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IC0gUmV0dXJucyBgdHJ1ZWAgaWYgdGhlIG1lbW8gaXMgdmFsaWQuXG4gICAqIEB0aHJvd3Mge0J1aWxkVHJhbnNhY3Rpb25FcnJvcn0gLSBJZiB0aGUgbWVtbyBpcyBpbnZhbGlkLlxuICAgKi9cbiAgdmFsaWRhdGVNZW1vKG1lbW86IG51bWJlciB8IEJpZ0ludCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG1lbW9OdW1iZXIgPSBOdW1iZXIobWVtbyk7XG4gICAgaWYgKG1lbW9OdW1iZXIgPCAwIHx8IE51bWJlci5pc05hTihtZW1vTnVtYmVyKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignSW52YWxpZCBtZW1vJyk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdmFsaWRhdGVFeHBpcmVUaW1lKGV4cGlyZVRpbWU6IG51bWJlciB8IEJpZ0ludCk6IGJvb2xlYW4ge1xuICAgIGlmIChOdW1iZXIoZXhwaXJlVGltZSkgPCBEYXRlLm5vdygpICogMTAwMF8wMDApIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgZXhwaXJ5IHRpbWUnKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHRoZSByYXcgdHJhbnNhY3Rpb24gZGF0YSB0byBlbnN1cmUgaXQgaGFzIGEgdmFsaWQgZm9ybWF0IGluIHRoZSBibG9ja2NoYWluIGNvbnRleHQuXG4gICAqXG4gICAqIEBwYXJhbSB7SWNwVHJhbnNhY3Rpb25EYXRhfSB0cmFuc2FjdGlvbkRhdGEgLSBUaGUgdHJhbnNhY3Rpb24gZGF0YSB0byB2YWxpZGF0ZS5cbiAgICogQHRocm93cyB7UGFyc2VUcmFuc2FjdGlvbkVycm9yfSBJZiB0aGUgdHJhbnNhY3Rpb24gZGF0YSBpcyBpbnZhbGlkLlxuICAgKi9cbiAgdmFsaWRhdGVSYXdUcmFuc2FjdGlvbih0cmFuc2FjdGlvbkRhdGE6IEljcFRyYW5zYWN0aW9uRGF0YSk6IHZvaWQge1xuICAgIGlmICghdHJhbnNhY3Rpb25EYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiBkYXRhIGlzIG1pc3NpbmcuJyk7XG4gICAgfVxuICAgIGNvbnN0IHsgc2VuZGVyUHVibGljS2V5SGV4LCBzZW5kZXJBZGRyZXNzLCByZWNlaXZlckFkZHJlc3MgfSA9IHRyYW5zYWN0aW9uRGF0YTtcbiAgICBpZiAoIXRoaXMuaXNWYWxpZFB1YmxpY0tleShzZW5kZXJQdWJsaWNLZXlIZXgpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdTZW5kZXIgcHVibGljIGtleSBpcyBpbnZhbGlkLicpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNWYWxpZEFkZHJlc3Moc2VuZGVyQWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZVRyYW5zYWN0aW9uRXJyb3IoJ1NlbmRlciBhZGRyZXNzIGlzIGludmFsaWQuJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5pc1ZhbGlkQWRkcmVzcyhyZWNlaXZlckFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdSZWNlaXZlciBhZGRyZXNzIGlzIGludmFsaWQuJyk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVGZWUodHJhbnNhY3Rpb25EYXRhLmZlZSk7XG4gICAgdGhpcy52YWxpZGF0ZVZhbHVlKG5ldyBCaWdOdW1iZXIodHJhbnNhY3Rpb25EYXRhLmFtb3VudCkpO1xuICAgIHRoaXMudmFsaWRhdGVNZW1vKHRyYW5zYWN0aW9uRGF0YS5tZW1vKTtcbiAgICB0aGlzLnZhbGlkYXRlRXhwaXJlVGltZSh0cmFuc2FjdGlvbkRhdGEuZXhwaXJ5VGltZSk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHtvYmplY3R9IHVwZGF0ZVxuICAgKiBAcmV0dXJucyB7QnVmZmVyfVxuICAgKi9cbiAgZ2VuZXJhdGVIdHRwQ2FuaXN0ZXJVcGRhdGVJZCh1cGRhdGU6IEh0dHBDYW5pc3RlclVwZGF0ZSk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHRoaXMuSHR0cENhbmlzdGVyVXBkYXRlUmVwcmVzZW50YXRpb25JbmRlcGVuZGVudEhhc2godXBkYXRlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSByZXByZXNlbnRhdGlvbi1pbmRlcGVuZGVudCBoYXNoIGZvciBhbiBIVFRQIGNhbmlzdGVyIHVwZGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtIdHRwQ2FuaXN0ZXJVcGRhdGV9IHVwZGF0ZSAtIFRoZSBIVFRQIGNhbmlzdGVyIHVwZGF0ZSBvYmplY3QuXG4gICAqIEByZXR1cm5zIHtCdWZmZXJ9IC0gVGhlIGhhc2ggb2YgdGhlIHVwZGF0ZSBvYmplY3QuXG4gICAqL1xuICBIdHRwQ2FuaXN0ZXJVcGRhdGVSZXByZXNlbnRhdGlvbkluZGVwZW5kZW50SGFzaCh1cGRhdGU6IEh0dHBDYW5pc3RlclVwZGF0ZSk6IEJ1ZmZlciB7XG4gICAgY29uc3QgdXBkYXRlTWFwID0ge1xuICAgICAgcmVxdWVzdF90eXBlOiBSZXF1ZXN0VHlwZS5DQUxMLFxuICAgICAgY2FuaXN0ZXJfaWQ6IHVwZGF0ZS5jYW5pc3Rlcl9pZCxcbiAgICAgIG1ldGhvZF9uYW1lOiB1cGRhdGUubWV0aG9kX25hbWUsXG4gICAgICBhcmc6IHVwZGF0ZS5hcmcsXG4gICAgICBpbmdyZXNzX2V4cGlyeTogdXBkYXRlLmluZ3Jlc3NfZXhwaXJ5LFxuICAgICAgc2VuZGVyOiB1cGRhdGUuc2VuZGVyLFxuICAgIH07XG4gICAgcmV0dXJuIHRoaXMuaGFzaE9mTWFwKHVwZGF0ZU1hcCk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgU0hBLTI1NiBoYXNoIGZvciBhIGdpdmVuIG1hcCBvYmplY3QuXG4gICAqXG4gICAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgdW5rbm93bj59IG1hcCAtIFRoZSBtYXAgb2JqZWN0IHRvIGhhc2guXG4gICAqIEByZXR1cm5zIHtCdWZmZXJ9IC0gVGhlIHJlc3VsdGluZyBoYXNoIGFzIGEgQnVmZmVyLlxuICAgKi9cbiAgaGFzaE9mTWFwKG1hcDogUmVjb3JkPHN0cmluZywgYW55Pik6IEJ1ZmZlciB7XG4gICAgY29uc3QgaGFzaGVzOiBCdWZmZXJbXSA9IFtdO1xuICAgIGZvciAoY29uc3Qga2V5IGluIG1hcCkge1xuICAgICAgaGFzaGVzLnB1c2godGhpcy5oYXNoS2V5VmFsKGtleSwgbWFwW2tleV0pKTtcbiAgICB9XG4gICAgaGFzaGVzLnNvcnQoKGJ1ZjAsIGJ1ZjEpID0+IGJ1ZjAuY29tcGFyZShidWYxKSk7XG4gICAgcmV0dXJuIHRoaXMuc2hhMjU2KGhhc2hlcyk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgaGFzaCBmb3IgYSBrZXktdmFsdWUgcGFpci5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSAtIFRoZSBrZXkgdG8gaGFzaC5cbiAgICogQHBhcmFtIHtzdHJpbmcgfCBCdWZmZXIgfCBCaWdJbnR9IHZhbCAtIFRoZSB2YWx1ZSB0byBoYXNoLlxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSAtIFRoZSByZXN1bHRpbmcgaGFzaCBhcyBhIEJ1ZmZlci5cbiAgICovXG4gIGhhc2hLZXlWYWwoa2V5OiBzdHJpbmcsIHZhbDogYW55KTogQnVmZmVyIHtcbiAgICBjb25zdCBrZXlIYXNoID0gdGhpcy5oYXNoU3RyaW5nKGtleSk7XG4gICAgY29uc3QgdmFsSGFzaCA9IHRoaXMuaGFzaFZhbCh2YWwpO1xuICAgIHJldHVybiBCdWZmZXIuY29uY2F0KFtrZXlIYXNoLCB2YWxIYXNoXSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgU0hBLTI1NiBoYXNoIGZvciBhIGdpdmVuIHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlIC0gVGhlIHN0cmluZyB0byBoYXNoLlxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSAtIFRoZSByZXN1bHRpbmcgaGFzaCBhcyBhIEJ1ZmZlci5cbiAgICovXG4gIGhhc2hTdHJpbmcodmFsdWU6IHN0cmluZyk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHRoaXMuc2hhMjU2KFtCdWZmZXIuZnJvbSh2YWx1ZSldKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGZvciBhIDY0LWJpdCB1bnNpZ25lZCBpbnRlZ2VyLlxuICAgKlxuICAgKiBAcGFyYW0ge2JpZ2ludH0gbiAtIFRoZSA2NC1iaXQgdW5zaWduZWQgaW50ZWdlciB0byBoYXNoLlxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSAtIFRoZSByZXN1bHRpbmcgaGFzaCBhcyBhIEJ1ZmZlci5cbiAgICovXG4gIGhhc2hVNjQobjogYmlnaW50KTogQnVmZmVyIHtcbiAgICBjb25zdCBidWYgPSBCdWZmZXIuYWxsb2NVbnNhZmUoMTApO1xuICAgIGxldCBpID0gMDtcbiAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgY29uc3QgYnl0ZSA9IE51bWJlcihuICYgQmlnSW50KDB4N2YpKTtcbiAgICAgIG4gPj49IEJpZ0ludCg3KTtcbiAgICAgIGlmIChuID09PSBCaWdJbnQoMCkpIHtcbiAgICAgICAgYnVmW2ldID0gYnl0ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBidWZbaV0gPSBieXRlIHwgMHg4MDtcbiAgICAgICAgKytpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5oYXNoQnl0ZXMoYnVmLnN1YmFycmF5KDAsIGkgKyAxKSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgU0hBLTI1NiBoYXNoIGZvciBhbiBhcnJheSBvZiBlbGVtZW50cy5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxhbnk+fSBlbGVtZW50cyAtIFRoZSBhcnJheSBvZiBlbGVtZW50cyB0byBoYXNoLlxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSAtIFRoZSByZXN1bHRpbmcgaGFzaCBhcyBhIEJ1ZmZlci5cbiAgICovXG4gIGhhc2hBcnJheShlbGVtZW50czogQXJyYXk8YW55Pik6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHRoaXMuc2hhMjU2KGVsZW1lbnRzLm1hcCh0aGlzLmhhc2hWYWwpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBoYXNoIGZvciBhIGdpdmVuIHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IEJ1ZmZlciB8IEJpZ0ludCB8IG51bWJlciB8IEFycmF5PHVua25vd24+fSB2YWwgLSBUaGUgdmFsdWUgdG8gaGFzaC5cbiAgICogQHJldHVybnMge0J1ZmZlcn0gLSBUaGUgcmVzdWx0aW5nIGhhc2ggYXMgYSBCdWZmZXIuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIElmIHRoZSB2YWx1ZSB0eXBlIGlzIHVuc3VwcG9ydGVkLlxuICAgKi9cbiAgaGFzaFZhbCh2YWw6IHN0cmluZyB8IEJ1ZmZlciB8IEJpZ0ludCB8IG51bWJlciB8IEFycmF5PHVua25vd24+KTogQnVmZmVyIHtcbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB1dGlscy5oYXNoU3RyaW5nKHZhbCk7XG4gICAgfSBlbHNlIGlmIChCdWZmZXIuaXNCdWZmZXIodmFsKSkge1xuICAgICAgcmV0dXJuIHV0aWxzLmhhc2hCeXRlcyh2YWwpO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB1dGlscy5oYXNoVTY0KEJpZ0ludCh2YWwpKTtcbiAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkodmFsKSkge1xuICAgICAgcmV0dXJuIHV0aWxzLmhhc2hBcnJheSh2YWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHZhbHVlIHR5cGUgZm9yIGhhc2hpbmc6ICR7dHlwZW9mIHZhbH1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIFNIQS0yNTYgaGFzaCBvZiB0aGUgZ2l2ZW4gYnVmZmVyLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgYnVmZmVyIHRvIGhhc2guXG4gICAqIEByZXR1cm5zIFRoZSBTSEEtMjU2IGhhc2ggb2YgdGhlIGlucHV0IGJ1ZmZlci5cbiAgICovXG4gIGhhc2hCeXRlcyh2YWx1ZTogQnVmZmVyKTogQnVmZmVyIHtcbiAgICByZXR1cm4gdGhpcy5zaGEyNTYoW3ZhbHVlXSk7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgdGhlIFNIQS0yNTYgaGFzaCBvZiB0aGUgcHJvdmlkZWQgYXJyYXkgb2YgQnVmZmVyIGNodW5rcy5cbiAgICpcbiAgICogQHBhcmFtIHtBcnJheTxCdWZmZXI+fSBjaHVua3MgLSBBbiBhcnJheSBvZiBCdWZmZXIgb2JqZWN0cyB0byBiZSBoYXNoZWQuXG4gICAqIEByZXR1cm5zIHtCdWZmZXJ9IC0gVGhlIHJlc3VsdGluZyBTSEEtMjU2IGhhc2ggYXMgYSBCdWZmZXIuXG4gICAqL1xuICBzaGEyNTYoY2h1bmtzOiBBcnJheTxCdWZmZXI+KTogQnVmZmVyIHtcbiAgICBjb25zdCBoYXNoZXIgPSBqc19zaGEyNTYuc2hhMjU2LmNyZWF0ZSgpO1xuICAgIGNodW5rcy5mb3JFYWNoKChjaHVuaykgPT4gaGFzaGVyLnVwZGF0ZShjaHVuaykpO1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShoYXNoZXIuYXJyYXlCdWZmZXIoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBoZXhhZGVjaW1hbCBzdHJpbmcgdG8gYSBCdWZmZXIuXG4gICAqXG4gICAqIEBwYXJhbSBoZXggLSBUaGUgaGV4YWRlY2ltYWwgc3RyaW5nIHRvIGNvbnZlcnQuXG4gICAqIEByZXR1cm5zIEEgQnVmZmVyIGNvbnRhaW5pbmcgdGhlIGJpbmFyeSBkYXRhIHJlcHJlc2VudGVkIGJ5IHRoZSBoZXhhZGVjaW1hbCBzdHJpbmcuXG4gICAqL1xuICBibG9iRnJvbUhleChoZXg6IHN0cmluZyk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGhleCwgJ2hleCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgYmluYXJ5IGJsb2IgKEJ1ZmZlcikgdG8gYSBoZXhhZGVjaW1hbCBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7QnVmZmVyfSBibG9iIC0gVGhlIGJpbmFyeSBkYXRhIHRvIGJlIGNvbnZlcnRlZC5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIGhleGFkZWNpbWFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBiaW5hcnkgZGF0YS5cbiAgICovXG4gIGJsb2JUb0hleChibG9iOiBCdWZmZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBibG9iLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWNvZGVzIGEgZ2l2ZW4gQ0JPUi1lbmNvZGVkIGJ1ZmZlci5cbiAgICpcbiAgICogQHBhcmFtIGJ1ZmZlciAtIFRoZSBDQk9SLWVuY29kZWQgYnVmZmVyIHRvIGRlY29kZS5cbiAgICogQHJldHVybnMgVGhlIGRlY29kZWQgZGF0YS5cbiAgICovXG4gIGNib3JEZWNvZGUoYnVmZmVyOiBCdWZmZXIpOiB1bmtub3duIHtcbiAgICBjb25zdCByZXMgPSBkZWNvZGUoYnVmZmVyKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIEJ1ZmZlciBjb250YWluaW5nIHRoZSBkb21haW4gSUMgcmVxdWVzdCBzdHJpbmcuXG4gICAqXG4gICAqIEByZXR1cm5zIHtCdWZmZXJ9IEEgQnVmZmVyIG9iamVjdCBpbml0aWFsaXplZCB3aXRoIHRoZSBzdHJpbmcgJ1xceDBBaWMtcmVxdWVzdCcuXG4gICAqL1xuICBnZXREb21haW5JQ1JlcXVlc3QoKTogQnVmZmVyIHtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oJ1xceDBBaWMtcmVxdWVzdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbWJpbmVzIHRoZSBkb21haW4gSUMgcmVxdWVzdCBidWZmZXIgd2l0aCB0aGUgcHJvdmlkZWQgbWVzc2FnZSBJRCBidWZmZXIgdG8gY3JlYXRlIHNpZ25hdHVyZSBkYXRhLlxuICAgKlxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gbWVzc2FnZUlkIC0gVGhlIGJ1ZmZlciBjb250YWluaW5nIHRoZSBtZXNzYWdlIElELlxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSAtIFRoZSBjb25jYXRlbmF0ZWQgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGRvbWFpbiBJQyByZXF1ZXN0IGFuZCB0aGUgbWVzc2FnZSBJRC5cbiAgICovXG4gIG1ha2VTaWduYXR1cmVEYXRhKG1lc3NhZ2VJZDogQnVmZmVyKTogQnVmZmVyIHtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChbdGhpcy5nZXREb21haW5JQ1JlcXVlc3QoKSwgbWVzc2FnZUlkXSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgcmVhZCBzdGF0ZSBvYmplY3QgZnJvbSBhbiBIVFRQIGNhbmlzdGVyIHVwZGF0ZS5cbiAgICpcbiAgICogQHBhcmFtIHtIdHRwQ2FuaXN0ZXJVcGRhdGV9IHVwZGF0ZSAtIFRoZSBIVFRQIGNhbmlzdGVyIHVwZGF0ZSBvYmplY3QuXG4gICAqIEByZXR1cm5zIHtSZWFkU3RhdGV9IFRoZSByZWFkIHN0YXRlIG9iamVjdCBjb250YWluaW5nIHRoZSBzZW5kZXIsIHBhdGhzLCBhbmQgaW5ncmVzcyBleHBpcnkuXG4gICAqL1xuICBtYWtlUmVhZFN0YXRlRnJvbVVwZGF0ZSh1cGRhdGU6IEh0dHBDYW5pc3RlclVwZGF0ZSk6IFJlYWRTdGF0ZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHNlbmRlcjogdXBkYXRlLnNlbmRlcixcbiAgICAgIHBhdGhzOiBbW0J1ZmZlci5mcm9tKFJFUVVFU1RfU1RBVFVTKSwgdGhpcy5nZW5lcmF0ZUh0dHBDYW5pc3RlclVwZGF0ZUlkKHVwZGF0ZSldXSxcbiAgICAgIGluZ3Jlc3NfZXhwaXJ5OiB1cGRhdGUuaW5ncmVzc19leHBpcnksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSByZXByZXNlbnRhdGlvbi1pbmRlcGVuZGVudCBoYXNoIGZvciBhbiBIVFRQIHJlYWQgc3RhdGUgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlYWRTdGF0ZX0gcmVhZFN0YXRlIC0gVGhlIEhUVFAgcmVhZCBzdGF0ZSBvYmplY3QuXG4gICAqIEByZXR1cm5zIHtCdWZmZXJ9IC0gVGhlIGhhc2ggb2YgdGhlIHJlYWQgc3RhdGUgb2JqZWN0LlxuICAgKi9cbiAgSHR0cFJlYWRTdGF0ZVJlcHJlc2VudGF0aW9uSW5kZXBlbmRlbnRIYXNoKHJlYWRTdGF0ZTogUmVhZFN0YXRlKTogQnVmZmVyIHtcbiAgICByZXR1cm4gdGhpcy5oYXNoT2ZNYXAoe1xuICAgICAgcmVxdWVzdF90eXBlOiBSZXF1ZXN0VHlwZS5SRUFEX1NUQVRFLFxuICAgICAgaW5ncmVzc19leHBpcnk6IHJlYWRTdGF0ZS5pbmdyZXNzX2V4cGlyeSxcbiAgICAgIHBhdGhzOiByZWFkU3RhdGUucGF0aHMsXG4gICAgICBzZW5kZXI6IHJlYWRTdGF0ZS5zZW5kZXIsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRXh0cmFjdHMgdGhlIHJlY2lwaWVudCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwcm92aWRlZCBJQ1AgdHJhbnNhY3Rpb24gZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIHtJY3BUcmFuc2FjdGlvbkRhdGF9IGljcFRyYW5zYWN0aW9uRGF0YSAtIFRoZSBJQ1AgdHJhbnNhY3Rpb24gZGF0YSBjb250YWluaW5nIHRoZSByZWNlaXZlcidzIGFkZHJlc3MgYW5kIGFtb3VudC5cbiAgICogQHJldHVybnMge1JlY2lwaWVudFtdfSBBbiBhcnJheSBjb250YWluaW5nIGEgc2luZ2xlIHJlY2lwaWVudCBvYmplY3Qgd2l0aCB0aGUgcmVjZWl2ZXIncyBhZGRyZXNzIGFuZCBhbW91bnQuXG4gICAqL1xuICBnZXRSZWNpcGllbnRzKGljcFRyYW5zYWN0aW9uRGF0YTogSWNwVHJhbnNhY3Rpb25EYXRhKTogUmVjaXBpZW50IHtcbiAgICByZXR1cm4ge1xuICAgICAgYWRkcmVzczogaWNwVHJhbnNhY3Rpb25EYXRhLnJlY2VpdmVyQWRkcmVzcyxcbiAgICAgIGFtb3VudDogaWNwVHJhbnNhY3Rpb25EYXRhLmFtb3VudCxcbiAgICB9O1xuICB9XG5cbiAgZ2V0VHJhbnNhY3Rpb25TaWduYXR1cmUoc2lnbmF0dXJlTWFwOiBNYXA8c3RyaW5nLCBTaWduYXR1cmVzPiwgdXBkYXRlOiBIdHRwQ2FuaXN0ZXJVcGRhdGUpOiBTaWduYXR1cmVzIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gc2lnbmF0dXJlTWFwLmdldCh0aGlzLmJsb2JUb0hleCh0aGlzLm1ha2VTaWduYXR1cmVEYXRhKHRoaXMuZ2VuZXJhdGVIdHRwQ2FuaXN0ZXJVcGRhdGVJZCh1cGRhdGUpKSkpO1xuICB9XG5cbiAgZ2V0UmVhZFN0YXRlU2lnbmF0dXJlKHNpZ25hdHVyZU1hcDogTWFwPHN0cmluZywgU2lnbmF0dXJlcz4sIHJlYWRTdGF0ZTogUmVhZFN0YXRlKTogU2lnbmF0dXJlcyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHNpZ25hdHVyZU1hcC5nZXQoXG4gICAgICB0aGlzLmJsb2JUb0hleCh0aGlzLm1ha2VTaWduYXR1cmVEYXRhKHRoaXMuSHR0cFJlYWRTdGF0ZVJlcHJlc2VudGF0aW9uSW5kZXBlbmRlbnRIYXNoKHJlYWRTdGF0ZSkpKVxuICAgICk7XG4gIH1cblxuICBnZXRNZXRhRGF0YShtZW1vOiBudW1iZXIgfCBCaWdJbnQpOiB7IG1ldGFEYXRhOiBJY3BNZXRhZGF0YTsgaW5ncmVzc0VuZFRpbWU6IG51bWJlciB8IEJpZ0ludCB9IHtcbiAgICBjb25zdCBjdXJyZW50VGltZSA9IERhdGUubm93KCkgKiAxMDAwMDAwO1xuICAgIGNvbnN0IGluZ3Jlc3NTdGFydFRpbWUgPSBjdXJyZW50VGltZTtcbiAgICBjb25zdCBpbmdyZXNzRW5kVGltZSA9IGluZ3Jlc3NTdGFydFRpbWUgKyA1ICogNjAgKiAxMDAwMDAwMDAwOyAvLyA1IG1pbnMgaW4gbmFub3NlY29uZHNcbiAgICBjb25zdCBtZXRhRGF0YTogSWNwTWV0YWRhdGEgPSB7XG4gICAgICBjcmVhdGVkX2F0X3RpbWU6IGN1cnJlbnRUaW1lLFxuICAgICAgbWVtbzogbWVtbyxcbiAgICAgIGluZ3Jlc3Nfc3RhcnQ6IGluZ3Jlc3NTdGFydFRpbWUsXG4gICAgICBpbmdyZXNzX2VuZDogaW5ncmVzc0VuZFRpbWUsXG4gICAgfTtcbiAgICByZXR1cm4geyBtZXRhRGF0YSwgaW5ncmVzc0VuZFRpbWUgfTtcbiAgfVxuXG4gIGNvbnZlcnRTZW5kZXJCbG9iVG9QcmluY2lwYWwoc2VuZGVyQmxvYjogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICAgIGNvbnN0IE1BWF9MRU5HVEhfSU5fQllURVMgPSAyOTtcbiAgICBpZiAoc2VuZGVyQmxvYi5sZW5ndGggPiBNQVhfTEVOR1RIX0lOX0JZVEVTKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0J5dGVzIHRvbyBsb25nIGZvciBhIHZhbGlkIFByaW5jaXBhbCcpO1xuICAgIH1cbiAgICBjb25zdCBwcmluY2lwYWxCeXRlcyA9IG5ldyBVaW50OEFycmF5KE1BWF9MRU5HVEhfSU5fQllURVMpO1xuICAgIHByaW5jaXBhbEJ5dGVzLnNldChzZW5kZXJCbG9iLnNsaWNlKDAsIHNlbmRlckJsb2IubGVuZ3RoKSk7XG4gICAgcmV0dXJuIHByaW5jaXBhbEJ5dGVzO1xuICB9XG5cbiAgYXN5bmMgZnJvbUFyZ3MoYXJnOiBVaW50OEFycmF5KTogUHJvbWlzZTxTZW5kQXJncz4ge1xuICAgIGNvbnN0IHJvb3QgPSBwcm90b2J1Zi5wYXJzZShwcm90b0RlZmluaXRpb24pLnJvb3Q7XG4gICAgY29uc3QgU2VuZFJlcXVlc3RNZXNzYWdlID0gcm9vdC5sb29rdXBUeXBlKCdTZW5kUmVxdWVzdCcpO1xuICAgIGNvbnN0IGFyZ3MgPSBTZW5kUmVxdWVzdE1lc3NhZ2UuZGVjb2RlKGFyZykgYXMgdW5rbm93biBhcyBTZW5kQXJncztcbiAgICBjb25zdCB0cmFuc2Zvcm1lZEFyZ3M6IFNlbmRBcmdzID0ge1xuICAgICAgbWVtbzogeyBtZW1vOiBCaWdJbnQoYXJncy5tZW1vLm1lbW8udG9TdHJpbmcoKSkgfSxcbiAgICAgIHBheW1lbnQ6IHsgcmVjZWl2ZXJHZXRzOiB7IGU4czogYXJncy5wYXltZW50LnJlY2VpdmVyR2V0cy5lOHMgfSB9LFxuICAgICAgbWF4RmVlOiB7IGU4czogYXJncy5tYXhGZWUuZThzIH0sXG4gICAgICB0bzogeyBoYXNoOiBCdWZmZXIuZnJvbShhcmdzLnRvLmhhc2gpIH0sXG4gICAgICBjcmVhdGVkQXRUaW1lOiB7IHRpbWVzdGFtcE5hbm9zOiBCaWdOdW1iZXIoYXJncy5jcmVhdGVkQXRUaW1lLnRpbWVzdGFtcE5hbm9zLnRvU3RyaW5nKCkpLnRvTnVtYmVyKCkgfSxcbiAgICB9O1xuICAgIHJldHVybiB0cmFuc2Zvcm1lZEFyZ3M7XG4gIH1cblxuICBhc3luYyB0b0FyZyhhcmdzOiBTZW5kQXJncyk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IHJvb3QgPSBwcm90b2J1Zi5wYXJzZShwcm90b0RlZmluaXRpb24pLnJvb3Q7XG4gICAgY29uc3QgU2VuZFJlcXVlc3RNZXNzYWdlID0gcm9vdC5sb29rdXBUeXBlKCdTZW5kUmVxdWVzdCcpO1xuICAgIGNvbnN0IGVyck1zZyA9IFNlbmRSZXF1ZXN0TWVzc2FnZS52ZXJpZnkoYXJncyk7XG4gICAgaWYgKGVyck1zZykgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG4gICAgY29uc3QgbWVzc2FnZSA9IFNlbmRSZXF1ZXN0TWVzc2FnZS5jcmVhdGUoYXJncyk7XG4gICAgcmV0dXJuIFNlbmRSZXF1ZXN0TWVzc2FnZS5lbmNvZGUobWVzc2FnZSkuZmluaXNoKCk7XG4gIH1cblxuICBnZXRBY2NvdW50SWRQcmVmaXgoKTogQnVmZmVyPEFycmF5QnVmZmVyPiB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDBhLCAuLi5CdWZmZXIuZnJvbSgnYWNjb3VudC1pZCcpXSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEJsb2NrSWQoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgLy8gSUNQIGJsb2NrIGhhc2hlcyBhcmUgNjQtY2hhcmFjdGVyIGhleGFkZWNpbWFsIHN0cmluZ3NcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkSGFzaChoYXNoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBJQ1AgaGFzaFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaGFzaCAtIHN0cmluZyB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGlzVmFsaWRIYXNoKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgaGFzaCA9PT0gJ3N0cmluZycgJiYgL15bMC05YS1mQS1GXXs2NH0kLy50ZXN0KGhhc2gpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRIYXNoKHR4SWQpO1xuICB9XG5cbiAgZ2V0U2lnbmF0dXJlcyhwYXlsb2Fkc0RhdGE6IFBheWxvYWRzRGF0YSwgc2VuZGVyUHVibGljS2V5OiBzdHJpbmcsIHNlbmRlclByaXZhdGVLZXk6IHN0cmluZyk6IFNpZ25hdHVyZXNbXSB7XG4gICAgcmV0dXJuIHBheWxvYWRzRGF0YS5wYXlsb2Fkcy5tYXAoKHBheWxvYWQpID0+ICh7XG4gICAgICBzaWduaW5nX3BheWxvYWQ6IHBheWxvYWQsXG4gICAgICBzaWduYXR1cmVfdHlwZTogcGF5bG9hZC5zaWduYXR1cmVfdHlwZSxcbiAgICAgIHB1YmxpY19rZXk6IHtcbiAgICAgICAgaGV4X2J5dGVzOiBzZW5kZXJQdWJsaWNLZXksXG4gICAgICAgIGN1cnZlX3R5cGU6IEN1cnZlVHlwZS5TRUNQMjU2SzEsXG4gICAgICB9LFxuICAgICAgaGV4X2J5dGVzOiB0aGlzLnNpZ25QYXlsb2FkKHNlbmRlclByaXZhdGVLZXksIHBheWxvYWQuaGV4X2J5dGVzKSxcbiAgICB9KSk7XG4gIH1cblxuICBzaWduUGF5bG9hZCA9IChwcml2YXRlS2V5OiBzdHJpbmcsIHBheWxvYWRIZXg6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgY29uc3QgcHJpdmF0ZUtleUJ5dGVzID0gQnVmZmVyLmZyb20ocHJpdmF0ZUtleSwgJ2hleCcpO1xuICAgIGNvbnN0IHBheWxvYWRIYXNoID0gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShCdWZmZXIuZnJvbShwYXlsb2FkSGV4LCAnaGV4JykpLmRpZ2VzdCgnaGV4Jyk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gc2VjcDI1NmsxLnNpZ24ocGF5bG9hZEhhc2gsIHByaXZhdGVLZXlCeXRlcyk7XG4gICAgY29uc3QgciA9IEJ1ZmZlci5mcm9tKHNpZ25hdHVyZS5yLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg2NCwgJzAnKSwgJ2hleCcpO1xuICAgIGNvbnN0IHMgPSBCdWZmZXIuZnJvbShzaWduYXR1cmUucy50b1N0cmluZygxNikucGFkU3RhcnQoNjQsICcwJyksICdoZXgnKTtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChbciwgc10pLnRvU3RyaW5nKCdoZXgnKTtcbiAgfTtcbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
|
|
676
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQU95QjtBQUN6QixrREFBbUU7QUFDbkUsc0RBQXdDO0FBQ3hDLG9EQUE0QjtBQUM1QixvREFBMkI7QUFDM0IsbUNBVWlCO0FBQ2pCLHVDQUFrRDtBQUNsRCxtQ0FBd0MsQ0FBQyxnTUFBZ007QUFDek8sMERBQWtDO0FBQ2xDLGdFQUFxQztBQUNyQyx1REFBb0Q7QUFDcEQsNERBQWtDO0FBQ2xDLHVEQUFvRDtBQUV2QyxRQUFBLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQztBQUUvQyxNQUFhLEtBQUs7SUFBbEI7UUEwcEJFLGdCQUFXLEdBQUcsQ0FBQyxVQUFrQixFQUFFLFVBQWtCLEVBQVUsRUFBRTtZQUMvRCxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN2RCxNQUFNLFdBQVcsR0FBRyxnQkFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckcsTUFBTSxTQUFTLEdBQUcscUJBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1lBQy9ELE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFD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LENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixvQkFBb0IsQ0FBQyxJQUFZO1FBQy9CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsYUFBYSxDQUFDLFlBQTBCLEVBQUUsZUFBdUIsRUFBRSxnQkFBd0I7UUFDekYsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxlQUFlLEVBQUUsT0FBTztZQUN4QixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7WUFDdEMsVUFBVSxFQUFFO2dCQUNWLFNBQVMsRUFBRSxlQUFlO2dCQUMxQixVQUFVLEVBQUUsaUJBQVMsQ0FBQyxTQUFTO2FBQ2hDO1lBQ0QsU0FBUyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQztTQUNqRSxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7Q0FVRjtBQWxxQkQsc0JBa3FCQztBQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFDMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZVV0aWxzLFxuICBLZXlQYWlyLFxuICBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsXG4gIFJlY2lwaWVudCxcbiAgQnVpbGRUcmFuc2FjdGlvbkVycm9yLFxuICBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yLFxufSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgUHJpbmNpcGFsIGFzIERmaW5pdHlQcmluY2lwYWwgfSBmcm9tICdAZGZpbml0eS9wcmluY2lwYWwnO1xuaW1wb3J0ICogYXMgYWdlbnQgZnJvbSAnQGRmaW5pdHkvYWdlbnQnO1xuaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IGNyYzMyIGZyb20gJ2NyYy0zMic7XG5pbXBvcnQge1xuICBIdHRwQ2FuaXN0ZXJVcGRhdGUsXG4gIEljcFRyYW5zYWN0aW9uRGF0YSxcbiAgUmVhZFN0YXRlLFxuICBSZXF1ZXN0VHlwZSxcbiAgU2lnbmF0dXJlcyxcbiAgSWNwTWV0YWRhdGEsXG4gIFNlbmRBcmdzLFxuICBQYXlsb2Fkc0RhdGEsXG4gIEN1cnZlVHlwZSxcbn0gZnJvbSAnLi9pZmFjZSc7XG5pbXBvcnQgeyBLZXlQYWlyIGFzIEljcEtleVBhaXIgfSBmcm9tICcuL2tleVBhaXInO1xuaW1wb3J0IHsgZGVjb2RlLCBlbmNvZGUgfSBmcm9tICdjYm9yLXgnOyAvLyBUaGUgXCJjYm9yLXhcIiBsaWJyYXJ5IGlzIHVzZWQgaGVyZSBiZWNhdXNlIGl0IHN1cHBvcnRzIG1vZGVybiBmZWF0dXJlcyBsaWtlIEJpZ0ludC4gZG8gbm90IHJlcGxhY2UgaXQgd2l0aCBcImNib3IgYXMgXCJjYm9yXCIgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBSdXN0J3Mgc2VyZGVfY2JvciB3aGVuIGhhbmRsaW5nIGJpZyBudW1iZXJzLlxuaW1wb3J0IGpzX3NoYTI1NiBmcm9tICdqcy1zaGEyNTYnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgc2VjcDI1NmsxIH0gZnJvbSAnQG5vYmxlL2N1cnZlcy9zZWNwMjU2azEnO1xuaW1wb3J0IHByb3RvYnVmIGZyb20gJ3Byb3RvYnVmanMnO1xuaW1wb3J0IHsgcHJvdG9EZWZpbml0aW9uIH0gZnJvbSAnLi9wcm90b0RlZmluaXRpb24nO1xuXG5leHBvcnQgY29uc3QgUkVRVUVTVF9TVEFUVVMgPSAncmVxdWVzdF9zdGF0dXMnO1xuXG5leHBvcnQgY2xhc3MgVXRpbHMgaW1wbGVtZW50cyBCYXNlVXRpbHMge1xuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFNpZ25hdHVyZShzaWduYXR1cmU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRocm93IG5ldyBNZXRob2ROb3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICAvKipcbiAgICogZ2V0cyB0aGUgZ2FzIGRhdGEgb2YgdGhpcyB0cmFuc2FjdGlvbi5cbiAgICovXG4gIC8vVE9ETyBXSU4tNDI0MjogdG8gbW92ZWQgdG8gYSBjb25maWcgYW5kIGV2ZW50dWFsbHkgdG8gYW4gQVBJIGZvciBkeW5hbWljIHZhbHVlXG4gIGdhc0RhdGEoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJy0xMDAwMCc7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBwcm92aWRlZCBhZGRyZXNzIGlzIGEgdmFsaWQgSUNQIGFkZHJlc3MuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhZGRyZXNzIC0gVGhlIGFkZHJlc3MgdG8gdmFsaWRhdGUuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgYHRydWVgIGlmIHRoZSBhZGRyZXNzIGlzIHZhbGlkLCBvdGhlcndpc2UgYGZhbHNlYC5cbiAgICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJvb3RBZGRyZXNzID0gdGhpcy52YWxpZGF0ZU1lbW9BbmRSZXR1cm5Sb290QWRkcmVzcyhhZGRyZXNzKTtcbiAgICByZXR1cm4gcm9vdEFkZHJlc3MgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmlzVmFsaWRIYXNoKHJvb3RBZGRyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIG1lbW8gSUQgaW4gdGhlIGFkZHJlc3MgYW5kIHJldHVybnMgdGhlIHJvb3QgYWRkcmVzcy5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGFkZHJlc3MgLSBUaGUgYWRkcmVzcyB0byB2YWxpZGF0ZSBhbmQgZXh0cmFjdCB0aGUgcm9vdCBhZGRyZXNzIGZyb20uXG4gICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IC0gVGhlIHJvb3QgYWRkcmVzcyBpZiB2YWxpZCwgb3RoZXJ3aXNlIGB1bmRlZmluZWRgLlxuICAgKi9cbiAgdmFsaWRhdGVNZW1vQW5kUmV0dXJuUm9vdEFkZHJlc3MoYWRkcmVzczogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIWFkZHJlc3MpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIGNvbnN0IFtyb290QWRkcmVzcywgbWVtb0lkXSA9IGFkZHJlc3Muc3BsaXQoJz9tZW1vSWQ9Jyk7XG4gICAgaWYgKG1lbW9JZCAmJiB0aGlzLnZhbGlkYXRlTWVtbyhCaWdJbnQobWVtb0lkKSkpIHtcbiAgICAgIHJldHVybiByb290QWRkcmVzcztcbiAgICB9XG4gICAgcmV0dXJuIGFkZHJlc3M7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIGlmIHRoZSBwcm92aWRlZCBoZXggc3RyaW5nIGlzIGEgdmFsaWQgcHVibGljIGtleS5cbiAgICpcbiAgICogQSB2YWxpZCBwdWJsaWMga2V5IGNhbiBiZSBlaXRoZXIgY29tcHJlc3NlZCBvciB1bmNvbXByZXNzZWQ6XG4gICAqIC0gQ29tcHJlc3NlZCBwdWJsaWMga2V5cyBhcmUgMzMgYnl0ZXMgbG9uZyBhbmQgc3RhcnQgd2l0aCBlaXRoZXIgMHgwMiBvciAweDAzLlxuICAgKiAtIFVuY29tcHJlc3NlZCBwdWJsaWMga2V5cyBhcmUgNjUgYnl0ZXMgbG9uZyBhbmQgc3RhcnQgd2l0aCAweDA0LlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaGV4U3RyIC0gVGhlIGhleCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHB1YmxpYyBrZXkgdG8gdmFsaWRhdGUuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgYHRydWVgIGlmIHRoZSBoZXggc3RyaW5nIGlzIGEgdmFsaWQgcHVibGljIGtleSwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gICAqL1xuICBpc1ZhbGlkUHVibGljS2V5KGhleFN0cjogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRIZXgoaGV4U3RyKSB8fCAhdGhpcy5pc1ZhbGlkTGVuZ3RoKGhleFN0cikpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBwdWJLZXlCeXRlcyA9IHRoaXMuaGV4VG9CeXRlcyhoZXhTdHIpO1xuICAgIGNvbnN0IGZpcnN0Qnl0ZSA9IHB1YktleUJ5dGVzWzBdO1xuICAgIGNvbnN0IHZhbGlkQ29tcHJlc3NlZCA9IHB1YktleUJ5dGVzLmxlbmd0aCA9PT0gMzMgJiYgKGZpcnN0Qnl0ZSA9PT0gMiB8fCBmaXJzdEJ5dGUgPT09IDMpO1xuICAgIGNvbnN0IHZhbGlkVW5jb21wcmVzc2VkID0gcHViS2V5Qnl0ZXMubGVuZ3RoID09PSA2NSAmJiBmaXJzdEJ5dGUgPT09IDQ7XG5cbiAgICByZXR1cm4gdmFsaWRDb21wcmVzc2VkIHx8IHZhbGlkVW5jb21wcmVzc2VkO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuY29kZXMgYSB2YWx1ZSBpbnRvIENCT1IgZm9ybWF0IGFuZCByZXR1cm5zIGl0IGFzIGEgaGV4IHN0cmluZy5cbiAgICpcbiAgICogQHBhcmFtIHt1bmtub3dufSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBlbmNvZGUuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIENCT1IgZW5jb2RlZCB2YWx1ZSBhcyBhIGhleCBzdHJpbmcuXG4gICAqL1xuICBjYm9yRW5jb2RlKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdWYWx1ZSB0byBlbmNvZGUgY2Fubm90IGJlIHVuZGVmaW5lZC4nKTtcbiAgICB9XG4gICAgY29uc3QgY2JvckRhdGEgPSBlbmNvZGUodmFsdWUpO1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShjYm9yRGF0YSkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgbGVuZ3RoIG9mIHRoZSBnaXZlbiBoZXhhZGVjaW1hbCBzdHJpbmcgaXMgdmFsaWQuXG4gICAqIEEgdmFsaWQgbGVuZ3RoIGlzIGVpdGhlciA2NiBjaGFyYWN0ZXJzICgzMyBieXRlcykgb3IgMTMwIGNoYXJhY3RlcnMgKDY1IGJ5dGVzKS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhleFN0ciAtIFRoZSBoZXhhZGVjaW1hbCBzdHJpbmcgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgYHRydWVgIGlmIHRoZSBsZW5ndGggaXMgdmFsaWQsIG90aGVyd2lzZSBgZmFsc2VgLlxuICAgKi9cbiAgaXNWYWxpZExlbmd0aChoZXhTdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBoZXhTdHIubGVuZ3RoIC8gMiA9PT0gMzMgfHwgaGV4U3RyLmxlbmd0aCAvIDIgPT09IDY1O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgcHJvdmlkZWQgc3RyaW5nIGlzIGEgdmFsaWQgaGV4YWRlY2ltYWwgc3RyaW5nLlxuICAgKlxuICAgKiBBIHZhbGlkIGhleGFkZWNpbWFsIHN0cmluZyBjb25zaXN0cyBvZiBwYWlycyBvZiBoZXhhZGVjaW1hbCBkaWdpdHMgKDAtOSwgYS1mLCBBLUYpLlxuICAgKlxuICAgKiBAcGFyYW0gaGV4U3RyIC0gVGhlIHN0cmluZyB0byBiZSB2YWxpZGF0ZWQgYXMgYSBoZXhhZGVjaW1hbCBzdHJpbmcuXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHN0cmluZyBpcyBhIHZhbGlkIGhleGFkZWNpbWFsIHN0cmluZywgZmFsc2Ugb3RoZXJ3aXNlLlxuICAgKi9cbiAgaXNWYWxpZEhleChoZXhTdHI6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAvXihbMC05YS1mQS1GXXsyfSkrJC8udGVzdChoZXhTdHIpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgaGV4YWRlY2ltYWwgc3RyaW5nIHRvIGEgVWludDhBcnJheS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhleCAtIFRoZSBoZXhhZGVjaW1hbCBzdHJpbmcgdG8gY29udmVydC5cbiAgICogQHJldHVybnMge1VpbnQ4QXJyYXl9IFRoZSByZXN1bHRpbmcgYnl0ZSBhcnJheS5cbiAgICovXG4gIGhleFRvQnl0ZXMoaGV4OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgICBjb25zdCBieXRlcyA9IG5ldyBVaW50OEFycmF5KGhleC5sZW5ndGggLyAyKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGhleC5sZW5ndGg7IGkgKz0gMikge1xuICAgICAgYnl0ZXNbaSAvIDJdID0gcGFyc2VJbnQoaGV4LnN1YnN0cihpLCAyKSwgMTYpO1xuICAgIH1cbiAgICByZXR1cm4gYnl0ZXM7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkS2V5KGtleSk7XG4gIH1cblxuICAvKipcbiAgICogVmFsaWRhdGVzIHdoZXRoZXIgdGhlIHByb3ZpZGVkIGtleSBpcyBhIHZhbGlkIElDUCBwcml2YXRlIGtleS5cbiAgICpcbiAgICogVGhpcyBmdW5jdGlvbiBhdHRlbXB0cyB0byBjcmVhdGUgYSBuZXcgaW5zdGFuY2Ugb2YgYEljcEtleVBhaXJgIHVzaW5nIHRoZSBwcm92aWRlZCBrZXkuXG4gICAqIElmIHRoZSBrZXkgaXMgdmFsaWQsIHRoZSBmdW5jdGlvbiByZXR1cm5zIGB0cnVlYC4gSWYgdGhlIGtleSBpcyBpbnZhbGlkLCBhbiBlcnJvciBpcyB0aHJvd24sXG4gICAqIGFuZCB0aGUgZnVuY3Rpb24gcmV0dXJucyBgZmFsc2VgLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IC0gVGhlIHByaXZhdGUga2V5IHRvIHZhbGlkYXRlLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gLSBgdHJ1ZWAgaWYgdGhlIGtleSBpcyB2YWxpZCwgYGZhbHNlYCBvdGhlcndpc2UuXG4gICAqL1xuICBpc1ZhbGlkS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIG5ldyBJY3BLZXlQYWlyKHsgcHJ2OiBrZXkgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29tcHJlc3NlcyBhbiB1bmNvbXByZXNzZWQgcHVibGljIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHVuY29tcHJlc3NlZEtleSAtIFRoZSB1bmNvbXByZXNzZWQgcHVibGljIGtleSBpbiBoZXhhZGVjaW1hbCBmb3JtYXQuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIGNvbXByZXNzZWQgcHVibGljIGtleSBpbiBoZXhhZGVjaW1hbCBmb3JtYXQuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIElmIHRoZSBpbnB1dCBrZXkgaXMgbm90IGEgdmFsaWQgdW5jb21wcmVzc2VkIHB1YmxpYyBrZXkuXG4gICAqL1xuICBjb21wcmVzc1B1YmxpY0tleSh1bmNvbXByZXNzZWRLZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHVuY29tcHJlc3NlZEtleS5zdGFydHNXaXRoKCcwMicpIHx8IHVuY29tcHJlc3NlZEtleS5zdGFydHNXaXRoKCcwMycpKSB7XG4gICAgICByZXR1cm4gdW5jb21wcmVzc2VkS2V5O1xuICAgIH1cbiAgICBpZiAoIXVuY29tcHJlc3NlZEtleS5zdGFydHNXaXRoKCcwNCcpIHx8IHVuY29tcHJlc3NlZEtleS5sZW5ndGggIT09IDEzMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHVuY29tcHJlc3NlZCBwdWJsaWMga2V5IGZvcm1hdC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCB4SGV4ID0gdW5jb21wcmVzc2VkS2V5LnNsaWNlKDIsIDY2KTtcbiAgICBjb25zdCB5SGV4ID0gdW5jb21wcmVzc2VkS2V5LnNsaWNlKDY2KTtcbiAgICBjb25zdCB5ID0gQmlnSW50KGAweCR7eUhleH1gKTtcbiAgICBjb25zdCBwcmVmaXggPSB5ICUgMm4gPT09IDBuID8gJzAyJyA6ICcwMyc7XG5cbiAgICByZXR1cm4gYCR7cHJlZml4fSR7eEhleH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgcHVibGljIGtleSBmcm9tIGl0cyBoZXhhZGVjaW1hbCBzdHJpbmcgcmVwcmVzZW50YXRpb24gdG8gREVSIGZvcm1hdC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHB1YmxpY0tleUhleCAtIFRoZSBwdWJsaWMga2V5IGluIGhleGFkZWNpbWFsIHN0cmluZyBmb3JtYXQuXG4gICAqIEByZXR1cm5zIFRoZSBwdWJsaWMga2V5IGluIERFUiBmb3JtYXQgYXMgYSBVaW50OEFycmF5LlxuICAgKi9cbiAgZ2V0UHVibGljS2V5SW5ERVJGb3JtYXQocHVibGljS2V5SGV4OiBzdHJpbmcpOiBVaW50OEFycmF5IHtcbiAgICBjb25zdCBwdWJsaWNLZXlCdWZmZXIgPSBCdWZmZXIuZnJvbShwdWJsaWNLZXlIZXgsICdoZXgnKTtcbiAgICBjb25zdCBlbGxpcHRpY0tleSA9IHNlY3AyNTZrMS5Qcm9qZWN0aXZlUG9pbnQuZnJvbUhleChwdWJsaWNLZXlCdWZmZXIudG9TdHJpbmcoJ2hleCcpKTtcbiAgICBjb25zdCB1bmNvbXByZXNzZWRQdWJsaWNLZXlIZXggPSBlbGxpcHRpY0tleS50b0hleChmYWxzZSk7XG4gICAgY29uc3QgZGVyRW5jb2RlZEtleSA9IGFnZW50LndyYXBERVIoQnVmZmVyLmZyb20odW5jb21wcmVzc2VkUHVibGljS2V5SGV4LCAnaGV4JyksIGFnZW50LlNFQ1AyNTZLMV9PSUQpO1xuICAgIHJldHVybiBkZXJFbmNvZGVkS2V5O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgcHVibGljIGtleSBpbiBoZXhhZGVjaW1hbCBmb3JtYXQgdG8gYSBEZmluaXR5IFByaW5jaXBhbCBJRC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHB1YmxpY0tleUhleCAtIFRoZSBwdWJsaWMga2V5IGluIGhleGFkZWNpbWFsIGZvcm1hdC5cbiAgICogQHJldHVybnMgVGhlIGNvcnJlc3BvbmRpbmcgRGZpbml0eSBQcmluY2lwYWwgSUQuXG4gICAqL1xuICBnZXRQcmluY2lwYWxJZEZyb21QdWJsaWNLZXkocHVibGljS2V5SGV4OiBzdHJpbmcpOiBEZmluaXR5UHJpbmNpcGFsIHtcbiAgICBjb25zdCBkZXJFbmNvZGVkS2V5ID0gdGhpcy5nZXRQdWJsaWNLZXlJbkRFUkZvcm1hdChwdWJsaWNLZXlIZXgpO1xuICAgIGNvbnN0IHByaW5jaXBhbElkID0gRGZpbml0eVByaW5jaXBhbC5zZWxmQXV0aGVudGljYXRpbmcoQnVmZmVyLmZyb20oZGVyRW5jb2RlZEtleSkpO1xuICAgIHJldHVybiBwcmluY2lwYWxJZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXJpdmVzIGEgRGZpbml0eVByaW5jaXBhbCBmcm9tIGEgZ2l2ZW4gcHVibGljIGtleSBpbiBoZXhhZGVjaW1hbCBmb3JtYXQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwdWJsaWNLZXlIZXggLSBUaGUgcHVibGljIGtleSBpbiBoZXhhZGVjaW1hbCBmb3JtYXQuXG4gICAqIEByZXR1cm5zIFRoZSBkZXJpdmVkIERmaW5pdHlQcmluY2lwYWwuXG4gICAqIEB0aHJvd3MgV2lsbCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgcHJpbmNpcGFsIGNhbm5vdCBiZSBkZXJpdmVkIGZyb20gdGhlIHB1YmxpYyBrZXkuXG4gICAqL1xuICBkZXJpdmVQcmluY2lwYWxGcm9tUHVibGljS2V5KHB1YmxpY0tleUhleDogc3RyaW5nKTogRGZpbml0eVByaW5jaXBhbCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRlckVuY29kZWRLZXkgPSB0aGlzLmdldFB1YmxpY0tleUluREVSRm9ybWF0KHB1YmxpY0tleUhleCk7XG4gICAgICBjb25zdCBwcmluY2lwYWxJZCA9IERmaW5pdHlQcmluY2lwYWwuc2VsZkF1dGhlbnRpY2F0aW5nKEJ1ZmZlci5mcm9tKGRlckVuY29kZWRLZXkpKTtcbiAgICAgIGNvbnN0IHByaW5jaXBhbCA9IERmaW5pdHlQcmluY2lwYWwuZnJvbVVpbnQ4QXJyYXkocHJpbmNpcGFsSWQudG9VaW50OEFycmF5KCkpO1xuICAgICAgcmV0dXJuIHByaW5jaXBhbDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gZGVyaXZlIHByaW5jaXBhbCBmcm9tIHB1YmxpYyBrZXk6ICR7ZXJyb3IubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgYSBEZmluaXR5UHJpbmNpcGFsIGFuZCBhbiBvcHRpb25hbCBzdWJBY2NvdW50IHRvIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGFjY291bnQgSUQuXG4gICAqXG4gICAqIEBwYXJhbSB7RGZpbml0eVByaW5jaXBhbH0gcHJpbmNpcGFsIC0gVGhlIHByaW5jaXBhbCB0byBjb252ZXJ0LlxuICAgKiBAcGFyYW0ge1VpbnQ4QXJyYXl9IFtzdWJBY2NvdW50PW5ldyBVaW50OEFycmF5KDMyKV0gLSBBbiBvcHRpb25hbCBzdWItYWNjb3VudCwgZGVmYXVsdHMgdG8gYSAzMi1ieXRlIGFycmF5IG9mIHplcm9zLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgaGV4YWRlY2ltYWwgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBhY2NvdW50IElELlxuICAgKi9cbiAgZnJvbVByaW5jaXBhbChwcmluY2lwYWw6IERmaW5pdHlQcmluY2lwYWwsIHN1YkFjY291bnQ6IFVpbnQ4QXJyYXkgPSBuZXcgVWludDhBcnJheSgzMikpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByaW5jaXBhbEJ5dGVzID0gQnVmZmVyLmZyb20ocHJpbmNpcGFsLnRvVWludDhBcnJheSgpLmJ1ZmZlcik7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QWNjb3VudElkRnJvbVByaW5jaXBhbEJ5dGVzKHRoaXMuZ2V0QWNjb3VudElkUHJlZml4KCksIHByaW5jaXBhbEJ5dGVzLCBzdWJBY2NvdW50KTtcbiAgfVxuXG4gIGdldEFjY291bnRJZEZyb21QcmluY2lwYWxCeXRlcyhcbiAgICBBQ0NPVU5UX0lEX1BSRUZJWDogQnVmZmVyPEFycmF5QnVmZmVyPixcbiAgICBwcmluY2lwYWxCeXRlczogQnVmZmVyPEFycmF5QnVmZmVyTGlrZT4sXG4gICAgc3ViQWNjb3VudDogVWludDhBcnJheTxBcnJheUJ1ZmZlckxpa2U+XG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgY29tYmluZWRCeXRlcyA9IEJ1ZmZlci5jb25jYXQoW0FDQ09VTlRfSURfUFJFRklYLCBwcmluY2lwYWxCeXRlcywgc3ViQWNjb3VudF0pO1xuICAgIGNvbnN0IHNoYTIyNEhhc2ggPSBjcnlwdG8uY3JlYXRlSGFzaCgnc2hhMjI0JykudXBkYXRlKGNvbWJpbmVkQnl0ZXMpLmRpZ2VzdCgpO1xuICAgIGNvbnN0IGNoZWNrc3VtID0gQnVmZmVyLmFsbG9jKDQpO1xuICAgIGNoZWNrc3VtLndyaXRlVUludDMyQkUoY3JjMzIuYnVmKHNoYTIyNEhhc2gpID4+PiAwLCAwKTtcbiAgICBjb25zdCBhY2NvdW50SWRCeXRlcyA9IEJ1ZmZlci5jb25jYXQoW2NoZWNrc3VtLCBzaGEyMjRIYXNoXSk7XG4gICAgcmV0dXJuIGFjY291bnRJZEJ5dGVzLnRvU3RyaW5nKCdoZXgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXRyaWV2ZXMgdGhlIGFkZHJlc3MgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gaGV4LWVuY29kZWQgcHVibGljIGtleS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IGhleEVuY29kZWRQdWJsaWNLZXkgLSBUaGUgcHVibGljIGtleSBpbiBoZXgtZW5jb2RlZCBmb3JtYXQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHRvIHRoZSBhZGRyZXNzIGRlcml2ZWQgZnJvbSB0aGUgcHJvdmlkZWQgcHVibGljIGtleS5cbiAgICogQHRocm93cyB7RXJyb3J9IFRocm93cyBhbiBlcnJvciBpZiB0aGUgcHJvdmlkZWQgcHVibGljIGtleSBpcyBub3QgaW4gYSB2YWxpZCBoZXgtZW5jb2RlZCBmb3JtYXQuXG4gICAqL1xuICBhc3luYyBnZXRBZGRyZXNzRnJvbVB1YmxpY0tleShoZXhFbmNvZGVkUHVibGljS2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICghdGhpcy5pc1ZhbGlkUHVibGljS2V5KGhleEVuY29kZWRQdWJsaWNLZXkpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgaGV4LWVuY29kZWQgcHVibGljIGtleSBmb3JtYXQuJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvbXByZXNzZWRLZXkgPSB0aGlzLmNvbXByZXNzUHVibGljS2V5KGhleEVuY29kZWRQdWJsaWNLZXkpO1xuICAgIGNvbnN0IGtleVBhaXIgPSBuZXcgSWNwS2V5UGFpcih7IHB1YjogY29tcHJlc3NlZEtleSB9KTtcbiAgICByZXR1cm4ga2V5UGFpci5nZXRBZGRyZXNzKCk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgbmV3IGtleSBwYWlyLiBJZiBhIHNlZWQgaXMgcHJvdmlkZWQsIGl0IHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUga2V5IHBhaXIuXG4gICAqXG4gICAqIEBwYXJhbSB7QnVmZmVyfSBbc2VlZF0gLSBPcHRpb25hbCBzZWVkIGZvciBrZXkgZ2VuZXJhdGlvbi5cbiAgICogQHJldHVybnMge0tleVBhaXJ9IC0gVGhlIGdlbmVyYXRlZCBrZXkgcGFpciBjb250YWluaW5nIGJvdGggcHVibGljIGFuZCBwcml2YXRlIGtleXMuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSAtIElmIHRoZSBwcml2YXRlIGtleSBpcyBtaXNzaW5nIGluIHRoZSBnZW5lcmF0ZWQga2V5IHBhaXIuXG4gICAqL1xuICBwdWJsaWMgZ2VuZXJhdGVLZXlQYWlyKHNlZWQ/OiBCdWZmZXIpOiBLZXlQYWlyIHtcbiAgICBjb25zdCBrZXlQYWlyID0gc2VlZCA/IG5ldyBJY3BLZXlQYWlyKHsgc2VlZCB9KSA6IG5ldyBJY3BLZXlQYWlyKCk7XG4gICAgY29uc3QgeyBwdWIsIHBydiB9ID0ga2V5UGFpci5nZXRLZXlzKCk7XG4gICAgaWYgKCFwcnYpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUHJpdmF0ZSBrZXkgaXMgbWlzc2luZyBpbiB0aGUgZ2VuZXJhdGVkIGtleSBwYWlyLicpO1xuICAgIH1cbiAgICByZXR1cm4geyBwdWIsIHBydiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgcHJvdmlkZWQgZmVlLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gZmVlIC0gVGhlIGZlZSB0byB2YWxpZGF0ZS5cbiAgICogQHRocm93cyB7QnVpbGRUcmFuc2FjdGlvbkVycm9yfSAtIElmIHRoZSBmZWUgaXMgemVybyBvciBpbnZhbGlkLlxuICAgKi9cbiAgdmFsaWRhdGVGZWUoZmVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBmZWVWYWx1ZSA9IG5ldyBCaWdOdW1iZXIoZmVlKTtcbiAgICBpZiAoZmVlVmFsdWUuaXNaZXJvKCkpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ZlZSBjYW5ub3QgYmUgemVybycpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICB2YWxpZGF0ZVZhbHVlKHZhbHVlOiBCaWdOdW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUuaXNMZXNzVGhhbk9yRXF1YWxUbygwKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignYW1vdW50IGNhbm5vdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gemVybycpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgdGhlIHByb3ZpZGVkIG1lbW8uXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgQmlnSW50fSBtZW1vIC0gVGhlIG1lbW8gdG8gdmFsaWRhdGUuXG4gICAqIEByZXR1cm5zIHtib29sZWFufSAtIFJldHVybnMgYHRydWVgIGlmIHRoZSBtZW1vIGlzIHZhbGlkLlxuICAgKiBAdGhyb3dzIHtCdWlsZFRyYW5zYWN0aW9uRXJyb3J9IC0gSWYgdGhlIG1lbW8gaXMgaW52YWxpZC5cbiAgICovXG4gIHZhbGlkYXRlTWVtbyhtZW1vOiBudW1iZXIgfCBCaWdJbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBtZW1vTnVtYmVyID0gTnVtYmVyKG1lbW8pO1xuICAgIGlmIChtZW1vTnVtYmVyIDwgMCB8fCBOdW1iZXIuaXNOYU4obWVtb051bWJlcikpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgbWVtbycpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHZhbGlkYXRlRXhwaXJlVGltZShleHBpcmVUaW1lOiBudW1iZXIgfCBCaWdJbnQpOiBib29sZWFuIHtcbiAgICBpZiAoTnVtYmVyKGV4cGlyZVRpbWUpIDwgRGF0ZS5ub3coKSAqIDEwMDBfMDAwKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIGV4cGlyeSB0aW1lJyk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlcyB0aGUgcmF3IHRyYW5zYWN0aW9uIGRhdGEgdG8gZW5zdXJlIGl0IGhhcyBhIHZhbGlkIGZvcm1hdCBpbiB0aGUgYmxvY2tjaGFpbiBjb250ZXh0LlxuICAgKlxuICAgKiBAcGFyYW0ge0ljcFRyYW5zYWN0aW9uRGF0YX0gdHJhbnNhY3Rpb25EYXRhIC0gVGhlIHRyYW5zYWN0aW9uIGRhdGEgdG8gdmFsaWRhdGUuXG4gICAqIEB0aHJvd3Mge1BhcnNlVHJhbnNhY3Rpb25FcnJvcn0gSWYgdGhlIHRyYW5zYWN0aW9uIGRhdGEgaXMgaW52YWxpZC5cbiAgICovXG4gIHZhbGlkYXRlUmF3VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25EYXRhOiBJY3BUcmFuc2FjdGlvbkRhdGEpOiB2b2lkIHtcbiAgICBpZiAoIXRyYW5zYWN0aW9uRGF0YSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gZGF0YSBpcyBtaXNzaW5nLicpO1xuICAgIH1cbiAgICBjb25zdCB7IHNlbmRlclB1YmxpY0tleUhleCwgc2VuZGVyQWRkcmVzcywgcmVjZWl2ZXJBZGRyZXNzIH0gPSB0cmFuc2FjdGlvbkRhdGE7XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRQdWJsaWNLZXkoc2VuZGVyUHVibGljS2V5SGV4KSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignU2VuZGVyIHB1YmxpYyBrZXkgaXMgaW52YWxpZC4nKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzVmFsaWRBZGRyZXNzKHNlbmRlckFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKCdTZW5kZXIgYWRkcmVzcyBpcyBpbnZhbGlkLicpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuaXNWYWxpZEFkZHJlc3MocmVjZWl2ZXJBZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignUmVjZWl2ZXIgYWRkcmVzcyBpcyBpbnZhbGlkLicpO1xuICAgIH1cbiAgICB0aGlzLnZhbGlkYXRlRmVlKHRyYW5zYWN0aW9uRGF0YS5mZWUpO1xuICAgIHRoaXMudmFsaWRhdGVWYWx1ZShuZXcgQmlnTnVtYmVyKHRyYW5zYWN0aW9uRGF0YS5hbW91bnQpKTtcbiAgICB0aGlzLnZhbGlkYXRlTWVtbyh0cmFuc2FjdGlvbkRhdGEubWVtbyk7XG4gICAgdGhpcy52YWxpZGF0ZUV4cGlyZVRpbWUodHJhbnNhY3Rpb25EYXRhLmV4cGlyeVRpbWUpO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB7b2JqZWN0fSB1cGRhdGVcbiAgICogQHJldHVybnMge0J1ZmZlcn1cbiAgICovXG4gIGdlbmVyYXRlSHR0cENhbmlzdGVyVXBkYXRlSWQodXBkYXRlOiBIdHRwQ2FuaXN0ZXJVcGRhdGUpOiBCdWZmZXIge1xuICAgIHJldHVybiB0aGlzLkh0dHBDYW5pc3RlclVwZGF0ZVJlcHJlc2VudGF0aW9uSW5kZXBlbmRlbnRIYXNoKHVwZGF0ZSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgcmVwcmVzZW50YXRpb24taW5kZXBlbmRlbnQgaGFzaCBmb3IgYW4gSFRUUCBjYW5pc3RlciB1cGRhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7SHR0cENhbmlzdGVyVXBkYXRlfSB1cGRhdGUgLSBUaGUgSFRUUCBjYW5pc3RlciB1cGRhdGUgb2JqZWN0LlxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSAtIFRoZSBoYXNoIG9mIHRoZSB1cGRhdGUgb2JqZWN0LlxuICAgKi9cbiAgSHR0cENhbmlzdGVyVXBkYXRlUmVwcmVzZW50YXRpb25JbmRlcGVuZGVudEhhc2godXBkYXRlOiBIdHRwQ2FuaXN0ZXJVcGRhdGUpOiBCdWZmZXIge1xuICAgIGNvbnN0IHVwZGF0ZU1hcCA9IHtcbiAgICAgIHJlcXVlc3RfdHlwZTogUmVxdWVzdFR5cGUuQ0FMTCxcbiAgICAgIGNhbmlzdGVyX2lkOiB1cGRhdGUuY2FuaXN0ZXJfaWQsXG4gICAgICBtZXRob2RfbmFtZTogdXBkYXRlLm1ldGhvZF9uYW1lLFxuICAgICAgYXJnOiB1cGRhdGUuYXJnLFxuICAgICAgaW5ncmVzc19leHBpcnk6IHVwZGF0ZS5pbmdyZXNzX2V4cGlyeSxcbiAgICAgIHNlbmRlcjogdXBkYXRlLnNlbmRlcixcbiAgICB9O1xuICAgIHJldHVybiB0aGlzLmhhc2hPZk1hcCh1cGRhdGVNYXApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIFNIQS0yNTYgaGFzaCBmb3IgYSBnaXZlbiBtYXAgb2JqZWN0LlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHVua25vd24+fSBtYXAgLSBUaGUgbWFwIG9iamVjdCB0byBoYXNoLlxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSAtIFRoZSByZXN1bHRpbmcgaGFzaCBhcyBhIEJ1ZmZlci5cbiAgICovXG4gIGhhc2hPZk1hcChtYXA6IFJlY29yZDxzdHJpbmcsIGFueT4pOiBCdWZmZXIge1xuICAgIGNvbnN0IGhhc2hlczogQnVmZmVyW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBtYXApIHtcbiAgICAgIGhhc2hlcy5wdXNoKHRoaXMuaGFzaEtleVZhbChrZXksIG1hcFtrZXldKSk7XG4gICAgfVxuICAgIGhhc2hlcy5zb3J0KChidWYwLCBidWYxKSA9PiBidWYwLmNvbXBhcmUoYnVmMSkpO1xuICAgIHJldHVybiB0aGlzLnNoYTI1NihoYXNoZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIGhhc2ggZm9yIGEga2V5LXZhbHVlIHBhaXIuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgLSBUaGUga2V5IHRvIGhhc2guXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgQnVmZmVyIHwgQmlnSW50fSB2YWwgLSBUaGUgdmFsdWUgdG8gaGFzaC5cbiAgICogQHJldHVybnMge0J1ZmZlcn0gLSBUaGUgcmVzdWx0aW5nIGhhc2ggYXMgYSBCdWZmZXIuXG4gICAqL1xuICBoYXNoS2V5VmFsKGtleTogc3RyaW5nLCB2YWw6IGFueSk6IEJ1ZmZlciB7XG4gICAgY29uc3Qga2V5SGFzaCA9IHRoaXMuaGFzaFN0cmluZyhrZXkpO1xuICAgIGNvbnN0IHZhbEhhc2ggPSB0aGlzLmhhc2hWYWwodmFsKTtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChba2V5SGFzaCwgdmFsSGFzaF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIFNIQS0yNTYgaGFzaCBmb3IgYSBnaXZlbiBzdHJpbmcuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZSAtIFRoZSBzdHJpbmcgdG8gaGFzaC5cbiAgICogQHJldHVybnMge0J1ZmZlcn0gLSBUaGUgcmVzdWx0aW5nIGhhc2ggYXMgYSBCdWZmZXIuXG4gICAqL1xuICBoYXNoU3RyaW5nKHZhbHVlOiBzdHJpbmcpOiBCdWZmZXIge1xuICAgIHJldHVybiB0aGlzLnNoYTI1NihbQnVmZmVyLmZyb20odmFsdWUpXSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgaGFzaCBmb3IgYSA2NC1iaXQgdW5zaWduZWQgaW50ZWdlci5cbiAgICpcbiAgICogQHBhcmFtIHtiaWdpbnR9IG4gLSBUaGUgNjQtYml0IHVuc2lnbmVkIGludGVnZXIgdG8gaGFzaC5cbiAgICogQHJldHVybnMge0J1ZmZlcn0gLSBUaGUgcmVzdWx0aW5nIGhhc2ggYXMgYSBCdWZmZXIuXG4gICAqL1xuICBoYXNoVTY0KG46IGJpZ2ludCk6IEJ1ZmZlciB7XG4gICAgY29uc3QgYnVmID0gQnVmZmVyLmFsbG9jVW5zYWZlKDEwKTtcbiAgICBsZXQgaSA9IDA7XG4gICAgd2hpbGUgKHRydWUpIHtcbiAgICAgIGNvbnN0IGJ5dGUgPSBOdW1iZXIobiAmIEJpZ0ludCgweDdmKSk7XG4gICAgICBuID4+PSBCaWdJbnQoNyk7XG4gICAgICBpZiAobiA9PT0gQmlnSW50KDApKSB7XG4gICAgICAgIGJ1ZltpXSA9IGJ5dGU7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYnVmW2ldID0gYnl0ZSB8IDB4ODA7XG4gICAgICAgICsraTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaGFzaEJ5dGVzKGJ1Zi5zdWJhcnJheSgwLCBpICsgMSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIFNIQS0yNTYgaGFzaCBmb3IgYW4gYXJyYXkgb2YgZWxlbWVudHMuXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXk8YW55Pn0gZWxlbWVudHMgLSBUaGUgYXJyYXkgb2YgZWxlbWVudHMgdG8gaGFzaC5cbiAgICogQHJldHVybnMge0J1ZmZlcn0gLSBUaGUgcmVzdWx0aW5nIGhhc2ggYXMgYSBCdWZmZXIuXG4gICAqL1xuICBoYXNoQXJyYXkoZWxlbWVudHM6IEFycmF5PGFueT4pOiBCdWZmZXIge1xuICAgIHJldHVybiB0aGlzLnNoYTI1NihlbGVtZW50cy5tYXAodGhpcy5oYXNoVmFsKSk7XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgaGFzaCBmb3IgYSBnaXZlbiB2YWx1ZS5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmcgfCBCdWZmZXIgfCBCaWdJbnQgfCBudW1iZXIgfCBBcnJheTx1bmtub3duPn0gdmFsIC0gVGhlIHZhbHVlIHRvIGhhc2guXG4gICAqIEByZXR1cm5zIHtCdWZmZXJ9IC0gVGhlIHJlc3VsdGluZyBoYXNoIGFzIGEgQnVmZmVyLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gLSBJZiB0aGUgdmFsdWUgdHlwZSBpcyB1bnN1cHBvcnRlZC5cbiAgICovXG4gIGhhc2hWYWwodmFsOiBzdHJpbmcgfCBCdWZmZXIgfCBCaWdJbnQgfCBudW1iZXIgfCBBcnJheTx1bmtub3duPik6IEJ1ZmZlciB7XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdXRpbHMuaGFzaFN0cmluZyh2YWwpO1xuICAgIH0gZWxzZSBpZiAoQnVmZmVyLmlzQnVmZmVyKHZhbCkpIHtcbiAgICAgIHJldHVybiB1dGlscy5oYXNoQnl0ZXModmFsKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdiaWdpbnQnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gdXRpbHMuaGFzaFU2NChCaWdJbnQodmFsKSk7XG4gICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHZhbCkpIHtcbiAgICAgIHJldHVybiB1dGlscy5oYXNoQXJyYXkodmFsKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCB2YWx1ZSB0eXBlIGZvciBoYXNoaW5nOiAke3R5cGVvZiB2YWx9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIHRoZSBTSEEtMjU2IGhhc2ggb2YgdGhlIGdpdmVuIGJ1ZmZlci5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIC0gVGhlIGJ1ZmZlciB0byBoYXNoLlxuICAgKiBAcmV0dXJucyBUaGUgU0hBLTI1NiBoYXNoIG9mIHRoZSBpbnB1dCBidWZmZXIuXG4gICAqL1xuICBoYXNoQnl0ZXModmFsdWU6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHRoaXMuc2hhMjU2KFt2YWx1ZV0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIHRoZSBTSEEtMjU2IGhhc2ggb2YgdGhlIHByb3ZpZGVkIGFycmF5IG9mIEJ1ZmZlciBjaHVua3MuXG4gICAqXG4gICAqIEBwYXJhbSB7QXJyYXk8QnVmZmVyPn0gY2h1bmtzIC0gQW4gYXJyYXkgb2YgQnVmZmVyIG9iamVjdHMgdG8gYmUgaGFzaGVkLlxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSAtIFRoZSByZXN1bHRpbmcgU0hBLTI1NiBoYXNoIGFzIGEgQnVmZmVyLlxuICAgKi9cbiAgc2hhMjU2KGNodW5rczogQXJyYXk8QnVmZmVyPik6IEJ1ZmZlciB7XG4gICAgY29uc3QgaGFzaGVyID0ganNfc2hhMjU2LnNoYTI1Ni5jcmVhdGUoKTtcbiAgICBjaHVua3MuZm9yRWFjaCgoY2h1bmspID0+IGhhc2hlci51cGRhdGUoY2h1bmspKTtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20oaGFzaGVyLmFycmF5QnVmZmVyKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIGEgaGV4YWRlY2ltYWwgc3RyaW5nIHRvIGEgQnVmZmVyLlxuICAgKlxuICAgKiBAcGFyYW0gaGV4IC0gVGhlIGhleGFkZWNpbWFsIHN0cmluZyB0byBjb252ZXJ0LlxuICAgKiBAcmV0dXJucyBBIEJ1ZmZlciBjb250YWluaW5nIHRoZSBiaW5hcnkgZGF0YSByZXByZXNlbnRlZCBieSB0aGUgaGV4YWRlY2ltYWwgc3RyaW5nLlxuICAgKi9cbiAgYmxvYkZyb21IZXgoaGV4OiBzdHJpbmcpOiBCdWZmZXIge1xuICAgIHJldHVybiBCdWZmZXIuZnJvbShoZXgsICdoZXgnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBhIGJpbmFyeSBibG9iIChCdWZmZXIpIHRvIGEgaGV4YWRlY2ltYWwgc3RyaW5nLlxuICAgKlxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gYmxvYiAtIFRoZSBiaW5hcnkgZGF0YSB0byBiZSBjb252ZXJ0ZWQuXG4gICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBoZXhhZGVjaW1hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYmluYXJ5IGRhdGEuXG4gICAqL1xuICBibG9iVG9IZXgoYmxvYjogQnVmZmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYmxvYi50b1N0cmluZygnaGV4Jyk7XG4gIH1cblxuICAvKipcbiAgICogRGVjb2RlcyBhIGdpdmVuIENCT1ItZW5jb2RlZCBidWZmZXIuXG4gICAqXG4gICAqIEBwYXJhbSBidWZmZXIgLSBUaGUgQ0JPUi1lbmNvZGVkIGJ1ZmZlciB0byBkZWNvZGUuXG4gICAqIEByZXR1cm5zIFRoZSBkZWNvZGVkIGRhdGEuXG4gICAqL1xuICBjYm9yRGVjb2RlKGJ1ZmZlcjogQnVmZmVyKTogdW5rbm93biB7XG4gICAgY29uc3QgcmVzID0gZGVjb2RlKGJ1ZmZlcik7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZXMgYSBCdWZmZXIgY29udGFpbmluZyB0aGUgZG9tYWluIElDIHJlcXVlc3Qgc3RyaW5nLlxuICAgKlxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSBBIEJ1ZmZlciBvYmplY3QgaW5pdGlhbGl6ZWQgd2l0aCB0aGUgc3RyaW5nICdcXHgwQWljLXJlcXVlc3QnLlxuICAgKi9cbiAgZ2V0RG9tYWluSUNSZXF1ZXN0KCk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKCdcXHgwQWljLXJlcXVlc3QnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb21iaW5lcyB0aGUgZG9tYWluIElDIHJlcXVlc3QgYnVmZmVyIHdpdGggdGhlIHByb3ZpZGVkIG1lc3NhZ2UgSUQgYnVmZmVyIHRvIGNyZWF0ZSBzaWduYXR1cmUgZGF0YS5cbiAgICpcbiAgICogQHBhcmFtIHtCdWZmZXJ9IG1lc3NhZ2VJZCAtIFRoZSBidWZmZXIgY29udGFpbmluZyB0aGUgbWVzc2FnZSBJRC5cbiAgICogQHJldHVybnMge0J1ZmZlcn0gLSBUaGUgY29uY2F0ZW5hdGVkIGJ1ZmZlciBjb250YWluaW5nIHRoZSBkb21haW4gSUMgcmVxdWVzdCBhbmQgdGhlIG1lc3NhZ2UgSUQuXG4gICAqL1xuICBtYWtlU2lnbmF0dXJlRGF0YShtZXNzYWdlSWQ6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIEJ1ZmZlci5jb25jYXQoW3RoaXMuZ2V0RG9tYWluSUNSZXF1ZXN0KCksIG1lc3NhZ2VJZF0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIHJlYWQgc3RhdGUgb2JqZWN0IGZyb20gYW4gSFRUUCBjYW5pc3RlciB1cGRhdGUuXG4gICAqXG4gICAqIEBwYXJhbSB7SHR0cENhbmlzdGVyVXBkYXRlfSB1cGRhdGUgLSBUaGUgSFRUUCBjYW5pc3RlciB1cGRhdGUgb2JqZWN0LlxuICAgKiBAcmV0dXJucyB7UmVhZFN0YXRlfSBUaGUgcmVhZCBzdGF0ZSBvYmplY3QgY29udGFpbmluZyB0aGUgc2VuZGVyLCBwYXRocywgYW5kIGluZ3Jlc3MgZXhwaXJ5LlxuICAgKi9cbiAgbWFrZVJlYWRTdGF0ZUZyb21VcGRhdGUodXBkYXRlOiBIdHRwQ2FuaXN0ZXJVcGRhdGUpOiBSZWFkU3RhdGUge1xuICAgIHJldHVybiB7XG4gICAgICBzZW5kZXI6IHVwZGF0ZS5zZW5kZXIsXG4gICAgICBwYXRoczogW1tCdWZmZXIuZnJvbShSRVFVRVNUX1NUQVRVUyksIHRoaXMuZ2VuZXJhdGVIdHRwQ2FuaXN0ZXJVcGRhdGVJZCh1cGRhdGUpXV0sXG4gICAgICBpbmdyZXNzX2V4cGlyeTogdXBkYXRlLmluZ3Jlc3NfZXhwaXJ5LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgcmVwcmVzZW50YXRpb24taW5kZXBlbmRlbnQgaGFzaCBmb3IgYW4gSFRUUCByZWFkIHN0YXRlIG9iamVjdC5cbiAgICpcbiAgICogQHBhcmFtIHtSZWFkU3RhdGV9IHJlYWRTdGF0ZSAtIFRoZSBIVFRQIHJlYWQgc3RhdGUgb2JqZWN0LlxuICAgKiBAcmV0dXJucyB7QnVmZmVyfSAtIFRoZSBoYXNoIG9mIHRoZSByZWFkIHN0YXRlIG9iamVjdC5cbiAgICovXG4gIEh0dHBSZWFkU3RhdGVSZXByZXNlbnRhdGlvbkluZGVwZW5kZW50SGFzaChyZWFkU3RhdGU6IFJlYWRTdGF0ZSk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIHRoaXMuaGFzaE9mTWFwKHtcbiAgICAgIHJlcXVlc3RfdHlwZTogUmVxdWVzdFR5cGUuUkVBRF9TVEFURSxcbiAgICAgIGluZ3Jlc3NfZXhwaXJ5OiByZWFkU3RhdGUuaW5ncmVzc19leHBpcnksXG4gICAgICBwYXRoczogcmVhZFN0YXRlLnBhdGhzLFxuICAgICAgc2VuZGVyOiByZWFkU3RhdGUuc2VuZGVyLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzIHRoZSByZWNpcGllbnQgaW5mb3JtYXRpb24gZnJvbSB0aGUgcHJvdmlkZWQgSUNQIHRyYW5zYWN0aW9uIGRhdGEuXG4gICAqXG4gICAqIEBwYXJhbSB7SWNwVHJhbnNhY3Rpb25EYXRhfSBpY3BUcmFuc2FjdGlvbkRhdGEgLSBUaGUgSUNQIHRyYW5zYWN0aW9uIGRhdGEgY29udGFpbmluZyB0aGUgcmVjZWl2ZXIncyBhZGRyZXNzIGFuZCBhbW91bnQuXG4gICAqIEByZXR1cm5zIHtSZWNpcGllbnRbXX0gQW4gYXJyYXkgY29udGFpbmluZyBhIHNpbmdsZSByZWNpcGllbnQgb2JqZWN0IHdpdGggdGhlIHJlY2VpdmVyJ3MgYWRkcmVzcyBhbmQgYW1vdW50LlxuICAgKi9cbiAgZ2V0UmVjaXBpZW50cyhpY3BUcmFuc2FjdGlvbkRhdGE6IEljcFRyYW5zYWN0aW9uRGF0YSk6IFJlY2lwaWVudCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFkZHJlc3M6IGljcFRyYW5zYWN0aW9uRGF0YS5yZWNlaXZlckFkZHJlc3MsXG4gICAgICBhbW91bnQ6IGljcFRyYW5zYWN0aW9uRGF0YS5hbW91bnQsXG4gICAgfTtcbiAgfVxuXG4gIGdldFRyYW5zYWN0aW9uU2lnbmF0dXJlKHNpZ25hdHVyZU1hcDogTWFwPHN0cmluZywgU2lnbmF0dXJlcz4sIHVwZGF0ZTogSHR0cENhbmlzdGVyVXBkYXRlKTogU2lnbmF0dXJlcyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHNpZ25hdHVyZU1hcC5nZXQodGhpcy5ibG9iVG9IZXgodGhpcy5tYWtlU2lnbmF0dXJlRGF0YSh0aGlzLmdlbmVyYXRlSHR0cENhbmlzdGVyVXBkYXRlSWQodXBkYXRlKSkpKTtcbiAgfVxuXG4gIGdldFJlYWRTdGF0ZVNpZ25hdHVyZShzaWduYXR1cmVNYXA6IE1hcDxzdHJpbmcsIFNpZ25hdHVyZXM+LCByZWFkU3RhdGU6IFJlYWRTdGF0ZSk6IFNpZ25hdHVyZXMgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBzaWduYXR1cmVNYXAuZ2V0KFxuICAgICAgdGhpcy5ibG9iVG9IZXgodGhpcy5tYWtlU2lnbmF0dXJlRGF0YSh0aGlzLkh0dHBSZWFkU3RhdGVSZXByZXNlbnRhdGlvbkluZGVwZW5kZW50SGFzaChyZWFkU3RhdGUpKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0TWV0YURhdGEoXG4gICAgbWVtbzogbnVtYmVyIHwgQmlnSW50LFxuICAgIHRpbWVzdGFtcDogbnVtYmVyIHwgYmlnaW50IHwgdW5kZWZpbmVkXG4gICk6IHsgbWV0YURhdGE6IEljcE1ldGFkYXRhOyBpbmdyZXNzRW5kVGltZTogbnVtYmVyIHwgQmlnSW50IH0ge1xuICAgIGxldCBjdXJyZW50VGltZSA9IERhdGUubm93KCkgKiAxMDAwMDAwO1xuICAgIGlmICh0aW1lc3RhbXApIHtcbiAgICAgIGN1cnJlbnRUaW1lID0gTnVtYmVyKHRpbWVzdGFtcCk7XG4gICAgfVxuICAgIGNvbnN0IGluZ3Jlc3NTdGFydFRpbWUgPSBjdXJyZW50VGltZTtcbiAgICBjb25zdCBpbmdyZXNzRW5kVGltZSA9IGluZ3Jlc3NTdGFydFRpbWUgKyA1ICogNjAgKiAxMDAwMDAwMDAwOyAvLyA1IG1pbnMgaW4gbmFub3NlY29uZHNcbiAgICBjb25zdCBtZXRhRGF0YTogSWNwTWV0YWRhdGEgPSB7XG4gICAgICBjcmVhdGVkX2F0X3RpbWU6IGN1cnJlbnRUaW1lLFxuICAgICAgbWVtbzogbWVtbyxcbiAgICAgIGluZ3Jlc3Nfc3RhcnQ6IGluZ3Jlc3NTdGFydFRpbWUsXG4gICAgICBpbmdyZXNzX2VuZDogaW5ncmVzc0VuZFRpbWUsXG4gICAgfTtcbiAgICByZXR1cm4geyBtZXRhRGF0YSwgaW5ncmVzc0VuZFRpbWUgfTtcbiAgfVxuXG4gIGNvbnZlcnRTZW5kZXJCbG9iVG9QcmluY2lwYWwoc2VuZGVyQmxvYjogVWludDhBcnJheSk6IFVpbnQ4QXJyYXkge1xuICAgIGNvbnN0IE1BWF9MRU5HVEhfSU5fQllURVMgPSAyOTtcbiAgICBpZiAoc2VuZGVyQmxvYi5sZW5ndGggPiBNQVhfTEVOR1RIX0lOX0JZVEVTKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0J5dGVzIHRvbyBsb25nIGZvciBhIHZhbGlkIFByaW5jaXBhbCcpO1xuICAgIH1cbiAgICBjb25zdCBwcmluY2lwYWxCeXRlcyA9IG5ldyBVaW50OEFycmF5KE1BWF9MRU5HVEhfSU5fQllURVMpO1xuICAgIHByaW5jaXBhbEJ5dGVzLnNldChzZW5kZXJCbG9iLnNsaWNlKDAsIHNlbmRlckJsb2IubGVuZ3RoKSk7XG4gICAgcmV0dXJuIHByaW5jaXBhbEJ5dGVzO1xuICB9XG5cbiAgYXN5bmMgZnJvbUFyZ3MoYXJnOiBVaW50OEFycmF5KTogUHJvbWlzZTxTZW5kQXJncz4ge1xuICAgIGNvbnN0IHJvb3QgPSBwcm90b2J1Zi5wYXJzZShwcm90b0RlZmluaXRpb24pLnJvb3Q7XG4gICAgY29uc3QgU2VuZFJlcXVlc3RNZXNzYWdlID0gcm9vdC5sb29rdXBUeXBlKCdTZW5kUmVxdWVzdCcpO1xuICAgIGNvbnN0IGFyZ3MgPSBTZW5kUmVxdWVzdE1lc3NhZ2UuZGVjb2RlKGFyZykgYXMgdW5rbm93biBhcyBTZW5kQXJncztcbiAgICBjb25zdCB0cmFuc2Zvcm1lZEFyZ3M6IFNlbmRBcmdzID0ge1xuICAgICAgbWVtbzogeyBtZW1vOiBCaWdJbnQoYXJncy5tZW1vLm1lbW8udG9TdHJpbmcoKSkgfSxcbiAgICAgIHBheW1lbnQ6IHsgcmVjZWl2ZXJHZXRzOiB7IGU4czogYXJncy5wYXltZW50LnJlY2VpdmVyR2V0cy5lOHMgfSB9LFxuICAgICAgbWF4RmVlOiB7IGU4czogYXJncy5tYXhGZWUuZThzIH0sXG4gICAgICB0bzogeyBoYXNoOiBCdWZmZXIuZnJvbShhcmdzLnRvLmhhc2gpIH0sXG4gICAgICBjcmVhdGVkQXRUaW1lOiB7IHRpbWVzdGFtcE5hbm9zOiBCaWdOdW1iZXIoYXJncy5jcmVhdGVkQXRUaW1lLnRpbWVzdGFtcE5hbm9zLnRvU3RyaW5nKCkpLnRvTnVtYmVyKCkgfSxcbiAgICB9O1xuICAgIHJldHVybiB0cmFuc2Zvcm1lZEFyZ3M7XG4gIH1cblxuICBhc3luYyB0b0FyZyhhcmdzOiBTZW5kQXJncyk6IFByb21pc2U8VWludDhBcnJheT4ge1xuICAgIGNvbnN0IHJvb3QgPSBwcm90b2J1Zi5wYXJzZShwcm90b0RlZmluaXRpb24pLnJvb3Q7XG4gICAgY29uc3QgU2VuZFJlcXVlc3RNZXNzYWdlID0gcm9vdC5sb29rdXBUeXBlKCdTZW5kUmVxdWVzdCcpO1xuICAgIGNvbnN0IGVyck1zZyA9IFNlbmRSZXF1ZXN0TWVzc2FnZS52ZXJpZnkoYXJncyk7XG4gICAgaWYgKGVyck1zZykgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG4gICAgY29uc3QgbWVzc2FnZSA9IFNlbmRSZXF1ZXN0TWVzc2FnZS5jcmVhdGUoYXJncyk7XG4gICAgcmV0dXJuIFNlbmRSZXF1ZXN0TWVzc2FnZS5lbmNvZGUobWVzc2FnZSkuZmluaXNoKCk7XG4gIH1cblxuICBnZXRBY2NvdW50SWRQcmVmaXgoKTogQnVmZmVyPEFycmF5QnVmZmVyPiB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKFsweDBhLCAuLi5CdWZmZXIuZnJvbSgnYWNjb3VudC1pZCcpXSk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEJsb2NrSWQoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgLy8gSUNQIGJsb2NrIGhhc2hlcyBhcmUgNjQtY2hhcmFjdGVyIGhleGFkZWNpbWFsIHN0cmluZ3NcbiAgICByZXR1cm4gdGhpcy5pc1ZhbGlkSGFzaChoYXNoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBJQ1AgaGFzaFxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaGFzaCAtIHN0cmluZyB0byB2YWxpZGF0ZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGlzVmFsaWRIYXNoKGhhc2g6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgaGFzaCA9PT0gJ3N0cmluZycgJiYgL15bMC05YS1mQS1GXXs2NH0kLy50ZXN0KGhhc2gpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWRIYXNoKHR4SWQpO1xuICB9XG5cbiAgZ2V0U2lnbmF0dXJlcyhwYXlsb2Fkc0RhdGE6IFBheWxvYWRzRGF0YSwgc2VuZGVyUHVibGljS2V5OiBzdHJpbmcsIHNlbmRlclByaXZhdGVLZXk6IHN0cmluZyk6IFNpZ25hdHVyZXNbXSB7XG4gICAgcmV0dXJuIHBheWxvYWRzRGF0YS5wYXlsb2Fkcy5tYXAoKHBheWxvYWQpID0+ICh7XG4gICAgICBzaWduaW5nX3BheWxvYWQ6IHBheWxvYWQsXG4gICAgICBzaWduYXR1cmVfdHlwZTogcGF5bG9hZC5zaWduYXR1cmVfdHlwZSxcbiAgICAgIHB1YmxpY19rZXk6IHtcbiAgICAgICAgaGV4X2J5dGVzOiBzZW5kZXJQdWJsaWNLZXksXG4gICAgICAgIGN1cnZlX3R5cGU6IEN1cnZlVHlwZS5TRUNQMjU2SzEsXG4gICAgICB9LFxuICAgICAgaGV4X2J5dGVzOiB0aGlzLnNpZ25QYXlsb2FkKHNlbmRlclByaXZhdGVLZXksIHBheWxvYWQuaGV4X2J5dGVzKSxcbiAgICB9KSk7XG4gIH1cblxuICBzaWduUGF5bG9hZCA9IChwcml2YXRlS2V5OiBzdHJpbmcsIHBheWxvYWRIZXg6IHN0cmluZyk6IHN0cmluZyA9PiB7XG4gICAgY29uc3QgcHJpdmF0ZUtleUJ5dGVzID0gQnVmZmVyLmZyb20ocHJpdmF0ZUtleSwgJ2hleCcpO1xuICAgIGNvbnN0IHBheWxvYWRIYXNoID0gY3J5cHRvLmNyZWF0ZUhhc2goJ3NoYTI1NicpLnVwZGF0ZShCdWZmZXIuZnJvbShwYXlsb2FkSGV4LCAnaGV4JykpLmRpZ2VzdCgnaGV4Jyk7XG4gICAgY29uc3Qgc2lnbmF0dXJlID0gc2VjcDI1NmsxLnNpZ24ocGF5bG9hZEhhc2gsIHByaXZhdGVLZXlCeXRlcyk7XG4gICAgY29uc3QgciA9IEJ1ZmZlci5mcm9tKHNpZ25hdHVyZS5yLnRvU3RyaW5nKDE2KS5wYWRTdGFydCg2NCwgJzAnKSwgJ2hleCcpO1xuICAgIGNvbnN0IHMgPSBCdWZmZXIuZnJvbShzaWduYXR1cmUucy50b1N0cmluZygxNikucGFkU3RhcnQoNjQsICcwJyksICdoZXgnKTtcbiAgICByZXR1cm4gQnVmZmVyLmNvbmNhdChbciwgc10pLnRvU3RyaW5nKCdoZXgnKTtcbiAgfTtcbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcbmV4cG9ydCBkZWZhdWx0IHV0aWxzO1xuIl19
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitgo/sdk-coin-icp",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "BitGo SDK coin library for Internet Computer",
|
|
5
5
|
"main": "./dist/src/index.js",
|
|
6
6
|
"types": "./dist/src/index.d.ts",
|
|
@@ -40,9 +40,9 @@
|
|
|
40
40
|
]
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@bitgo/sdk-core": "^
|
|
43
|
+
"@bitgo/sdk-core": "^32.0.0",
|
|
44
44
|
"@bitgo/secp256k1": "^1.3.3",
|
|
45
|
-
"@bitgo/statics": "^51.
|
|
45
|
+
"@bitgo/statics": "^51.6.0",
|
|
46
46
|
"@dfinity/agent": "^2.2.0",
|
|
47
47
|
"@dfinity/candid": "^2.2.0",
|
|
48
48
|
"@dfinity/principal": "^2.2.0",
|
|
@@ -54,8 +54,8 @@
|
|
|
54
54
|
"protobufjs": "^7.2.5"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@bitgo/sdk-api": "^1.61.
|
|
58
|
-
"@bitgo/sdk-test": "^8.0.
|
|
57
|
+
"@bitgo/sdk-api": "^1.61.3",
|
|
58
|
+
"@bitgo/sdk-test": "^8.0.78"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "7568440035a29ba97b41f8f5e4c05d048ce81f68"
|
|
61
61
|
}
|