@bitgo/sdk-coin-tempo 1.2.0 → 1.3.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.
@@ -47,6 +47,48 @@ export declare class Tip20Transaction extends BaseTransaction {
47
47
  s: Hex;
48
48
  yParity: number;
49
49
  }): Promise<Hex>;
50
+ /**
51
+ * Encode calls as RLP tuples for atomic batch execution
52
+ * @returns Array of [to, value, data] tuples
53
+ * @private
54
+ */
55
+ private encodeCallsAsTuples;
56
+ /**
57
+ * Encode EIP-2930 access list as RLP tuples
58
+ * @returns Array of [address, storageKeys[]] tuples
59
+ * @private
60
+ */
61
+ private encodeAccessList;
62
+ /**
63
+ * Build base RLP data array per Tempo EIP-7702 specification
64
+ * @param callsTuples Encoded calls
65
+ * @param accessTuples Encoded access list
66
+ * @returns RLP-ready array of transaction fields
67
+ * @private
68
+ */
69
+ private buildBaseRlpData;
70
+ /**
71
+ * Encode secp256k1 signature as 65-byte envelope
72
+ * @param signature ECDSA signature components
73
+ * @returns Hex string of concatenated r (32) + s (32) + v (1) bytes
74
+ * @private
75
+ */
76
+ private encodeSignature;
77
+ /**
78
+ * RLP encode and prepend transaction type byte
79
+ * @param rlpData Transaction fields array
80
+ * @returns Hex string with 0x76 prefix
81
+ * @private
82
+ */
83
+ private rlpEncodeWithTypePrefix;
84
+ /**
85
+ * Serialize Tempo AA transaction (type 0x76) per EIP-7702 specification
86
+ * Format: 0x76 || RLP([chainId, fees, gas, calls, accessList, nonce fields, feeToken, sponsorship, authList, signature?])
87
+ * @param signature Optional ECDSA signature (omit for unsigned transactions)
88
+ * @returns RLP-encoded transaction hex string
89
+ * @private
90
+ */
91
+ private serializeTransaction;
50
92
  getOperations(): Tip20Operation[];
51
93
  getFeeToken(): Address | undefined;
52
94
  getOperationCount(): number;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAyB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,KAAK,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnD,yDAAyD;IACzD,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,UAAU,CAAC,CAAsC;gBAE7C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,UAAU,GAAE,cAAc,EAAO;IAMlH,IAAI,IAAI,IAAI,eAAe,CAE1B;IAED,OAAO,IAAI,OAAO;IAIZ,SAAS,CAAC,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAK9E,aAAa,IAAI,cAAc,EAAE;IAIjC,WAAW,IAAI,OAAO,GAAG,SAAS;IAIlC,iBAAiB,IAAI,MAAM;IAI3B,OAAO,IAAI,OAAO;IAIlB,YAAY,CAAC,SAAS,EAAE;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIlE,YAAY,IAAI;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAI/D,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAe3B,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1C,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,OAAO;CAGxB"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAyB,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,2CAA2C;IAC3C,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,KAAK,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnD,yDAAyD;IACzD,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;IACvB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,gBAAiB,SAAQ,eAAe;IACnD,OAAO,CAAC,SAAS,CAA0B;IAC3C,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,UAAU,CAAC,CAAsC;gBAE7C,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,UAAU,GAAE,cAAc,EAAO;IAMlH,IAAI,IAAI,IAAI,eAAe,CAE1B;IAED,OAAO,IAAI,OAAO;IAIZ,SAAS,CAAC,SAAS,CAAC,EAAE;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAK9E;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;;OAMG;IACH,OAAO,CAAC,gBAAgB;IAkBxB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAUvB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAS/B;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAY5B,aAAa,IAAI,cAAc,EAAE;IAIjC,WAAW,IAAI,OAAO,GAAG,SAAS;IAIlC,iBAAiB,IAAI,MAAM;IAI3B,OAAO,IAAI,OAAO;IAIlB,YAAY,CAAC,SAAS,EAAE;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAIlE,YAAY,IAAI;QAAE,CAAC,EAAE,GAAG,CAAC;QAAC,CAAC,EAAE,GAAG,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;IAI/D,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAe3B,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAI1C,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,QAAQ,IAAI,MAAM;IAIlB,YAAY,IAAI,OAAO;CAGxB"}
@@ -8,6 +8,7 @@
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.Tip20Transaction = void 0;
10
10
  const sdk_core_1 = require("@bitgo/sdk-core");
