@bitgo/sdk-coin-tempo 1.5.2 → 1.6.1

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.
@@ -59,6 +59,13 @@ export declare class Tip20Transaction extends BaseTransaction {
59
59
  * @private
60
60
  */
61
61
  private encodeAccessList;
62
+ /**
63
+ * Convert bigint to hex string for RLP encoding
64
+ * @param value bigint value to convert
65
+ * @returns Hex string
66
+ * @private
67
+ */
68
+ private bigintToHex;
62
69
  /**
63
70
  * Build base RLP data array per Tempo EIP-7702 specification
64
71
  * @param callsTuples Encoded calls
@@ -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;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"}
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;IAI3B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAQnB;;;;;;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"}
@@ -31,11 +31,7 @@ class Tip20Transaction extends sdk_core_1.BaseTransaction {
31
31
  * @private
32
32
  */
33
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
- ]);
34
+ return this.txRequest.calls.map((call) => [call.to, this.bigintToHex(call.value), call.data]);
39
35
  }
40
36
  /**
41
37
  * Encode EIP-2930 access list as RLP tuples
@@ -45,6 +41,19 @@ class Tip20Transaction extends sdk_core_1.BaseTransaction {
45
41
  encodeAccessList() {
46
42
  return (this.txRequest.accessList ?? []).map((item) => [item.address, item.storageKeys || []]);
47
43
  }
44
+ /**
45
+ * Convert bigint to hex string for RLP encoding
46
+ * @param value bigint value to convert
47
+ * @returns Hex string
48
+ * @private
49
+ */
50
+ bigintToHex(value) {
51
+ if (value === 0n) {
52
+ return '0x';
53
+ }
54
+ const hex = value.toString(16);
55
+ return '0x' + (hex.length % 2 ? '0' : '') + hex;
56
+ }
48
57
  /**
49
58
  * Build base RLP data array per Tempo EIP-7702 specification
50
59
  * @param callsTuples Encoded calls
@@ -55,9 +64,9 @@ class Tip20Transaction extends sdk_core_1.BaseTransaction {
55
64
  buildBaseRlpData(callsTuples, accessTuples) {
56
65
  return [
57
66
  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()),
67
+ this.txRequest.maxPriorityFeePerGas ? this.bigintToHex(this.txRequest.maxPriorityFeePerGas) : '0x',
68
+ this.bigintToHex(this.txRequest.maxFeePerGas),
69
+ this.bigintToHex(this.txRequest.gas),
61
70
  callsTuples,
62
71
  accessTuples,
63
72
  '0x', // nonceKey (reserved for 2D nonce system)
@@ -161,4 +170,4 @@ class Tip20Transaction extends sdk_core_1.BaseTransaction {
161
170
  }
162
171
  }
163
172
  exports.Tip20Transaction = Tip20Transaction;
164
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBRUgsOENBQTBGO0FBRTFGLG1DQUFnQztBQTRCaEMsTUFBYSxnQkFBaUIsU0FBUSwwQkFBZTtJQUtuRCxZQUFZLFdBQWlDLEVBQUUsT0FBZ0MsRUFBRSxhQUErQixFQUFFO1FBQ2hILEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBK0M7UUFDN0QsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxtQkFBbUI7UUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxFQUFFO1lBQ1AsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ3BELElBQUksQ0FBQyxJQUFJO1NBQ1YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0I7UUFDdEIsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssZ0JBQWdCLENBQUMsV0FBa0IsRUFBRSxZQUFtQjtRQUM5RCxPQUFPO1lBQ0wsZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsZUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ2pILGVBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzVELGVBQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25ELFdBQVc7WUFDWCxZQUFZO1lBQ1osSUFBSSxFQUFFLDBDQUEwQztZQUNoRCxlQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUMxQyxJQUFJLEVBQUUseUNBQXlDO1lBQy9DLElBQUksRUFBRSx3Q0FBd0M7WUFDOUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLElBQUksSUFBSTtZQUMvQixJQUFJLEVBQUUsK0NBQStDO1lBQ3JELEVBQUUsRUFBRSwrQkFBK0I7U0FDcEMsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLGVBQWUsQ0FBQyxTQUE4QztRQUNwRSxNQUFNLENBQUMsR0FBRyxTQUFTLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNqQyxNQUFNLGNBQWMsR0FBRyxlQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztZQUN6QyxlQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxlQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxlQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDeEIsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxlQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyx1QkFBdUIsQ0FBQyxPQUFjO1FBQzVDLElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLGVBQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxPQUFPLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQVEsQ0FBQztRQUM1QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxxQ0FBcUMsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUNoRixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLG9CQUFvQixDQUFDLFNBQStDO1FBQzFFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQy9DLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFakUsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVELGlCQUFpQjtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxPQUFPO1FBQ0wsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBOEM7UUFDekQsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDOUIsQ0FBQztJQUVELFlBQVk7UUFDVixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELE1BQU07UUFDSixPQUFPO1lBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSTtZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPO1lBQy9CLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUs7WUFDM0IsWUFBWSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRTtZQUNwRCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRTtZQUNwRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2xDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNO1lBQ3RDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVE7WUFDakMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzVCLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtTQUMzQixDQUFDO0lBQ0osQ0FBQztJQUVELEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsT0FBTyxNQUFNLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLEVBQUU7UUFDSixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztJQUN2RSxDQUFDO0NBQ0Y7QUEvS0QsNENBK0tDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUSVAtMjAgVHJhbnNhY3Rpb25cbiAqXG4gKiBSZXByZXNlbnRzIGEgVGVtcG8gQWNjb3VudCBBYnN0cmFjdGlvbiAoQUEpIHRyYW5zYWN0aW9uICh0eXBlIDB4NzYpXG4gKiBTdXBwb3J0cyBzaW5nbGUgb3IgYmF0Y2ggVElQLTIwIHRva2VuIHRyYW5zZmVycyB3aXRoIG1lbW9zXG4gKi9cblxuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uLCBQYXJzZVRyYW5zYWN0aW9uRXJyb3IsIFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgZXRoZXJzIH0gZnJvbSAnZXRoZXJzJztcbmltcG9ydCB7IEFkZHJlc3MsIEhleCwgVGlwMjBPcGVyYXRpb24gfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBUSVAtMjAgVHJhbnNhY3Rpb24gUmVxdWVzdCBTdHJ1Y3R1cmVcbiAqIFJlcHJlc2VudHMgdGhlIHJhdyB0cmFuc2FjdGlvbiBkYXRhIGZvciBUZW1wbyBBY2NvdW50IEFic3RyYWN0aW9uIChFSVAtNzcwMilcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaXAyMFRyYW5zYWN0aW9uUmVxdWVzdCB7XG4gIC8qKiBUcmFuc2FjdGlvbiB0eXBlICgweDc2IGZvciBUZW1wbyBBQSkgKi9cbiAgdHlwZTogbnVtYmVyIHwgc3RyaW5nO1xuICAvKiogQ2hhaW4gSUQgZm9yIHRoZSBUZW1wbyBuZXR3b3JrICovXG4gIGNoYWluSWQ6IG51bWJlcjtcbiAgLyoqIFRyYW5zYWN0aW9uIG5vbmNlICovXG4gIG5vbmNlOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIGZlZSBwZXIgZ2FzIChFSVAtMTU1OSkgKi9cbiAgbWF4RmVlUGVyR2FzOiBiaWdpbnQ7XG4gIC8qKiBNYXhpbXVtIHByaW9yaXR5IGZlZSBwZXIgZ2FzIChFSVAtMTU1OSkgKi9cbiAgbWF4UHJpb3JpdHlGZWVQZXJHYXM6IGJpZ2ludDtcbiAgLyoqIEdhcyBsaW1pdCBmb3IgdGhlIHRyYW5zYWN0aW9uICovXG4gIGdhczogYmlnaW50O1xuICAvKiogQXJyYXkgb2YgY2FsbHMgdG8gZXhlY3V0ZSBpbiB0aGlzIHRyYW5zYWN0aW9uICovXG4gIGNhbGxzOiB7IHRvOiBBZGRyZXNzOyBkYXRhOiBIZXg7IHZhbHVlOiBiaWdpbnQgfVtdO1xuICAvKiogQWNjZXNzIGxpc3QgKG9wdGlvbmFsLCB0eXBpY2FsbHkgZW1wdHkgZm9yIFRJUC0yMCkgKi9cbiAgYWNjZXNzTGlzdD86IHVua25vd25bXTtcbiAgLyoqIE9wdGlvbmFsIFRJUC0yMCB0b2tlbiB0byB1c2UgZm9yIHBheWluZyBmZWVzICovXG4gIGZlZVRva2VuPzogQWRkcmVzcztcbn1cblxuZXhwb3J0IGNsYXNzIFRpcDIwVHJhbnNhY3Rpb24gZXh0ZW5kcyBCYXNlVHJhbnNhY3Rpb24ge1xuICBwcml2YXRlIHR4UmVxdWVzdDogVGlwMjBUcmFuc2FjdGlvblJlcXVlc3Q7XG4gIHByaXZhdGUgX29wZXJhdGlvbnM6IFRpcDIwT3BlcmF0aW9uW107XG4gIHByaXZhdGUgX3NpZ25hdHVyZT86IHsgcjogSGV4OyBzOiBIZXg7IHlQYXJpdHk6IG51bWJlciB9O1xuXG4gIGNvbnN0cnVjdG9yKF9jb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPiwgcmVxdWVzdDogVGlwMjBUcmFuc2FjdGlvblJlcXVlc3QsIG9wZXJhdGlvbnM6IFRpcDIwT3BlcmF0aW9uW10gPSBbXSkge1xuICAgIHN1cGVyKF9jb2luQ29uZmlnKTtcbiAgICB0aGlzLnR4UmVxdWVzdCA9IHJlcXVlc3Q7XG4gICAgdGhpcy5fb3BlcmF0aW9ucyA9IG9wZXJhdGlvbnM7XG4gIH1cblxuICBnZXQgdHlwZSgpOiBUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBUcmFuc2FjdGlvblR5cGUuU2VuZDtcbiAgfVxuXG4gIGNhblNpZ24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBhc3luYyBzZXJpYWxpemUoc2lnbmF0dXJlPzogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiBQcm9taXNlPEhleD4ge1xuICAgIGNvbnN0IHNpZyA9IHNpZ25hdHVyZSB8fCB0aGlzLl9zaWduYXR1cmU7XG4gICAgcmV0dXJuIHRoaXMuc2VyaWFsaXplVHJhbnNhY3Rpb24oc2lnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgY2FsbHMgYXMgUkxQIHR1cGxlcyBmb3IgYXRvbWljIGJhdGNoIGV4ZWN1dGlvblxuICAgKiBAcmV0dXJucyBBcnJheSBvZiBbdG8sIHZhbHVlLCBkYXRhXSB0dXBsZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZW5jb2RlQ2FsbHNBc1R1cGxlcygpOiBhbnlbXSB7XG4gICAgcmV0dXJuIHRoaXMudHhSZXF1ZXN0LmNhbGxzLm1hcCgoY2FsbCkgPT4gW1xuICAgICAgY2FsbC50byxcbiAgICAgIGNhbGwudmFsdWUgPyBldGhlcnMudXRpbHMuaGV4bGlmeShjYWxsLnZhbHVlKSA6ICcweCcsXG4gICAgICBjYWxsLmRhdGEsXG4gICAgXSk7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIEVJUC0yOTMwIGFjY2VzcyBsaXN0IGFzIFJMUCB0dXBsZXNcbiAgICogQHJldHVybnMgQXJyYXkgb2YgW2FkZHJlc3MsIHN0b3JhZ2VLZXlzW11dIHR1cGxlc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBlbmNvZGVBY2Nlc3NMaXN0KCk6IGFueVtdIHtcbiAgICByZXR1cm4gKHRoaXMudHhSZXF1ZXN0LmFjY2Vzc0xpc3QgPz8gW10pLm1hcCgoaXRlbTogYW55KSA9PiBbaXRlbS5hZGRyZXNzLCBpdGVtLnN0b3JhZ2VLZXlzIHx8IFtdXSk7XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgYmFzZSBSTFAgZGF0YSBhcnJheSBwZXIgVGVtcG8gRUlQLTc3MDIgc3BlY2lmaWNhdGlvblxuICAgKiBAcGFyYW0gY2FsbHNUdXBsZXMgRW5jb2RlZCBjYWxsc1xuICAgKiBAcGFyYW0gYWNjZXNzVHVwbGVzIEVuY29kZWQgYWNjZXNzIGxpc3RcbiAgICogQHJldHVybnMgUkxQLXJlYWR5IGFycmF5IG9mIHRyYW5zYWN0aW9uIGZpZWxkc1xuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEJhc2VSbHBEYXRhKGNhbGxzVHVwbGVzOiBhbnlbXSwgYWNjZXNzVHVwbGVzOiBhbnlbXSk6IGFueVtdIHtcbiAgICByZXR1cm4gW1xuICAgICAgZXRoZXJzLnV0aWxzLmhleGxpZnkodGhpcy50eFJlcXVlc3QuY2hhaW5JZCksXG4gICAgICB0aGlzLnR4UmVxdWVzdC5tYXhQcmlvcml0eUZlZVBlckdhcyA/IGV0aGVycy51dGlscy5oZXhsaWZ5KHRoaXMudHhSZXF1ZXN0Lm1heFByaW9yaXR5RmVlUGVyR2FzLnRvU3RyaW5nKCkpIDogJzB4JyxcbiAgICAgIGV0aGVycy51dGlscy5oZXhsaWZ5KHRoaXMudHhSZXF1ZXN0Lm1heEZlZVBlckdhcy50b1N0cmluZygpKSxcbiAgICAgIGV0aGVycy51dGlscy5oZXhsaWZ5KHRoaXMudHhSZXF1ZXN0Lmdhcy50b1N0cmluZygpKSxcbiAgICAgIGNhbGxzVHVwbGVzLFxuICAgICAgYWNjZXNzVHVwbGVzLFxuICAgICAgJzB4JywgLy8gbm9uY2VLZXkgKHJlc2VydmVkIGZvciAyRCBub25jZSBzeXN0ZW0pXG4gICAgICBldGhlcnMudXRpbHMuaGV4bGlmeSh0aGlzLnR4UmVxdWVzdC5ub25jZSksXG4gICAgICAnMHgnLCAvLyB2YWxpZEJlZm9yZSAocmVzZXJ2ZWQgZm9yIHRpbWUgYm91bmRzKVxuICAgICAgJzB4JywgLy8gdmFsaWRBZnRlciAocmVzZXJ2ZWQgZm9yIHRpbWUgYm91bmRzKVxuICAgICAgdGhpcy50eFJlcXVlc3QuZmVlVG9rZW4gfHwgJzB4JyxcbiAgICAgICcweCcsIC8vIGZlZVBheWVyU2lnbmF0dXJlIChyZXNlcnZlZCBmb3Igc3BvbnNvcnNoaXApXG4gICAgICBbXSwgLy8gYXV0aG9yaXphdGlvbkxpc3QgKEVJUC03NzAyKVxuICAgIF07XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIHNlY3AyNTZrMSBzaWduYXR1cmUgYXMgNjUtYnl0ZSBlbnZlbG9wZVxuICAgKiBAcGFyYW0gc2lnbmF0dXJlIEVDRFNBIHNpZ25hdHVyZSBjb21wb25lbnRzXG4gICAqIEByZXR1cm5zIEhleCBzdHJpbmcgb2YgY29uY2F0ZW5hdGVkIHIgKDMyKSArIHMgKDMyKSArIHYgKDEpIGJ5dGVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGVuY29kZVNpZ25hdHVyZShzaWduYXR1cmU6IHsgcjogSGV4OyBzOiBIZXg7IHlQYXJpdHk6IG51bWJlciB9KTogc3RyaW5nIHtcbiAgICBjb25zdCB2ID0gc2lnbmF0dXJlLnlQYXJpdHkgKyAyNztcbiAgICBjb25zdCBzaWduYXR1cmVCeXRlcyA9IGV0aGVycy51dGlscy5jb25jYXQoW1xuICAgICAgZXRoZXJzLnV0aWxzLnplcm9QYWQoc2lnbmF0dXJlLnIsIDMyKSxcbiAgICAgIGV0aGVycy51dGlscy56ZXJvUGFkKHNpZ25hdHVyZS5zLCAzMiksXG4gICAgICBldGhlcnMudXRpbHMuaGV4bGlmeSh2KSxcbiAgICBdKTtcbiAgICByZXR1cm4gZXRoZXJzLnV0aWxzLmhleGxpZnkoc2lnbmF0dXJlQnl0ZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJMUCBlbmNvZGUgYW5kIHByZXBlbmQgdHJhbnNhY3Rpb24gdHlwZSBieXRlXG4gICAqIEBwYXJhbSBybHBEYXRhIFRyYW5zYWN0aW9uIGZpZWxkcyBhcnJheVxuICAgKiBAcmV0dXJucyBIZXggc3RyaW5nIHdpdGggMHg3NiBwcmVmaXhcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgcmxwRW5jb2RlV2l0aFR5cGVQcmVmaXgocmxwRGF0YTogYW55W10pOiBIZXgge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBlbmNvZGVkID0gZXRoZXJzLnV0aWxzLlJMUC5lbmNvZGUocmxwRGF0YSk7XG4gICAgICByZXR1cm4gKCcweDc2JyArIGVuY29kZWQuc2xpY2UoMikpIGFzIEhleDtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlVHJhbnNhY3Rpb25FcnJvcihgRmFpbGVkIHRvIFJMUCBlbmNvZGUgdHJhbnNhY3Rpb246ICR7ZXJyb3J9YCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlcmlhbGl6ZSBUZW1wbyBBQSB0cmFuc2FjdGlvbiAodHlwZSAweDc2KSBwZXIgRUlQLTc3MDIgc3BlY2lmaWNhdGlvblxuICAgKiBGb3JtYXQ6IDB4NzYgfHwgUkxQKFtjaGFpbklkLCBmZWVzLCBnYXMsIGNhbGxzLCBhY2Nlc3NMaXN0LCBub25jZSBmaWVsZHMsIGZlZVRva2VuLCBzcG9uc29yc2hpcCwgYXV0aExpc3QsIHNpZ25hdHVyZT9dKVxuICAgKiBAcGFyYW0gc2lnbmF0dXJlIE9wdGlvbmFsIEVDRFNBIHNpZ25hdHVyZSAob21pdCBmb3IgdW5zaWduZWQgdHJhbnNhY3Rpb25zKVxuICAgKiBAcmV0dXJucyBSTFAtZW5jb2RlZCB0cmFuc2FjdGlvbiBoZXggc3RyaW5nXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIHNlcmlhbGl6ZVRyYW5zYWN0aW9uKHNpZ25hdHVyZT86IHsgcjogSGV4OyBzOiBIZXg7IHlQYXJpdHk6IG51bWJlciB9KTogSGV4IHtcbiAgICBjb25zdCBjYWxsc1R1cGxlcyA9IHRoaXMuZW5jb2RlQ2FsbHNBc1R1cGxlcygpO1xuICAgIGNvbnN0IGFjY2Vzc1R1cGxlcyA9IHRoaXMuZW5jb2RlQWNjZXNzTGlzdCgpO1xuICAgIGNvbnN0IHJscERhdGEgPSB0aGlzLmJ1aWxkQmFzZVJscERhdGEoY2FsbHNUdXBsZXMsIGFjY2Vzc1R1cGxlcyk7XG5cbiAgICBpZiAoc2lnbmF0dXJlKSB7XG4gICAgICBybHBEYXRhLnB1c2godGhpcy5lbmNvZGVTaWduYXR1cmUoc2lnbmF0dXJlKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMucmxwRW5jb2RlV2l0aFR5cGVQcmVmaXgocmxwRGF0YSk7XG4gIH1cblxuICBnZXRPcGVyYXRpb25zKCk6IFRpcDIwT3BlcmF0aW9uW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5fb3BlcmF0aW9uc107XG4gIH1cblxuICBnZXRGZWVUb2tlbigpOiBBZGRyZXNzIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy50eFJlcXVlc3QuZmVlVG9rZW47XG4gIH1cblxuICBnZXRPcGVyYXRpb25Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5jYWxscy5sZW5ndGg7XG4gIH1cblxuICBpc0JhdGNoKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5jYWxscy5sZW5ndGggPiAxO1xuICB9XG5cbiAgc2V0U2lnbmF0dXJlKHNpZ25hdHVyZTogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmUgPSBzaWduYXR1cmU7XG4gIH1cblxuICBnZXRTaWduYXR1cmUoKTogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9zaWduYXR1cmU7XG4gIH1cblxuICB0b0pzb24oKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB0aGlzLnR4UmVxdWVzdC50eXBlLFxuICAgICAgY2hhaW5JZDogdGhpcy50eFJlcXVlc3QuY2hhaW5JZCxcbiAgICAgIG5vbmNlOiB0aGlzLnR4UmVxdWVzdC5ub25jZSxcbiAgICAgIG1heEZlZVBlckdhczogdGhpcy50eFJlcXVlc3QubWF4RmVlUGVyR2FzLnRvU3RyaW5nKCksXG4gICAgICBtYXhQcmlvcml0eUZlZVBlckdhczogdGhpcy50eFJlcXVlc3QubWF4UHJpb3JpdHlGZWVQZXJHYXMudG9TdHJpbmcoKSxcbiAgICAgIGdhczogdGhpcy50eFJlcXVlc3QuZ2FzLnRvU3RyaW5nKCksXG4gICAgICBjYWxsQ291bnQ6IHRoaXMudHhSZXF1ZXN0LmNhbGxzLmxlbmd0aCxcbiAgICAgIGZlZVRva2VuOiB0aGlzLnR4UmVxdWVzdC5mZWVUb2tlbixcbiAgICAgIG9wZXJhdGlvbnM6IHRoaXMuX29wZXJhdGlvbnMsXG4gICAgICBzaWduYXR1cmU6IHRoaXMuX3NpZ25hdHVyZSxcbiAgICB9O1xuICB9XG5cbiAgYXN5bmMgdG9Ccm9hZGNhc3RGb3JtYXQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXJpYWxpemUodGhpcy5fc2lnbmF0dXJlKTtcbiAgfVxuXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAncGVuZGluZyc7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLnRvSnNvbigpLCBudWxsLCAyKTtcbiAgfVxuXG4gIGNhbkJyb2FkY2FzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eFJlcXVlc3QuY2FsbHMubGVuZ3RoID4gMCAmJiB0aGlzLnR4UmVxdWVzdC5jaGFpbklkID4gMDtcbiAgfVxufVxuIl19
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7R0FLRzs7O0FBRUgsOENBQTBGO0FBRTFGLG1DQUFnQztBQTRCaEMsTUFBYSxnQkFBaUIsU0FBUSwwQkFBZTtJQUtuRCxZQUFZLFdBQWlDLEVBQUUsT0FBZ0MsRUFBRSxhQUErQixFQUFFO1FBQ2hILEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTywwQkFBZSxDQUFDLElBQUksQ0FBQztJQUM5QixDQUFDO0lBRUQsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELEtBQUssQ0FBQyxTQUFTLENBQUMsU0FBK0M7UUFDN0QsTUFBTSxHQUFHLEdBQUcsU0FBUyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDekMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxtQkFBbUI7UUFDekIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGdCQUFnQjtRQUN0QixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENB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b0IsQ0FBQyxRQUFRLEVBQUU7WUFDcEUsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNsQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUN0QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRO1lBQ2pDLFVBQVUsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM1QixTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDM0IsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsaUJBQWlCO1FBQ3JCLE9BQU8sTUFBTSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBSSxFQUFFO1FBQ0osT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELFFBQVE7UUFDTixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDdkUsQ0FBQztDQUNGO0FBekxELDRDQXlMQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVElQLTIwIFRyYW5zYWN0aW9uXG4gKlxuICogUmVwcmVzZW50cyBhIFRlbXBvIEFjY291bnQgQWJzdHJhY3Rpb24gKEFBKSB0cmFuc2FjdGlvbiAodHlwZSAweDc2KVxuICogU3VwcG9ydHMgc2luZ2xlIG9yIGJhdGNoIFRJUC0yMCB0b2tlbiB0cmFuc2ZlcnMgd2l0aCBtZW1vc1xuICovXG5cbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbiwgUGFyc2VUcmFuc2FjdGlvbkVycm9yLCBUcmFuc2FjdGlvblR5cGUgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IGV0aGVycyB9IGZyb20gJ2V0aGVycyc7XG5pbXBvcnQgeyBBZGRyZXNzLCBIZXgsIFRpcDIwT3BlcmF0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogVElQLTIwIFRyYW5zYWN0aW9uIFJlcXVlc3QgU3RydWN0dXJlXG4gKiBSZXByZXNlbnRzIHRoZSByYXcgdHJhbnNhY3Rpb24gZGF0YSBmb3IgVGVtcG8gQWNjb3VudCBBYnN0cmFjdGlvbiAoRUlQLTc3MDIpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGlwMjBUcmFuc2FjdGlvblJlcXVlc3Qge1xuICAvKiogVHJhbnNhY3Rpb24gdHlwZSAoMHg3NiBmb3IgVGVtcG8gQUEpICovXG4gIHR5cGU6IG51bWJlciB8IHN0cmluZztcbiAgLyoqIENoYWluIElEIGZvciB0aGUgVGVtcG8gbmV0d29yayAqL1xuICBjaGFpbklkOiBudW1iZXI7XG4gIC8qKiBUcmFuc2FjdGlvbiBub25jZSAqL1xuICBub25jZTogbnVtYmVyO1xuICAvKiogTWF4aW11bSBmZWUgcGVyIGdhcyAoRUlQLTE1NTkpICovXG4gIG1heEZlZVBlckdhczogYmlnaW50O1xuICAvKiogTWF4aW11bSBwcmlvcml0eSBmZWUgcGVyIGdhcyAoRUlQLTE1NTkpICovXG4gIG1heFByaW9yaXR5RmVlUGVyR2FzOiBiaWdpbnQ7XG4gIC8qKiBHYXMgbGltaXQgZm9yIHRoZSB0cmFuc2FjdGlvbiAqL1xuICBnYXM6IGJpZ2ludDtcbiAgLyoqIEFycmF5IG9mIGNhbGxzIHRvIGV4ZWN1dGUgaW4gdGhpcyB0cmFuc2FjdGlvbiAqL1xuICBjYWxsczogeyB0bzogQWRkcmVzczsgZGF0YTogSGV4OyB2YWx1ZTogYmlnaW50IH1bXTtcbiAgLyoqIEFjY2VzcyBsaXN0IChvcHRpb25hbCwgdHlwaWNhbGx5IGVtcHR5IGZvciBUSVAtMjApICovXG4gIGFjY2Vzc0xpc3Q/OiB1bmtub3duW107XG4gIC8qKiBPcHRpb25hbCBUSVAtMjAgdG9rZW4gdG8gdXNlIGZvciBwYXlpbmcgZmVlcyAqL1xuICBmZWVUb2tlbj86IEFkZHJlc3M7XG59XG5cbmV4cG9ydCBjbGFzcyBUaXAyMFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHJpdmF0ZSB0eFJlcXVlc3Q6IFRpcDIwVHJhbnNhY3Rpb25SZXF1ZXN0O1xuICBwcml2YXRlIF9vcGVyYXRpb25zOiBUaXAyME9wZXJhdGlvbltdO1xuICBwcml2YXRlIF9zaWduYXR1cmU/OiB7IHI6IEhleDsgczogSGV4OyB5UGFyaXR5OiBudW1iZXIgfTtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4sIHJlcXVlc3Q6IFRpcDIwVHJhbnNhY3Rpb25SZXF1ZXN0LCBvcGVyYXRpb25zOiBUaXAyME9wZXJhdGlvbltdID0gW10pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy50eFJlcXVlc3QgPSByZXF1ZXN0O1xuICAgIHRoaXMuX29wZXJhdGlvbnMgPSBvcGVyYXRpb25zO1xuICB9XG5cbiAgZ2V0IHR5cGUoKTogVHJhbnNhY3Rpb25UeXBlIHtcbiAgICByZXR1cm4gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gIH1cblxuICBjYW5TaWduKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgc2VyaWFsaXplKHNpZ25hdHVyZT86IHsgcjogSGV4OyBzOiBIZXg7IHlQYXJpdHk6IG51bWJlciB9KTogUHJvbWlzZTxIZXg+IHtcbiAgICBjb25zdCBzaWcgPSBzaWduYXR1cmUgfHwgdGhpcy5fc2lnbmF0dXJlO1xuICAgIHJldHVybiB0aGlzLnNlcmlhbGl6ZVRyYW5zYWN0aW9uKHNpZyk7XG4gIH1cblxuICAvKipcbiAgICogRW5jb2RlIGNhbGxzIGFzIFJMUCB0dXBsZXMgZm9yIGF0b21pYyBiYXRjaCBleGVjdXRpb25cbiAgICogQHJldHVybnMgQXJyYXkgb2YgW3RvLCB2YWx1ZSwgZGF0YV0gdHVwbGVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGVuY29kZUNhbGxzQXNUdXBsZXMoKTogYW55W10ge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5jYWxscy5tYXAoKGNhbGwpID0+IFtjYWxsLnRvLCB0aGlzLmJpZ2ludFRvSGV4KGNhbGwudmFsdWUpLCBjYWxsLmRhdGFdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgRUlQLTI5MzAgYWNjZXNzIGxpc3QgYXMgUkxQIHR1cGxlc1xuICAgKiBAcmV0dXJucyBBcnJheSBvZiBbYWRkcmVzcywgc3RvcmFnZUtleXNbXV0gdHVwbGVzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGVuY29kZUFjY2Vzc0xpc3QoKTogYW55W10ge1xuICAgIHJldHVybiAodGhpcy50eFJlcXVlc3QuYWNjZXNzTGlzdCA/PyBbXSkubWFwKChpdGVtOiBhbnkpID0+IFtpdGVtLmFkZHJlc3MsIGl0ZW0uc3RvcmFnZUtleXMgfHwgW11dKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGJpZ2ludCB0byBoZXggc3RyaW5nIGZvciBSTFAgZW5jb2RpbmdcbiAgICogQHBhcmFtIHZhbHVlIGJpZ2ludCB2YWx1ZSB0byBjb252ZXJ0XG4gICAqIEByZXR1cm5zIEhleCBzdHJpbmdcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYmlnaW50VG9IZXgodmFsdWU6IGJpZ2ludCk6IHN0cmluZyB7XG4gICAgaWYgKHZhbHVlID09PSAwbikge1xuICAgICAgcmV0dXJuICcweCc7XG4gICAgfVxuICAgIGNvbnN0IGhleCA9IHZhbHVlLnRvU3RyaW5nKDE2KTtcbiAgICByZXR1cm4gJzB4JyArIChoZXgubGVuZ3RoICUgMiA/ICcwJyA6ICcnKSArIGhleDtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZCBiYXNlIFJMUCBkYXRhIGFycmF5IHBlciBUZW1wbyBFSVAtNzcwMiBzcGVjaWZpY2F0aW9uXG4gICAqIEBwYXJhbSBjYWxsc1R1cGxlcyBFbmNvZGVkIGNhbGxzXG4gICAqIEBwYXJhbSBhY2Nlc3NUdXBsZXMgRW5jb2RlZCBhY2Nlc3MgbGlzdFxuICAgKiBAcmV0dXJucyBSTFAtcmVhZHkgYXJyYXkgb2YgdHJhbnNhY3Rpb24gZmllbGRzXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGJ1aWxkQmFzZVJscERhdGEoY2FsbHNUdXBsZXM6IGFueVtdLCBhY2Nlc3NUdXBsZXM6IGFueVtdKTogYW55W10ge1xuICAgIHJldHVybiBbXG4gICAgICBldGhlcnMudXRpbHMuaGV4bGlmeSh0aGlzLnR4UmVxdWVzdC5jaGFpbklkKSxcbiAgICAgIHRoaXMudHhSZXF1ZXN0Lm1heFByaW9yaXR5RmVlUGVyR2FzID8gdGhpcy5iaWdpbnRUb0hleCh0aGlzLnR4UmVxdWVzdC5tYXhQcmlvcml0eUZlZVBlckdhcykgOiAnMHgnLFxuICAgICAgdGhpcy5iaWdpbnRUb0hleCh0aGlzLnR4UmVxdWVzdC5tYXhGZWVQZXJHYXMpLFxuICAgICAgdGhpcy5iaWdpbnRUb0hleCh0aGlzLnR4UmVxdWVzdC5nYXMpLFxuICAgICAgY2FsbHNUdXBsZXMsXG4gICAgICBhY2Nlc3NUdXBsZXMsXG4gICAgICAnMHgnLCAvLyBub25jZUtleSAocmVzZXJ2ZWQgZm9yIDJEIG5vbmNlIHN5c3RlbSlcbiAgICAgIGV0aGVycy51dGlscy5oZXhsaWZ5KHRoaXMudHhSZXF1ZXN0Lm5vbmNlKSxcbiAgICAgICcweCcsIC8vIHZhbGlkQmVmb3JlIChyZXNlcnZlZCBmb3IgdGltZSBib3VuZHMpXG4gICAgICAnMHgnLCAvLyB2YWxpZEFmdGVyIChyZXNlcnZlZCBmb3IgdGltZSBib3VuZHMpXG4gICAgICB0aGlzLnR4UmVxdWVzdC5mZWVUb2tlbiB8fCAnMHgnLFxuICAgICAgJzB4JywgLy8gZmVlUGF5ZXJTaWduYXR1cmUgKHJlc2VydmVkIGZvciBzcG9uc29yc2hpcClcbiAgICAgIFtdLCAvLyBhdXRob3JpemF0aW9uTGlzdCAoRUlQLTc3MDIpXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbmNvZGUgc2VjcDI1NmsxIHNpZ25hdHVyZSBhcyA2NS1ieXRlIGVudmVsb3BlXG4gICAqIEBwYXJhbSBzaWduYXR1cmUgRUNEU0Egc2lnbmF0dXJlIGNvbXBvbmVudHNcbiAgICogQHJldHVybnMgSGV4IHN0cmluZyBvZiBjb25jYXRlbmF0ZWQgciAoMzIpICsgcyAoMzIpICsgdiAoMSkgYnl0ZXNcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgZW5jb2RlU2lnbmF0dXJlKHNpZ25hdHVyZTogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiBzdHJpbmcge1xuICAgIGNvbnN0IHYgPSBzaWduYXR1cmUueVBhcml0eSArIDI3O1xuICAgIGNvbnN0IHNpZ25hdHVyZUJ5dGVzID0gZXRoZXJzLnV0aWxzLmNvbmNhdChbXG4gICAgICBldGhlcnMudXRpbHMuemVyb1BhZChzaWduYXR1cmUuciwgMzIpLFxuICAgICAgZXRoZXJzLnV0aWxzLnplcm9QYWQoc2lnbmF0dXJlLnMsIDMyKSxcbiAgICAgIGV0aGVycy51dGlscy5oZXhsaWZ5KHYpLFxuICAgIF0pO1xuICAgIHJldHVybiBldGhlcnMudXRpbHMuaGV4bGlmeShzaWduYXR1cmVCeXRlcyk7XG4gIH1cblxuICAvKipcbiAgICogUkxQIGVuY29kZSBhbmQgcHJlcGVuZCB0cmFuc2FjdGlvbiB0eXBlIGJ5dGVcbiAgICogQHBhcmFtIHJscERhdGEgVHJhbnNhY3Rpb24gZmllbGRzIGFycmF5XG4gICAqIEByZXR1cm5zIEhleCBzdHJpbmcgd2l0aCAweDc2IHByZWZpeFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBybHBFbmNvZGVXaXRoVHlwZVByZWZpeChybHBEYXRhOiBhbnlbXSk6IEhleCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGVuY29kZWQgPSBldGhlcnMudXRpbHMuUkxQLmVuY29kZShybHBEYXRhKTtcbiAgICAgIHJldHVybiAoJzB4NzYnICsgZW5jb2RlZC5zbGljZSgyKSkgYXMgSGV4O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2VUcmFuc2FjdGlvbkVycm9yKGBGYWlsZWQgdG8gUkxQIGVuY29kZSB0cmFuc2FjdGlvbjogJHtlcnJvcn1gKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VyaWFsaXplIFRlbXBvIEFBIHRyYW5zYWN0aW9uICh0eXBlIDB4NzYpIHBlciBFSVAtNzcwMiBzcGVjaWZpY2F0aW9uXG4gICAqIEZvcm1hdDogMHg3NiB8fCBSTFAoW2NoYWluSWQsIGZlZXMsIGdhcywgY2FsbHMsIGFjY2Vzc0xpc3QsIG5vbmNlIGZpZWxkcywgZmVlVG9rZW4sIHNwb25zb3JzaGlwLCBhdXRoTGlzdCwgc2lnbmF0dXJlP10pXG4gICAqIEBwYXJhbSBzaWduYXR1cmUgT3B0aW9uYWwgRUNEU0Egc2lnbmF0dXJlIChvbWl0IGZvciB1bnNpZ25lZCB0cmFuc2FjdGlvbnMpXG4gICAqIEByZXR1cm5zIFJMUC1lbmNvZGVkIHRyYW5zYWN0aW9uIGhleCBzdHJpbmdcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgc2VyaWFsaXplVHJhbnNhY3Rpb24oc2lnbmF0dXJlPzogeyByOiBIZXg7IHM6IEhleDsgeVBhcml0eTogbnVtYmVyIH0pOiBIZXgge1xuICAgIGNvbnN0IGNhbGxzVHVwbGVzID0gdGhpcy5lbmNvZGVDYWxsc0FzVHVwbGVzKCk7XG4gICAgY29uc3QgYWNjZXNzVHVwbGVzID0gdGhpcy5lbmNvZGVBY2Nlc3NMaXN0KCk7XG4gICAgY29uc3QgcmxwRGF0YSA9IHRoaXMuYnVpbGRCYXNlUmxwRGF0YShjYWxsc1R1cGxlcywgYWNjZXNzVHVwbGVzKTtcblxuICAgIGlmIChzaWduYXR1cmUpIHtcbiAgICAgIHJscERhdGEucHVzaCh0aGlzLmVuY29kZVNpZ25hdHVyZShzaWduYXR1cmUpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5ybHBFbmNvZGVXaXRoVHlwZVByZWZpeChybHBEYXRhKTtcbiAgfVxuXG4gIGdldE9wZXJhdGlvbnMoKTogVGlwMjBPcGVyYXRpb25bXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl9vcGVyYXRpb25zXTtcbiAgfVxuXG4gIGdldEZlZVRva2VuKCk6IEFkZHJlc3MgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5mZWVUb2tlbjtcbiAgfVxuXG4gIGdldE9wZXJhdGlvbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMudHhSZXF1ZXN0LmNhbGxzLmxlbmd0aDtcbiAgfVxuXG4gIGlzQmF0Y2goKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHhSZXF1ZXN0LmNhbGxzLmxlbmd0aCA+IDE7XG4gIH1cblxuICBzZXRTaWduYXR1cmUoc2lnbmF0dXJlOiB7IHI6IEhleDsgczogSGV4OyB5UGFyaXR5OiBudW1iZXIgfSk6IHZvaWQge1xuICAgIHRoaXMuX3NpZ25hdHVyZSA9IHNpZ25hdHVyZTtcbiAgfVxuXG4gIGdldFNpZ25hdHVyZSgpOiB7IHI6IEhleDsgczogSGV4OyB5UGFyaXR5OiBudW1iZXIgfSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3NpZ25hdHVyZTtcbiAgfVxuXG4gIHRvSnNvbigpOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6IHRoaXMudHhSZXF1ZXN0LnR5cGUsXG4gICAgICBjaGFpbklkOiB0aGlzLnR4UmVxdWVzdC5jaGFpbklkLFxuICAgICAgbm9uY2U6IHRoaXMudHhSZXF1ZXN0Lm5vbmNlLFxuICAgICAgbWF4RmVlUGVyR2FzOiB0aGlzLnR4UmVxdWVzdC5tYXhGZWVQZXJHYXMudG9TdHJpbmcoKSxcbiAgICAgIG1heFByaW9yaXR5RmVlUGVyR2FzOiB0aGlzLnR4UmVxdWVzdC5tYXhQcmlvcml0eUZlZVBlckdhcy50b1N0cmluZygpLFxuICAgICAgZ2FzOiB0aGlzLnR4UmVxdWVzdC5nYXMudG9TdHJpbmcoKSxcbiAgICAgIGNhbGxDb3VudDogdGhpcy50eFJlcXVlc3QuY2FsbHMubGVuZ3RoLFxuICAgICAgZmVlVG9rZW46IHRoaXMudHhSZXF1ZXN0LmZlZVRva2VuLFxuICAgICAgb3BlcmF0aW9uczogdGhpcy5fb3BlcmF0aW9ucyxcbiAgICAgIHNpZ25hdHVyZTogdGhpcy5fc2lnbmF0dXJlLFxuICAgIH07XG4gIH1cblxuICBhc3luYyB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnNlcmlhbGl6ZSh0aGlzLl9zaWduYXR1cmUpO1xuICB9XG5cbiAgZ2V0IGlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICdwZW5kaW5nJztcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHRoaXMudG9Kc29uKCksIG51bGwsIDIpO1xuICB9XG5cbiAgY2FuQnJvYWRjYXN0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnR4UmVxdWVzdC5jYWxscy5sZW5ndGggPiAwICYmIHRoaXMudHhSZXF1ZXN0LmNoYWluSWQgPiAwO1xuICB9XG59XG4iXX0=
@@ -29,7 +29,15 @@ export declare class Tip20TransactionBuilder extends AbstractTransactionBuilder
29
29
  */
