@bitgo-beta/sdk-coin-starknet 0.0.1-beta.12 → 0.0.1-beta.14

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.
@@ -5,10 +5,12 @@ import { StarknetTransactionType } from './iface';
5
5
  export declare class TransferBuilder extends TransactionBuilder {
6
6
  protected _receiverAddress?: string;
7
7
  protected _amount?: string;
8
+ protected _tokenContractAddress: string;
8
9
  constructor(_coinConfig: Readonly<CoinConfig>);
9
10
  protected get transactionType(): StarknetTransactionType;
10
11
  receiverId(address: string): this;
11
12
  amount(value: string): this;
13
+ tokenContractAddress(address: string): this;
12
14
  /** @inheritdoc */
13
15
  initBuilder(tx: Transaction): void;
14
16
  /** @inheritdoc */
@@ -1 +1 @@
1
- {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAgB,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAIhE,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;gBAEf,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,uBAAuB,CAEvD;IAEM,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQjC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IASlC,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAWlC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAc3D,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,gBAAgB;CAiBzB"}
1
+ {"version":3,"file":"transferBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transferBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAgB,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAIhE,qBAAa,eAAgB,SAAQ,kBAAkB;IACrD,SAAS,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACpC,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,qBAAqB,EAAE,MAAM,CAAuB;gBAElD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI7C,SAAS,KAAK,eAAe,IAAI,uBAAuB,CAEvD;IAEM,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQjC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS3B,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQlD,kBAAkB;IAClB,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,IAAI;IAYlC,kBAAkB;cACF,mBAAmB,IAAI,OAAO,CAAC,WAAW,CAAC;IAc3D,OAAO,CAAC,uBAAuB;IAK/B,OAAO,CAAC,gBAAgB;CAiBzB"}
@@ -12,6 +12,7 @@ const utils_1 = __importDefault(require("./utils"));
12
12
  class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
13
13
  constructor(_coinConfig) {
14
14
  super(_coinConfig);
15
+ this._tokenContractAddress = constants_1.STRK_TOKEN_CONTRACT;
15
16
  }
16
17
  get transactionType() {
17
18
  return iface_1.StarknetTransactionType.INVOKE;
@@ -31,6 +32,13 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
31
32
  this._amount = value;
32
33
  return this;
33
34
  }
35
+ tokenContractAddress(address) {
36
+ if (!address || !utils_1.default.isValidAddress(address)) {
37
+ throw new sdk_core_1.BuildTransactionError('Invalid token contract address, got: ' + address);
38
+ }
39
+ this._tokenContractAddress = address;
40
+ return this;
41
+ }
34
42
  /** @inheritdoc */
35
43
  initBuilder(tx) {
36
44
  super.initBuilder(tx);
@@ -39,6 +47,7 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
39
47
  if (transfer) {
40
48
  this._receiverAddress = transfer.recipient;
41
49
  this._amount = transfer.amount;
50
+ this._tokenContractAddress = transfer.tokenContract;
42
51
  }
43
52
  }
44
53
  }
@@ -46,7 +55,7 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
46
55
  async buildImplementation() {
47
56
  this.validateTransfer();
48
57
  const transferCall = {
49
- contractAddress: constants_1.STRK_TOKEN_CONTRACT,
58
+ contractAddress: this._tokenContractAddress,
50
59
  entrypoint: 'transfer',
51
60
  calldata: this.compileTransferCalldata(this._receiverAddress, this._amount),
52
61
  };
@@ -76,4 +85,4 @@ class TransferBuilder extends transactionBuilder_1.TransactionBuilder {
76
85
  }
77
86
  }
78
87
  exports.TransferBuilder = TransferBuilder;
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQTZEO0FBRTdELDZEQUEwRDtBQUUxRCxtQ0FBZ0U7QUFDaEUsMkNBQTREO0FBQzVELG9EQUE0QjtBQUU1QixNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBSXJELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxJQUFjLGVBQWU7UUFDM0IsT0FBTywrQkFBdUIsQ0FBQyxNQUFNLENBQUM7SUFDeEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFlO1FBQy9CLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxlQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDL0MsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDRDQUE0QyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBQzFGLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFhO1FBQ3pCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxtQkFBbUIsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFdBQVcsQ0FBQyxFQUFlO1FBQ3pCLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMzQixNQUFNLFFBQVEsR0FBRyxlQUFLLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3pELElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7SUFDUixLQUFLLENBQUMsbUJBQW1CO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLE1BQU0sWUFBWSxHQUFpQjtZQUNqQyxlQUFlLEVBQUUsK0JBQW1CO1lBQ3BDLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLFFBQVEsRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLGdCQUEwQixFQUFFLElBQUksQ0FBQyxPQUFpQixDQUFDO1NBQ2hHLENBQUM7UUFFRixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFN0IsT0FBTyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU8sdUJBQXVCLENBQUMsU0FBaUIsRUFBRSxNQUFjO1FBQy9ELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQyxPQUFPLENBQUMsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLFNBQVMsR0FBRyxvQkFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRyxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMzQixNQUFNLElBQUksZ0NBQXFCLENBQUMsc0JBQXNCLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksZ0NBQXFCLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDeEMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLDJCQUEyQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUNqRCxNQUFNLElBQUksZ0NBQXFCLENBQUMsNkJBQTZCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFDeEYsQ0FBQztJQUNILENBQUM7Q0FDRjtBQTlFRCwwQ0E4RUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU3RhcmtuZXRDYWxsLCBTdGFya25ldFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgU1RSS19UT0tFTl9DT05UUkFDVCwgTUFTS18xMjggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3JlY2VpdmVyQWRkcmVzcz86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9hbW91bnQ/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogU3RhcmtuZXRUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBTdGFya25ldFRyYW5zYWN0aW9uVHlwZS5JTlZPS0U7XG4gIH1cblxuICBwdWJsaWMgcmVjZWl2ZXJJZChhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWFkZHJlc3MgfHwgIXV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgcmVjZWl2ZXIgYWRkcmVzcywgZ290OiAnICsgYWRkcmVzcyk7XG4gICAgfVxuICAgIHRoaXMuX3JlY2VpdmVyQWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgYW1vdW50KHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCB2YWwgPSBCaWdJbnQodmFsdWUpO1xuICAgIGlmICh2YWwgPCAwbikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBhbW91bnQ6ICR7dmFsdWV9YCk7XG4gICAgfVxuICAgIHRoaXMuX2Ftb3VudCA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGluaXRCdWlsZGVyKHR4OiBUcmFuc2FjdGlvbik6IHZvaWQge1xuICAgIHN1cGVyLmluaXRCdWlsZGVyKHR4KTtcbiAgICBpZiAodGhpcy5fY2FsbHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgdHJhbnNmZXIgPSB1dGlscy5wYXJzZVRyYW5zZmVyQ2FsbCh0aGlzLl9jYWxsc1swXSk7XG4gICAgICBpZiAodHJhbnNmZXIpIHtcbiAgICAgICAgdGhpcy5fcmVjZWl2ZXJBZGRyZXNzID0gdHJhbnNmZXIucmVjaXBpZW50O1xuICAgICAgICB0aGlzLl9hbW91bnQgPSB0cmFuc2Zlci5hbW91bnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNmZXIoKTtcblxuICAgIGNvbnN0IHRyYW5zZmVyQ2FsbDogU3RhcmtuZXRDYWxsID0ge1xuICAgICAgY29udHJhY3RBZGRyZXNzOiBTVFJLX1RPS0VOX0NPTlRSQUNULFxuICAgICAgZW50cnlwb2ludDogJ3RyYW5zZmVyJyxcbiAgICAgIGNhbGxkYXRhOiB0aGlzLmNvbXBpbGVUcmFuc2ZlckNhbGxkYXRhKHRoaXMuX3JlY2VpdmVyQWRkcmVzcyBhcyBzdHJpbmcsIHRoaXMuX2Ftb3VudCBhcyBzdHJpbmcpLFxuICAgIH07XG5cbiAgICB0aGlzLl9jYWxscyA9IFt0cmFuc2ZlckNhbGxdO1xuXG4gICAgcmV0dXJuIHN1cGVyLmJ1aWxkSW1wbGVtZW50YXRpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgY29tcGlsZVRyYW5zZmVyQ2FsbGRhdGEocmVjaXBpZW50OiBzdHJpbmcsIGFtb3VudDogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGFtb3VudEJpZyA9IEJpZ0ludChhbW91bnQpO1xuICAgIHJldHVybiBbcmVjaXBpZW50LCAnMHgnICsgKGFtb3VudEJpZyAmIE1BU0tfMTI4KS50b1N0cmluZygxNiksICcweCcgKyAoYW1vdW50QmlnID4+IDEyOG4pLnRvU3RyaW5nKDE2KV07XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlVHJhbnNmZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9zZW5kZXIpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1NlbmRlciBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX3JlY2VpdmVyQWRkcmVzcykge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignUmVjZWl2ZXIgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9hbW91bnQpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0Ftb3VudCBpcyByZXF1aXJlZCcpO1xuICAgIH1cbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRBZGRyZXNzKHRoaXMuX3NlbmRlcikpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgc2VuZGVyIGFkZHJlc3M6ICR7dGhpcy5fc2VuZGVyfWApO1xuICAgIH1cbiAgICBpZiAoIXV0aWxzLmlzVmFsaWRBZGRyZXNzKHRoaXMuX3JlY2VpdmVyQWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoYEludmFsaWQgcmVjZWl2ZXIgYWRkcmVzczogJHt0aGlzLl9yZWNlaXZlckFkZHJlc3N9YCk7XG4gICAgfVxuICB9XG59XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNmZXJCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2ZlckJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsbURBQTZEO0FBRTdELDZEQUEwRDtBQUUxRCxtQ0FBZ0U7QUFDaEUsMkNBQTREO0FBQzVELG9EQUE0QjtBQUU1QixNQUFhLGVBQWdCLFNBQVEsdUNBQWtCO0lBS3JELFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBSFgsMEJBQXFCLEdBQVcsK0JBQW1CLENBQUM7SUFJOUQsQ0FBQztJQUVELElBQWMsZUFBZTtRQUMzQixPQUFPLCtCQUF1QixDQUFDLE1BQU0sQ0FBQztJQUN4QyxDQUFDO0lBRU0sVUFBVSxDQUFDLE9BQWU7UUFDL0IsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLGVBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUksZ0NBQXFCLENBQUMsNENBQTRDLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUNELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWE7UUFDekIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLElBQUksR0FBRyxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLGdDQUFxQixDQUFDLG1CQUFtQixLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlELENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxPQUFlO1FBQ3pDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxlQUFLLENBQUMsY0FB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eyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBCYXNlQ29pbiBhcyBDb2luQ29uZmlnIH0gZnJvbSAnQGJpdGdvLWJldGEvc3RhdGljcyc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgU3RhcmtuZXRDYWxsLCBTdGFya25ldFRyYW5zYWN0aW9uVHlwZSB9IGZyb20gJy4vaWZhY2UnO1xuaW1wb3J0IHsgU1RSS19UT0tFTl9DT05UUkFDVCwgTUFTS18xMjggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2ZlckJ1aWxkZXIgZXh0ZW5kcyBUcmFuc2FjdGlvbkJ1aWxkZXIge1xuICBwcm90ZWN0ZWQgX3JlY2VpdmVyQWRkcmVzcz86IHN0cmluZztcbiAgcHJvdGVjdGVkIF9hbW91bnQ/OiBzdHJpbmc7XG4gIHByb3RlY3RlZCBfdG9rZW5Db250cmFjdEFkZHJlc3M6IHN0cmluZyA9IFNUUktfVE9LRU5fQ09OVFJBQ1Q7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCB0cmFuc2FjdGlvblR5cGUoKTogU3RhcmtuZXRUcmFuc2FjdGlvblR5cGUge1xuICAgIHJldHVybiBTdGFya25ldFRyYW5zYWN0aW9uVHlwZS5JTlZPS0U7XG4gIH1cblxuICBwdWJsaWMgcmVjZWl2ZXJJZChhZGRyZXNzOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBpZiAoIWFkZHJlc3MgfHwgIXV0aWxzLmlzVmFsaWRBZGRyZXNzKGFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdJbnZhbGlkIG9yIG1pc3NpbmcgcmVjZWl2ZXIgYWRkcmVzcywgZ290OiAnICsgYWRkcmVzcyk7XG4gICAgfVxuICAgIHRoaXMuX3JlY2VpdmVyQWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICBwdWJsaWMgYW1vdW50KHZhbHVlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICBjb25zdCB2YWwgPSBCaWdJbnQodmFsdWUpO1xuICAgIGlmICh2YWwgPCAwbikge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcihgSW52YWxpZCBhbW91bnQ6ICR7dmFsdWV9YCk7XG4gICAgfVxuICAgIHRoaXMuX2Ftb3VudCA9IHZhbHVlO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIHRva2VuQ29udHJhY3RBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IHRoaXMge1xuICAgIGlmICghYWRkcmVzcyB8fCAhdXRpbHMuaXNWYWxpZEFkZHJlc3MoYWRkcmVzcykpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ0ludmFsaWQgdG9rZW4gY29udHJhY3QgYWRkcmVzcywgZ290OiAnICsgYWRkcmVzcyk7XG4gICAgfVxuICAgIHRoaXMuX3Rva2VuQ29udHJhY3RBZGRyZXNzID0gYWRkcmVzcztcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpbml0QnVpbGRlcih0eDogVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgICBzdXBlci5pbml0QnVpbGRlcih0eCk7XG4gICAgaWYgKHRoaXMuX2NhbGxzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHRyYW5zZmVyID0gdXRpbHMucGFyc2VUcmFuc2ZlckNhbGwodGhpcy5fY2FsbHNbMF0pO1xuICAgICAgaWYgKHRyYW5zZmVyKSB7XG4gICAgICAgIHRoaXMuX3JlY2VpdmVyQWRkcmVzcyA9IHRyYW5zZmVyLnJlY2lwaWVudDtcbiAgICAgICAgdGhpcy5fYW1vdW50ID0gdHJhbnNmZXIuYW1vdW50O1xuICAgICAgICB0aGlzLl90b2tlbkNvbnRyYWN0QWRkcmVzcyA9IHRyYW5zZmVyLnRva2VuQ29udHJhY3Q7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHByb3RlY3RlZCBhc3luYyBidWlsZEltcGxlbWVudGF0aW9uKCk6IFByb21pc2U8VHJhbnNhY3Rpb24+IHtcbiAgICB0aGlzLnZhbGlkYXRlVHJhbnNmZXIoKTtcblxuICAgIGNvbnN0IHRyYW5zZmVyQ2FsbDogU3RhcmtuZXRDYWxsID0ge1xuICAgICAgY29udHJhY3RBZGRyZXNzOiB0aGlzLl90b2tlbkNvbnRyYWN0QWRkcmVzcyxcbiAgICAgIGVudHJ5cG9pbnQ6ICd0cmFuc2ZlcicsXG4gICAgICBjYWxsZGF0YTogdGhpcy5jb21waWxlVHJhbnNmZXJDYWxsZGF0YSh0aGlzLl9yZWNlaXZlckFkZHJlc3MgYXMgc3RyaW5nLCB0aGlzLl9hbW91bnQgYXMgc3RyaW5nKSxcbiAgICB9O1xuXG4gICAgdGhpcy5fY2FsbHMgPSBbdHJhbnNmZXJDYWxsXTtcblxuICAgIHJldHVybiBzdXBlci5idWlsZEltcGxlbWVudGF0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIGNvbXBpbGVUcmFuc2ZlckNhbGxkYXRhKHJlY2lwaWVudDogc3RyaW5nLCBhbW91bnQ6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBhbW91bnRCaWcgPSBCaWdJbnQoYW1vdW50KTtcbiAgICByZXR1cm4gW3JlY2lwaWVudCwgJzB4JyArIChhbW91bnRCaWcgJiBNQVNLXzEyOCkudG9TdHJpbmcoMTYpLCAnMHgnICsgKGFtb3VudEJpZyA+PiAxMjhuKS50b1N0cmluZygxNildO1xuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVRyYW5zZmVyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fc2VuZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdTZW5kZXIgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl9yZWNlaXZlckFkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ1JlY2VpdmVyIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fYW1vdW50KSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCdBbW91bnQgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyh0aGlzLl9zZW5kZXIpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHNlbmRlciBhZGRyZXNzOiAke3RoaXMuX3NlbmRlcn1gKTtcbiAgICB9XG4gICAgaWYgKCF1dGlscy5pc1ZhbGlkQWRkcmVzcyh0aGlzLl9yZWNlaXZlckFkZHJlc3MpKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKGBJbnZhbGlkIHJlY2VpdmVyIGFkZHJlc3M6ICR7dGhpcy5fcmVjZWl2ZXJBZGRyZXNzfWApO1xuICAgIH1cbiAgfVxufVxuIl19