@bitgo/sdk-coin-ton 1.8.0 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,46 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # 1.10.0 (2023-12-09)
7
+
8
+ ### Bug Fixes
9
+
10
+ - **sdk-coin-ton:** add message id calculation util ([7ced970](https://github.com/BitGo/BitGoJS/commit/7ced970ff81d5893b554e5afc07e1b267232ecb6))
11
+ - **sdk-coin-ton:** add transaction builder ([66916de](https://github.com/BitGo/BitGoJS/commit/66916de23af3a3ac8efad5777cfa5d6cc2e0117e))
12
+ - **sdk-coin-ton:** add validBlock and validTransaction ([ac41605](https://github.com/BitGo/BitGoJS/commit/ac416057c726532e382a5dd8fc6d2cbb3f009198))
13
+ - **sdk-coin-ton:** change address format to non bouncable ([4080dac](https://github.com/BitGo/BitGoJS/commit/4080dac1ea3b07bc7c6d11673bc1fb109c743b58))
14
+ - **sdk-coin-ton:** change address format to non-bouncable ([b434438](https://github.com/BitGo/BitGoJS/commit/b4344387bb9287b6578895b1dc360688ff20c6cd))
15
+ - **sdk-coin-ton:** change back address format to bouncable ([08bd603](https://github.com/BitGo/BitGoJS/commit/08bd60313028de99425092ca013fa62bdf6491d6))
16
+ - **sdk-coin-ton:** fix add signature ([497d42a](https://github.com/BitGo/BitGoJS/commit/497d42aa03392b693374a645e5dca6734aac37cd))
17
+ - **sdk-coin-ton:** fix dep ([837392e](https://github.com/BitGo/BitGoJS/commit/837392e939147e3cc3c173d214d7d6f0b5067984))
18
+ - **sdk-coin-ton:** make transfer non bouncable ([3744998](https://github.com/BitGo/BitGoJS/commit/3744998322b17489b7c1c56e8e600bb3ff83c1a0))
19
+ - **sdk-coin-ton:** validate TON address length ([c32fa93](https://github.com/BitGo/BitGoJS/commit/c32fa93b5142bd0bc4d1c8fce0eb67225f3abbfb))
20
+
21
+ ### Features
22
+
23
+ - **account-lib:** expose Ton from sdk ([14c8b18](https://github.com/BitGo/BitGoJS/commit/14c8b1806ba82799a973544670fa01a6f2ce8dc4))
24
+ - **bitgo:** add Ton skeleton ([fa49bde](https://github.com/BitGo/BitGoJS/commit/fa49bde246d3b4f22de25a1da9e079aad9f2551d))
25
+
26
+ # 1.9.0 (2023-12-05)
27
+
28
+ ### Bug Fixes
29
+
30
+ - **sdk-coin-ton:** add message id calculation util ([7ced970](https://github.com/BitGo/BitGoJS/commit/7ced970ff81d5893b554e5afc07e1b267232ecb6))
31
+ - **sdk-coin-ton:** add transaction builder ([66916de](https://github.com/BitGo/BitGoJS/commit/66916de23af3a3ac8efad5777cfa5d6cc2e0117e))
32
+ - **sdk-coin-ton:** add validBlock and validTransaction ([ac41605](https://github.com/BitGo/BitGoJS/commit/ac416057c726532e382a5dd8fc6d2cbb3f009198))
33
+ - **sdk-coin-ton:** change address format to non bouncable ([4080dac](https://github.com/BitGo/BitGoJS/commit/4080dac1ea3b07bc7c6d11673bc1fb109c743b58))
34
+ - **sdk-coin-ton:** change address format to non-bouncable ([b434438](https://github.com/BitGo/BitGoJS/commit/b4344387bb9287b6578895b1dc360688ff20c6cd))
35
+ - **sdk-coin-ton:** change back address format to bouncable ([08bd603](https://github.com/BitGo/BitGoJS/commit/08bd60313028de99425092ca013fa62bdf6491d6))
36
+ - **sdk-coin-ton:** fix add signature ([497d42a](https://github.com/BitGo/BitGoJS/commit/497d42aa03392b693374a645e5dca6734aac37cd))
37
+ - **sdk-coin-ton:** fix dep ([837392e](https://github.com/BitGo/BitGoJS/commit/837392e939147e3cc3c173d214d7d6f0b5067984))
38
+ - **sdk-coin-ton:** make transfer non bouncable ([3744998](https://github.com/BitGo/BitGoJS/commit/3744998322b17489b7c1c56e8e600bb3ff83c1a0))
39
+ - **sdk-coin-ton:** validate TON address length ([c32fa93](https://github.com/BitGo/BitGoJS/commit/c32fa93b5142bd0bc4d1c8fce0eb67225f3abbfb))
40
+
41
+ ### Features
42
+
43
+ - **account-lib:** expose Ton from sdk ([14c8b18](https://github.com/BitGo/BitGoJS/commit/14c8b1806ba82799a973544670fa01a6f2ce8dc4))
44
+ - **bitgo:** add Ton skeleton ([fa49bde](https://github.com/BitGo/BitGoJS/commit/fa49bde246d3b4f22de25a1da9e079aad9f2551d))
45
+
6
46
  # 1.8.0 (2023-11-28)
7
47
 
8
48
  ### Bug Fixes
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAEf,SAAS,EAGT,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAIlD,qBAAa,WAAY,SAAQ,eAAe;IACvC,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;gBAEjB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,iBAAiB,IAAI,MAAM;IAI3B,MAAM,IAAI,MAAM;IAahB,IAAI,eAAe,IAAI,MAAM,CAE5B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB5B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,YAAY;IAoBd,qBAAqB,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlG,oBAAoB,IAAI,IAAI;IAiB5B,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAoBhD,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAgB5C,OAAO,CAAC,aAAa;IA6CrB,OAAO,CAAC,iBAAiB;IAqEzB,OAAO,CAAC,sBAAsB;CAgB/B"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/lib/transaction.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EACP,eAAe,EAEf,SAAS,EAGT,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGxD,OAAO,EAAE,IAAI,EAAE,MAAM,4BAA4B,CAAC;AAIlD,qBAAa,WAAY,SAAQ,eAAe;IACvC,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAS;gBAEjB,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC;IAI5C,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAI9B,iBAAiB,IAAI,MAAM;IAI3B,MAAM,IAAI,MAAM;IAahB,IAAI,eAAe,IAAI,MAAM,CAE5B;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB5B,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,YAAY;IAyBd,qBAAqB,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBlG,oBAAoB,IAAI,IAAI;IAiB5B,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAoBhD,kBAAkB;IAClB,kBAAkB,IAAI,sBAAsB;IAgB5C,OAAO,CAAC,aAAa;IA6CrB,OAAO,CAAC,iBAAiB;IAqEzB,OAAO,CAAC,sBAAsB;CAgB/B"}
@@ -78,7 +78,7 @@ class Transaction extends sdk_core_1.BaseTransaction {
78
78
  payloadCell.bits.writeBytes(payload);
79
79
  }
80
80
  }
81
- const orderHeader = tonweb_1.default.Contract.createInternalMessageHeader(new tonweb_1.default.Address(address), new bn_js_1.BN(amount));
81
+ const orderHeader = tonweb_1.default.Contract.createInternalMessageHeader(new tonweb_1.default.Address(address), new bn_js_1.BN(amount), true, false);
82
82
  return tonweb_1.default.Contract.createCommonMsgInfo(orderHeader, undefined, payloadCell);
83
83
  }
84
84
  async createExternalMessage(signingMessage, seqno, signature) {
@@ -278,4 +278,4 @@ class Transaction extends sdk_core_1.BaseTransaction {
278
278
  }
279
279
  }
280
280
  exports.Transaction = Transaction;
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQVF5QjtBQUd6QixvREFBNEI7QUFDNUIsaUNBQTJCO0FBRzNCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUU1QixNQUFhLFdBQVksU0FBUSwwQkFBZTtJQVU5QyxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBYTtZQUN0QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTztZQUNuQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztTQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxv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T0FBTyxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0MsSUFBSSxLQUFLLEtBQUssQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxJQUFJLFFBQVEsS0FBSyxTQUFTO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sU0FBUyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTztZQUNMLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7U0FDbEQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQTFTRCxrQ0EwU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEVudHJ5LFxuICBSZWNpcGllbnQsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgVG9uV2ViIGZyb20gJ3RvbndlYic7XG5pbXBvcnQgeyBCTiB9IGZyb20gJ2JuLmpzJztcbmltcG9ydCB7IENlbGwgfSBmcm9tICd0b253ZWIvZGlzdC90eXBlcy9ib2MvY2VsbCc7XG5cbmNvbnN0IFdBTExFVF9JRCA9IDY5ODk4MzE5MTtcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHVibGljIHJlY2lwaWVudDogUmVjaXBpZW50O1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nO1xuICBzZXFubzogbnVtYmVyO1xuICBleHBpcmVUaW1lOiBudW1iZXI7XG4gIHNlbmRlcjogc3RyaW5nO1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgcHJpdmF0ZSB1bnNpZ25lZE1lc3NhZ2U6IHN0cmluZztcbiAgcHJpdmF0ZSBmaW5hbE1lc3NhZ2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpbmFsTWVzc2FnZTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgc2VuZGVyOiB0aGlzLnNlbmRlcixcbiAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLnJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgYW1vdW50OiB0aGlzLnJlY2lwaWVudC5hbW91bnQsXG4gICAgICBzZXFubzogdGhpcy5zZXFubyxcbiAgICAgIGV4cGlyYXRpb25UaW1lOiB0aGlzLmV4cGlyZVRpbWUsXG4gICAgICBwdWJsaWNLZXk6IHRoaXMucHVibGljS2V5LFxuICAgICAgc2lnbmF0dXJlOiB0aGlzLl9zaWduYXR1cmVzWzBdLFxuICAgIH07XG4gIH1cblxuICBnZXQgc2lnbmFibGVQYXlsb2FkKCk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRoaXMudW5zaWduZWRNZXNzYWdlLCAnaGV4Jyk7XG4gIH1cblxuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gICAgY29uc3Qgc2lnbmluZ01lc3NhZ2UgPSB0aGlzLmNyZWF0ZVNpZ25pbmdNZXNzYWdlKFdBTExFVF9JRCwgdGhpcy5zZXFubywgdGhpcy5leHBpcmVUaW1lKTtcbiAgICBjb25zdCBzZW5kTW9kZSA9IDM7XG4gICAgc2lnbmluZ01lc3NhZ2UuYml0cy53cml0ZVVpbnQ4KHNlbmRNb2RlKTtcbiAgICBjb25zdCBvdXRNc2cgPSB0aGlzLmNyZWF0ZU91dE1zZyh0aGlzLnJlY2lwaWVudC5hZGRyZXNzLCB0aGlzLnJlY2lwaWVudC5hbW91bnQsIHRoaXMubWVzc2FnZSk7XG4gICAgc2lnbmluZ01lc3NhZ2UucmVmcy5wdXNoKG91dE1zZyk7XG4gICAgdGhpcy51bnNpZ25lZE1lc3NhZ2UgPSBCdWZmZXIuZnJvbShhd2FpdCBzaWduaW5nTWVzc2FnZS5oYXNoKCkpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZSA9XG4gICAgICB0aGlzLl9zaWduYXR1cmVzLmxlbmd0aCA+IDAgPyB0aGlzLl9zaWduYXR1cmVzWzBdIDogQnVmZmVyLmZyb20obmV3IFVpbnQ4QXJyYXkoNjQpKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgZmluYWxNZXNzYWdlID0gYXdhaXQgdGhpcy5jcmVhdGVFeHRlcm5hbE1lc3NhZ2Uoc2lnbmluZ01lc3NhZ2UsIHRoaXMuc2Vxbm8sIHNpZ25hdHVyZSk7XG5cbiAgICB0aGlzLmZpbmFsTWVzc2FnZSA9IFRvbldlYi51dGlscy5ieXRlc1RvQmFzZTY0KGF3YWl0IGZpbmFsTWVzc2FnZS50b0JvYyhmYWxzZSkpO1xuXG4gICAgdGhpcy5faWQgPSBUb25XZWIudXRpbHMuYnl0ZXNUb0Jhc2U2NChhd2FpdCBmaW5hbE1lc3NhZ2UuaGFzaCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU2lnbmluZ01lc3NhZ2Uod2FsbGV0SWQsIHNlcW5vLCBleHBpcmVBdCkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVG9uV2ViLmJvYy5DZWxsKCk7XG4gICAgbWVzc2FnZS5iaXRzLndyaXRlVWludCh3YWxsZXRJZCwgMzIpO1xuICAgIGlmIChzZXFubyA9PT0gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAzMjsgaSsrKSB7XG4gICAgICAgIG1lc3NhZ2UuYml0cy53cml0ZUJpdCgxKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWVzc2FnZS5iaXRzLndyaXRlVWludChleHBpcmVBdCwgMzIpO1xuICAgIH1cbiAgICBtZXNzYWdlLmJpdHMud3JpdGVVaW50KHNlcW5vLCAzMik7XG4gICAgbWVzc2FnZS5iaXRzLndyaXRlVWludCgwLCA4KTsgLy8gb3BcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3V0TXNnKGFkZHJlc3MsIGFtb3VudCwgcGF5bG9hZCkge1xuICAgIGxldCBwYXlsb2FkQ2VsbCA9IG5ldyBUb25XZWIuYm9jLkNlbGwoKTtcbiAgICBpZiAocGF5bG9hZCkge1xuICAgICAgaWYgKHBheWxvYWQucmVmcykge1xuICAgICAgICAvLyBpcyBDZWxsXG4gICAgICAgIHBheWxvYWRDZWxsID0gcGF5bG9hZDtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHBheWxvYWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmIChwYXlsb2FkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwYXlsb2FkQ2VsbC5iaXRzLndyaXRlVWludCgwLCAzMik7XG4gICAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZVN0cmluZyhwYXlsb2FkKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZUJ5dGVzKHBheWxvYWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9yZGVySGVhZGVyID0gVG9uV2ViLkNvbnRyYWN0LmNyZWF0ZUludGVybmFsTWVzc2FnZUhlYWRlcihuZXcgVG9uV2ViLkFkZHJlc3MoYWRkcmVzcyksIG5ldyBCTihhbW91bnQpKTtcbiAgICByZXR1cm4gVG9uV2ViLkNvbnRyYWN0LmNyZWF0ZUNvbW1vbk1zZ0luZm8ob3JkZXJIZWFkZXIsIHVuZGVmaW5lZCwgcGF5bG9hZENlbGwpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRXh0ZXJuYWxNZXNzYWdlKHNpZ25pbmdNZXNzYWdlOiBDZWxsLCBzZXFubzogbnVtYmVyLCBzaWduYXR1cmU6IHN0cmluZyk6IFByb21pc2U8Q2VsbD4ge1xuICAgIGNvbnN0IGJvZHkgPSBuZXcgVG9uV2ViLmJvYy5DZWxsKCk7XG5cbiAgICBib2R5LmJpdHMud3JpdGVCeXRlcyhCdWZmZXIuZnJvbShzaWduYXR1cmUsICdoZXgnKSk7XG4gICAgYm9keS53cml0ZUNlbGwoc2lnbmluZ01lc3NhZ2UpO1xuXG4gICAgbGV0IHN0YXRlSW5pdDtcbiAgICBpZiAoc2Vxbm8gPT09IDApIHtcbiAgICAgIGNvbnN0IFdhbGxldENsYXNzID0gVG9uV2ViLldhbGxldHMuYWxsWyd2NFIyJ107XG4gICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0Q2xhc3MobmV3IFRvbldlYi5IdHRwUHJvdmlkZXIoKSwge1xuICAgICAgICBwdWJsaWNLZXk6IFRvbldlYi51dGlscy5oZXhUb0J5dGVzKHRoaXMucHVibGljS2V5KSxcbiAgICAgICAgd2M6IDAsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGRlcGxveSA9IGF3YWl0IHdhbGxldC5jcmVhdGVTdGF0ZUluaXQoKTtcbiAgICAgIHN0YXRlSW5pdCA9IGRlcGxveS5zdGF0ZUluaXQ7XG4gICAgfVxuXG4gICAgY29uc3QgaGVhZGVyID0gVG9uV2ViLkNvbnRyYWN0LmNyZWF0ZUV4dGVybmFsTWVzc2FnZUhlYWRlcih0aGlzLnNlbmRlcik7XG4gICAgY29uc3QgcmVzdWx0TWVzc2FnZSA9IFRvbldlYi5Db250cmFjdC5jcmVhdGVDb21tb25Nc2dJbmZvKGhlYWRlciwgc3RhdGVJbml0LCBib2R5KTtcbiAgICByZXR1cm4gcmVzdWx0TWVzc2FnZTtcbiAgfVxuXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG91dHB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBjb25zdCBpbnB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBpbnB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiB0aGlzLnNlbmRlcixcbiAgICAgIHZhbHVlOiB0aGlzLnJlY2lwaWVudC5hbW91bnQsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSk7XG4gICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHRoaXMucmVjaXBpZW50LmFkZHJlc3MsXG4gICAgICB2YWx1ZTogdGhpcy5yZWNpcGllbnQuYW1vdW50LFxuICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH0pO1xuICAgIHRoaXMuX291dHB1dHMgPSBvdXRwdXRzO1xuICAgIHRoaXMuX2lucHV0cyA9IGlucHV0cztcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNlbGwgPSBUb25XZWIuYm9jLkNlbGwub25lRnJvbUJvYyhUb25XZWIudXRpbHMuYmFzZTY0VG9CeXRlcyhyYXdUcmFuc2FjdGlvbikpO1xuXG4gICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlVHJhbnNmZXIoY2VsbCk7XG4gICAgICBwYXJzZWQudmFsdWUgPSBwYXJzZWQudmFsdWUudG9TdHJpbmcoKTtcbiAgICAgIHBhcnNlZC5mcm9tQWRkcmVzcyA9IHBhcnNlZC5mcm9tQWRkcmVzcy50b1N0cmluZyh0cnVlLCB0cnVlLCB0cnVlKTtcbiAgICAgIHBhcnNlZC50b0FkZHJlc3MgPSBwYXJzZWQudG9BZGRyZXNzLnRvU3RyaW5nKHRydWUsIHRydWUsIHRydWUpO1xuICAgICAgdGhpcy5zZW5kZXIgPSBwYXJzZWQuZnJvbUFkZHJlc3M7XG4gICAgICB0aGlzLnJlY2lwaWVudCA9IHsgYWRkcmVzczogcGFyc2VkLnRvQWRkcmVzcywgYW1vdW50OiBwYXJzZWQudmFsdWUgfTtcbiAgICAgIHRoaXMuc2Vxbm8gPSBwYXJzZWQuc2Vxbm87XG4gICAgICB0aGlzLnB1YmxpY0tleSA9IHBhcnNlZC5wdWJsaWNLZXkgYXMgc3RyaW5nO1xuICAgICAgdGhpcy5leHBpcmVUaW1lID0gcGFyc2VkLmV4cGlyZUF0O1xuICAgICAgdGhpcy5tZXNzYWdlID0gcGFyc2VkLnBheWxvYWQ7XG4gICAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2gocGFyc2VkLnNpZ25hdHVyZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBleHBsYWluVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydpZCcsICdvdXRwdXRzJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VPdXRwdXRzJywgJ2NoYW5nZUFtb3VudCcsICdmZWUnXTtcblxuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbdGhpcy5yZWNpcGllbnRdO1xuICAgIGNvbnN0IG91dHB1dEFtb3VudCA9IHRoaXMucmVjaXBpZW50LmFtb3VudDtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50LFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6ICdVTktOT1dOJyB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVHJhbnNmZXIoY2VsbDogQ2VsbCk6IGFueSB7XG4gICAgY29uc3Qgc2xpY2UgPSAoY2VsbCBhcyBhbnkpLmJlZ2luUGFyc2UoKTtcblxuICAgIC8vIGhlYWRlclxuXG4gICAgaWYgKHNsaWNlLmxvYWRVaW50KDIpLnRvTnVtYmVyKCkgIT09IDIpIHRocm93IEVycm9yKCdpbnZhbGlkIGhlYWRlcicpO1xuXG4gICAgY29uc3QgZXh0ZXJuYWxTb3VyY2VBZGRyZXNzID0gc2xpY2UubG9hZEFkZHJlc3MoKTtcbiAgICBpZiAoZXh0ZXJuYWxTb3VyY2VBZGRyZXNzICE9PSBudWxsKSB0aHJvdyBFcnJvcignaW52YWxpZCBleHRlcm5hbFNvdXJjZUFkZHJlc3MnKTtcblxuICAgIGNvbnN0IGV4dGVybmFsRGVzdEFkZHJlc3MgPSBzbGljZS5sb2FkQWRkcmVzcygpO1xuXG4gICAgY29uc3QgZXh0ZXJuYWxJbXBvcnRGZWUgPSBzbGljZS5sb2FkQ29pbnMoKTtcbiAgICBpZiAoIWV4dGVybmFsSW1wb3J0RmVlLmVxKG5ldyBCTigwKSkpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBleHRlcm5hbEltcG9ydEZlZScpO1xuXG4gICAgLy8gc3RhdGVJbml0XG5cbiAgICBsZXQgcHVibGljS2V5O1xuICAgIGlmIChzbGljZS5sb2FkQml0KCkpIHtcbiAgICAgIGlmIChzbGljZS5sb2FkQml0KCkpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVJbml0ID0gc2xpY2UubG9hZFJlZigpO1xuICAgICAgICBzdGF0ZUluaXQubG9hZFJlZigpO1xuICAgICAgICBjb25zdCBkYXRhID0gc3RhdGVJbml0LmxvYWRSZWYoKTtcbiAgICAgICAgY29uc3Qgc2Vxbm8gPSBkYXRhLmxvYWRVaW50KDMyKS50b051bWJlcigpO1xuICAgICAgICBpZiAoc2Vxbm8gIT09IDApIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzZXFubycpO1xuICAgICAgICBjb25zdCB3YWxsZXRJZCA9IGRhdGEubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG4gICAgICAgIGlmICh3YWxsZXRJZCAhPT0gV0FMTEVUX0lEKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgd2FsbGV0IGlkJyk7XG4gICAgICAgIGNvbnN0IHB1YmxpY0tleUJ1ZiA9IG5ldyBVaW50OEFycmF5KDMyKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwdWJsaWNLZXlCdWYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBwdWJsaWNLZXlCdWZbaV0gPSBkYXRhLmxvYWRVaW50KDgpO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpY0tleSA9IEJ1ZmZlci5mcm9tKHB1YmxpY0tleUJ1ZikudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJvZHlcbiAgICBjb25zdCBib2R5U2xpY2UgPSBzbGljZS5sb2FkQml0KCkgPyBzbGljZS5sb2FkUmVmKCkgOiBzbGljZTtcblxuICAgIHJldHVybiB7XG4gICAgICBmcm9tQWRkcmVzczogZXh0ZXJuYWxEZXN0QWRkcmVzcyxcbiAgICAgIHB1YmxpY0tleSxcbiAgICAgIC4uLnRoaXMucGFyc2VUcmFuc2ZlckJvZHkoYm9keVNsaWNlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVRyYW5zZmVyQm9keShzbGljZTogYW55KTogYW55IHtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBCdWZmZXIuZnJvbShzbGljZS5sb2FkQml0cyg1MTIpKS50b1N0cmluZygnaGV4Jyk7XG4gICAgLy8gc2lnbmluZyBtZXNzYWdlXG5cbiAgICBjb25zdCB3YWxsZXRJZCA9IHNsaWNlLmxvYWRVaW50KDMyKS50b051bWJlcigpO1xuICAgIGlmICh3YWxsZXRJZCAhPT0gV0FMTEVUX0lEKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgd2FsbGV0SWQnKTtcblxuICAgIGNvbnN0IGV4cGlyZUF0ID0gc2xpY2UubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG5cbiAgICBjb25zdCBzZXFubyA9IHNsaWNlLmxvYWRVaW50KDMyKS50b051bWJlcigpO1xuXG4gICAgY29uc3Qgb3AgPSBzbGljZS5sb2FkVWludCg4KS50b051bWJlcigpO1xuICAgIGlmIChvcCAhPT0gMCkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIG9wJyk7XG5cbiAgICBjb25zdCBzZW5kTW9kZSA9IHNsaWNlLmxvYWRVaW50KDgpLnRvTnVtYmVyKCk7XG4gICAgaWYgKHNlbmRNb2RlICE9PSAzKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgc2VuZE1vZGUnKTtcblxuICAgIGxldCBvcmRlciA9IHNsaWNlLmxvYWRSZWYoKTtcblxuICAgIGlmIChvcmRlci5sb2FkQml0KCkpIHRocm93IEVycm9yKCdpbnZhbGlkIGludGVybmFsIGhlYWRlcicpO1xuICAgIGlmICghb3JkZXIubG9hZEJpdCgpKSB0aHJvdyBFcnJvcignaW52YWxpZCBpaHJEaXNhYmxlZCcpO1xuICAgIGNvbnN0IGJvdW5jZSA9IG9yZGVyLmxvYWRCaXQoKTtcbiAgICBpZiAob3JkZXIubG9hZEJpdCgpKSB0aHJvdyBFcnJvcignaW52YWxpZCBib3VuY2VkJyk7XG4gICAgY29uc3Qgc291cmNlQWRkcmVzcyA9IG9yZGVyLmxvYWRBZGRyZXNzKCk7XG4gICAgaWYgKHNvdXJjZUFkZHJlc3MgIT09IG51bGwpIHRocm93IEVycm9yKCdpbnZhbGlkIGV4dGVybmFsU291cmNlQWRkcmVzcycpO1xuICAgIGNvbnN0IGRlc3RBZGRyZXNzID0gb3JkZXIubG9hZEFkZHJlc3MoKTtcbiAgICBjb25zdCB2YWx1ZSA9IG9yZGVyLmxvYWRDb2lucygpO1xuXG4gICAgaWYgKG9yZGVyLmxvYWRCaXQoKSkgdGhyb3cgRXJyb3IoJ2ludmFsaWQgY3VycmVuY3lDb2xsZWN0aW9uJyk7XG4gICAgY29uc3QgaWhyRmVlcyA9IG9yZGVyLmxvYWRDb2lucygpO1xuICAgIGlmICghaWhyRmVlcy5lcShuZXcgQk4oMCkpKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgaWhyRmVlcycpO1xuICAgIGNvbnN0IGZ3ZEZlZXMgPSBvcmRlci5sb2FkQ29pbnMoKTtcbiAgICBpZiAoIWZ3ZEZlZXMuZXEobmV3IEJOKDApKSkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGZ3ZEZlZXMnKTtcbiAgICBjb25zdCBjcmVhdGVkTHQgPSBvcmRlci5sb2FkVWludCg2NCk7XG4gICAgaWYgKCFjcmVhdGVkTHQuZXEobmV3IEJOKDApKSkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGNyZWF0ZWRMdCcpO1xuICAgIGNvbnN0IGNyZWF0ZWRBdCA9IG9yZGVyLmxvYWRVaW50KDMyKTtcbiAgICBpZiAoIWNyZWF0ZWRBdC5lcShuZXcgQk4oMCkpKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgY3JlYXRlZEF0Jyk7XG5cbiAgICAvLyBvcmRlciBzdGF0ZUluaXRcbiAgICBpZiAob3JkZXIubG9hZEJpdCgpKSB7XG4gICAgICBvcmRlci5sb2FkUmVmKCk7IC8vIGRvbid0IHBhcnNlIHN0YXRlSW5pdFxuICAgIH1cblxuICAgIC8vIG9yZGVyIGJvZHlcbiAgICBsZXQgcGF5bG9hZDtcblxuICAgIGlmIChvcmRlci5nZXRGcmVlQml0cygpID4gMCkge1xuICAgICAgaWYgKG9yZGVyLmxvYWRCaXQoKSkge1xuICAgICAgICBvcmRlciA9IG9yZGVyLmxvYWRSZWYoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9yZGVyLmdldEZyZWVCaXRzKCkgPiAzMikge1xuICAgICAgICBjb25zdCBvcCA9IG9yZGVyLmxvYWRVaW50KDMyKTtcbiAgICAgICAgY29uc3QgcGF5bG9hZEJ5dGVzID0gb3JkZXIubG9hZEJpdHMob3JkZXIuZ2V0RnJlZUJpdHMoKSk7XG4gICAgICAgIHBheWxvYWQgPSBvcC5lcShuZXcgQk4oMCkpID8gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKHBheWxvYWRCeXRlcykgOiAnJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHRvQWRkcmVzczogZGVzdEFkZHJlc3MsXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdW5jZSxcbiAgICAgIHNlcW5vLFxuICAgICAgZXhwaXJlQXQsXG4gICAgICBwYXlsb2FkLFxuICAgICAgc2lnbmF0dXJlLFxuICAgICAgd2FsbGV0SWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VUcmFuc2ZlclN0YXRlSW5pdChzbGljZTogYW55KTogYW55IHtcbiAgICBpZiAoc2xpY2UgPT09IG51bGwpIHJldHVybiB7fTtcbiAgICBzbGljZS5sb2FkUmVmKCk7XG4gICAgY29uc3QgZGF0YSA9IHNsaWNlLmxvYWRSZWYoKTtcbiAgICBjb25zdCBzZXFubyA9IGRhdGEubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG4gICAgaWYgKHNlcW5vICE9PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgc2Vxbm8nKTtcbiAgICBjb25zdCB3YWxsZXRJZCA9IGRhdGEubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG4gICAgaWYgKHdhbGxldElkICE9PSBXQUxMRVRfSUQpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCB3YWxsZXQgaWQnKTtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBuZXcgVWludDhBcnJheSgzMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwdWJsaWNLZXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIHB1YmxpY0tleVtpXSA9IGRhdGEubG9hZFVpbnQoOCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBwdWJsaWNLZXk6IEJ1ZmZlci5mcm9tKHB1YmxpY0tleSkudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3RyYW5zYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQVF5QjtBQUd6QixvREFBNEI7QUFDNUIsaUNBQTJCO0FBRzNCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQztBQUU1QixNQUFhLFdBQVksU0FBUSwwQkFBZTtJQVU5QyxZQUFZLFVBQWdDO1FBQzFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNwQixDQUFDO0lBRUQsT0FBTyxDQUFDLEdBQVk7UUFDbEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFRCxNQUFNO1FBQ0osT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsR0FBYTtZQUN0QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTztZQUNuQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNO1lBQzdCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixjQUFjLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFNBQVMsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztTQUMvQixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQUs7UUFDVCxJQUFJLENBQUMsS0FBSyxHQUFHLDBCQUFlLENBQUMsSUFBSSxDQUFDO1FBQ2xDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxv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Q0FBQztRQUM5QixLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzdCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0MsSUFBSSxLQUFLLEtBQUssQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5QyxJQUFJLFFBQVEsS0FBSyxTQUFTO1lBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sU0FBUyxHQUFHLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pDLFNBQVMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTztZQUNMLFNBQVMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7U0FDbEQsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQS9TRCxrQ0ErU0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYXNlS2V5LFxuICBCYXNlVHJhbnNhY3Rpb24sXG4gIEVudHJ5LFxuICBSZWNpcGllbnQsXG4gIFRyYW5zYWN0aW9uUmVjaXBpZW50LFxuICBUcmFuc2FjdGlvblR5cGUsXG4gIFRyYW5zYWN0aW9uRXhwbGFuYXRpb24sXG59IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBUeERhdGEgfSBmcm9tICcuL2lmYWNlJztcbmltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28vc3RhdGljcyc7XG5pbXBvcnQgVG9uV2ViIGZyb20gJ3RvbndlYic7XG5pbXBvcnQgeyBCTiB9IGZyb20gJ2JuLmpzJztcbmltcG9ydCB7IENlbGwgfSBmcm9tICd0b253ZWIvZGlzdC90eXBlcy9ib2MvY2VsbCc7XG5cbmNvbnN0IFdBTExFVF9JRCA9IDY5ODk4MzE5MTtcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uIGV4dGVuZHMgQmFzZVRyYW5zYWN0aW9uIHtcbiAgcHVibGljIHJlY2lwaWVudDogUmVjaXBpZW50O1xuICBwdWJsaWMgbWVzc2FnZTogc3RyaW5nO1xuICBzZXFubzogbnVtYmVyO1xuICBleHBpcmVUaW1lOiBudW1iZXI7XG4gIHNlbmRlcjogc3RyaW5nO1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgcHJpdmF0ZSB1bnNpZ25lZE1lc3NhZ2U6IHN0cmluZztcbiAgcHJpdmF0ZSBmaW5hbE1lc3NhZ2U6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihjb2luQ29uZmlnOiBSZWFkb25seTxDb2luQ29uZmlnPikge1xuICAgIHN1cGVyKGNvaW5Db25maWcpO1xuICB9XG5cbiAgY2FuU2lnbihrZXk6IEJhc2VLZXkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB0b0Jyb2FkY2FzdEZvcm1hdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmZpbmFsTWVzc2FnZTtcbiAgfVxuXG4gIHRvSnNvbigpOiBUeERhdGEge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdGhpcy5faWQgYXMgc3RyaW5nLFxuICAgICAgc2VuZGVyOiB0aGlzLnNlbmRlcixcbiAgICAgIGRlc3RpbmF0aW9uOiB0aGlzLnJlY2lwaWVudC5hZGRyZXNzLFxuICAgICAgYW1vdW50OiB0aGlzLnJlY2lwaWVudC5hbW91bnQsXG4gICAgICBzZXFubzogdGhpcy5zZXFubyxcbiAgICAgIGV4cGlyYXRpb25UaW1lOiB0aGlzLmV4cGlyZVRpbWUsXG4gICAgICBwdWJsaWNLZXk6IHRoaXMucHVibGljS2V5LFxuICAgICAgc2lnbmF0dXJlOiB0aGlzLl9zaWduYXR1cmVzWzBdLFxuICAgIH07XG4gIH1cblxuICBnZXQgc2lnbmFibGVQYXlsb2FkKCk6IEJ1ZmZlciB7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKHRoaXMudW5zaWduZWRNZXNzYWdlLCAnaGV4Jyk7XG4gIH1cblxuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLl90eXBlID0gVHJhbnNhY3Rpb25UeXBlLlNlbmQ7XG4gICAgY29uc3Qgc2lnbmluZ01lc3NhZ2UgPSB0aGlzLmNyZWF0ZVNpZ25pbmdNZXNzYWdlKFdBTExFVF9JRCwgdGhpcy5zZXFubywgdGhpcy5leHBpcmVUaW1lKTtcbiAgICBjb25zdCBzZW5kTW9kZSA9IDM7XG4gICAgc2lnbmluZ01lc3NhZ2UuYml0cy53cml0ZVVpbnQ4KHNlbmRNb2RlKTtcbiAgICBjb25zdCBvdXRNc2cgPSB0aGlzLmNyZWF0ZU91dE1zZyh0aGlzLnJlY2lwaWVudC5hZGRyZXNzLCB0aGlzLnJlY2lwaWVudC5hbW91bnQsIHRoaXMubWVzc2FnZSk7XG4gICAgc2lnbmluZ01lc3NhZ2UucmVmcy5wdXNoKG91dE1zZyk7XG4gICAgdGhpcy51bnNpZ25lZE1lc3NhZ2UgPSBCdWZmZXIuZnJvbShhd2FpdCBzaWduaW5nTWVzc2FnZS5oYXNoKCkpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgIGNvbnN0IHNpZ25hdHVyZSA9XG4gICAgICB0aGlzLl9zaWduYXR1cmVzLmxlbmd0aCA+IDAgPyB0aGlzLl9zaWduYXR1cmVzWzBdIDogQnVmZmVyLmZyb20obmV3IFVpbnQ4QXJyYXkoNjQpKS50b1N0cmluZygnaGV4Jyk7XG4gICAgY29uc3QgZmluYWxNZXNzYWdlID0gYXdhaXQgdGhpcy5jcmVhdGVFeHRlcm5hbE1lc3NhZ2Uoc2lnbmluZ01lc3NhZ2UsIHRoaXMuc2Vxbm8sIHNpZ25hdHVyZSk7XG5cbiAgICB0aGlzLmZpbmFsTWVzc2FnZSA9IFRvbldlYi51dGlscy5ieXRlc1RvQmFzZTY0KGF3YWl0IGZpbmFsTWVzc2FnZS50b0JvYyhmYWxzZSkpO1xuXG4gICAgdGhpcy5faWQgPSBUb25XZWIudXRpbHMuYnl0ZXNUb0Jhc2U2NChhd2FpdCBmaW5hbE1lc3NhZ2UuaGFzaCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU2lnbmluZ01lc3NhZ2Uod2FsbGV0SWQsIHNlcW5vLCBleHBpcmVBdCkge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgVG9uV2ViLmJvYy5DZWxsKCk7XG4gICAgbWVzc2FnZS5iaXRzLndyaXRlVWludCh3YWxsZXRJZCwgMzIpO1xuICAgIGlmIChzZXFubyA9PT0gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAzMjsgaSsrKSB7XG4gICAgICAgIG1lc3NhZ2UuYml0cy53cml0ZUJpdCgxKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgbWVzc2FnZS5iaXRzLndyaXRlVWludChleHBpcmVBdCwgMzIpO1xuICAgIH1cbiAgICBtZXNzYWdlLmJpdHMud3JpdGVVaW50KHNlcW5vLCAzMik7XG4gICAgbWVzc2FnZS5iaXRzLndyaXRlVWludCgwLCA4KTsgLy8gb3BcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlT3V0TXNnKGFkZHJlc3MsIGFtb3VudCwgcGF5bG9hZCkge1xuICAgIGxldCBwYXlsb2FkQ2VsbCA9IG5ldyBUb25XZWIuYm9jLkNlbGwoKTtcbiAgICBpZiAocGF5bG9hZCkge1xuICAgICAgaWYgKHBheWxvYWQucmVmcykge1xuICAgICAgICAvLyBpcyBDZWxsXG4gICAgICAgIHBheWxvYWRDZWxsID0gcGF5bG9hZDtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHBheWxvYWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmIChwYXlsb2FkLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBwYXlsb2FkQ2VsbC5iaXRzLndyaXRlVWludCgwLCAzMik7XG4gICAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZVN0cmluZyhwYXlsb2FkKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGF5bG9hZENlbGwuYml0cy53cml0ZUJ5dGVzKHBheWxvYWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG9yZGVySGVhZGVyID0gVG9uV2ViLkNvbnRyYWN0LmNyZWF0ZUludGVybmFsTWVzc2FnZUhlYWRlcihcbiAgICAgIG5ldyBUb25XZWIuQWRkcmVzcyhhZGRyZXNzKSxcbiAgICAgIG5ldyBCTihhbW91bnQpLFxuICAgICAgdHJ1ZSxcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgICByZXR1cm4gVG9uV2ViLkNvbnRyYWN0LmNyZWF0ZUNvbW1vbk1zZ0luZm8ob3JkZXJIZWFkZXIsIHVuZGVmaW5lZCwgcGF5bG9hZENlbGwpO1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlRXh0ZXJuYWxNZXNzYWdlKHNpZ25pbmdNZXNzYWdlOiBDZWxsLCBzZXFubzogbnVtYmVyLCBzaWduYXR1cmU6IHN0cmluZyk6IFByb21pc2U8Q2VsbD4ge1xuICAgIGNvbnN0IGJvZHkgPSBuZXcgVG9uV2ViLmJvYy5DZWxsKCk7XG5cbiAgICBib2R5LmJpdHMud3JpdGVCeXRlcyhCdWZmZXIuZnJvbShzaWduYXR1cmUsICdoZXgnKSk7XG4gICAgYm9keS53cml0ZUNlbGwoc2lnbmluZ01lc3NhZ2UpO1xuXG4gICAgbGV0IHN0YXRlSW5pdDtcbiAgICBpZiAoc2Vxbm8gPT09IDApIHtcbiAgICAgIGNvbnN0IFdhbGxldENsYXNzID0gVG9uV2ViLldhbGxldHMuYWxsWyd2NFIyJ107XG4gICAgICBjb25zdCB3YWxsZXQgPSBuZXcgV2FsbGV0Q2xhc3MobmV3IFRvbldlYi5IdHRwUHJvdmlkZXIoKSwge1xuICAgICAgICBwdWJsaWNLZXk6IFRvbldlYi51dGlscy5oZXhUb0J5dGVzKHRoaXMucHVibGljS2V5KSxcbiAgICAgICAgd2M6IDAsXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGRlcGxveSA9IGF3YWl0IHdhbGxldC5jcmVhdGVTdGF0ZUluaXQoKTtcbiAgICAgIHN0YXRlSW5pdCA9IGRlcGxveS5zdGF0ZUluaXQ7XG4gICAgfVxuXG4gICAgY29uc3QgaGVhZGVyID0gVG9uV2ViLkNvbnRyYWN0LmNyZWF0ZUV4dGVybmFsTWVzc2FnZUhlYWRlcih0aGlzLnNlbmRlcik7XG4gICAgY29uc3QgcmVzdWx0TWVzc2FnZSA9IFRvbldlYi5Db250cmFjdC5jcmVhdGVDb21tb25Nc2dJbmZvKGhlYWRlciwgc3RhdGVJbml0LCBib2R5KTtcbiAgICByZXR1cm4gcmVzdWx0TWVzc2FnZTtcbiAgfVxuXG4gIGxvYWRJbnB1dHNBbmRPdXRwdXRzKCk6IHZvaWQge1xuICAgIGNvbnN0IG91dHB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBjb25zdCBpbnB1dHM6IEVudHJ5W10gPSBbXTtcbiAgICBpbnB1dHMucHVzaCh7XG4gICAgICBhZGRyZXNzOiB0aGlzLnNlbmRlcixcbiAgICAgIHZhbHVlOiB0aGlzLnJlY2lwaWVudC5hbW91bnQsXG4gICAgICBjb2luOiB0aGlzLl9jb2luQ29uZmlnLm5hbWUsXG4gICAgfSk7XG4gICAgb3V0cHV0cy5wdXNoKHtcbiAgICAgIGFkZHJlc3M6IHRoaXMucmVjaXBpZW50LmFkZHJlc3MsXG4gICAgICB2YWx1ZTogdGhpcy5yZWNpcGllbnQuYW1vdW50LFxuICAgICAgY29pbjogdGhpcy5fY29pbkNvbmZpZy5uYW1lLFxuICAgIH0pO1xuICAgIHRoaXMuX291dHB1dHMgPSBvdXRwdXRzO1xuICAgIHRoaXMuX2lucHV0cyA9IGlucHV0cztcbiAgfVxuXG4gIGZyb21SYXdUcmFuc2FjdGlvbihyYXdUcmFuc2FjdGlvbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGNlbGwgPSBUb25XZWIuYm9jLkNlbGwub25lRnJvbUJvYyhUb25XZWIudXRpbHMuYmFzZTY0VG9CeXRlcyhyYXdUcmFuc2FjdGlvbikpO1xuXG4gICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlVHJhbnNmZXIoY2VsbCk7XG4gICAgICBwYXJzZWQudmFsdWUgPSBwYXJzZWQudmFsdWUudG9TdHJpbmcoKTtcbiAgICAgIHBhcnNlZC5mcm9tQWRkcmVzcyA9IHBhcnNlZC5mcm9tQWRkcmVzcy50b1N0cmluZyh0cnVlLCB0cnVlLCB0cnVlKTtcbiAgICAgIHBhcnNlZC50b0FkZHJlc3MgPSBwYXJzZWQudG9BZGRyZXNzLnRvU3RyaW5nKHRydWUsIHRydWUsIHRydWUpO1xuICAgICAgdGhpcy5zZW5kZXIgPSBwYXJzZWQuZnJvbUFkZHJlc3M7XG4gICAgICB0aGlzLnJlY2lwaWVudCA9IHsgYWRkcmVzczogcGFyc2VkLnRvQWRkcmVzcywgYW1vdW50OiBwYXJzZWQudmFsdWUgfTtcbiAgICAgIHRoaXMuc2Vxbm8gPSBwYXJzZWQuc2Vxbm87XG4gICAgICB0aGlzLnB1YmxpY0tleSA9IHBhcnNlZC5wdWJsaWNLZXkgYXMgc3RyaW5nO1xuICAgICAgdGhpcy5leHBpcmVUaW1lID0gcGFyc2VkLmV4cGlyZUF0O1xuICAgICAgdGhpcy5tZXNzYWdlID0gcGFyc2VkLnBheWxvYWQ7XG4gICAgICB0aGlzLl9zaWduYXR1cmVzLnB1c2gocGFyc2VkLnNpZ25hdHVyZSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIHJhdyB0cmFuc2FjdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdERvYyAqL1xuICBleHBsYWluVHJhbnNhY3Rpb24oKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gICAgY29uc3QgZGlzcGxheU9yZGVyID0gWydpZCcsICdvdXRwdXRzJywgJ291dHB1dEFtb3VudCcsICdjaGFuZ2VPdXRwdXRzJywgJ2NoYW5nZUFtb3VudCcsICdmZWUnXTtcblxuICAgIGNvbnN0IG91dHB1dHM6IFRyYW5zYWN0aW9uUmVjaXBpZW50W10gPSBbdGhpcy5yZWNpcGllbnRdO1xuICAgIGNvbnN0IG91dHB1dEFtb3VudCA9IHRoaXMucmVjaXBpZW50LmFtb3VudDtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheU9yZGVyLFxuICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICBvdXRwdXRzLFxuICAgICAgb3V0cHV0QW1vdW50LFxuICAgICAgY2hhbmdlT3V0cHV0czogW10sXG4gICAgICBjaGFuZ2VBbW91bnQ6ICcwJyxcbiAgICAgIGZlZTogeyBmZWU6ICdVTktOT1dOJyB9LFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVHJhbnNmZXIoY2VsbDogQ2VsbCk6IGFueSB7XG4gICAgY29uc3Qgc2xpY2UgPSAoY2VsbCBhcyBhbnkpLmJlZ2luUGFyc2UoKTtcblxuICAgIC8vIGhlYWRlclxuXG4gICAgaWYgKHNsaWNlLmxvYWRVaW50KDIpLnRvTnVtYmVyKCkgIT09IDIpIHRocm93IEVycm9yKCdpbnZhbGlkIGhlYWRlcicpO1xuXG4gICAgY29uc3QgZXh0ZXJuYWxTb3VyY2VBZGRyZXNzID0gc2xpY2UubG9hZEFkZHJlc3MoKTtcbiAgICBpZiAoZXh0ZXJuYWxTb3VyY2VBZGRyZXNzICE9PSBudWxsKSB0aHJvdyBFcnJvcignaW52YWxpZCBleHRlcm5hbFNvdXJjZUFkZHJlc3MnKTtcblxuICAgIGNvbnN0IGV4dGVybmFsRGVzdEFkZHJlc3MgPSBzbGljZS5sb2FkQWRkcmVzcygpO1xuXG4gICAgY29uc3QgZXh0ZXJuYWxJbXBvcnRGZWUgPSBzbGljZS5sb2FkQ29pbnMoKTtcbiAgICBpZiAoIWV4dGVybmFsSW1wb3J0RmVlLmVxKG5ldyBCTigwKSkpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBleHRlcm5hbEltcG9ydEZlZScpO1xuXG4gICAgLy8gc3RhdGVJbml0XG5cbiAgICBsZXQgcHVibGljS2V5O1xuICAgIGlmIChzbGljZS5sb2FkQml0KCkpIHtcbiAgICAgIGlmIChzbGljZS5sb2FkQml0KCkpIHtcbiAgICAgICAgY29uc3Qgc3RhdGVJbml0ID0gc2xpY2UubG9hZFJlZigpO1xuICAgICAgICBzdGF0ZUluaXQubG9hZFJlZigpO1xuICAgICAgICBjb25zdCBkYXRhID0gc3RhdGVJbml0LmxvYWRSZWYoKTtcbiAgICAgICAgY29uc3Qgc2Vxbm8gPSBkYXRhLmxvYWRVaW50KDMyKS50b051bWJlcigpO1xuICAgICAgICBpZiAoc2Vxbm8gIT09IDApIHRocm93IG5ldyBFcnJvcignaW52YWxpZCBzZXFubycpO1xuICAgICAgICBjb25zdCB3YWxsZXRJZCA9IGRhdGEubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG4gICAgICAgIGlmICh3YWxsZXRJZCAhPT0gV0FMTEVUX0lEKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgd2FsbGV0IGlkJyk7XG4gICAgICAgIGNvbnN0IHB1YmxpY0tleUJ1ZiA9IG5ldyBVaW50OEFycmF5KDMyKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwdWJsaWNLZXlCdWYubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICBwdWJsaWNLZXlCdWZbaV0gPSBkYXRhLmxvYWRVaW50KDgpO1xuICAgICAgICB9XG4gICAgICAgIHB1YmxpY0tleSA9IEJ1ZmZlci5mcm9tKHB1YmxpY0tleUJ1ZikudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJvZHlcbiAgICBjb25zdCBib2R5U2xpY2UgPSBzbGljZS5sb2FkQml0KCkgPyBzbGljZS5sb2FkUmVmKCkgOiBzbGljZTtcblxuICAgIHJldHVybiB7XG4gICAgICBmcm9tQWRkcmVzczogZXh0ZXJuYWxEZXN0QWRkcmVzcyxcbiAgICAgIHB1YmxpY0tleSxcbiAgICAgIC4uLnRoaXMucGFyc2VUcmFuc2ZlckJvZHkoYm9keVNsaWNlKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZVRyYW5zZmVyQm9keShzbGljZTogYW55KTogYW55IHtcbiAgICBjb25zdCBzaWduYXR1cmUgPSBCdWZmZXIuZnJvbShzbGljZS5sb2FkQml0cyg1MTIpKS50b1N0cmluZygnaGV4Jyk7XG4gICAgLy8gc2lnbmluZyBtZXNzYWdlXG5cbiAgICBjb25zdCB3YWxsZXRJZCA9IHNsaWNlLmxvYWRVaW50KDMyKS50b051bWJlcigpO1xuICAgIGlmICh3YWxsZXRJZCAhPT0gV0FMTEVUX0lEKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgd2FsbGV0SWQnKTtcblxuICAgIGNvbnN0IGV4cGlyZUF0ID0gc2xpY2UubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG5cbiAgICBjb25zdCBzZXFubyA9IHNsaWNlLmxvYWRVaW50KDMyKS50b051bWJlcigpO1xuXG4gICAgY29uc3Qgb3AgPSBzbGljZS5sb2FkVWludCg4KS50b051bWJlcigpO1xuICAgIGlmIChvcCAhPT0gMCkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIG9wJyk7XG5cbiAgICBjb25zdCBzZW5kTW9kZSA9IHNsaWNlLmxvYWRVaW50KDgpLnRvTnVtYmVyKCk7XG4gICAgaWYgKHNlbmRNb2RlICE9PSAzKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgc2VuZE1vZGUnKTtcblxuICAgIGxldCBvcmRlciA9IHNsaWNlLmxvYWRSZWYoKTtcblxuICAgIGlmIChvcmRlci5sb2FkQml0KCkpIHRocm93IEVycm9yKCdpbnZhbGlkIGludGVybmFsIGhlYWRlcicpO1xuICAgIGlmICghb3JkZXIubG9hZEJpdCgpKSB0aHJvdyBFcnJvcignaW52YWxpZCBpaHJEaXNhYmxlZCcpO1xuICAgIGNvbnN0IGJvdW5jZSA9IG9yZGVyLmxvYWRCaXQoKTtcbiAgICBpZiAob3JkZXIubG9hZEJpdCgpKSB0aHJvdyBFcnJvcignaW52YWxpZCBib3VuY2VkJyk7XG4gICAgY29uc3Qgc291cmNlQWRkcmVzcyA9IG9yZGVyLmxvYWRBZGRyZXNzKCk7XG4gICAgaWYgKHNvdXJjZUFkZHJlc3MgIT09IG51bGwpIHRocm93IEVycm9yKCdpbnZhbGlkIGV4dGVybmFsU291cmNlQWRkcmVzcycpO1xuICAgIGNvbnN0IGRlc3RBZGRyZXNzID0gb3JkZXIubG9hZEFkZHJlc3MoKTtcbiAgICBjb25zdCB2YWx1ZSA9IG9yZGVyLmxvYWRDb2lucygpO1xuXG4gICAgaWYgKG9yZGVyLmxvYWRCaXQoKSkgdGhyb3cgRXJyb3IoJ2ludmFsaWQgY3VycmVuY3lDb2xsZWN0aW9uJyk7XG4gICAgY29uc3QgaWhyRmVlcyA9IG9yZGVyLmxvYWRDb2lucygpO1xuICAgIGlmICghaWhyRmVlcy5lcShuZXcgQk4oMCkpKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgaWhyRmVlcycpO1xuICAgIGNvbnN0IGZ3ZEZlZXMgPSBvcmRlci5sb2FkQ29pbnMoKTtcbiAgICBpZiAoIWZ3ZEZlZXMuZXEobmV3IEJOKDApKSkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGZ3ZEZlZXMnKTtcbiAgICBjb25zdCBjcmVhdGVkTHQgPSBvcmRlci5sb2FkVWludCg2NCk7XG4gICAgaWYgKCFjcmVhdGVkTHQuZXEobmV3IEJOKDApKSkgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkIGNyZWF0ZWRMdCcpO1xuICAgIGNvbnN0IGNyZWF0ZWRBdCA9IG9yZGVyLmxvYWRVaW50KDMyKTtcbiAgICBpZiAoIWNyZWF0ZWRBdC5lcShuZXcgQk4oMCkpKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgY3JlYXRlZEF0Jyk7XG5cbiAgICAvLyBvcmRlciBzdGF0ZUluaXRcbiAgICBpZiAob3JkZXIubG9hZEJpdCgpKSB7XG4gICAgICBvcmRlci5sb2FkUmVmKCk7IC8vIGRvbid0IHBhcnNlIHN0YXRlSW5pdFxuICAgIH1cblxuICAgIC8vIG9yZGVyIGJvZHlcbiAgICBsZXQgcGF5bG9hZDtcblxuICAgIGlmIChvcmRlci5nZXRGcmVlQml0cygpID4gMCkge1xuICAgICAgaWYgKG9yZGVyLmxvYWRCaXQoKSkge1xuICAgICAgICBvcmRlciA9IG9yZGVyLmxvYWRSZWYoKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9yZGVyLmdldEZyZWVCaXRzKCkgPiAzMikge1xuICAgICAgICBjb25zdCBvcCA9IG9yZGVyLmxvYWRVaW50KDMyKTtcbiAgICAgICAgY29uc3QgcGF5bG9hZEJ5dGVzID0gb3JkZXIubG9hZEJpdHMob3JkZXIuZ2V0RnJlZUJpdHMoKSk7XG4gICAgICAgIHBheWxvYWQgPSBvcC5lcShuZXcgQk4oMCkpID8gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKHBheWxvYWRCeXRlcykgOiAnJztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHRvQWRkcmVzczogZGVzdEFkZHJlc3MsXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdW5jZSxcbiAgICAgIHNlcW5vLFxuICAgICAgZXhwaXJlQXQsXG4gICAgICBwYXlsb2FkLFxuICAgICAgc2lnbmF0dXJlLFxuICAgICAgd2FsbGV0SWQsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VUcmFuc2ZlclN0YXRlSW5pdChzbGljZTogYW55KTogYW55IHtcbiAgICBpZiAoc2xpY2UgPT09IG51bGwpIHJldHVybiB7fTtcbiAgICBzbGljZS5sb2FkUmVmKCk7XG4gICAgY29uc3QgZGF0YSA9IHNsaWNlLmxvYWRSZWYoKTtcbiAgICBjb25zdCBzZXFubyA9IGRhdGEubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG4gICAgaWYgKHNlcW5vICE9PSAwKSB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgc2Vxbm8nKTtcbiAgICBjb25zdCB3YWxsZXRJZCA9IGRhdGEubG9hZFVpbnQoMzIpLnRvTnVtYmVyKCk7XG4gICAgaWYgKHdhbGxldElkICE9PSBXQUxMRVRfSUQpIHRocm93IG5ldyBFcnJvcignaW52YWxpZCB3YWxsZXQgaWQnKTtcbiAgICBjb25zdCBwdWJsaWNLZXkgPSBuZXcgVWludDhBcnJheSgzMik7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwdWJsaWNLZXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIHB1YmxpY0tleVtpXSA9IGRhdGEubG9hZFVpbnQoOCk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBwdWJsaWNLZXk6IEJ1ZmZlci5mcm9tKHB1YmxpY0tleSkudG9TdHJpbmcoJ2hleCcpLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -13,6 +13,7 @@ export declare class Utils implements BaseUtils {
13
13
  /** @inheritdoc */
14
14
  isValidTransactionId(txId: string): boolean;
15
15
  getAddressFromPublicKey(publicKey: string): Promise<string>;
16
+ getMessageHashFromData(data: string): Promise<string>;
16
17
  }
17
18
  declare const utils: Utils;
18
19
  export default utils;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2B,MAAM,iBAAiB,CAAC;AAGrE,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQrC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAUlE;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA2B,MAAM,iBAAiB,CAAC;AAGrE,qBAAa,KAAM,YAAW,SAAS;IACrC,kBAAkB;IAClB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYxC,kBAAkB;IAClB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQrC,kBAAkB;IAClB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIvC,kBAAkB;IAClB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAItC,kBAAkB;IAClB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI5C,kBAAkB;IAClB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQrC,uBAAuB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW3D,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAO5D;AAED,QAAA,MAAM,KAAK,OAAc,CAAC;AAE1B,eAAe,KAAK,CAAC"}
@@ -60,8 +60,15 @@ class Utils {
60
60
  const address = await wallet.getAddress();
61
61
  return address.toString(true, true, true);
62
62
  }
63
+ async getMessageHashFromData(data) {
64
+ const cell = tonweb_1.default.boc.Cell.oneFromBoc(tonweb_1.default.utils.base64ToBytes(data));
65
+ // this is need to be confirmed by ton team
66
+ const message = cell.refs[0].refs[0];
67
+ const hash = tonweb_1.default.utils.bytesToBase64(await message.hash());
68
+ return hash.toString();
69
+ }
63
70
  }
64
71
  exports.Utils = Utils;
65
72
  const utils = new Utils();
66
73
  exports.default = utils;
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUFxRTtBQUNyRSxvREFBNEI7QUFFNUIsTUFBYSxLQUFLO0lBQ2hCLGtCQUFrQjtJQUNsQixjQUFjLENBQUMsT0FBZTtRQUM1QixJQUFJO1lBQ0YsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRTtnQkFDeEIsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLElBQUk7WUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUM7U0FDbEQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixPQUFPLGtDQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsb0JBQW9CLENBQUMsSUFBWTtRQUMvQixJQUFJO1lBQ0YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDO1NBQ2xEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxTQUFpQjtRQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGdCQUFNLENBQUMsSUFBSSxnQkFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDOUMsU0FBUyxFQUFFLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDN0MsRUFBRSxFQUFFLENBQUM7U0FDTixDQUFDLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQyxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUF6REQsc0JBeURDO0FBRUQsTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQUUsQ0FBQztBQUUxQixrQkFBZSxLQUFLLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNlVXRpbHMsIGlzVmFsaWRFZDI1NTE5UHVibGljS2V5IH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCBUb25XZWIgZnJvbSAndG9ud2ViJztcblxuZXhwb3J0IGNsYXNzIFV0aWxzIGltcGxlbWVudHMgQmFzZVV0aWxzIHtcbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRBZGRyZXNzKGFkZHJlc3M6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICBpZiAoYWRkcmVzcy5sZW5ndGggIT0gNDgpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgQnVmZmVyLmZyb20oYWRkcmVzcywgJ2Jhc2U2NCcpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQmxvY2tJZChoYXNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEJ1ZmZlci5mcm9tKGhhc2gsICdiYXNlNjQnKS5sZW5ndGggPT09IDMyO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFByaXZhdGVLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFB1YmxpY0tleShrZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleShrZXkpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRTaWduYXR1cmUoc2lnbmF0dXJlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZFRyYW5zYWN0aW9uSWQodHhJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbSh0eElkLCAnYmFzZTY0JykubGVuZ3RoID09PSAzMjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgZ2V0QWRkcmVzc0Zyb21QdWJsaWNLZXkocHVibGljS2V5OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IHRvbndlYiA9IG5ldyBUb25XZWIobmV3IFRvbldlYi5IdHRwUHJvdmlkZXIoJycpKTtcbiAgICBjb25zdCBXYWxsZXRDbGFzcyA9IHRvbndlYi53YWxsZXQuYWxsWyd2NFIyJ107XG4gICAgY29uc3Qgd2FsbGV0ID0gbmV3IFdhbGxldENsYXNzKHRvbndlYi5wcm92aWRlciwge1xuICAgICAgcHVibGljS2V5OiBUb25XZWIudXRpbHMuaGV4VG9CeXRlcyhwdWJsaWNLZXkpLFxuICAgICAgd2M6IDAsXG4gICAgfSk7XG4gICAgY29uc3QgYWRkcmVzcyA9IGF3YWl0IHdhbGxldC5nZXRBZGRyZXNzKCk7XG4gICAgcmV0dXJuIGFkZHJlc3MudG9TdHJpbmcodHJ1ZSwgdHJ1ZSwgdHJ1ZSk7XG4gIH1cbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhDQUFxRTtBQUNyRSxvREFBNEI7QUFFNUIsTUFBYSxLQUFLO0lBQ2hCLGtCQUFrQjtJQUNsQixjQUFjLENBQUMsT0FBZTtRQUM1QixJQUFJO1lBQ0YsSUFBSSxPQUFPLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRTtnQkFDeEIsT0FBTyxLQUFLLENBQUM7YUFDZDtZQUNELE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQy9CLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLElBQUk7WUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDLE1BQU0sS0FBSyxFQUFFLENBQUM7U0FDbEQ7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLGlCQUFpQixDQUFDLEdBQVc7UUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsR0FBVztRQUMxQixPQUFPLGtDQUF1QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsZ0JBQWdCLENBQUMsU0FBaUI7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsb0JBQW9CLENBQUMsSUFBWTtRQUMvQixJQUFJO1lBQ0YsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQyxNQUFNLEtBQUssRUFBRSxDQUFDO1NBQ2xEO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxTQUFpQjtRQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLGdCQUFNLENBQUMsSUFBSSxnQkFBTSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE1BQU0sTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDOUMsU0FBUyxFQUFFLGdCQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUM7WUFDN0MsRUFBRSxFQUFFLENBQUM7U0FDTixDQUFDLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxNQUFNLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUMxQyxPQUFPLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQVk7UUFDdkMsTUFBTSxJQUFJLEdBQUcsZ0JBQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBTSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxRSwyQ0FBMkM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckMsTUFBTSxJQUFJLEdBQUcsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUNGO0FBakVELHNCQWlFQztBQUVELE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7QUFFMUIsa0JBQWUsS0FBSyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVV0aWxzLCBpc1ZhbGlkRWQyNTUxOVB1YmxpY0tleSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgVG9uV2ViIGZyb20gJ3RvbndlYic7XG5cbmV4cG9ydCBjbGFzcyBVdGlscyBpbXBsZW1lbnRzIEJhc2VVdGlscyB7XG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkQWRkcmVzcyhhZGRyZXNzOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICB0cnkge1xuICAgICAgaWYgKGFkZHJlc3MubGVuZ3RoICE9IDQ4KSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIEJ1ZmZlci5mcm9tKGFkZHJlc3MsICdiYXNlNjQnKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAvKiogQGluaGVyaXRkb2MgKi9cbiAgaXNWYWxpZEJsb2NrSWQoaGFzaDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBCdWZmZXIuZnJvbShoYXNoLCAnYmFzZTY0JykubGVuZ3RoID09PSAzMjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQcml2YXRlS2V5KGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRQdWJsaWNLZXkoa2V5OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEVkMjU1MTlQdWJsaWNLZXkoa2V5KTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBpc1ZhbGlkU2lnbmF0dXJlKHNpZ25hdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIGlzVmFsaWRUcmFuc2FjdGlvbklkKHR4SWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gQnVmZmVyLmZyb20odHhJZCwgJ2Jhc2U2NCcpLmxlbmd0aCA9PT0gMzI7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGdldEFkZHJlc3NGcm9tUHVibGljS2V5KHB1YmxpY0tleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB0b253ZWIgPSBuZXcgVG9uV2ViKG5ldyBUb25XZWIuSHR0cFByb3ZpZGVyKCcnKSk7XG4gICAgY29uc3QgV2FsbGV0Q2xhc3MgPSB0b253ZWIud2FsbGV0LmFsbFsndjRSMiddO1xuICAgIGNvbnN0IHdhbGxldCA9IG5ldyBXYWxsZXRDbGFzcyh0b253ZWIucHJvdmlkZXIsIHtcbiAgICAgIHB1YmxpY0tleTogVG9uV2ViLnV0aWxzLmhleFRvQnl0ZXMocHVibGljS2V5KSxcbiAgICAgIHdjOiAwLFxuICAgIH0pO1xuICAgIGNvbnN0IGFkZHJlc3MgPSBhd2FpdCB3YWxsZXQuZ2V0QWRkcmVzcygpO1xuICAgIHJldHVybiBhZGRyZXNzLnRvU3RyaW5nKHRydWUsIHRydWUsIHRydWUpO1xuICB9XG5cbiAgYXN5bmMgZ2V0TWVzc2FnZUhhc2hGcm9tRGF0YShkYXRhOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IGNlbGwgPSBUb25XZWIuYm9jLkNlbGwub25lRnJvbUJvYyhUb25XZWIudXRpbHMuYmFzZTY0VG9CeXRlcyhkYXRhKSk7XG4gICAgLy8gdGhpcyBpcyBuZWVkIHRvIGJlIGNvbmZpcm1lZCBieSB0b24gdGVhbVxuICAgIGNvbnN0IG1lc3NhZ2UgPSBjZWxsLnJlZnNbMF0ucmVmc1swXTtcbiAgICBjb25zdCBoYXNoID0gVG9uV2ViLnV0aWxzLmJ5dGVzVG9CYXNlNjQoYXdhaXQgbWVzc2FnZS5oYXNoKCkpO1xuICAgIHJldHVybiBoYXNoLnRvU3RyaW5nKCk7XG4gIH1cbn1cblxuY29uc3QgdXRpbHMgPSBuZXcgVXRpbHMoKTtcblxuZXhwb3J0IGRlZmF1bHQgdXRpbHM7XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo/sdk-coin-ton",
3
- "version": "1.8.0",
3
+ "version": "1.10.0",
4
4
  "description": "BitGo SDK coin library for Ton",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -40,9 +40,9 @@
40
40
  ]
41
41
  },
42
42
  "dependencies": {
43
- "@bitgo/sdk-core": "^14.0.0",
44
- "@bitgo/sdk-lib-mpc": "^8.21.0",
45
- "@bitgo/statics": "^35.0.0",
43
+ "@bitgo/sdk-core": "^16.0.0",
44
+ "@bitgo/sdk-lib-mpc": "^8.23.0",
45
+ "@bitgo/statics": "^37.0.0",
46
46
  "bignumber.js": "^9.0.0",
47
47
  "bn.js": "^5.2.1",
48
48
  "lodash": "^4.17.21",
@@ -50,8 +50,8 @@
50
50
  "tweetnacl": "^1.0.3"
51
51
  },
52
52
  "devDependencies": {
53
- "@bitgo/sdk-api": "^1.30.0",
54
- "@bitgo/sdk-test": "^1.2.49"
53
+ "@bitgo/sdk-api": "^1.32.0",
54
+ "@bitgo/sdk-test": "^1.2.51"
55
55
  },
56
- "gitHead": "132200b0bd403c02e20dc13df337a40968a2f830"
56
+ "gitHead": "38a8044e048a9b4a9fef80b15218d5df419465e2"
57
57
  }