11
+ const ethers_1 = require("ethers");
11
12
  class Tip20Transaction extends sdk_core_1.BaseTransaction {
12
13
  constructor(_coinConfig, request, operations = []) {
13
14
  super(_coinConfig);
@@ -21,8 +22,98 @@ class Tip20Transaction extends sdk_core_1.BaseTransaction {
21
22
  return true;
22
23
  }
23
24
  async serialize(signature) {
24
- // TODO: Implement EIP-7702 transaction serialization with ethers.js
25
- throw new sdk_core_1.ParseTransactionError('Transaction serialization not yet implemented');
25
+ const sig = signature || this._signature;
26
+ return this.serializeTransaction(sig);
27
+ }
28
+ /**
29
+ * Encode calls as RLP tuples for atomic batch execution
30
+ * @returns Array of [to, value, data] tuples
31
+ * @private
32
+ */
33
+ encodeCallsAsTuples() {
34
+ return this.txRequest.calls.map((call) => [
35
+ call.to,
36
+ call.value ? ethers_1.ethers.utils.hexlify(call.value) : '0x',
37
+ call.data,
38
+ ]);
39
+ }
40
+ /**
41
+ * Encode EIP-2930 access list as RLP tuples
42
+ * @returns Array of [address, storageKeys[]] tuples
43
+ * @private
44
+ */
45
+ encodeAccessList() {
46
+ return (this.txRequest.accessList ?? []).map((item) => [item.address, item.storageKeys || []]);
47
+ }
48
+ /**
49
+ * Build base RLP data array per Tempo EIP-7702 specification
50
+ * @param callsTuples Encoded calls
51
+ * @param accessTuples Encoded access list
52
+ * @returns RLP-ready array of transaction fields
53
+ * @private
54
+ */
55
+ buildBaseRlpData(callsTuples, accessTuples) {
56
+ return [
57
+ ethers_1.ethers.utils.hexlify(this.txRequest.chainId),
58
+ this.txRequest.maxPriorityFeePerGas ? ethers_1.ethers.utils.hexlify(this.txRequest.maxPriorityFeePerGas.toString()) : '0x',
59
+ ethers_1.ethers.utils.hexlify(this.txRequest.maxFeePerGas.toString()),
60
+ ethers_1.ethers.utils.hexlify(this.txRequest.gas.toString()),
61
+ callsTuples,
62
+ accessTuples,
63
+ '0x', // nonceKey (reserved for 2D nonce system)
64
+ ethers_1.ethers.utils.hexlify(this.txRequest.nonce),
65
+ '0x', // validBefore (reserved for time bounds)
66
+ '0x', // validAfter (reserved for time bounds)
67
+ this.txRequest.feeToken || '0x',
68
+ '0x', // feePayerSignature (reserved for sponsorship)
69
+ [], // authorizationList (EIP-7702)
70
+ ];
71
+ }
72
+ /**
73
+ * Encode secp256k1 signature as 65-byte envelope
74
+ * @param signature ECDSA signature components
75
+ * @returns Hex string of concatenated r (32) + s (32) + v (1) bytes
76
+ * @private
77
+ */
78
+ encodeSignature(signature) {
79
+ const v = signature.yParity + 27;
80
+ const signatureBytes = ethers_1.ethers.utils.concat([
81
+ ethers_1.ethers.utils.zeroPad(signature.r, 32),
82
+ ethers_1.ethers.utils.zeroPad(signature.s, 32),
83
+ ethers_1.ethers.utils.hexlify(v),
84
+ ]);
85
+ return ethers_1.ethers.utils.hexlify(signatureBytes);
86
+ }
87
+ /**
88
+ * RLP encode and prepend transaction type byte
89
+ * @param rlpData Transaction fields array
90
+ * @returns Hex string with 0x76 prefix
91
+ * @private
92
+ */
93
+ rlpEncodeWithTypePrefix(rlpData) {
94
+ try {
95
+ const encoded = ethers_1.ethers.utils.RLP.encode(rlpData);
96
+ return ('0x76' + encoded.slice(2));
97
+ }
98
+ catch (error) {
99
+ throw new sdk_core_1.ParseTransactionError(`Failed to RLP encode transaction: ${error}`);
100
+ }
101
+ }
102
+ /**
103
+ * Serialize Tempo AA transaction (type 0x76) per EIP-7702 specification
104
+ * Format: 0x76 || RLP([chainId, fees, gas, calls, accessList, nonce fields, feeToken, sponsorship, authList, signature?])
105
+ * @param signature Optional ECDSA signature (omit for unsigned transactions)
106
+ * @returns RLP-encoded transaction hex string
107
+ * @private
108
+ */
109
+ serializeTransaction(signature) {
110
+ const callsTuples = this.encodeCallsAsTuples();
111
+ const accessTuples = this.encodeAccessList();
112
+ const rlpData = this.buildBaseRlpData(callsTuples, accessTuples);
113
+ if (signature) {
114
+ rlpData.push(this.encodeSignature(signature));
115
+ }
116
+ return this.rlpEncodeWithTypePrefix(rlpData);
26
117
  }
27
118
  getOperations() {
28
119
  return [...this._operations];
@@ -70,4 +161,4 @@ class Tip20Transaction extends sdk_core_1.BaseTransaction {
70
161
  }
71
162
  }
72
163
  exports.Tip20Transaction = Tip20Transaction;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBRUgsOENBQTBGO0FBNkIxRixNQUFhLGdCQUFpQixTQUFRLDBCQUFlO0lBS25ELFlBQVksV0FBaUMsRUFBRSxPQUFnQyxFQUFFLGFBQStCLEVBQUU7UUFDaEgsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDTixPQUFPLDBCQUFlLENBQUMsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxTQUErQztRQUM3RCxvRUFBb0U7UUFDcEUsTUFBTSxJQUFJLGdDQUFxQixDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVELGFBQWE7UUFDWCxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUNyQyxDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQThDO1FBQ3pELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO0lBQzlCLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUk7WUFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTztZQUMvQixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLO1lBQzNCLFlBQVksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUU7WUFDcEQsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUU7WUFDcEUsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUN0QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM1QixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDM0IsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNGO0FBOUVELDRDQThFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVElQLTIwIFRyYW5zYWN0aW9uXG4gKlxuICogUmVwcmVzZW50cyBhIFRlbXBvIEFjY291bnQgQWJzdHJhY3Rpb24gKEFBKSB0cmFuc2FjdGlvbiAodHlwZSAweDc2KVxuICogU3VwcG9ydHMgc2luZ2xlIG9yIGJhdGNoIFRJUC0yMCB0b2tlbiB0cmFuc2ZlcnMgd2l0aCBtZW1vc1xuICovXG5cbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbiwgUGFyc2VUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEFkZHJlc3MsIEhleCwgVGlwMjBPcGVyYXRpb24gfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBUSVAtMjAgVHJhbnNhY3Rpb24gUmVxdWVzdCBTdHJ1Y3R1cmVcbiAqIFJlcHJlc2VudHMgdGhlIHJhdyB0cmFuc2FjdGlvbiBkYXRhIGZvciBUZW1wbyBBY2NvdW50IEFic3RyYWN0aW9uIChFSVAtNzcwMilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaXAyMFRyYW5zYWN0aW9uUmVxdWVzdCB7XG4gIC8qKiBUcmFuc2FjdGlvbiB0eXBlICgweDc2IGZvciBUZW1wbyBBQSkgKi9cbiAgdHlwZTogbnVtYmVyIHwgc3RyaW5nO1xuICAvKiogQ2hhaW4gSUQgZm9yIHRoZSBUZW1wbyBuZXR3b3JrICovXG4gIGNoYWluSWQ6IG51bWJlcjtcbiAgLyoqIFRyYW5zYWN0aW9uIG5vbmNlICovXG4gIG5vbmNlOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIGZlZSBwZXIgZ2FzIChFSVAtMTU1OSkgKi9cbiAgbWF4RmVlUGVyR2FzOiBiaWdpbnQ7XG4gIC8qKiBNYXhpbXVtIHByaW9yaXR5IGZlZSBwZXIgZ2FzIChFSVAtMTU1OSkgKi9cbiAgbWF4UHJpb3JpdHlGZWVQZXJHYXM6IGJpZ2ludDtcbiAgLyoqIEdhcyBsaW1pdCBmb3IgdGhlIHRyYW5zYWN0aW9uICovXG4gIGdhczogYmlnaW50O1xuICAvKiogQXJyYXkgb2YgY2FsbHMgdG8gZXhlY3V0ZSBpbiB0aGlzIHRyYW5zYWN0aW9uICovXG4gIGNhbGxzOiB7IHRvOiBBZGRyZXNzOyBkYXRhOiBIZXg7IHZhbHVlOiBiaWdpbnQgfVtdO1xuICAvKiogQWNjZXNzIGxpc3QgKG9wdGlvbmFsLCB0eXBpY2FsbHkgZW1wdHkgZm9yIFRJUC0yMCkgKi9cbiAgYWNjZXNzTGlzdD86IHVua25vd25bXTtcbiAgLyoqIE9wdGlvbmFsIFRJUC0yMCB0b2tlbiB0byB1c2UgZm9yIHBheWluZyBmZWVzICovXG4gIGZlZVRva2VuPzogQWRkcmVzcztcbn1cblxuZXhwb3J0IGNsYXNzIFRpcDIwVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIHR4UmVxdWVzdDogVGlwMjBUcmFuc2FjdGlvblJlcXVlc3Q7XG4gIHByaXZhdGUgX29wZXJhdGlvbnM6IFRpcDIwT3BlcmF0aW9uW107XG4gIHByaXZhdGUgX3NpZ25hdHVyZT86IHsgcjogSGV4OyBzOiBIZXg7IHlQYXJpdHk6IG51bWJlciB9O1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPiwgcmVxdWVzdDogVGlwMjBUcmFuc2FjdGlvblJlcXVlc3QsIG9wZXJhdGlvbnM6IFRpcDIwT3BlcmF0aW9uW10gPSBbXSkge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLnR4UmVxdWVzdCA9IHJlcXVlc3Q7XG4gICAgdGhpcy5fb3BlcmF0aW9ucyA9IG9wZXJhdGlvbnM7XG4gIH1cblxuICBnZXQgdHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgfVxuXG4gIGNhblNpZ24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBzZXJpYWxpemUoc2lnbmF0dXJlPzogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiBQcm9taXNlPEhleD4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCBFSVAtNzcwMiB0cmFuc2FjdGlvbiBzZXJpYWxpemF0aW9uIHdpdGggZXRoZXJzLmpzXG4gICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcignVHJhbnNhY3Rpb24gc2VyaWFsaXphdGlvbiBub3QgeWV0IGltcGxlbWVudGVkJyk7XG4gIH1cblxuICBnZXRPcGVyYXRpb25zKCk6IFRpcDIwT3BlcmF0aW9uW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5fb3BlcmF0aW9uc107XG4gIH1cblxuICBnZXRGZWVUb2tlbigpOiBBZGRyZXNzIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50eFJlcXVlc3QuZmVlVG9rZW47XG4gIH1cblxuICBnZXRPcGVyYXRpb25Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5jYWxscy5sZW5ndGg7XG4gIH1cblxuICBpc0JhdGNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5jYWxscy5sZW5ndGggPiAxO1xuICB9XG5cbiAgc2V0U2lnbmF0dXJlKHNpZ25hdHVyZTogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmUgPSBzaWduYXR1cmU7XG4gIH1cblxuICBnZXRTaWduYXR1cmUoKTogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zaWduYXR1cmU7XG4gIH1cblxuICB0b0pzb24oKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLnR4UmVxdWVzdC50eXBlLFxuICAgICAgY2hhaW5JZDogdGhpcy50eFJlcXVlc3QuY2hhaW5JZCxcbiAgICAgIG5vbmNlOiB0aGlzLnR4UmVxdWVzdC5ub25jZSxcbiAgICAgIG1heEZlZVBlckdhczogdGhpcy50eFJlcXVlc3QubWF4RmVlUGVyR2FzLnRvU3RyaW5nKCksXG4gICAgICBtYXhQcmlvcml0eUZlZVBlckdhczogdGhpcy50eFJlcXVlc3QubWF4UHJpb3JpdHlGZWVQZXJHYXMudG9TdHJpbmcoKSxcbiAgICAgIGdhczogdGhpcy50eFJlcXVlc3QuZ2FzLnRvU3RyaW5nKCksXG4gICAgICBjYWxsQ291bnQ6IHRoaXMudHhSZXF1ZXN0LmNhbGxzLmxlbmd0aCxcbiAgICAgIGZlZVRva2VuOiB0aGlzLnR4UmVxdWVzdC5mZWVUb2tlbixcbiAgICAgIG9wZXJhdGlvbnM6IHRoaXMuX29wZXJhdGlvbnMsXG4gICAgICBzaWduYXR1cmU6IHRoaXMuX3NpZ25hdHVyZSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgdG9Ccm9hZGNhc3RGb3JtYXQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXJpYWxpemUodGhpcy5fc2lnbmF0dXJlKTtcbiAgfVxuXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAncGVuZGluZyc7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnRvSnNvbigpLCBudWxsLCAyKTtcbiAgfVxuXG4gIGNhbkJyb2FkY2FzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eFJlcXVlc3QuY2FsbHMubGVuZ3RoID4gMCAmJiB0aGlzLnR4UmVxdWVzdC5jaGFpbklkID4gMDtcbiAgfVxufVxuIl19
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBRUgsOENBQTBGO0FBRTFGLG1DQUFnQztBQTRCaEMsTUFBYSxnQkFBaUIsU0FBUSwwQkFBZTtJQUtuRCxZQUFZLFdBQWlDLEVBQUUsT0FBZ0MsRUFBRSxhQUErQixFQUFFO1FBQ2hILEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBK0M7UUFDN0QsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxtQkFBbUI7UUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxFQUFFO1lBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3BELElBQUksQ0FBQyxJQUFJO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0I7UUFDdEIsT0FBTyxD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QUFJLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFDakMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzVCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsT0FBTyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLEVBQUU7UUFDSixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUN2RSxDQUFDO0NBQ0Y7QUEvS0QsNENBK0tDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUSVAtMjAgVHJhbnNhY3Rpb25cbiAqXG4gKiBSZXByZXNlbnRzIGEgVGVtcG8gQWNjb3VudCBBYnN0cmFjdGlvbiAoQUEpIHRyYW5zYWN0aW9uICh0eXBlIDB4NzYpXG4gKiBTdXBwb3J0cyBzaW5nbGUgb3IgYmF0Y2ggVElQLTIwIHRva2VuIHRyYW5zZmVycyB3aXRoIG1lbW9zXG4gKi9cblxuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uLCBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgZXRoZXJzIH0gZnJvbSAnZXRoZXJzJztcbmltcG9ydCB7IEFkZHJlc3MsIEhleCwgVGlwMjBPcGVyYXRpb24gfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBUSVAtMjAgVHJhbnNhY3Rpb24gUmVxdWVzdCBTdHJ1Y3R1cmVcbiAqIFJlcHJlc2VudHMgdGhlIHJhdyB0cmFuc2FjdGlvbiBkYXRhIGZvciBUZW1wbyBBY2NvdW50IEFic3RyYWN0aW9uIChFSVAtNzcwMilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaXAyMFRyYW5zYWN0aW9uUmVxdWVzdCB7XG4gIC8qKiBUcmFuc2FjdGlvbiB0eXBlICgweDc2IGZvciBUZW1wbyBBQSkgKi9cbiAgdHlwZTogbnVtYmVyIHwgc3RyaW5nO1xuICAvKiogQ2hhaW4gSUQgZm9yIHRoZSBUZW1wbyBuZXR3b3JrICovXG4gIGNoYWluSWQ6IG51bWJlcjtcbiAgLyoqIFRyYW5zYWN0aW9uIG5vbmNlICovXG4gIG5vbmNlOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIGZlZSBwZXIgZ2FzIChFSVAtMTU1OSkgKi9cbiAgbWF4RmVlUGVyR2FzOiBiaWdpbnQ7XG4gIC8qKiBNYXhpbXVtIHByaW9yaXR5IGZlZSBwZXIgZ2FzIChFSVAtMTU1OSkgKi9cbiAgbWF4UHJpb3JpdHlGZWVQZXJHYXM6IGJpZ2ludDtcbiAgLyoqIEdhcyBsaW1pdCBmb3IgdGhlIHRyYW5zYWN0aW9uICovXG4gIGdhczogYmlnaW50O1xuICAvKiogQXJyYXkgb2YgY2FsbHMgdG8gZXhlY3V0ZSBpbiB0aGlzIHRyYW5zYWN0aW9uICovXG4gIGNhbGxzOiB7IHRvOiBBZGRyZXNzOyBkYXRhOiBIZXg7IHZhbHVlOiBiaWdpbnQgfVtdO1xuICAvKiogQWNjZXNzIGxpc3QgKG9wdGlvbmFsLCB0eXBpY2FsbHkgZW1wdHkgZm9yIFRJUC0yMCkgKi9cbiAgYWNjZXNzTGlzdD86IHVua25vd25bXTtcbiAgLyoqIE9wdGlvbmFsIFRJUC0yMCB0b2tlbiB0byB1c2UgZm9yIHBheWluZyBmZWVzICovXG4gIGZlZVRva2VuPzogQWRkcmVzcztcbn1cblxuZXhwb3J0IGNsYXNzIFRpcDIwVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIHR4UmVxdWVzdDogVGlwMjBUcmFuc2FjdGlvblJlcXVlc3Q7XG4gIHByaXZhdGUgX29wZXJhdGlvbnM6IFRpcDIwT3BlcmF0aW9uW107XG4gIHByaXZhdGUgX3NpZ25hdHVyZT86IHsgcjogSGV4OyBzOiBIZXg7IHlQYXJpdHk6IG51bWJlciB9O1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPiwgcmVxdWVzdDogVGlwMjBUcmFuc2FjdGlvblJlcXVlc3QsIG9wZXJhdGlvbnM6IFRpcDIwT3BlcmF0aW9uW10gPSBbXSkge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLnR4UmVxdWVzdCA9IHJlcXVlc3Q7XG4gICAgdGhpcy5fb3BlcmF0aW9ucyA9IG9wZXJhdGlvbnM7XG4gIH1cblxuICBnZXQgdHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgfVxuXG4gIGNhblNpZ24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBzZXJpYWxpemUoc2lnbmF0dXJlPzogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiBQcm9taXNlPEhleD4ge1xuICAgIGNvbnN0IHNpZyA9IHNpZ25hdHVyZSB8fCB0aGlzLl9zaWduYXR1cmU7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplVHJhbnNhY3Rpb24oc2lnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgY2FsbHMgYXMgUkxQIHR1cGxlcyBmb3IgYXRvbWljIGJhdGNoIGV4ZWN1dGlvblxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBbdG8sIHZhbHVlLCBkYXRhXSB0dXBsZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZW5jb2RlQ2FsbHNBc1R1cGxlcygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMudHhSZXF1ZXN0LmNhbGxzLm1hcCgoY2FsbCkgPT4gW1xuICAgICAgY2FsbC50byxcbiAgICAgIGNhbGwudmFsdWUgPyBldGhlcnMudXRpbHMuaGV4bGlmeShjYWxsLnZhbHVlKSA6ICcweCcsXG4gICAgICBjYWxsLmRhdGEsXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIEVJUC0yOTMwIGFjY2VzcyBsaXN0IGFzIFJMUCB0dXBsZXNcbiAgICogQHJldHVybnMgQXJyYXkgb2YgW2FkZHJlc3MsIHN0b3JhZ2VLZXlzW11dIHR1cGxlc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBlbmNvZGVBY2Nlc3NMaXN0KCk6IGFueVtdIHtcbiAgICByZXR1cm4gKHRoaXMudHhSZXF1ZXN0LmFjY2Vzc0xpc3QgPz8gW10pLm1hcCgoaXRlbTogYW55KSA9PiBbaXRlbS5hZGRyZXNzLCBpdGVtLnN0b3JhZ2VLZXlzIHx8IFtdXSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYmFzZSBSTFAgZGF0YSBhcnJheSBwZXIgVGVtcG8gRUlQLTc3MDIgc3BlY2lmaWNhdGlvblxuICAgKiBAcGFyYW0gY2FsbHNUdXBsZXMgRW5jb2RlZCBjYWxsc1xuICAgKiBAcGFyYW0gYWNjZXNzVHVwbGVzIEVuY29kZWQgYWNjZXNzIGxpc3RcbiAgICogQHJldHVybnMgUkxQLXJlYWR5IGFycmF5IG9mIHRyYW5zYWN0aW9uIGZpZWxkc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEJhc2VSbHBEYXRhKGNhbGxzVHVwbGVzOiBhbnlbXSwgYWNjZXNzVHVwbGVzOiBhbnlbXSk6IGFueVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgZXRoZXJzLnV0aWxzLmhleGxpZnkodGhpcy50eFJlcXVlc3QuY2hhaW5JZCksXG4gICAgICB0aGlzLnR4UmVxdWVzdC5tYXhQcmlvcml0eUZlZVBlckdhcyA/IGV0aGVycy51dGlscy5oZXhsaWZ5KHRoaXMudHhSZXF1ZXN0Lm1heFByaW9yaXR5RmVlUGVyR2FzLnRvU3RyaW5nKCkpIDogJzB4JyxcbiAgICAgIGV0aGVycy51dGlscy5oZXhsaWZ5KHRoaXMudHhSZXF1ZXN0Lm1heEZlZVBlckdhcy50b1N0cmluZygpKSxcbiAgICAgIGV0aGVycy51dGlscy5oZXhsaWZ5KHRoaXMudHhSZXF1ZXN0Lmdhcy50b1N0cmluZygpKSxcbiAgICAgIGNhbGxzVHVwbGVzLFxuICAgICAgYWNjZXNzVHVwbGVzLFxuICAgICAgJzB4JywgLy8gbm9uY2VLZXkgKHJlc2VydmVkIGZvciAyRCBub25jZSBzeXN0ZW0pXG4gICAgICBldGhlcnMudXRpbHMuaGV4bGlmeSh0aGlzLnR4UmVxdWVzdC5ub25jZSksXG4gICAgICAnMHgnLCAvLyB2YWxpZEJlZm9yZSAocmVzZXJ2ZWQgZm9yIHRpbWUgYm91bmRzKVxuICAgICAgJzB4JywgLy8gdmFsaWRBZnRlciAocmVzZXJ2ZWQgZm9yIHRpbWUgYm91bmRzKVxuICAgICAgdGhpcy50eFJlcXVlc3QuZmVlVG9rZW4gfHwgJzB4JyxcbiAgICAgICcweCcsIC8vIGZlZVBheWVyU2lnbmF0dXJlIChyZXNlcnZlZCBmb3Igc3BvbnNvcnNoaXApXG4gICAgICBbXSwgLy8gYXV0aG9yaXphdGlvbkxpc3QgKEVJUC03NzAyKVxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIHNlY3AyNTZrMSBzaWduYXR1cmUgYXMgNjUtYnl0ZSBlbnZlbG9wZVxuICAgKiBAcGFyYW0gc2lnbmF0dXJlIEVDRFNBIHNpZ25hdHVyZSBjb21wb25lbnRzXG4gICAqIEByZXR1cm5zIEhleCBzdHJpbmcgb2YgY29uY2F0ZW5hdGVkIHIgKDMyKSArIHMgKDMyKSArIHYgKDEpIGJ5dGVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGVuY29kZVNpZ25hdHVyZShzaWduYXR1cmU6IHsgcjogSGV4OyBzOiBIZXg7IHlQYXJpdHk6IG51bWJlciB9KTogc3RyaW5nIHtcbiAgICBjb25zdCB2ID0gc2lnbmF0dXJlLnlQYXJpdHkgKyAyNztcbiAgICBjb25zdCBzaWduYXR1cmVCeXRlcyA9IGV0aGVycy51dGlscy5jb25jYXQoW1xuICAgICAgZXRoZXJzLnV0aWxzLnplcm9QYWQoc2lnbmF0dXJlLnIsIDMyKSxcbiAgICAgIGV0aGVycy51dGlscy56ZXJvUGFkKHNpZ25hdHVyZS5zLCAzMiksXG4gICAgICBldGhlcnMudXRpbHMuaGV4bGlmeSh2KSxcbiAgICBdKTtcbiAgICByZXR1cm4gZXRoZXJzLnV0aWxzLmhleGxpZnkoc2lnbmF0dXJlQnl0ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJMUCBlbmNvZGUgYW5kIHByZXBlbmQgdHJhbnNhY3Rpb24gdHlwZSBieXRlXG4gICAqIEBwYXJhbSBybHBEYXRhIFRyYW5zYWN0aW9uIGZpZWxkcyBhcnJheVxuICAgKiBAcmV0dXJucyBIZXggc3RyaW5nIHdpdGggMHg3NiBwcmVmaXhcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmxwRW5jb2RlV2l0aFR5cGVQcmVmaXgocmxwRGF0YTogYW55W10pOiBIZXgge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBlbmNvZGVkID0gZXRoZXJzLnV0aWxzLlJMUC5lbmNvZGUocmxwRGF0YSk7XG4gICAgICByZXR1cm4gKCcweDc2JyArIGVuY29kZWQuc2xpY2UoMikpIGFzIEhleDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcihgRmFpbGVkIHRvIFJMUCBlbmNvZGUgdHJhbnNhY3Rpb246ICR7ZXJyb3J9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSBUZW1wbyBBQSB0cmFuc2FjdGlvbiAodHlwZSAweDc2KSBwZXIgRUlQLTc3MDIgc3BlY2lmaWNhdGlvblxuICAgKiBGb3JtYXQ6IDB4NzYgfHwgUkxQKFtjaGFpbklkLCBmZWVzLCBnYXMsIGNhbGxzLCBhY2Nlc3NMaXN0LCBub25jZSBmaWVsZHMsIGZlZVRva2VuLCBzcG9uc29yc2hpcCwgYXV0aExpc3QsIHNpZ25hdHVyZT9dKVxuICAgKiBAcGFyYW0gc2lnbmF0dXJlIE9wdGlvbmFsIEVDRFNBIHNpZ25hdHVyZSAob21pdCBmb3IgdW5zaWduZWQgdHJhbnNhY3Rpb25zKVxuICAgKiBAcmV0dXJucyBSTFAtZW5jb2RlZCB0cmFuc2FjdGlvbiBoZXggc3RyaW5nXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNlcmlhbGl6ZVRyYW5zYWN0aW9uKHNpZ25hdHVyZT86IHsgcjogSGV4OyBzOiBIZXg7IHlQYXJpdHk6IG51bWJlciB9KTogSGV4IHtcbiAgICBjb25zdCBjYWxsc1R1cGxlcyA9IHRoaXMuZW5jb2RlQ2FsbHNBc1R1cGxlcygpO1xuICAgIGNvbnN0IGFjY2Vzc1R1cGxlcyA9IHRoaXMuZW5jb2RlQWNjZXNzTGlzdCgpO1xuICAgIGNvbnN0IHJscERhdGEgPSB0aGlzLmJ1aWxkQmFzZVJscERhdGEoY2FsbHNUdXBsZXMsIGFjY2Vzc1R1cGxlcyk7XG5cbiAgICBpZiAoc2lnbmF0dXJlKSB7XG4gICAgICBybHBEYXRhLnB1c2godGhpcy5lbmNvZGVTaWduYXR1cmUoc2lnbmF0dXJlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmxwRW5jb2RlV2l0aFR5cGVQcmVmaXgocmxwRGF0YSk7XG4gIH1cblxuICBnZXRPcGVyYXRpb25zKCk6IFRpcDIwT3BlcmF0aW9uW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5fb3BlcmF0aW9uc107XG4gIH1cblxuICBnZXRGZWVUb2tlbigpOiBBZGRyZXNzIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50eFJlcXVlc3QuZmVlVG9rZW47XG4gIH1cblxuICBnZXRPcGVyYXRpb25Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5jYWxscy5sZW5ndGg7XG4gIH1cblxuICBpc0JhdGNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5jYWxscy5sZW5ndGggPiAxO1xuICB9XG5cbiAgc2V0U2lnbmF0dXJlKHNpZ25hdHVyZTogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmUgPSBzaWduYXR1cmU7XG4gIH1cblxuICBnZXRTaWduYXR1cmUoKTogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zaWduYXR1cmU7XG4gIH1cblxuICB0b0pzb24oKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLnR4UmVxdWVzdC50eXBlLFxuICAgICAgY2hhaW5JZDogdGhpcy50eFJlcXVlc3QuY2hhaW5JZCxcbiAgICAgIG5vbmNlOiB0aGlzLnR4UmVxdWVzdC5ub25jZSxcbiAgICAgIG1heEZlZVBlckdhczogdGhpcy50eFJlcXVlc3QubWF4RmVlUGVyR2FzLnRvU3RyaW5nKCksXG4gICAgICBtYXhQcmlvcml0eUZlZVBlckdhczogdGhpcy50eFJlcXVlc3QubWF4UHJpb3JpdHlGZWVQZXJHYXMudG9TdHJpbmcoKSxcbiAgICAgIGdhczogdGhpcy50eFJlcXVlc3QuZ2FzLnRvU3RyaW5nKCksXG4gICAgICBjYWxsQ291bnQ6IHRoaXMudHhSZXF1ZXN0LmNhbGxzLmxlbmd0aCxcbiAgICAgIGZlZVRva2VuOiB0aGlzLnR4UmVxdWVzdC5mZWVUb2tlbixcbiAgICAgIG9wZXJhdGlvbnM6IHRoaXMuX29wZXJhdGlvbnMsXG4gICAgICBzaWduYXR1cmU6IHRoaXMuX3NpZ25hdHVyZSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgdG9Ccm9hZGNhc3RGb3JtYXQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXJpYWxpemUodGhpcy5fc2lnbmF0dXJlKTtcbiAgfVxuXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAncGVuZGluZyc7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnRvSnNvbigpLCBudWxsLCAyKTtcbiAgfVxuXG4gIGNhbkJyb2FkY2FzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eFJlcXVlc3QuY2FsbHMubGVuZ3RoID4gMCAmJiB0aGlzLnR4UmVxdWVzdC5jaGFpbklkID4gMDtcbiAgfVxufVxuIl19
@@ -2,6 +2,7 @@
2
2
  * @prettier
3
3
  */
4
4
  import { AbstractEthLikeNewCoins, RecoverOptions, OfflineVaultTxInfo, UnsignedSweepTxMPCv2, TransactionBuilder } from '@bitgo/abstract-eth';
5
+ import type * as EthLikeCommon from '@ethereumjs/common';
5
6
  import { BaseCoin, BitGoBase, MPCAlgorithm } from '@bitgo/sdk-core';
6
7
  import { BaseCoin as StaticsBaseCoin } from '@bitgo/statics';
7
8
  export declare class Tempo extends AbstractEthLikeNewCoins {
@@ -55,9 +56,10 @@ export declare class Tempo extends AbstractEthLikeNewCoins {
55
56
  recoveryBlockchainExplorerQuery(query: Record<string, string>, apiKey?: string): Promise<Record<string, unknown>>;
56
57
  /**
57
58
  * Get transaction builder for Tempo
58
- * TODO: Implement TransactionBuilder for Tempo
59
+ * Returns a TIP-20 transaction builder for Tempo-specific operations
60
+ * @param common - Optional common chain configuration
59
61
  * @protected
60
62
  */
61
- protected getTransactionBuilder(): TransactionBuilder;
63
+ protected getTransactionBuilder(common?: EthLikeCommon.default): TransactionBuilder;
62
64
  }
63
65
  //# sourceMappingURL=tempo.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tempo.d.ts","sourceRoot":"","sources":["../../src/tempo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE7D,qBAAa,KAAM,SAAQ,uBAAuB;IAChD,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAI/E;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,wBAAwB,IAAI,OAAO;IAInC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,sBAAsB,IAAI,OAAO;IAIjC;;OAEG;IACH,wBAAwB,IAAI,OAAO;IAInC;;;OAGG;cACa,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAMpH;;;OAGG;IACG,+BAA+B,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMnC;;;;OAIG;IACH,SAAS,CAAC,qBAAqB,IAAI,kBAAkB;CAKtD"}
1
+ {"version":3,"file":"tempo.d.ts","sourceRoot":"","sources":["../../src/tempo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,uBAAuB,EACvB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAS,MAAM,gBAAgB,CAAC;AAGpE,qBAAa,KAAM,SAAQ,uBAAuB;IAChD,SAAS,aAAa,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC;IAI/E;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,eAAe,CAAC,GAAG,QAAQ;IAI1F;;OAEG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;;OAGG;IACH,wBAAwB,IAAI,OAAO;IAInC;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,sBAAsB,IAAI,OAAO;IAIjC;;OAEG;IACH,wBAAwB,IAAI,OAAO;IAInC;;;OAGG;cACa,wBAAwB,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;IAMpH;;;OAGG;IACG,+BAA+B,CACnC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAMnC;;;;;OAKG;IACH,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,OAAO,GAAG,kBAAkB;CAGpF"}
package/dist/src/tempo.js CHANGED
@@ -5,6 +5,8 @@ exports.Tempo = void 0;
5
5
  * @prettier
6
6
  */
7
7
  const abstract_eth_1 = require("@bitgo/abstract-eth");
8
+ const statics_1 = require("@bitgo/statics");
9
+ const lib_1 = require("./lib");
8
10
  class Tempo extends abstract_eth_1.AbstractEthLikeNewCoins {
9
11
  constructor(bitgo, staticsCoin) {
10
12
  super(bitgo, staticsCoin);
@@ -84,14 +86,13 @@ class Tempo extends abstract_eth_1.AbstractEthLikeNewCoins {
84
86
  }
85
87
  /**
86
88
  * Get transaction builder for Tempo
87
- * TODO: Implement TransactionBuilder for Tempo
89
+ * Returns a TIP-20 transaction builder for Tempo-specific operations
90
+ * @param common - Optional common chain configuration
88
91
  * @protected
89
92
  */
90
- getTransactionBuilder() {
91
- // TODO: Create and return TransactionBuilder instance
92
- // Return undefined cast as TransactionBuilder to prevent downstream services from breaking
93
- return undefined;
93
+ getTransactionBuilder(common) {
94
+ return new lib_1.Tip20TransactionBuilder(statics_1.coins.get(this.getBaseChain()));
94
95
  }
95
96
  }
96
97
  exports.Tempo = Tempo;
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxzREFNNkI7QUFJN0IsTUFBYSxLQUFNLFNBQVEsc0NBQXVCO0lBQ2hELFlBQXNCLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsV0FBdUM7UUFDN0UsT0FBTyxJQUFJLEtBQUssQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLElBQUksT0FBTyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7UUFDVCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxhQUFhO1FBQ1gsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsd0JBQXdCO1FBQ3RCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNiLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILHNCQUFzQjtRQUNwQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILHdCQUF3QjtRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDTyxLQUFLLENBQUMsd0JBQXdCLENBQUMsTUFBc0I7UUFDN0QsZ0RBQWdEO1FBQ2hELGtFQUFrRTtRQUNsRSxPQUFPLEVBQXdCLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQywrQkFBK0IsQ0FDbkMsS0FBNkIsRUFDN0IsTUFBZTtRQUVmLGdEQUFnRDtRQUNoRCxtRUFBbUU7UUFDbkUsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLHFCQUFxQjtRQUM3QixzREFBc0Q7UUFDdEQsMkZBQTJGO1FBQzNGLE9BQU8sU0FBMEMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUF0R0Qsc0JBc0dDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqL1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RFdGhMaWtlTmV3Q29pbnMsXG4gIFJlY292ZXJPcHRpb25zLFxuICBPZmZsaW5lVmF1bHRUeEluZm8sXG4gIFVuc2lnbmVkU3dlZXBUeE1QQ3YyLFxuICBUcmFuc2FjdGlvbkJ1aWxkZXIsXG59IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgQmFzZUNvaW4sIEJpdEdvQmFzZSwgTVBDQWxnb3JpdGhtIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIFN0YXRpY3NCYXNlQ29pbiB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcblxuZXhwb3J0IGNsYXNzIFRlbXBvIGV4dGVuZHMgQWJzdHJhY3RFdGhMaWtlTmV3Q29pbnMge1xuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KSB7XG4gICAgc3VwZXIoYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGYWN0b3J5IG1ldGhvZCB0byBjcmVhdGUgVGVtcG8gaW5zdGFuY2VcbiAgICovXG4gIHN0YXRpYyBjcmVhdGVJbnN0YW5jZShiaXRnbzogQml0R29CYXNlLCBzdGF0aWNzQ29pbj86IFJlYWRvbmx5PFN0YXRpY3NCYXNlQ29pbj4pOiBCYXNlQ29pbiB7XG4gICAgcmV0dXJuIG5ldyBUZW1wbyhiaXRnbywgc3RhdGljc0NvaW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY2hhaW4gaWRlbnRpZmllclxuICAgKi9cbiAgZ2V0Q2hhaW4oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGljc0NvaW4/Lm5hbWUgfHwgJ3RlbXBvJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZ1bGwgY2hhaW4gbmFtZVxuICAgKi9cbiAgZ2V0RnVsbE5hbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gJ1RlbXBvJztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJhc2UgZmFjdG9yICgxIFRFTVBPID0gMWUxOCB3ZWksIGxpa2UgRXRoZXJldW0pXG4gICAqL1xuICBnZXRCYXNlRmFjdG9yKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDFlMTg7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdmFsdWUtbGVzcyB0cmFuc2ZlcnMgYXJlIGFsbG93ZWRcbiAgICogVE9ETzogVXBkYXRlIGJhc2VkIG9uIFRlbXBvIHJlcXVpcmVtZW50c1xuICAgKi9cbiAgdmFsdWVsZXNzVHJhbnNmZXJBbGxvd2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBUU1MgaXMgc3VwcG9ydGVkXG4gICAqL1xuICBzdXBwb3J0c1RzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIE1QQyBhbGdvcml0aG0gKEVDRFNBIGZvciBFVk0gY2hhaW5zKVxuICAgKi9cbiAgZ2V0TVBDQWxnb3JpdGhtKCk6IE1QQ0FsZ29yaXRobSB7XG4gICAgcmV0dXJuICdlY2RzYSc7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgbWVzc2FnZSBzaWduaW5nIGlzIHN1cHBvcnRlZFxuICAgKi9cbiAgc3VwcG9ydHNNZXNzYWdlU2lnbmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0eXBlZCBkYXRhIHNpZ25pbmcgaXMgc3VwcG9ydGVkIChFSVAtNzEyKVxuICAgKi9cbiAgc3VwcG9ydHNTaWduaW5nVHlwZWREYXRhKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHVuc2lnbmVkIHN3ZWVwIHRyYW5zYWN0aW9uIGZvciBUU1NcbiAgICogVE9ETzogSW1wbGVtZW50IHN3ZWVwIHRyYW5zYWN0aW9uIGxvZ2ljXG4gICAqL1xuICBwcm90ZWN0ZWQgYXN5bmMgYnVpbGRVbnNpZ25lZFN3ZWVwVHhuVFNTKHBhcmFtczogUmVjb3Zlck9wdGlvbnMpOiBQcm9taXNlPE9mZmxpbmVWYXVsdFR4SW5mbyB8IFVuc2lnbmVkU3dlZXBUeE1QQ3YyPiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IHdoZW4gcmVjb3ZlcnkgbG9naWMgaXMgbmVlZGVkXG4gICAgLy8gUmV0dXJuIGR1bW15IHZhbHVlIHRvIHByZXZlbnQgZG93bnN0cmVhbSBzZXJ2aWNlcyBmcm9tIGJyZWFraW5nXG4gICAgcmV0dXJuIHt9IGFzIE9mZmxpbmVWYXVsdFR4SW5mbztcbiAgfVxuXG4gIC8qKlxuICAgKiBRdWVyeSBibG9jayBleHBsb3JlciBmb3IgcmVjb3ZlcnkgaW5mb3JtYXRpb25cbiAgICogVE9ETzogSW1wbGVtZW50IHdoZW4gVGVtcG8gYmxvY2sgZXhwbG9yZXIgaXMgYXZhaWxhYmxlXG4gICAqL1xuICBhc3luYyByZWNvdmVyeUJsb2NrY2hhaW5FeHBsb3JlclF1ZXJ5KFxuICAgIHF1ZXJ5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIGFwaUtleT86IHN0cmluZ1xuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHVua25vd24+PiB7XG4gICAgLy8gVE9ETzogSW1wbGVtZW50IHdpdGggVGVtcG8gYmxvY2sgZXhwbG9yZXIgQVBJXG4gICAgLy8gUmV0dXJuIGVtcHR5IG9iamVjdCB0byBwcmV2ZW50IGRvd25zdHJlYW0gc2VydmljZXMgZnJvbSBicmVha2luZ1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdHJhbnNhY3Rpb24gYnVpbGRlciBmb3IgVGVtcG9cbiAgICogVE9ETzogSW1wbGVtZW50IFRyYW5zYWN0aW9uQnVpbGRlciBmb3IgVGVtcG9cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFRyYW5zYWN0aW9uQnVpbGRlcigpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIC8vIFRPRE86IENyZWF0ZSBhbmQgcmV0dXJuIFRyYW5zYWN0aW9uQnVpbGRlciBpbnN0YW5jZVxuICAgIC8vIFJldHVybiB1bmRlZmluZWQgY2FzdCBhcyBUcmFuc2FjdGlvbkJ1aWxkZXIgdG8gcHJldmVudCBkb3duc3RyZWFtIHNlcnZpY2VzIGZyb20gYnJlYWtpbmdcbiAgICByZXR1cm4gdW5kZWZpbmVkIGFzIHVua25vd24gYXMgVHJhbnNhY3Rpb25CdWlsZGVyO1xuICB9XG59XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVtcG8udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7O0dBRUc7QUFDSCxzREFNNkI7QUFHN0IsNENBQW9FO0FBQ3BFLCtCQUFnRDtBQUVoRCxNQUFhLEtBQU0sU0FBUSxzQ0FBdUI7SUFDaEQsWUFBc0IsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxLQUFLLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBZ0IsRUFBRSxXQUF1QztRQUM3RSxPQUFPLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLElBQUksSUFBSSxPQUFPLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVztRQUNULE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7T0FFRztJQUNILGFBQWE7UUFDWCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDSCx3QkFBd0I7UUFDdEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2IsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsc0JBQXNCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsd0JBQXdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNPLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxNQUFzQjtRQUM3RCxnREFBZ0Q7UUFDaEQsa0VBQWtFO1FBQ2xFLE9BQU8sRUFBd0IsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLCtCQUErQixDQUNuQyxLQUE2QixFQUM3QixNQUFlO1FBRWYsZ0RBQWdEO1FBQ2hELG1FQUFtRTtRQUNuRSxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNPLHFCQUFxQixDQUFDLE1BQThCO1FBQzVELE9BQU8sSUFBSSw2QkFBdUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFrQyxDQUFDO0lBQ3RHLENBQUM7Q0FDRjtBQXJHRCxzQkFxR0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQge1xuICBBYnN0cmFjdEV0aExpa2VOZXdDb2lucyxcbiAgUmVjb3Zlck9wdGlvbnMsXG4gIE9mZmxpbmVWYXVsdFR4SW5mbyxcbiAgVW5zaWduZWRTd2VlcFR4TVBDdjIsXG4gIFRyYW5zYWN0aW9uQnVpbGRlcixcbn0gZnJvbSAnQGJpdGdvL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgdHlwZSAqIGFzIEV0aExpa2VDb21tb24gZnJvbSAnQGV0aGVyZXVtanMvY29tbW9uJztcbmltcG9ydCB7IEJhc2VDb2luLCBCaXRHb0Jhc2UsIE1QQ0FsZ29yaXRobSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBTdGF0aWNzQmFzZUNvaW4sIGNvaW5zIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgVGlwMjBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2xpYic7XG5cbmV4cG9ydCBjbGFzcyBUZW1wbyBleHRlbmRzIEFic3RyYWN0RXRoTGlrZU5ld0NvaW5zIHtcbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKGJpdGdvOiBCaXRHb0Jhc2UsIHN0YXRpY3NDb2luPzogUmVhZG9ubHk8U3RhdGljc0Jhc2VDb2luPikge1xuICAgIHN1cGVyKGJpdGdvLCBzdGF0aWNzQ29pbik7XG4gIH1cblxuICAvKipcbiAgICogRmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIFRlbXBvIGluc3RhbmNlXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlSW5zdGFuY2UoYml0Z286IEJpdEdvQmFzZSwgc3RhdGljc0NvaW4/OiBSZWFkb25seTxTdGF0aWNzQmFzZUNvaW4+KTogQmFzZUNvaW4ge1xuICAgIHJldHVybiBuZXcgVGVtcG8oYml0Z28sIHN0YXRpY3NDb2luKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNoYWluIGlkZW50aWZpZXJcbiAgICovXG4gIGdldENoYWluKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3N0YXRpY3NDb2luPy5uYW1lIHx8ICd0ZW1wbyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBmdWxsIGNoYWluIG5hbWVcbiAgICovXG4gIGdldEZ1bGxOYW1lKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdUZW1wbyc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBiYXNlIGZhY3RvciAoMSBURU1QTyA9IDFlMTggd2VpLCBsaWtlIEV0aGVyZXVtKVxuICAgKi9cbiAgZ2V0QmFzZUZhY3RvcigpOiBudW1iZXIge1xuICAgIHJldHVybiAxZTE4O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHZhbHVlLWxlc3MgdHJhbnNmZXJzIGFyZSBhbGxvd2VkXG4gICAqIFRPRE86IFVwZGF0ZSBiYXNlZCBvbiBUZW1wbyByZXF1aXJlbWVudHNcbiAgICovXG4gIHZhbHVlbGVzc1RyYW5zZmVyQWxsb3dlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgVFNTIGlzIHN1cHBvcnRlZFxuICAgKi9cbiAgc3VwcG9ydHNUc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBNUEMgYWxnb3JpdGhtIChFQ0RTQSBmb3IgRVZNIGNoYWlucylcbiAgICovXG4gIGdldE1QQ0FsZ29yaXRobSgpOiBNUENBbGdvcml0aG0ge1xuICAgIHJldHVybiAnZWNkc2EnO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIG1lc3NhZ2Ugc2lnbmluZyBpcyBzdXBwb3J0ZWRcbiAgICovXG4gIHN1cHBvcnRzTWVzc2FnZVNpZ25pbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgaWYgdHlwZWQgZGF0YSBzaWduaW5nIGlzIHN1cHBvcnRlZCAoRUlQLTcxMilcbiAgICovXG4gIHN1cHBvcnRzU2lnbmluZ1R5cGVkRGF0YSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCB1bnNpZ25lZCBzd2VlcCB0cmFuc2FjdGlvbiBmb3IgVFNTXG4gICAqIFRPRE86IEltcGxlbWVudCBzd2VlcCB0cmFuc2FjdGlvbiBsb2dpY1xuICAgKi9cbiAgcHJvdGVjdGVkIGFzeW5jIGJ1aWxkVW5zaWduZWRTd2VlcFR4blRTUyhwYXJhbXM6IFJlY292ZXJPcHRpb25zKTogUHJvbWlzZTxPZmZsaW5lVmF1bHRUeEluZm8gfCBVbnNpZ25lZFN3ZWVwVHhNUEN2Mj4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCB3aGVuIHJlY292ZXJ5IGxvZ2ljIGlzIG5lZWRlZFxuICAgIC8vIFJldHVybiBkdW1teSB2YWx1ZSB0byBwcmV2ZW50IGRvd25zdHJlYW0gc2VydmljZXMgZnJvbSBicmVha2luZ1xuICAgIHJldHVybiB7fSBhcyBPZmZsaW5lVmF1bHRUeEluZm87XG4gIH1cblxuICAvKipcbiAgICogUXVlcnkgYmxvY2sgZXhwbG9yZXIgZm9yIHJlY292ZXJ5IGluZm9ybWF0aW9uXG4gICAqIFRPRE86IEltcGxlbWVudCB3aGVuIFRlbXBvIGJsb2NrIGV4cGxvcmVyIGlzIGF2YWlsYWJsZVxuICAgKi9cbiAgYXN5bmMgcmVjb3ZlcnlCbG9ja2NoYWluRXhwbG9yZXJRdWVyeShcbiAgICBxdWVyeTogUmVjb3JkPHN0cmluZywgc3RyaW5nPixcbiAgICBhcGlLZXk/OiBzdHJpbmdcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAgIC8vIFRPRE86IEltcGxlbWVudCB3aXRoIFRlbXBvIGJsb2NrIGV4cGxvcmVyIEFQSVxuICAgIC8vIFJldHVybiBlbXB0eSBvYmplY3QgdG8gcHJldmVudCBkb3duc3RyZWFtIHNlcnZpY2VzIGZyb20gYnJlYWtpbmdcbiAgICByZXR1cm4ge307XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRyYW5zYWN0aW9uIGJ1aWxkZXIgZm9yIFRlbXBvXG4gICAqIFJldHVybnMgYSBUSVAtMjAgdHJhbnNhY3Rpb24gYnVpbGRlciBmb3IgVGVtcG8tc3BlY2lmaWMgb3BlcmF0aW9uc1xuICAgKiBAcGFyYW0gY29tbW9uIC0gT3B0aW9uYWwgY29tbW9uIGNoYWluIGNvbmZpZ3VyYXRpb25cbiAgICogQHByb3RlY3RlZFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFRyYW5zYWN0aW9uQnVpbGRlcihjb21tb24/OiBFdGhMaWtlQ29tbW9uLmRlZmF1bHQpOiBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICAgIHJldHVybiBuZXcgVGlwMjBUcmFuc2FjdGlvbkJ1aWxkZXIoY29pbnMuZ2V0KHRoaXMuZ2V0QmFzZUNoYWluKCkpKSBhcyB1bmtub3duIGFzIFRyYW5zYWN0aW9uQnVpbGRlcjtcbiAgfVxufVxuIl19