30
30
  transfer(data?: string, isFirstSigner?: boolean): TransferBuilder;
31
31
  /**
32
- * Build the transaction from configured TIP-20 operations and transaction parameters
32
+ * Validate the transaction has all required fields for Tempo AA transactions.
33
+ * Overrides parent class validation since AA transactions use a different model
34
+ * (operations-based rather than single contract address).
35
+ *
36
+ * @throws BuildTransactionError if validation fails
37
+ */
38
+ validateTransaction(): void;
39
+ /**
40
+ * Build the transaction from configured TIP-20 operations and transaction parameters.
33
41
  */
34
42
  protected buildImplementation(): Promise<BaseTransaction>;
35
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,eAAe,EAAyB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAO,cAAc,EAAE,MAAM,SAAS,CAAC;AAKvD;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,0BAA0B;IACrE,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAC,CAAU;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,qBAAqB,CAAC,CAAS;gBAE3B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,eAAe;IASjE;;OAEG;cACa,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC;IAsC/D;;;;;;OAMG;IACH,YAAY,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IAM7C;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQpC;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ1B;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAS/B;;;;;OAKG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASjD;;;;;OAKG;IACH,oBAAoB,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASjE;;;OAGG;IACH,aAAa,IAAI,cAAc,EAAE;IAIjC;;;OAGG;IACH,WAAW,IAAI,OAAO,GAAG,SAAS;IAIlC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,eAAe;CAUxB"}
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,eAAe,EAAyB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAO,cAAc,EAAE,MAAM,SAAS,CAAC;AAKvD;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,0BAA0B;IACrE,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,SAAS,CAAC,CAAU;IAC5B,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,IAAI,CAAC,CAAS;IACtB,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,qBAAqB,CAAC,CAAS;gBAE3B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,eAAe;IASjE;;;;;;OAMG;IACH,mBAAmB,IAAI,IAAI;IAsB3B;;OAEG;cACa,mBAAmB,IAAI,OAAO,CAAC,eAAe,CAAC;IAoC/D;;;;;;OAMG;IACH,YAAY,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI;IAM7C;;;;;;OAMG;IACH,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQpC;;;;;OAKG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ1B;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAS/B;;;;;OAKG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASjD;;;;;OAKG;IACH,oBAAoB,CAAC,oBAAoB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IASjE;;;OAGG;IACH,aAAa,IAAI,cAAc,EAAE;IAIjC;;;OAGG;IACH,WAAW,IAAI,OAAO,GAAG,SAAS;IAIlC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,eAAe;CAUxB"}
@@ -37,9 +37,13 @@ class Tip20TransactionBuilder extends abstract_eth_1.TransactionBuilder {
37
37
  return transferBuilder;
38
38
  }
39
39
  /**
40
- * Build the transaction from configured TIP-20 operations and transaction parameters
40
+ * Validate the transaction has all required fields for Tempo AA transactions.
41
+ * Overrides parent class validation since AA transactions use a different model
42
+ * (operations-based rather than single contract address).
43
+ *
44
+ * @throws BuildTransactionError if validation fails
41
45
  */
42
- async buildImplementation() {
46
+ validateTransaction() {
43
47
  if (this.operations.length === 0) {
44
48
  throw new sdk_core_1.BuildTransactionError('At least one operation is required to build a transaction');
45
49
  }
@@ -55,6 +59,25 @@ class Tip20TransactionBuilder extends abstract_eth_1.TransactionBuilder {
55
59
  if (this._maxPriorityFeePerGas === undefined) {
56
60
  throw new sdk_core_1.BuildTransactionError('maxPriorityFeePerGas is required to build a transaction');
57
61
  }
62
+ }
63
+ /**
64
+ * Build the transaction from configured TIP-20 operations and transaction parameters.
65
+ */
66
+ async buildImplementation() {
67
+ if (this._nonce === undefined ||
68
+ this._gas === undefined ||
69
+ this._maxFeePerGas === undefined ||
70
+ this._maxPriorityFeePerGas === undefined) {
71
+ throw new sdk_core_1.BuildTransactionError('Transaction validation failed: missing required fields');
72
+ }
73
+ this.fee({
74
+ fee: this._maxFeePerGas.toString(),
75
+ gasLimit: this._gas.toString(),
76
+ eip1559: {
77
+ maxFeePerGas: this._maxFeePerGas.toString(),
78
+ maxPriorityFeePerGas: this._maxPriorityFeePerGas.toString(),
79
+ },
80
+ });
58
81
  const calls = this.operations.map((op) => this.operationToCall(op));
59
82
  const txRequest = {
60
83
  type: constants_1.AA_TRANSACTION_TYPE,
@@ -201,4 +224,4 @@ class Tip20TransactionBuilder extends abstract_eth_1.TransactionBuilder {
201
224
  }
202
225
  }
203
226
  exports.Tip20TransactionBuilder = Tip20TransactionBuilder;
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUFFSCxzREFBd0c7QUFDeEcsOENBQXlFO0FBR3pFLCtDQUEwRTtBQUMxRSxtQ0FBOEc7QUFDOUcsMkNBQWtEO0FBRWxEOzs7R0FHRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsaUNBQTBCO0lBUXJFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBUmIsZUFBVSxHQUFxQixFQUFFLENBQUM7SUFTMUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxJQUFhLEVBQUUsYUFBdUI7UUFDN0MsTUFBTSxlQUFlLEdBQUcsSUFBSSw4QkFBZSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN0RSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUM7UUFDakMsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVEOztPQUVHO0lBQ08sS0FBSyxDQUFDLG1CQUFtQjtRQUNqQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QixNQUFNLElB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QUFDLENBQUM7UUFDaEYsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFBLDBCQUFrQixFQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzFDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxtQkFBbUIsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDekUsQ0FBQztRQUVELGtFQUFrRTtRQUNsRSxJQUFJLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixNQUFNLGNBQWMsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDO1lBQ3ZFLElBQUksY0FBYyxHQUFHLEVBQUUsRUFBRSxDQUFDO2dCQUN4QixNQUFNLElBQUksZ0NBQXFCLENBQUMsa0JBQWtCLGNBQWMsMkJBQTJCLENBQUMsQ0FBQztZQUMvRixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWUsQ0FBQyxFQUFrQjtRQUN4QyxNQUFNLGFBQWEsR0FBRyxJQUFBLDBCQUFrQixFQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxNQUFNLElBQUksR0FBRyxJQUFBLG1DQUEyQixFQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV4RSxPQUFPO1lBQ0wsRUFBRSxFQUFFLEVBQUUsQ0FBQyxLQUFLO1lBQ1osSUFBSTtZQUNKLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWpORCwwREFpTkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRJUC0yMCBUcmFuc2FjdGlvbiBCdWlsZGVyXG4gKlxuICogVW5pZmllZCBidWlsZGVyIGZvciBUSVAtMjAgdHJhbnNhY3Rpb25zIHN1cHBvcnRpbmc6XG4gKiAtIFNpbmdsZSBvciBiYXRjaCBvcGVyYXRpb25zXG4gKiAtIFBlci1vcGVyYXRpb24gbWVtb3MgZm9yIHRyYWNraW5nXG4gKiAtIEN1c3RvbSBmZWUgdG9rZW4gc2VsZWN0aW9uXG4gKiAtIEVJUC03NzAyIEFjY291bnQgQWJzdHJhY3Rpb24gKHR5cGUgMHg3NilcbiAqL1xuXG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgYXMgQWJzdHJhY3RUcmFuc2FjdGlvbkJ1aWxkZXIsIFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJ0BiaXRnby9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgQmFzZVRyYW5zYWN0aW9uLCBCdWlsZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28vc2RrLWNvcmUnO1xuaW1wb3J0IHsgQmFzZUNvaW4gYXMgQ29pbkNvbmZpZyB9IGZyb20gJ0BiaXRnby9zdGF0aWNzJztcbmltcG9ydCB7IEFkZHJlc3MsIEhleCwgVGlwMjBPcGVyYXRpb24gfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFRpcDIwVHJhbnNhY3Rpb24sIFRpcDIwVHJhbnNhY3Rpb25SZXF1ZXN0IH0gZnJvbSAnLi90cmFuc2FjdGlvbic7XG5pbXBvcnQgeyBhbW91bnRUb1RpcDIwVW5pdHMsIGVuY29kZVRpcDIwVHJhbnNmZXJXaXRoTWVtbywgaXNWYWxpZEFkZHJlc3MsIGlzVmFsaWRUaXAyMEFtb3VudCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgQUFfVFJBTlNBQ1RJT05fVFlQRSB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuLyoqXG4gKiBUcmFuc2FjdGlvbiBCdWlsZGVyIGZvciBUSVAtMjAgdG9rZW5zIG9uIFRlbXBvIGJsb2NrY2hhaW5cbiAqIEV4dGVuZHMgYWJzdHJhY3QtZXRoIFRyYW5zYWN0aW9uQnVpbGRlciB3aXRoIFRlbXBvLXNwZWNpZmljIGZlYXR1cmVzXG4gKi9cbmV4cG9ydCBjbGFzcyBUaXAyMFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEFic3RyYWN0VHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJpdmF0ZSBvcGVyYXRpb25zOiBUaXAyME9wZXJhdGlvbltdID0gW107XG4gIHByaXZhdGUgX2ZlZVRva2VuPzogQWRkcmVzcztcbiAgcHJpdmF0ZSBfbm9uY2U/OiBudW1iZXI7XG4gIHByaXZhdGUgX2dhcz86IGJpZ2ludDtcbiAgcHJpdmF0ZSBfbWF4RmVlUGVyR2FzPzogYmlnaW50O1xuICBwcml2YXRlIF9tYXhQcmlvcml0eUZlZVBlckdhcz86IGJpZ2ludDtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50IHRoZSB0cmFuc2ZlciBtZXRob2QgZnJvbSBhYnN0cmFjdCBjbGFzc1xuICAgKiBOb3RlOiBGb3IgVElQLTIwIHRyYW5zYWN0aW9ucywgdXNlIGFkZE9wZXJhdGlvbigpIGluc3RlYWRcbiAgICovXG4gIHRyYW5zZmVyKGRhdGE/OiBzdHJpbmcsIGlzRmlyc3RTaWduZXI/OiBib29sZWFuKTogVHJhbnNmZXJCdWlsZGVyIHtcbiAgICBjb25zdCB0cmFuc2ZlckJ1aWxkZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKHVuZGVmaW5lZCwgaXNGaXJzdFNpZ25lcik7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHRyYW5zZmVyQnVpbGRlci5kYXRhKGRhdGEpO1xuICAgIH1cbiAgICB0aGlzLl90cmFuc2ZlciA9IHRyYW5zZmVyQnVpbGRlcjtcbiAgICByZXR1cm4gdHJhbnNmZXJCdWlsZGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRoZSB0cmFuc2FjdGlvbiBmcm9tIGNvbmZpZ3VyZWQgVElQLTIwIG9wZXJhdGlvbnMgYW5kIHRyYW5zYWN0aW9uIHBhcmFtZXRlcnNcbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8QmFzZVRyYW5zYWN0aW9uPiB7XG4gICAgaWYgKHRoaXMub3BlcmF0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0F0IGxlYXN0IG9uZSBvcGVyYXRpb24gaXMgcmVxdWlyZWQgdG8gYnVpbGQgYSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9ub25jZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdOb25jZSBpcyByZXF1aXJlZCB0byBidWlsZCBhIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX2dhcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdHYXMgbGltaXQgaXMgcmVxdWlyZWQgdG8gYnVpbGQgYSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9tYXhGZWVQZXJHYXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignbWF4RmVlUGVyR2FzIGlzIHJlcXVpcmVkIHRvIGJ1aWxkIGEgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbWF4UHJpb3JpdHlGZWVQZXJHYXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignbWF4UHJpb3JpdHlGZWVQZXJHYXMgaXMgcmVxdWlyZWQgdG8gYnVpbGQgYSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IGNhbGxzID0gdGhpcy5vcGVyYXRpb25zLm1hcCgob3ApID0+IHRoaXMub3BlcmF0aW9uVG9DYWxsKG9wKSk7XG5cbiAgICBjb25zdCB0eFJlcXVlc3Q6IFRpcDIwVHJhbnNhY3Rpb25SZXF1ZXN0ID0ge1xuICAgICAgdHlwZTogQUFfVFJBTlNBQ1RJT05fVFlQRSxcbiAgICAgIGNoYWluSWQ6IHRoaXMuX2NvbW1vbi5jaGFpbklkQk4oKS50b051bWJlcigpLFxuICAgICAgbm9uY2U6IHRoaXMuX25vbmNlLFxuICAgICAgbWF4RmVlUGVyR2FzOiB0aGlzLl9tYXhGZWVQZXJHYXMsXG4gICAgICBtYXhQcmlvcml0eUZlZVBlckdhczogdGhpcy5fbWF4UHJpb3JpdHlGZWVQZXJHYXMsXG4gICAgICBnYXM6IHRoaXMuX2dhcyxcbiAgICAgIGNhbGxzLFxuICAgICAgYWNjZXNzTGlzdDogW10sXG4gICAgICBmZWVUb2tlbjogdGhpcy5fZmVlVG9rZW4sXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgVGlwMjBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnLCB0eFJlcXVlc3QsIHRoaXMub3BlcmF0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgc2luZ2xlIG9wZXJhdGlvbiB0byB0aGUgdHJhbnNhY3Rpb25cbiAgICogQ2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0byBjcmVhdGUgYmF0Y2ggdHJhbnNhY3Rpb25zXG4gICAqXG4gICAqIEBwYXJhbSBvcGVyYXRpb24gLSBUSVAtMjAgb3BlcmF0aW9uIHdpdGggdG9rZW4sIHJlY2lwaWVudCwgYW1vdW50LCBhbmQgb3B0aW9uYWwgbWVtb1xuICAgKiBAcmV0dXJucyB0aGlzIGJ1aWxkZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nXG4gICAqL1xuICBhZGRPcGVyYXRpb24ob3BlcmF0aW9uOiBUaXAyME9wZXJhdGlvbik6IHRoaXMge1xuICAgIHRoaXMudmFsaWRhdGVPcGVyYXRpb24ob3BlcmF0aW9uKTtcbiAgICB0aGlzLm9wZXJhdGlvbnMucHVzaChvcGVyYXRpb24pO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB3aGljaCBUSVAtMjAgdG9rZW4gd2lsbCBiZSB1c2VkIHRvIHBheSB0cmFuc2FjdGlvbiBmZWVzXG4gICAqIFRoaXMgaXMgYSBnbG9iYWwgc2V0dGluZyBmb3IgdGhlIGVudGlyZSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0gdG9rZW5BZGRyZXNzIC0gQWRkcmVzcyBvZiB0aGUgVElQLTIwIHRva2VuIHRvIHVzZSBmb3IgZmVlc1xuICAgKiBAcmV0dXJucyB0aGlzIGJ1aWxkZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nXG4gICAqL1xuICBmZWVUb2tlbih0b2tlbkFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghaXNWYWxpZEFkZHJlc3ModG9rZW5BZGRyZXNzKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBmZWUgdG9rZW4gYWRkcmVzczogJHt0b2tlbkFkZHJlc3N9YCk7XG4gICAgfVxuICAgIHRoaXMuX2ZlZVRva2VuID0gdG9rZW5BZGRyZXNzIGFzIEFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSB0cmFuc2FjdGlvbiBub25jZVxuICAgKlxuICAgKiBAcGFyYW0gbm9uY2UgLSBUcmFuc2FjdGlvbiBub25jZVxuICAgKiBAcmV0dXJucyB0aGlzIGJ1aWxkZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nXG4gICAqL1xuICBub25jZShub25jZTogbnVtYmVyKTogdGhpcyB7XG4gICAgaWYgKG5vbmNlIDwgMCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBub25jZTogJHtub25jZX1gKTtcbiAgICB9XG4gICAgdGhpcy5fbm9uY2UgPSBub25jZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIGdhcyBsaW1pdCBmb3IgdGhlIHRyYW5zYWN0aW9uXG4gICAqXG4gICAqIEBwYXJhbSBnYXMgLSBHYXMgbGltaXRcbiAgICogQHJldHVybnMgdGhpcyBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgZ2FzKGdhczogc3RyaW5nIHwgYmlnaW50KTogdGhpcyB7XG4gICAgY29uc3QgZ2FzVmFsdWUgPSB0eXBlb2YgZ2FzID09PSAnc3RyaW5nJyA/IEJpZ0ludChnYXMpIDogZ2FzO1xuICAgIGlmIChnYXNWYWx1ZSA8PSAwbikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBnYXMgbGltaXQ6ICR7Z2FzfWApO1xuICAgIH1cbiAgICB0aGlzLl9nYXMgPSBnYXNWYWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIG1heGltdW0gZmVlIHBlciBnYXMgKEVJUC0xNTU5KVxuICAgKlxuICAgKiBAcGFyYW0gbWF4RmVlUGVyR2FzIC0gTWF4aW11bSBmZWUgcGVyIGdhcyBpbiB3ZWlcbiAgICogQHJldHVybnMgdGhpcyBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgbWF4RmVlUGVyR2FzKG1heEZlZVBlckdhczogc3RyaW5nIHwgYmlnaW50KTogdGhpcyB7XG4gICAgY29uc3QgZmVlVmFsdWUgPSB0eXBlb2YgbWF4RmVlUGVyR2FzID09PSAnc3RyaW5nJyA/IEJpZ0ludChtYXhGZWVQZXJHYXMpIDogbWF4RmVlUGVyR2FzO1xuICAgIGlmIChmZWVWYWx1ZSA8IDBuKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIG1heEZlZVBlckdhczogJHttYXhGZWVQZXJHYXN9YCk7XG4gICAgfVxuICAgIHRoaXMuX21heEZlZVBlckdhcyA9IGZlZVZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgbWF4aW11bSBwcmlvcml0eSBmZWUgcGVyIGdhcyAoRUlQLTE1NTkpXG4gICAqXG4gICAqIEBwYXJhbSBtYXhQcmlvcml0eUZlZVBlckdhcyAtIE1heGltdW0gcHJpb3JpdHkgZmVlIHBlciBnYXMgaW4gd2VpXG4gICAqIEByZXR1cm5zIHRoaXMgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmdcbiAgICovXG4gIG1heFByaW9yaXR5RmVlUGVyR2FzKG1heFByaW9yaXR5RmVlUGVyR2FzOiBzdHJpbmcgfCBiaWdpbnQpOiB0aGlzIHtcbiAgICBjb25zdCBmZWVWYWx1ZSA9IHR5cGVvZiBtYXhQcmlvcml0eUZlZVBlckdhcyA9PT0gJ3N0cmluZycgPyBCaWdJbnQobWF4UHJpb3JpdHlGZWVQZXJHYXMpIDogbWF4UHJpb3JpdHlGZWVQZXJHYXM7XG4gICAgaWYgKGZlZVZhbHVlIDwgMG4pIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgbWF4UHJpb3JpdHlGZWVQZXJHYXM6ICR7bWF4UHJpb3JpdHlGZWVQZXJHYXN9YCk7XG4gICAgfVxuICAgIHRoaXMuX21heFByaW9yaXR5RmVlUGVyR2FzID0gZmVlVmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFsbCBvcGVyYXRpb25zIGluIHRoaXMgdHJhbnNhY3Rpb25cbiAgICogQHJldHVybnMgQXJyYXkgb2YgVElQLTIwIG9wZXJhdGlvbnNcbiAgICovXG4gIGdldE9wZXJhdGlvbnMoKTogVGlwMjBPcGVyYXRpb25bXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLm9wZXJhdGlvbnNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZmVlIHRva2VuIGFkZHJlc3MgaWYgc2V0XG4gICAqIEByZXR1cm5zIEZlZSB0b2tlbiBhZGRyZXNzIG9yIHVuZGVmaW5lZFxuICAgKi9cbiAgZ2V0RmVlVG9rZW4oKTogQWRkcmVzcyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZlZVRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIFZhbGlkYXRlIGEgc2luZ2xlIG9wZXJhdGlvblxuICAgKiBAcGFyYW0gb3BlcmF0aW9uIC0gT3BlcmF0aW9uIHRvIHZhbGlkYXRlXG4gICAqIEB0aHJvd3MgQnVpbGRUcmFuc2FjdGlvbkVycm9yIGlmIGludmFsaWRcbiAgICovXG4gIHByaXZhdGUgdmFsaWRhdGVPcGVyYXRpb24ob3BlcmF0aW9uOiBUaXAyME9wZXJhdGlvbik6IHZvaWQge1xuICAgIGlmICghaXNWYWxpZEFkZHJlc3Mob3BlcmF0aW9uLnRva2VuKSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCB0b2tlbiBhZGRyZXNzOiAke29wZXJhdGlvbi50b2tlbn1gKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKG9wZXJhdGlvbi50bykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgcmVjaXBpZW50IGFkZHJlc3M6ICR7b3BlcmF0aW9uLnRvfWApO1xuICAgIH1cblxuICAgIGlmICghaXNWYWxpZFRpcDIwQW1vdW50KG9wZXJhdGlvbi5hbW91bnQpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIGFtb3VudDogJHtvcGVyYXRpb24uYW1vdW50fWApO1xuICAgIH1cblxuICAgIC8vIFZhbGlkYXRlIG1lbW8gYnl0ZSBsZW5ndGggKGhhbmRsZXMgbXVsdGktYnl0ZSBVVEYtOCBjaGFyYWN0ZXJzKVxuICAgIGlmIChvcGVyYXRpb24ubWVtbykge1xuICAgICAgY29uc3QgbWVtb0J5dGVMZW5ndGggPSBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUob3BlcmF0aW9uLm1lbW8pLmxlbmd0aDtcbiAgICAgIGlmIChtZW1vQnl0ZUxlbmd0aCA+IDMyKSB7XG4gICAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYE1lbW8gdG9vIGxvbmc6ICR7bWVtb0J5dGVMZW5ndGh9IGJ5dGVzLiBNYXhpbXVtIDMyIGJ5dGVzLmApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGEgVElQLTIwIG9wZXJhdGlvbiB0byBhbiBBQSBjYWxsXG4gICAqL1xuICBwcml2YXRlIG9wZXJhdGlvblRvQ2FsbChvcDogVGlwMjBPcGVyYXRpb24pOiB7IHRvOiBBZGRyZXNzOyBkYXRhOiBIZXg7IHZhbHVlOiBiaWdpbnQgfSB7XG4gICAgY29uc3QgYW1vdW50SW5Vbml0cyA9IGFtb3VudFRvVGlwMjBVbml0cyhvcC5hbW91bnQpO1xuICAgIGNvbnN0IGRhdGEgPSBlbmNvZGVUaXAyMFRyYW5zZmVyV2l0aE1lbW8ob3AudG8sIGFtb3VudEluVW5pdHMsIG9wLm1lbW8pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHRvOiBvcC50b2tlbixcbiAgICAgIGRhdGEsXG4gICAgICB2YWx1ZTogMG4sXG4gICAgfTtcbiAgfVxufVxuIl19
227
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7OztHQVFHOzs7QUFFSCxzREFBd0c7QUFDeEcsOENBQXlFO0FBR3pFLCtDQUEwRTtBQUMxRSxtQ0FBOEc7QUFDOUcsMkNBQWtEO0FBRWxEOzs7R0FHRztBQUNILE1BQWEsdUJBQXdCLFNBQVEsaUNBQTBCO0lBUXJFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBUmIsZUFBVSxHQUFxQixFQUFFLENBQUM7SUFTMUMsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxJQUFhLEVBQUUsYUFBdUI7UUFDN0MsTUFBTSxlQUFlLEdBQUcsSUFBSSw4QkFBZSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUN0RSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxlQUFlLENBQUM7UUFDakMsT0FBTyxlQUFlLENBQUM7SUFDekIsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILG1CQUFtQjtRQUNqQixJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQywyREFBMkQsQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDOUIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDBDQUEwQyxDQUFDLENBQUM7UUFDOUUsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM1QixNQUFNLElBQUksZ0NB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O0lBRUQ7O09BRUc7SUFDSyxlQUFlLENBQUMsRUFBa0I7UUFDeEMsTUFBTSxhQUFhLEdBQUcsSUFBQSwwQkFBa0IsRUFBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsTUFBTSxJQUFJLEdBQUcsSUFBQSxtQ0FBMkIsRUFBQyxFQUFFLENBQUMsRUFBRSxFQUFFLGFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFeEUsT0FBTztZQUNMLEVBQUUsRUFBRSxFQUFFLENBQUMsS0FBSztZQUNaLElBQUk7WUFDSixLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE1T0QsMERBNE9DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUSVAtMjAgVHJhbnNhY3Rpb24gQnVpbGRlclxuICpcbiAqIFVuaWZpZWQgYnVpbGRlciBmb3IgVElQLTIwIHRyYW5zYWN0aW9ucyBzdXBwb3J0aW5nOlxuICogLSBTaW5nbGUgb3IgYmF0Y2ggb3BlcmF0aW9uc1xuICogLSBQZXItb3BlcmF0aW9uIG1lbW9zIGZvciB0cmFja2luZ1xuICogLSBDdXN0b20gZmVlIHRva2VuIHNlbGVjdGlvblxuICogLSBFSVAtNzcwMiBBY2NvdW50IEFic3RyYWN0aW9uICh0eXBlIDB4NzYpXG4gKi9cblxuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIGFzIEFic3RyYWN0VHJhbnNhY3Rpb25CdWlsZGVyLCBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICdAYml0Z28vYWJzdHJhY3QtZXRoJztcbmltcG9ydCB7IEJhc2VUcmFuc2FjdGlvbiwgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgeyBBZGRyZXNzLCBIZXgsIFRpcDIwT3BlcmF0aW9uIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUaXAyMFRyYW5zYWN0aW9uLCBUaXAyMFRyYW5zYWN0aW9uUmVxdWVzdCB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgYW1vdW50VG9UaXAyMFVuaXRzLCBlbmNvZGVUaXAyMFRyYW5zZmVyV2l0aE1lbW8sIGlzVmFsaWRBZGRyZXNzLCBpc1ZhbGlkVGlwMjBBbW91bnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IEFBX1RSQU5TQUNUSU9OX1RZUEUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbi8qKlxuICogVHJhbnNhY3Rpb24gQnVpbGRlciBmb3IgVElQLTIwIHRva2VucyBvbiBUZW1wbyBibG9ja2NoYWluXG4gKiBFeHRlbmRzIGFic3RyYWN0LWV0aCBUcmFuc2FjdGlvbkJ1aWxkZXIgd2l0aCBUZW1wby1zcGVjaWZpYyBmZWF0dXJlc1xuICovXG5leHBvcnQgY2xhc3MgVGlwMjBUcmFuc2FjdGlvbkJ1aWxkZXIgZXh0ZW5kcyBBYnN0cmFjdFRyYW5zYWN0aW9uQnVpbGRlciB7XG4gIHByaXZhdGUgb3BlcmF0aW9uczogVGlwMjBPcGVyYXRpb25bXSA9IFtdO1xuICBwcml2YXRlIF9mZWVUb2tlbj86IEFkZHJlc3M7XG4gIHByaXZhdGUgX25vbmNlPzogbnVtYmVyO1xuICBwcml2YXRlIF9nYXM/OiBiaWdpbnQ7XG4gIHByaXZhdGUgX21heEZlZVBlckdhcz86IGJpZ2ludDtcbiAgcHJpdmF0ZSBfbWF4UHJpb3JpdHlGZWVQZXJHYXM/OiBiaWdpbnQ7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcGxlbWVudCB0aGUgdHJhbnNmZXIgbWV0aG9kIGZyb20gYWJzdHJhY3QgY2xhc3NcbiAgICogTm90ZTogRm9yIFRJUC0yMCB0cmFuc2FjdGlvbnMsIHVzZSBhZGRPcGVyYXRpb24oKSBpbnN0ZWFkXG4gICAqL1xuICB0cmFuc2ZlcihkYXRhPzogc3RyaW5nLCBpc0ZpcnN0U2lnbmVyPzogYm9vbGVhbik6IFRyYW5zZmVyQnVpbGRlciB7XG4gICAgY29uc3QgdHJhbnNmZXJCdWlsZGVyID0gbmV3IFRyYW5zZmVyQnVpbGRlcih1bmRlZmluZWQsIGlzRmlyc3RTaWduZXIpO1xuICAgIGlmIChkYXRhKSB7XG4gICAgICB0cmFuc2ZlckJ1aWxkZXIuZGF0YShkYXRhKTtcbiAgICB9XG4gICAgdGhpcy5fdHJhbnNmZXIgPSB0cmFuc2ZlckJ1aWxkZXI7XG4gICAgcmV0dXJuIHRyYW5zZmVyQnVpbGRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSB0aGUgdHJhbnNhY3Rpb24gaGFzIGFsbCByZXF1aXJlZCBmaWVsZHMgZm9yIFRlbXBvIEFBIHRyYW5zYWN0aW9ucy5cbiAgICogT3ZlcnJpZGVzIHBhcmVudCBjbGFzcyB2YWxpZGF0aW9uIHNpbmNlIEFBIHRyYW5zYWN0aW9ucyB1c2UgYSBkaWZmZXJlbnQgbW9kZWxcbiAgICogKG9wZXJhdGlvbnMtYmFzZWQgcmF0aGVyIHRoYW4gc2luZ2xlIGNvbnRyYWN0IGFkZHJlc3MpLlxuICAgKlxuICAgKiBAdGhyb3dzIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciBpZiB2YWxpZGF0aW9uIGZhaWxzXG4gICAqL1xuICB2YWxpZGF0ZVRyYW5zYWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9wZXJhdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdBdCBsZWFzdCBvbmUgb3BlcmF0aW9uIGlzIHJlcXVpcmVkIHRvIGJ1aWxkIGEgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbm9uY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignTm9uY2UgaXMgcmVxdWlyZWQgdG8gYnVpbGQgYSB0cmFuc2FjdGlvbicpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl9nYXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignR2FzIGxpbWl0IGlzIHJlcXVpcmVkIHRvIGJ1aWxkIGEgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fbWF4RmVlUGVyR2FzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ21heEZlZVBlckdhcyBpcyByZXF1aXJlZCB0byBidWlsZCBhIHRyYW5zYWN0aW9uJyk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX21heFByaW9yaXR5RmVlUGVyR2FzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ21heFByaW9yaXR5RmVlUGVyR2FzIGlzIHJlcXVpcmVkIHRvIGJ1aWxkIGEgdHJhbnNhY3Rpb24nKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIHRyYW5zYWN0aW9uIGZyb20gY29uZmlndXJlZCBUSVAtMjAgb3BlcmF0aW9ucyBhbmQgdHJhbnNhY3Rpb24gcGFyYW1ldGVycy5cbiAgICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8QmFzZVRyYW5zYWN0aW9uPiB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5fbm9uY2UgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgdGhpcy5fZ2FzID09PSB1bmRlZmluZWQgfHxcbiAgICAgIHRoaXMuX21heEZlZVBlckdhcyA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICB0aGlzLl9tYXhQcmlvcml0eUZlZVBlckdhcyA9PT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdUcmFuc2FjdGlvbiB2YWxpZGF0aW9uIGZhaWxlZDogbWlzc2luZyByZXF1aXJlZCBmaWVsZHMnKTtcbiAgICB9XG5cbiAgICB0aGlzLmZlZSh7XG4gICAgICBmZWU6IHRoaXMuX21heEZlZVBlckdhcy50b1N0cmluZygpLFxuICAgICAgZ2FzTGltaXQ6IHRoaXMuX2dhcy50b1N0cmluZygpLFxuICAgICAgZWlwMTU1OToge1xuICAgICAgICBtYXhGZWVQZXJHYXM6IHRoaXMuX21heEZlZVBlckdhcy50b1N0cmluZygpLFxuICAgICAgICBtYXhQcmlvcml0eUZlZVBlckdhczogdGhpcy5fbWF4UHJpb3JpdHlGZWVQZXJHYXMudG9TdHJpbmcoKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBjYWxscyA9IHRoaXMub3BlcmF0aW9ucy5tYXAoKG9wKSA9PiB0aGlzLm9wZXJhdGlvblRvQ2FsbChvcCkpO1xuXG4gICAgY29uc3QgdHhSZXF1ZXN0OiBUaXAyMFRyYW5zYWN0aW9uUmVxdWVzdCA9IHtcbiAgICAgIHR5cGU6IEFBX1RSQU5TQUNUSU9OX1RZUEUsXG4gICAgICBjaGFpbklkOiB0aGlzLl9jb21tb24uY2hhaW5JZEJOKCkudG9OdW1iZXIoKSxcbiAgICAgIG5vbmNlOiB0aGlzLl9ub25jZSxcbiAgICAgIG1heEZlZVBlckdhczogdGhpcy5fbWF4RmVlUGVyR2FzLFxuICAgICAgbWF4UHJpb3JpdHlGZWVQZXJHYXM6IHRoaXMuX21heFByaW9yaXR5RmVlUGVyR2FzLFxuICAgICAgZ2FzOiB0aGlzLl9nYXMsXG4gICAgICBjYWxscyxcbiAgICAgIGFjY2Vzc0xpc3Q6IFtdLFxuICAgICAgZmVlVG9rZW46IHRoaXMuX2ZlZVRva2VuLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IFRpcDIwVHJhbnNhY3Rpb24odGhpcy5fY29pbkNvbmZpZywgdHhSZXF1ZXN0LCB0aGlzLm9wZXJhdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIHNpbmdsZSBvcGVyYXRpb24gdG8gdGhlIHRyYW5zYWN0aW9uXG4gICAqIENhbiBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMgdG8gY3JlYXRlIGJhdGNoIHRyYW5zYWN0aW9uc1xuICAgKlxuICAgKiBAcGFyYW0gb3BlcmF0aW9uIC0gVElQLTIwIG9wZXJhdGlvbiB3aXRoIHRva2VuLCByZWNpcGllbnQsIGFtb3VudCwgYW5kIG9wdGlvbmFsIG1lbW9cbiAgICogQHJldHVybnMgdGhpcyBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgYWRkT3BlcmF0aW9uKG9wZXJhdGlvbjogVGlwMjBPcGVyYXRpb24pOiB0aGlzIHtcbiAgICB0aGlzLnZhbGlkYXRlT3BlcmF0aW9uKG9wZXJhdGlvbik7XG4gICAgdGhpcy5vcGVyYXRpb25zLnB1c2gob3BlcmF0aW9uKTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgd2hpY2ggVElQLTIwIHRva2VuIHdpbGwgYmUgdXNlZCB0byBwYXkgdHJhbnNhY3Rpb24gZmVlc1xuICAgKiBUaGlzIGlzIGEgZ2xvYmFsIHNldHRpbmcgZm9yIHRoZSBlbnRpcmUgdHJhbnNhY3Rpb25cbiAgICpcbiAgICogQHBhcmFtIHRva2VuQWRkcmVzcyAtIEFkZHJlc3Mgb2YgdGhlIFRJUC0yMCB0b2tlbiB0byB1c2UgZm9yIGZlZXNcbiAgICogQHJldHVybnMgdGhpcyBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgZmVlVG9rZW4odG9rZW5BZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKHRva2VuQWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgZmVlIHRva2VuIGFkZHJlc3M6ICR7dG9rZW5BZGRyZXNzfWApO1xuICAgIH1cbiAgICB0aGlzLl9mZWVUb2tlbiA9IHRva2VuQWRkcmVzcyBhcyBBZGRyZXNzO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgdHJhbnNhY3Rpb24gbm9uY2VcbiAgICpcbiAgICogQHBhcmFtIG5vbmNlIC0gVHJhbnNhY3Rpb24gbm9uY2VcbiAgICogQHJldHVybnMgdGhpcyBidWlsZGVyIGluc3RhbmNlIGZvciBjaGFpbmluZ1xuICAgKi9cbiAgbm9uY2Uobm9uY2U6IG51bWJlcik6IHRoaXMge1xuICAgIGlmIChub25jZSA8IDApIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgbm9uY2U6ICR7bm9uY2V9YCk7XG4gICAgfVxuICAgIHRoaXMuX25vbmNlID0gbm9uY2U7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBnYXMgbGltaXQgZm9yIHRoZSB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcGFyYW0gZ2FzIC0gR2FzIGxpbWl0XG4gICAqIEByZXR1cm5zIHRoaXMgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmdcbiAgICovXG4gIGdhcyhnYXM6IHN0cmluZyB8IGJpZ2ludCk6IHRoaXMge1xuICAgIGNvbnN0IGdhc1ZhbHVlID0gdHlwZW9mIGdhcyA9PT0gJ3N0cmluZycgPyBCaWdJbnQoZ2FzKSA6IGdhcztcbiAgICBpZiAoZ2FzVmFsdWUgPD0gMG4pIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgZ2FzIGxpbWl0OiAke2dhc31gKTtcbiAgICB9XG4gICAgdGhpcy5fZ2FzID0gZ2FzVmFsdWU7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHRoZSBtYXhpbXVtIGZlZSBwZXIgZ2FzIChFSVAtMTU1OSlcbiAgICpcbiAgICogQHBhcmFtIG1heEZlZVBlckdhcyAtIE1heGltdW0gZmVlIHBlciBnYXMgaW4gd2VpXG4gICAqIEByZXR1cm5zIHRoaXMgYnVpbGRlciBpbnN0YW5jZSBmb3IgY2hhaW5pbmdcbiAgICovXG4gIG1heEZlZVBlckdhcyhtYXhGZWVQZXJHYXM6IHN0cmluZyB8IGJpZ2ludCk6IHRoaXMge1xuICAgIGNvbnN0IGZlZVZhbHVlID0gdHlwZW9mIG1heEZlZVBlckdhcyA9PT0gJ3N0cmluZycgPyBCaWdJbnQobWF4RmVlUGVyR2FzKSA6IG1heEZlZVBlckdhcztcbiAgICBpZiAoZmVlVmFsdWUgPCAwbikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBtYXhGZWVQZXJHYXM6ICR7bWF4RmVlUGVyR2FzfWApO1xuICAgIH1cbiAgICB0aGlzLl9tYXhGZWVQZXJHYXMgPSBmZWVWYWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdGhlIG1heGltdW0gcHJpb3JpdHkgZmVlIHBlciBnYXMgKEVJUC0xNTU5KVxuICAgKlxuICAgKiBAcGFyYW0gbWF4UHJpb3JpdHlGZWVQZXJHYXMgLSBNYXhpbXVtIHByaW9yaXR5IGZlZSBwZXIgZ2FzIGluIHdlaVxuICAgKiBAcmV0dXJucyB0aGlzIGJ1aWxkZXIgaW5zdGFuY2UgZm9yIGNoYWluaW5nXG4gICAqL1xuICBtYXhQcmlvcml0eUZlZVBlckdhcyhtYXhQcmlvcml0eUZlZVBlckdhczogc3RyaW5nIHwgYmlnaW50KTogdGhpcyB7XG4gICAgY29uc3QgZmVlVmFsdWUgPSB0eXBlb2YgbWF4UHJpb3JpdHlGZWVQZXJHYXMgPT09ICdzdHJpbmcnID8gQmlnSW50KG1heFByaW9yaXR5RmVlUGVyR2FzKSA6IG1heFByaW9yaXR5RmVlUGVyR2FzO1xuICAgIGlmIChmZWVWYWx1ZSA8IDBuKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIG1heFByaW9yaXR5RmVlUGVyR2FzOiAke21heFByaW9yaXR5RmVlUGVyR2FzfWApO1xuICAgIH1cbiAgICB0aGlzLl9tYXhQcmlvcml0eUZlZVBlckdhcyA9IGZlZVZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgb3BlcmF0aW9ucyBpbiB0aGlzIHRyYW5zYWN0aW9uXG4gICAqIEByZXR1cm5zIEFycmF5IG9mIFRJUC0yMCBvcGVyYXRpb25zXG4gICAqL1xuICBnZXRPcGVyYXRpb25zKCk6IFRpcDIwT3BlcmF0aW9uW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5vcGVyYXRpb25zXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGZlZSB0b2tlbiBhZGRyZXNzIGlmIHNldFxuICAgKiBAcmV0dXJucyBGZWUgdG9rZW4gYWRkcmVzcyBvciB1bmRlZmluZWRcbiAgICovXG4gIGdldEZlZVRva2VuKCk6IEFkZHJlc3MgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9mZWVUb2tlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZSBhIHNpbmdsZSBvcGVyYXRpb25cbiAgICogQHBhcmFtIG9wZXJhdGlvbiAtIE9wZXJhdGlvbiB0byB2YWxpZGF0ZVxuICAgKiBAdGhyb3dzIEJ1aWxkVHJhbnNhY3Rpb25FcnJvciBpZiBpbnZhbGlkXG4gICAqL1xuICBwcml2YXRlIHZhbGlkYXRlT3BlcmF0aW9uKG9wZXJhdGlvbjogVGlwMjBPcGVyYXRpb24pOiB2b2lkIHtcbiAgICBpZiAoIWlzVmFsaWRBZGRyZXNzKG9wZXJhdGlvbi50b2tlbikpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgdG9rZW4gYWRkcmVzczogJHtvcGVyYXRpb24udG9rZW59YCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1ZhbGlkQWRkcmVzcyhvcGVyYXRpb24udG8pKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHJlY2lwaWVudCBhZGRyZXNzOiAke29wZXJhdGlvbi50b31gKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWRUaXAyMEFtb3VudChvcGVyYXRpb24uYW1vdW50KSkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBhbW91bnQ6ICR7b3BlcmF0aW9uLmFtb3VudH1gKTtcbiAgICB9XG5cbiAgICAvLyBWYWxpZGF0ZSBtZW1vIGJ5dGUgbGVuZ3RoIChoYW5kbGVzIG11bHRpLWJ5dGUgVVRGLTggY2hhcmFjdGVycylcbiAgICBpZiAob3BlcmF0aW9uLm1lbW8pIHtcbiAgICAgIGNvbnN0IG1lbW9CeXRlTGVuZ3RoID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKG9wZXJhdGlvbi5tZW1vKS5sZW5ndGg7XG4gICAgICBpZiAobWVtb0J5dGVMZW5ndGggPiAzMikge1xuICAgICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBNZW1vIHRvbyBsb25nOiAke21lbW9CeXRlTGVuZ3RofSBieXRlcy4gTWF4aW11bSAzMiBieXRlcy5gKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBhIFRJUC0yMCBvcGVyYXRpb24gdG8gYW4gQUEgY2FsbFxuICAgKi9cbiAgcHJpdmF0ZSBvcGVyYXRpb25Ub0NhbGwob3A6IFRpcDIwT3BlcmF0aW9uKTogeyB0bzogQWRkcmVzczsgZGF0YTogSGV4OyB2YWx1ZTogYmlnaW50IH0ge1xuICAgIGNvbnN0IGFtb3VudEluVW5pdHMgPSBhbW91bnRUb1RpcDIwVW5pdHMob3AuYW1vdW50KTtcbiAgICBjb25zdCBkYXRhID0gZW5jb2RlVGlwMjBUcmFuc2ZlcldpdGhNZW1vKG9wLnRvLCBhbW91bnRJblVuaXRzLCBvcC5tZW1vKTtcblxuICAgIHJldHVybiB7XG4gICAgICB0bzogb3AudG9rZW4sXG4gICAgICBkYXRhLFxuICAgICAgdmFsdWU6IDBuLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,7 @@
1
+ /**
2
+ * TIP-20 Integration Tests
3
+ *
4
+ * End-to-end flows for TIP-20 token transactions on Tempo using testnet token addresses.
5
+ */
1
6
  export {};
2
7
  //# sourceMappingURL=tip20.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tip20.d.ts","sourceRoot":"","sources":["../../../test/integration/tip20.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"tip20.d.ts","sourceRoot":"","sources":["../../../test/integration/tip20.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}