@bitgo-beta/abstract-utxo 1.6.1-alpha.256 → 1.6.1-alpha.258

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,4 +5,5 @@ export * from './replayProtection';
5
5
  export * from './sign';
6
6
  export { UtxoWallet } from './wallet';
7
7
  export * as descriptor from './descriptor';
8
+ export * as offlineVault from './offlineVault';
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC"}
package/dist/src/index.js CHANGED
@@ -36,11 +36,12 @@ var __importStar = (this && this.__importStar) || (function () {
36
36
  };
37
37
  })();
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.descriptor = void 0;
39
+ exports.offlineVault = exports.descriptor = void 0;
40
40
  __exportStar(require("./abstractUtxoCoin"), exports);
41
41
  __exportStar(require("./config"), exports);
42
42
  __exportStar(require("./recovery"), exports);
43
43
  __exportStar(require("./replayProtection"), exports);
44
44
  __exportStar(require("./sign"), exports);
45
45
  exports.descriptor = __importStar(require("./descriptor"));
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQW1DO0FBQ25DLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IscURBQW1DO0FBQ25DLHlDQUF1QjtBQUd2QiwyREFBMkMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0VXR4b0NvaW4nO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWNvdmVyeSc7XG5leHBvcnQgKiBmcm9tICcuL3JlcGxheVByb3RlY3Rpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9zaWduJztcblxuZXhwb3J0IHsgVXR4b1dhbGxldCB9IGZyb20gJy4vd2FsbGV0JztcbmV4cG9ydCAqIGFzIGRlc2NyaXB0b3IgZnJvbSAnLi9kZXNjcmlwdG9yJztcbiJdfQ==
46
+ exports.offlineVault = __importStar(require("./offlineVault"));
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQW1DO0FBQ25DLDJDQUF5QjtBQUN6Qiw2Q0FBMkI7QUFDM0IscURBQW1DO0FBQ25DLHlDQUF1QjtBQUd2QiwyREFBMkM7QUFDM0MsK0RBQStDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdFV0eG9Db2luJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vcmVjb3ZlcnknO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBsYXlQcm90ZWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vc2lnbic7XG5cbmV4cG9ydCB7IFV0eG9XYWxsZXQgfSBmcm9tICcuL3dhbGxldCc7XG5leHBvcnQgKiBhcyBkZXNjcmlwdG9yIGZyb20gJy4vZGVzY3JpcHRvcic7XG5leHBvcnQgKiBhcyBvZmZsaW5lVmF1bHQgZnJvbSAnLi9vZmZsaW5lVmF1bHQnO1xuIl19
@@ -37,7 +37,7 @@ exports.createHalfSigned = createHalfSigned;
37
37
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
38
38
  const sdk_core_1 = require("@bitgo-beta/sdk-core");
39
39
  const names_1 = require("../names");
40
- const OfflineVaultUnsigned_1 = require("./OfflineVaultUnsigned");
40
+ const OfflineVaultSignable_1 = require("./OfflineVaultSignable");
41
41
  const descriptor_1 = require("./descriptor");
42
42
  function createHalfSignedFromPsbt(psbt) {
43
43
  return { halfSigned: { txHex: psbt.toHex() } };
@@ -48,7 +48,7 @@ function createHalfSigned(coin, prv, derivationId, tx) {
48
48
  prv = utxolib.bip32.fromBase58(prv);
49
49
  }
50
50
  prv = sdk_core_1.BaseCoin.deriveKeyWithSeedBip32(prv, derivationId).key;
51
- if (!OfflineVaultUnsigned_1.OfflineVaultUnsigned.is(tx)) {
51
+ if (!OfflineVaultSignable_1.OfflineVaultSignable.is(tx)) {
52
52
  throw new Error('unsupported transaction type');
53
53
  }
54
54
  if (descriptor_1.DescriptorTransaction.is(tx)) {
@@ -56,4 +56,4 @@ function createHalfSigned(coin, prv, derivationId, tx) {
56
56
  }
57
57
  throw new Error('unsupported transaction type');
58
58
  }
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmbGluZVZhdWx0SGFsZlNpZ25lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vZmZsaW5lVmF1bHQvT2ZmbGluZVZhdWx0SGFsZlNpZ25lZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSw0Q0FrQkM7QUFuQ0QsOERBQWdEO0FBRWhELG1EQUFnRDtBQUVoRCxvQ0FBK0M7QUFFL0MsaUVBQThEO0FBQzlELDZDQUF3RTtBQU14RSxTQUFTLHdCQUF3QixDQUFDLElBQWtCO0lBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLElBQVksRUFDWixHQUE0QixFQUM1QixZQUFvQixFQUNwQixFQUFXO0lBRVgsTUFBTSxPQUFPLEdBQUcsSUFBQSwyQkFBbUIsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsR0FBRyxHQUFHLG1CQUFRLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM3RCxJQUFJLENBQUMsMkNBQW9CLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLGtDQUFxQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sd0JBQXdCLENBQUMsSUFBQSw4QkFBaUIsRUFBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBnZXROZXR3b3JrRnJvbUNoYWluIH0gZnJvbSAnLi4vbmFtZXMnO1xuXG5pbXBvcnQgeyBPZmZsaW5lVmF1bHRVbnNpZ25lZCB9IGZyb20gJy4vT2ZmbGluZVZhdWx0VW5zaWduZWQnO1xuaW1wb3J0IHsgRGVzY3JpcHRvclRyYW5zYWN0aW9uLCBnZXRIYWxmU2lnbmVkUHNidCB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5cbmV4cG9ydCB0eXBlIE9mZmxpbmVWYXVsdEhhbGZTaWduZWQgPSB7XG4gIGhhbGZTaWduZWQ6IHsgdHhIZXg6IHN0cmluZyB9O1xufTtcblxuZnVuY3Rpb24gY3JlYXRlSGFsZlNpZ25lZEZyb21Qc2J0KHBzYnQ6IHV0eG9saWIuUHNidCk6IE9mZmxpbmVWYXVsdEhhbGZTaWduZWQge1xuICByZXR1cm4geyBoYWxmU2lnbmVkOiB7IHR4SGV4OiBwc2J0LnRvSGV4KCkgfSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGFsZlNpZ25lZChcbiAgY29pbjogc3RyaW5nLFxuICBwcnY6IHN0cmluZyB8IEJJUDMySW50ZXJmYWNlLFxuICBkZXJpdmF0aW9uSWQ6IHN0cmluZyxcbiAgdHg6IHVua25vd25cbik6IE9mZmxpbmVWYXVsdEhhbGZTaWduZWQge1xuICBjb25zdCBuZXR3b3JrID0gZ2V0TmV0d29ya0Zyb21DaGFpbihjb2luKTtcbiAgaWYgKHR5cGVvZiBwcnYgPT09ICdzdHJpbmcnKSB7XG4gICAgcHJ2ID0gdXR4b2xpYi5iaXAzMi5mcm9tQmFzZTU4KHBydik7XG4gIH1cbiAgcHJ2ID0gQmFzZUNvaW4uZGVyaXZlS2V5V2l0aFNlZWRCaXAzMihwcnYsIGRlcml2YXRpb25JZCkua2V5O1xuICBpZiAoIU9mZmxpbmVWYXVsdFVuc2lnbmVkLmlzKHR4KSkge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICB9XG4gIGlmIChEZXNjcmlwdG9yVHJhbnNhY3Rpb24uaXModHgpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUhhbGZTaWduZWRGcm9tUHNidChnZXRIYWxmU2lnbmVkUHNidCh0eCwgcHJ2LCBuZXR3b3JrKSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCd1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG59XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmbGluZVZhdWx0SGFsZlNpZ25lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vZmZsaW5lVmF1bHQvT2ZmbGluZVZhdWx0SGFsZlNpZ25lZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSw0Q0FrQkM7QUFuQ0QsOERBQWdEO0FBRWhELG1EQUFnRDtBQUVoRCxvQ0FBK0M7QUFFL0MsaUVBQThEO0FBQzlELDZDQUF3RTtBQU14RSxTQUFTLHdCQUF3QixDQUFDLElBQWtCO0lBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQzlCLElBQVksRUFDWixHQUE0QixFQUM1QixZQUFvQixFQUNwQixFQUFXO0lBRVgsTUFBTSxPQUFPLEdBQUcsSUFBQSwyQkFBbUIsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUMxQyxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzVCLEdBQUcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsR0FBRyxHQUFHLG1CQUFRLENBQUMsc0JBQXNCLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM3RCxJQUFJLENBQUMsMkNBQW9CLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxJQUFJLGtDQUFxQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sd0JBQXdCLENBQUMsSUFBQSw4QkFBaUIsRUFBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztBQUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IEJhc2VDb2luIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuXG5pbXBvcnQgeyBnZXROZXR3b3JrRnJvbUNoYWluIH0gZnJvbSAnLi4vbmFtZXMnO1xuXG5pbXBvcnQgeyBPZmZsaW5lVmF1bHRTaWduYWJsZSB9IGZyb20gJy4vT2ZmbGluZVZhdWx0U2lnbmFibGUnO1xuaW1wb3J0IHsgRGVzY3JpcHRvclRyYW5zYWN0aW9uLCBnZXRIYWxmU2lnbmVkUHNidCB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5cbmV4cG9ydCB0eXBlIE9mZmxpbmVWYXVsdEhhbGZTaWduZWQgPSB7XG4gIGhhbGZTaWduZWQ6IHsgdHhIZXg6IHN0cmluZyB9O1xufTtcblxuZnVuY3Rpb24gY3JlYXRlSGFsZlNpZ25lZEZyb21Qc2J0KHBzYnQ6IHV0eG9saWIuUHNidCk6IE9mZmxpbmVWYXVsdEhhbGZTaWduZWQge1xuICByZXR1cm4geyBoYWxmU2lnbmVkOiB7IHR4SGV4OiBwc2J0LnRvSGV4KCkgfSB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSGFsZlNpZ25lZChcbiAgY29pbjogc3RyaW5nLFxuICBwcnY6IHN0cmluZyB8IEJJUDMySW50ZXJmYWNlLFxuICBkZXJpdmF0aW9uSWQ6IHN0cmluZyxcbiAgdHg6IHVua25vd25cbik6IE9mZmxpbmVWYXVsdEhhbGZTaWduZWQge1xuICBjb25zdCBuZXR3b3JrID0gZ2V0TmV0d29ya0Zyb21DaGFpbihjb2luKTtcbiAgaWYgKHR5cGVvZiBwcnYgPT09ICdzdHJpbmcnKSB7XG4gICAgcHJ2ID0gdXR4b2xpYi5iaXAzMi5mcm9tQmFzZTU4KHBydik7XG4gIH1cbiAgcHJ2ID0gQmFzZUNvaW4uZGVyaXZlS2V5V2l0aFNlZWRCaXAzMihwcnYsIGRlcml2YXRpb25JZCkua2V5O1xuICBpZiAoIU9mZmxpbmVWYXVsdFNpZ25hYmxlLmlzKHR4KSkge1xuICAgIHRocm93IG5ldyBFcnJvcigndW5zdXBwb3J0ZWQgdHJhbnNhY3Rpb24gdHlwZScpO1xuICB9XG4gIGlmIChEZXNjcmlwdG9yVHJhbnNhY3Rpb24uaXModHgpKSB7XG4gICAgcmV0dXJuIGNyZWF0ZUhhbGZTaWduZWRGcm9tUHNidChnZXRIYWxmU2lnbmVkUHNidCh0eCwgcHJ2LCBuZXR3b3JrKSk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCd1bnN1cHBvcnRlZCB0cmFuc2FjdGlvbiB0eXBlJyk7XG59XG4iXX0=
@@ -10,7 +10,7 @@ export type XPubWithDerivationPath = t.TypeOf<typeof XPubWithDerivationPath>;
10
10
  /**
11
11
  * This is the transaction payload that is sent to the offline vault to sign.
12
12
  */
13
- export declare const OfflineVaultUnsigned: t.TypeC<{
13
+ export declare const OfflineVaultSignable: t.TypeC<{
14
14
  xpubsWithDerivationPath: t.TypeC<{
15
15
  user: t.IntersectionC<[t.TypeC<{
16
16
  xpub: t.StringC;
@@ -32,7 +32,7 @@ export declare const OfflineVaultUnsigned: t.TypeC<{
32
32
  txHex: t.StringC;
33
33
  }>;
34
34
  }>;
35
- export type OfflineVaultUnsigned = t.TypeOf<typeof OfflineVaultUnsigned>;
35
+ export type OfflineVaultUnsigned = t.TypeOf<typeof OfflineVaultSignable>;
36
36
  type WithXpub = {
37
37
  xpub: string;
38
38
  };
@@ -43,4 +43,4 @@ type NamedKeys = {
43
43
  };
44
44
  export declare function toKeyTriple(xpubs: NamedKeys): Triple<utxolib.BIP32Interface>;
45
45
  export {};
46
- //# sourceMappingURL=OfflineVaultUnsigned.d.ts.map
46
+ //# sourceMappingURL=OfflineVaultSignable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OfflineVaultUnsigned.d.ts","sourceRoot":"","sources":["../../../src/offlineVault/OfflineVaultUnsigned.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAE3B,eAAO,MAAM,sBAAsB;;;;IAGlC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAUhC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACjC,KAAK,SAAS,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAI5E"}
1
+ {"version":3,"file":"OfflineVaultSignable.d.ts","sourceRoot":"","sources":["../../../src/offlineVault/OfflineVaultSignable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAE3B,eAAO,MAAM,sBAAsB;;;;IAGlC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;EAUhC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEzE,KAAK,QAAQ,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AACjC,KAAK,SAAS,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AACvE,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAI5E"}
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.OfflineVaultUnsigned = exports.XPubWithDerivationPath = void 0;
36
+ exports.OfflineVaultSignable = exports.XPubWithDerivationPath = void 0;
37
37
  exports.toKeyTriple = toKeyTriple;
38
38
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
39
39
  const t = __importStar(require("io-ts"));
@@ -41,7 +41,7 @@ exports.XPubWithDerivationPath = t.intersection([t.type({ xpub: t.string }), t.p
41
41
  /**
42
42
  * This is the transaction payload that is sent to the offline vault to sign.
43
43
  */
44
- exports.OfflineVaultUnsigned = t.type({
44
+ exports.OfflineVaultSignable = t.type({
45
45
  xpubsWithDerivationPath: t.type({
46
46
  user: exports.XPubWithDerivationPath,
47
47
  backup: exports.XPubWithDerivationPath,
@@ -52,4 +52,4 @@ exports.OfflineVaultUnsigned = t.type({
52
52
  function toKeyTriple(xpubs) {
53
53
  return [xpubs.user.xpub, xpubs.backup.xpub, xpubs.bitgo.xpub].map((xpub) => utxolib.bip32.fromBase58(xpub));
54
54
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmbGluZVZhdWx0VW5zaWduZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb2ZmbGluZVZhdWx0L09mZmxpbmVWYXVsdFVuc2lnbmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSxrQ0FJQztBQWxDRCw4REFBZ0Q7QUFFaEQseUNBQTJCO0FBRWQsUUFBQSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUNsRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQ2hGLHdCQUF3QixDQUN6QixDQUFDO0FBSUY7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ3hDO0lBQ0UsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLEVBQUUsOEJBQXNCO1FBQzVCLE1BQU0sRUFBRSw4QkFBc0I7UUFDOUIsS0FBSyxFQUFFLDhCQUFzQjtLQUM5QixDQUFDO0lBQ0YsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0NBQzFDLEVBQ0QsaUJBQWlCLENBQ2xCLENBQUM7QUFNRixTQUFnQixXQUFXLENBQUMsS0FBZ0I7SUFDMUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDekUsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQ0csQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcblxuZXhwb3J0IGNvbnN0IFhQdWJXaXRoRGVyaXZhdGlvblBhdGggPSB0LmludGVyc2VjdGlvbihcbiAgW3QudHlwZSh7IHhwdWI6IHQuc3RyaW5nIH0pLCB0LnBhcnRpYWwoeyBkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkOiB0LnN0cmluZyB9KV0sXG4gICdYUHViV2l0aERlcml2YXRpb25QYXRoJ1xuKTtcblxuZXhwb3J0IHR5cGUgWFB1YldpdGhEZXJpdmF0aW9uUGF0aCA9IHQuVHlwZU9mPHR5cGVvZiBYUHViV2l0aERlcml2YXRpb25QYXRoPjtcblxuLyoqXG4gKiBUaGlzIGlzIHRoZSB0cmFuc2FjdGlvbiBwYXlsb2FkIHRoYXQgaXMgc2VudCB0byB0aGUgb2ZmbGluZSB2YXVsdCB0byBzaWduLlxuICovXG5leHBvcnQgY29uc3QgT2ZmbGluZVZhdWx0VW5zaWduZWQgPSB0LnR5cGUoXG4gIHtcbiAgICB4cHVic1dpdGhEZXJpdmF0aW9uUGF0aDogdC50eXBlKHtcbiAgICAgIHVzZXI6IFhQdWJXaXRoRGVyaXZhdGlvblBhdGgsXG4gICAgICBiYWNrdXA6IFhQdWJXaXRoRGVyaXZhdGlvblBhdGgsXG4gICAgICBiaXRnbzogWFB1YldpdGhEZXJpdmF0aW9uUGF0aCxcbiAgICB9KSxcbiAgICBjb2luU3BlY2lmaWM6IHQudHlwZSh7IHR4SGV4OiB0LnN0cmluZyB9KSxcbiAgfSxcbiAgJ0Jhc2VUcmFuc2FjdGlvbidcbik7XG5cbmV4cG9ydCB0eXBlIE9mZmxpbmVWYXVsdFVuc2lnbmVkID0gdC5UeXBlT2Y8dHlwZW9mIE9mZmxpbmVWYXVsdFVuc2lnbmVkPjtcblxudHlwZSBXaXRoWHB1YiA9IHsgeHB1Yjogc3RyaW5nIH07XG50eXBlIE5hbWVkS2V5cyA9IHsgdXNlcjogV2l0aFhwdWI7IGJhY2t1cDogV2l0aFhwdWI7IGJpdGdvOiBXaXRoWHB1YiB9O1xuZXhwb3J0IGZ1bmN0aW9uIHRvS2V5VHJpcGxlKHhwdWJzOiBOYW1lZEtleXMpOiBUcmlwbGU8dXR4b2xpYi5CSVAzMkludGVyZmFjZT4ge1xuICByZXR1cm4gW3hwdWJzLnVzZXIueHB1YiwgeHB1YnMuYmFja3VwLnhwdWIsIHhwdWJzLmJpdGdvLnhwdWJdLm1hcCgoeHB1YikgPT5cbiAgICB1dHhvbGliLmJpcDMyLmZyb21CYXNlNTgoeHB1YilcbiAgKSBhcyBUcmlwbGU8dXR4b2xpYi5CSVAzMkludGVyZmFjZT47XG59XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT2ZmbGluZVZhdWx0U2lnbmFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb2ZmbGluZVZhdWx0L09mZmxpbmVWYXVsdFNpZ25hYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQThCQSxrQ0FJQztBQWxDRCw4REFBZ0Q7QUFFaEQseUNBQTJCO0FBRWQsUUFBQSxzQkFBc0IsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUNsRCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLHlCQUF5QixFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQ2hGLHdCQUF3QixDQUN6QixDQUFDO0FBSUY7O0dBRUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ3hDO0lBQ0UsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLEVBQUUsOEJBQXNCO1FBQzVCLE1BQU0sRUFBRSw4QkFBc0I7UUFDOUIsS0FBSyxFQUFFLDhCQUFzQjtLQUM5QixDQUFDO0lBQ0YsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0NBQzFDLEVBQ0QsaUJBQWlCLENBQ2xCLENBQUM7QUFNRixTQUFnQixXQUFXLENBQUMsS0FBZ0I7SUFDMUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FDekUsT0FBTyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQ0csQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBUcmlwbGUgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcblxuZXhwb3J0IGNvbnN0IFhQdWJXaXRoRGVyaXZhdGlvblBhdGggPSB0LmludGVyc2VjdGlvbihcbiAgW3QudHlwZSh7IHhwdWI6IHQuc3RyaW5nIH0pLCB0LnBhcnRpYWwoeyBkZXJpdmVkRnJvbVBhcmVudFdpdGhTZWVkOiB0LnN0cmluZyB9KV0sXG4gICdYUHViV2l0aERlcml2YXRpb25QYXRoJ1xuKTtcblxuZXhwb3J0IHR5cGUgWFB1YldpdGhEZXJpdmF0aW9uUGF0aCA9IHQuVHlwZU9mPHR5cGVvZiBYUHViV2l0aERlcml2YXRpb25QYXRoPjtcblxuLyoqXG4gKiBUaGlzIGlzIHRoZSB0cmFuc2FjdGlvbiBwYXlsb2FkIHRoYXQgaXMgc2VudCB0byB0aGUgb2ZmbGluZSB2YXVsdCB0byBzaWduLlxuICovXG5leHBvcnQgY29uc3QgT2ZmbGluZVZhdWx0U2lnbmFibGUgPSB0LnR5cGUoXG4gIHtcbiAgICB4cHVic1dpdGhEZXJpdmF0aW9uUGF0aDogdC50eXBlKHtcbiAgICAgIHVzZXI6IFhQdWJXaXRoRGVyaXZhdGlvblBhdGgsXG4gICAgICBiYWNrdXA6IFhQdWJXaXRoRGVyaXZhdGlvblBhdGgsXG4gICAgICBiaXRnbzogWFB1YldpdGhEZXJpdmF0aW9uUGF0aCxcbiAgICB9KSxcbiAgICBjb2luU3BlY2lmaWM6IHQudHlwZSh7IHR4SGV4OiB0LnN0cmluZyB9KSxcbiAgfSxcbiAgJ0Jhc2VUcmFuc2FjdGlvbidcbik7XG5cbmV4cG9ydCB0eXBlIE9mZmxpbmVWYXVsdFVuc2lnbmVkID0gdC5UeXBlT2Y8dHlwZW9mIE9mZmxpbmVWYXVsdFNpZ25hYmxlPjtcblxudHlwZSBXaXRoWHB1YiA9IHsgeHB1Yjogc3RyaW5nIH07XG50eXBlIE5hbWVkS2V5cyA9IHsgdXNlcjogV2l0aFhwdWI7IGJhY2t1cDogV2l0aFhwdWI7IGJpdGdvOiBXaXRoWHB1YiB9O1xuZXhwb3J0IGZ1bmN0aW9uIHRvS2V5VHJpcGxlKHhwdWJzOiBOYW1lZEtleXMpOiBUcmlwbGU8dXR4b2xpYi5CSVAzMkludGVyZmFjZT4ge1xuICByZXR1cm4gW3hwdWJzLnVzZXIueHB1YiwgeHB1YnMuYmFja3VwLnhwdWIsIHhwdWJzLmJpdGdvLnhwdWJdLm1hcCgoeHB1YikgPT5cbiAgICB1dHhvbGliLmJpcDMyLmZyb21CYXNlNTgoeHB1YilcbiAgKSBhcyBUcmlwbGU8dXR4b2xpYi5CSVAzMkludGVyZmFjZT47XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ export interface ExplanationOutput {
2
+ address: string;
3
+ amount: string | number;
4
+ }
5
+ export interface TransactionExplanation {
6
+ outputs: ExplanationOutput[];
7
+ changeOutputs: ExplanationOutput[];
8
+ fee: {
9
+ fee: string | number;
10
+ payGoFeeString: string | number | undefined;
11
+ payGoFeeAddress: string | undefined;
12
+ };
13
+ }
14
+ export declare function getTransactionExplanation(coin: string, tx: unknown): TransactionExplanation;
15
+ //# sourceMappingURL=TransactionExplanation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionExplanation.d.ts","sourceRoot":"","sources":["../../../src/offlineVault/TransactionExplanation.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,iBAAiB,EAAE,CAAC;IAC7B,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,GAAG,EAAE;QAEH,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;QACrB,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;QAC5C,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;KACrC,CAAC;CACH;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,sBAAsB,CAS3F"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getTransactionExplanation = getTransactionExplanation;
4
+ const names_1 = require("../names");
5
+ const OfflineVaultSignable_1 = require("./OfflineVaultSignable");
6
+ const descriptor_1 = require("./descriptor");
7
+ function getTransactionExplanation(coin, tx) {
8
+ if (!OfflineVaultSignable_1.OfflineVaultSignable.is(tx)) {
9
+ throw new Error('not a signable transaction');
10
+ }
11
+ if (descriptor_1.DescriptorTransaction.is(tx)) {
12
+ return (0, descriptor_1.getTransactionExplanationFromPsbt)(tx, (0, names_1.getNetworkFromChain)(coin));
13
+ }
14
+ throw new Error('unsupported transaction type');
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHJhbnNhY3Rpb25FeHBsYW5hdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vZmZsaW5lVmF1bHQvVHJhbnNhY3Rpb25FeHBsYW5hdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFCQSw4REFTQztBQTlCRCxvQ0FBK0M7QUFFL0MsaUVBQThEO0FBQzlELDZDQUF3RjtBQWtCeEYsU0FBZ0IseUJBQXlCLENBQUMsSUFBWSxFQUFFLEVBQVc7SUFDakUsSUFBSSxDQUFDLDJDQUFvQixDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBQ0QsSUFBSSxrQ0FBcUIsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNqQyxPQUFPLElBQUEsOENBQWlDLEVBQUMsRUFBRSxFQUFFLElBQUEsMkJBQW1CLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXROZXR3b3JrRnJvbUNoYWluIH0gZnJvbSAnLi4vbmFtZXMnO1xuXG5pbXBvcnQgeyBPZmZsaW5lVmF1bHRTaWduYWJsZSB9IGZyb20gJy4vT2ZmbGluZVZhdWx0U2lnbmFibGUnO1xuaW1wb3J0IHsgRGVzY3JpcHRvclRyYW5zYWN0aW9uLCBnZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uRnJvbVBzYnQgfSBmcm9tICcuL2Rlc2NyaXB0b3InO1xuXG5leHBvcnQgaW50ZXJmYWNlIEV4cGxhbmF0aW9uT3V0cHV0IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBhbW91bnQ6IHN0cmluZyB8IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgb3V0cHV0czogRXhwbGFuYXRpb25PdXRwdXRbXTtcbiAgY2hhbmdlT3V0cHV0czogRXhwbGFuYXRpb25PdXRwdXRbXTtcbiAgZmVlOiB7XG4gICAgLyogbmV0d29yayBmZWUgKi9cbiAgICBmZWU6IHN0cmluZyB8IG51bWJlcjtcbiAgICBwYXlHb0ZlZVN0cmluZzogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIHBheUdvRmVlQWRkcmVzczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbihjb2luOiBzdHJpbmcsIHR4OiB1bmtub3duKTogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB7XG4gIGlmICghT2ZmbGluZVZhdWx0U2lnbmFibGUuaXModHgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdub3QgYSBzaWduYWJsZSB0cmFuc2FjdGlvbicpO1xuICB9XG4gIGlmIChEZXNjcmlwdG9yVHJhbnNhY3Rpb24uaXModHgpKSB7XG4gICAgcmV0dXJuIGdldFRyYW5zYWN0aW9uRXhwbGFuYXRpb25Gcm9tUHNidCh0eCwgZ2V0TmV0d29ya0Zyb21DaGFpbihjb2luKSk7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoJ3Vuc3VwcG9ydGVkIHRyYW5zYWN0aW9uIHR5cGUnKTtcbn1cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import * as utxolib from '@bitgo-beta/utxo-lib';
2
2
  import * as t from 'io-ts';
3
3
  import { DescriptorMap } from '../../core/descriptor';
4
+ import { TransactionExplanation } from '../TransactionExplanation';
4
5
  export declare const DescriptorTransaction: t.IntersectionC<[t.TypeC<{
5
6
  xpubsWithDerivationPath: t.TypeC<{
6
7
  user: t.IntersectionC<[t.TypeC<{
@@ -33,4 +34,5 @@ export declare const DescriptorTransaction: t.IntersectionC<[t.TypeC<{
33
34
  export type DescriptorTransaction = t.TypeOf<typeof DescriptorTransaction>;
34
35
  export declare function getDescriptorsFromDescriptorTransaction(tx: DescriptorTransaction): DescriptorMap;
35
36
  export declare function getHalfSignedPsbt(tx: DescriptorTransaction, prv: utxolib.BIP32Interface, network: utxolib.Network): utxolib.Psbt;
37
+ export declare function getTransactionExplanationFromPsbt(tx: DescriptorTransaction, network: utxolib.Network): TransactionExplanation;
36
38
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/offlineVault/descriptor/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGjC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE3E,wBAAgB,uCAAuC,CAAC,EAAE,EAAE,qBAAqB,GAAG,aAAa,CAUhG;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,qBAAqB,EACzB,GAAG,EAAE,OAAO,CAAC,cAAc,EAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAAC,IAAI,CAKd"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/offlineVault/descriptor/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAU3B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGjC,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE3E,wBAAgB,uCAAuC,CAAC,EAAE,EAAE,qBAAqB,GAAG,aAAa,CAUhG;AAED,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,qBAAqB,EACzB,GAAG,EAAE,OAAO,CAAC,cAAc,EAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAAC,IAAI,CAKd;AAED,wBAAgB,iCAAiC,CAC/C,EAAE,EAAE,qBAAqB,EACzB,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,sBAAsB,CAexB"}
@@ -36,16 +36,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.DescriptorTransaction = void 0;
37
37
  exports.getDescriptorsFromDescriptorTransaction = getDescriptorsFromDescriptorTransaction;
38
38
  exports.getHalfSignedPsbt = getHalfSignedPsbt;
39
+ exports.getTransactionExplanationFromPsbt = getTransactionExplanationFromPsbt;
39
40
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
40
41
  const t = __importStar(require("io-ts"));
41
42
  const descriptor_1 = require("../../descriptor");
42
- const OfflineVaultUnsigned_1 = require("../OfflineVaultUnsigned");
43
+ const OfflineVaultSignable_1 = require("../OfflineVaultSignable");
43
44
  const validatePolicy_1 = require("../../descriptor/validatePolicy");
44
45
  const descriptor_2 = require("../../transaction/descriptor");
45
- exports.DescriptorTransaction = t.intersection([OfflineVaultUnsigned_1.OfflineVaultUnsigned, t.type({ descriptors: t.array(descriptor_1.NamedDescriptor) })], 'DescriptorTransaction');
46
+ exports.DescriptorTransaction = t.intersection([OfflineVaultSignable_1.OfflineVaultSignable, t.type({ descriptors: t.array(descriptor_1.NamedDescriptor) })], 'DescriptorTransaction');
46
47
  function getDescriptorsFromDescriptorTransaction(tx) {
47
48
  const { descriptors, xpubsWithDerivationPath } = tx;
48
- const pubkeys = (0, OfflineVaultUnsigned_1.toKeyTriple)(xpubsWithDerivationPath);
49
+ const pubkeys = (0, OfflineVaultSignable_1.toKeyTriple)(xpubsWithDerivationPath);
49
50
  const policy = (0, validatePolicy_1.getValidatorSome)([
50
51
  // allow all 2-of-3-ish descriptors where the keys match the wallet keys
51
52
  (0, validatePolicy_1.getValidatorOneOfTemplates)(['Wsh2Of3', 'Wsh2Of3CltvDrop', 'ShWsh2Of3CltvDrop']),
@@ -60,4 +61,20 @@ function getHalfSignedPsbt(tx, prv, network) {
60
61
  (0, descriptor_2.signPsbt)(psbt, descriptorMap, prv, { onUnknownInput: 'throw' });
61
62
  return psbt;
62
63
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvb2ZmbGluZVZhdWx0L2Rlc2NyaXB0b3IvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUJBLDBGQVVDO0FBRUQsOENBU0M7QUExQ0QsOERBQWdEO0FBQ2hELHlDQUEyQjtBQUUzQixpREFBbUQ7QUFDbkQsa0VBQTRFO0FBQzVFLG9FQUt5QztBQUV6Qyw2REFBd0Q7QUFFM0MsUUFBQSxxQkFBcUIsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUNqRCxDQUFDLDJDQUFvQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyw0QkFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3pFLHVCQUF1QixDQUN4QixDQUFDO0FBSUYsU0FBZ0IsdUNBQXVDLENBQUMsRUFBeUI7SUFDL0UsTUFBTSxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFBLGtDQUFXLEVBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFBLGlDQUFnQixFQUFDO1FBQzlCLHdFQUF3RTtRQUN4RSxJQUFBLDJDQUEwQixFQUFDLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDL0UsK0NBQStDO1FBQy9DLElBQUEsNENBQTJCLEdBQUU7S0FDOUIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFBLHdDQUF1QixFQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixFQUF5QixFQUN6QixHQUEyQixFQUMzQixPQUF3QjtJQUV4QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLE1BQU0sYUFBYSxHQUFHLHVDQUF1QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLElBQUEscUJBQVEsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5cbmltcG9ydCB7IE5hbWVkRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgT2ZmbGluZVZhdWx0VW5zaWduZWQsIHRvS2V5VHJpcGxlIH0gZnJvbSAnLi4vT2ZmbGluZVZhdWx0VW5zaWduZWQnO1xuaW1wb3J0IHtcbiAgZ2V0VmFsaWRhdG9yT25lT2ZUZW1wbGF0ZXMsXG4gIGdldFZhbGlkYXRvclNpZ25lZEJ5VXNlcktleSxcbiAgZ2V0VmFsaWRhdG9yU29tZSxcbiAgdG9EZXNjcmlwdG9yTWFwVmFsaWRhdGUsXG59IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3IvdmFsaWRhdGVQb2xpY3knO1xuaW1wb3J0IHsgRGVzY3JpcHRvck1hcCB9IGZyb20gJy4uLy4uL2NvcmUvZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBzaWduUHNidCB9IGZyb20gJy4uLy4uL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3InO1xuXG5leHBvcnQgY29uc3QgRGVzY3JpcHRvclRyYW5zYWN0aW9uID0gdC5pbnRlcnNlY3Rpb24oXG4gIFtPZmZsaW5lVmF1bHRVbnNpZ25lZCwgdC50eXBlKHsgZGVzY3JpcHRvcnM6IHQuYXJyYXkoTmFtZWREZXNjcmlwdG9yKSB9KV0sXG4gICdEZXNjcmlwdG9yVHJhbnNhY3Rpb24nXG4pO1xuXG5leHBvcnQgdHlwZSBEZXNjcmlwdG9yVHJhbnNhY3Rpb24gPSB0LlR5cGVPZjx0eXBlb2YgRGVzY3JpcHRvclRyYW5zYWN0aW9uPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JzRnJvbURlc2NyaXB0b3JUcmFuc2FjdGlvbih0eDogRGVzY3JpcHRvclRyYW5zYWN0aW9uKTogRGVzY3JpcHRvck1hcCB7XG4gIGNvbnN0IHsgZGVzY3JpcHRvcnMsIHhwdWJzV2l0aERlcml2YXRpb25QYXRoIH0gPSB0eDtcbiAgY29uc3QgcHVia2V5cyA9IHRvS2V5VHJpcGxlKHhwdWJzV2l0aERlcml2YXRpb25QYXRoKTtcbiAgY29uc3QgcG9saWN5ID0gZ2V0VmFsaWRhdG9yU29tZShbXG4gICAgLy8gYWxsb3cgYWxsIDItb2YtMy1pc2ggZGVzY3JpcHRvcnMgd2hlcmUgdGhlIGtleXMgbWF0Y2ggdGhlIHdhbGxldCBrZXlzXG4gICAgZ2V0VmFsaWRhdG9yT25lT2ZUZW1wbGF0ZXMoWydXc2gyT2YzJywgJ1dzaDJPZjNDbHR2RHJvcCcsICdTaFdzaDJPZjNDbHR2RHJvcCddKSxcbiAgICAvLyBhbGxvdyBhbGwgZGVzY3JpcHRvcnMgc2lnbmVkIGJ5IHRoZSB1c2VyIGtleVxuICAgIGdldFZhbGlkYXRvclNpZ25lZEJ5VXNlcktleSgpLFxuICBdKTtcbiAgcmV0dXJuIHRvRGVzY3JpcHRvck1hcFZhbGlkYXRlKGRlc2NyaXB0b3JzLCBwdWJrZXlzLCBwb2xpY3kpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SGFsZlNpZ25lZFBzYnQoXG4gIHR4OiBEZXNjcmlwdG9yVHJhbnNhY3Rpb24sXG4gIHBydjogdXR4b2xpYi5CSVAzMkludGVyZmFjZSxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiB1dHhvbGliLlBzYnQge1xuICBjb25zdCBwc2J0ID0gdXR4b2xpYi5iaXRnby5jcmVhdGVQc2J0RGVjb2RlKHR4LmNvaW5TcGVjaWZpYy50eEhleCwgbmV0d29yayk7XG4gIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yc0Zyb21EZXNjcmlwdG9yVHJhbnNhY3Rpb24odHgpO1xuICBzaWduUHNidChwc2J0LCBkZXNjcmlwdG9yTWFwLCBwcnYsIHsgb25Vbmtub3duSW5wdXQ6ICd0aHJvdycgfSk7XG4gIHJldHVybiBwc2J0O1xufVxuIl19
64
+ function getTransactionExplanationFromPsbt(tx, network) {
65
+ const psbt = utxolib.bitgo.createPsbtDecode(tx.coinSpecific.txHex, network);
66
+ const descriptorMap = getDescriptorsFromDescriptorTransaction(tx);
67
+ const { outputs, changeOutputs, fee } = (0, descriptor_2.explainPsbt)(psbt, descriptorMap);
68
+ return {
69
+ outputs,
70
+ changeOutputs,
71
+ fee: {
72
+ /* network fee */
73
+ fee,
74
+ /* TODO */
75
+ payGoFeeString: undefined,
76
+ payGoFeeAddress: undefined,
77
+ },
78
+ };
79
+ }
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvb2ZmbGluZVZhdWx0L2Rlc2NyaXB0b3IvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBc0JBLDBGQVVDO0FBRUQsOENBU0M7QUFFRCw4RUFrQkM7QUEvREQsOERBQWdEO0FBQ2hELHlDQUEyQjtBQUUzQixpREFBbUQ7QUFDbkQsa0VBQTRFO0FBQzVFLG9FQUt5QztBQUV6Qyw2REFBcUU7QUFHeEQsUUFBQSxxQkFBcUIsR0FBRyxDQUFDLENBQUMsWUFBWSxDQUNqRCxDQUFDLDJDQUFvQixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyw0QkFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQ3pFLHVCQUF1QixDQUN4QixDQUFDO0FBSUYsU0FBZ0IsdUNBQXVDLENBQUMsRUFBeUI7SUFDL0UsTUFBTSxFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFBLGtDQUFXLEVBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFBLGlDQUFnQixFQUFDO1FBQzlCLHdFQUF3RTtRQUN4RSxJQUFBLDJDQUEwQixFQUFDLENBQUMsU0FBUyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixDQUFDLENBQUM7UUFDL0UsK0NBQStDO1FBQy9DLElBQUEsNENBQTJCLEdBQUU7S0FDOUIsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFBLHdDQUF1QixFQUFDLFdBQVcsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0QsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUMvQixFQUF5QixFQUN6QixHQUEyQixFQUMzQixPQUF3QjtJQUV4QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLE1BQU0sYUFBYSxHQUFHLHVDQUF1QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLElBQUEscUJBQVEsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQWdCLGlDQUFpQyxDQUMvQyxFQUF5QixFQUN6QixPQUF3QjtJQUV4QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLE1BQU0sYUFBYSxHQUFHLHVDQUF1QyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDekUsT0FBTztRQUNMLE9BQU87UUFDUCxhQUFhO1FBQ2IsR0FBRyxFQUFFO1lBQ0gsaUJBQWlCO1lBQ2pCLEdBQUc7WUFDSCxVQUFVO1lBQ1YsY0FBYyxFQUFFLFNBQVM7WUFDekIsZUFBZSxFQUFFLFNBQVM7U0FDM0I7S0FDRixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5cbmltcG9ydCB7IE5hbWVkRGVzY3JpcHRvciB9IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgT2ZmbGluZVZhdWx0U2lnbmFibGUsIHRvS2V5VHJpcGxlIH0gZnJvbSAnLi4vT2ZmbGluZVZhdWx0U2lnbmFibGUnO1xuaW1wb3J0IHtcbiAgZ2V0VmFsaWRhdG9yT25lT2ZUZW1wbGF0ZXMsXG4gIGdldFZhbGlkYXRvclNpZ25lZEJ5VXNlcktleSxcbiAgZ2V0VmFsaWRhdG9yU29tZSxcbiAgdG9EZXNjcmlwdG9yTWFwVmFsaWRhdGUsXG59IGZyb20gJy4uLy4uL2Rlc2NyaXB0b3IvdmFsaWRhdGVQb2xpY3knO1xuaW1wb3J0IHsgRGVzY3JpcHRvck1hcCB9IGZyb20gJy4uLy4uL2NvcmUvZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBleHBsYWluUHNidCwgc2lnblBzYnQgfSBmcm9tICcuLi8uLi90cmFuc2FjdGlvbi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfSBmcm9tICcuLi9UcmFuc2FjdGlvbkV4cGxhbmF0aW9uJztcblxuZXhwb3J0IGNvbnN0IERlc2NyaXB0b3JUcmFuc2FjdGlvbiA9IHQuaW50ZXJzZWN0aW9uKFxuICBbT2ZmbGluZVZhdWx0U2lnbmFibGUsIHQudHlwZSh7IGRlc2NyaXB0b3JzOiB0LmFycmF5KE5hbWVkRGVzY3JpcHRvcikgfSldLFxuICAnRGVzY3JpcHRvclRyYW5zYWN0aW9uJ1xuKTtcblxuZXhwb3J0IHR5cGUgRGVzY3JpcHRvclRyYW5zYWN0aW9uID0gdC5UeXBlT2Y8dHlwZW9mIERlc2NyaXB0b3JUcmFuc2FjdGlvbj47XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yc0Zyb21EZXNjcmlwdG9yVHJhbnNhY3Rpb24odHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbik6IERlc2NyaXB0b3JNYXAge1xuICBjb25zdCB7IGRlc2NyaXB0b3JzLCB4cHVic1dpdGhEZXJpdmF0aW9uUGF0aCB9ID0gdHg7XG4gIGNvbnN0IHB1YmtleXMgPSB0b0tleVRyaXBsZSh4cHVic1dpdGhEZXJpdmF0aW9uUGF0aCk7XG4gIGNvbnN0IHBvbGljeSA9IGdldFZhbGlkYXRvclNvbWUoW1xuICAgIC8vIGFsbG93IGFsbCAyLW9mLTMtaXNoIGRlc2NyaXB0b3JzIHdoZXJlIHRoZSBrZXlzIG1hdGNoIHRoZSB3YWxsZXQga2V5c1xuICAgIGdldFZhbGlkYXRvck9uZU9mVGVtcGxhdGVzKFsnV3NoMk9mMycsICdXc2gyT2YzQ2x0dkRyb3AnLCAnU2hXc2gyT2YzQ2x0dkRyb3AnXSksXG4gICAgLy8gYWxsb3cgYWxsIGRlc2NyaXB0b3JzIHNpZ25lZCBieSB0aGUgdXNlciBrZXlcbiAgICBnZXRWYWxpZGF0b3JTaWduZWRCeVVzZXJLZXkoKSxcbiAgXSk7XG4gIHJldHVybiB0b0Rlc2NyaXB0b3JNYXBWYWxpZGF0ZShkZXNjcmlwdG9ycywgcHVia2V5cywgcG9saWN5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhhbGZTaWduZWRQc2J0KFxuICB0eDogRGVzY3JpcHRvclRyYW5zYWN0aW9uLFxuICBwcnY6IHV0eG9saWIuQklQMzJJbnRlcmZhY2UsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29ya1xuKTogdXR4b2xpYi5Qc2J0IHtcbiAgY29uc3QgcHNidCA9IHV0eG9saWIuYml0Z28uY3JlYXRlUHNidERlY29kZSh0eC5jb2luU3BlY2lmaWMudHhIZXgsIG5ldHdvcmspO1xuICBjb25zdCBkZXNjcmlwdG9yTWFwID0gZ2V0RGVzY3JpcHRvcnNGcm9tRGVzY3JpcHRvclRyYW5zYWN0aW9uKHR4KTtcbiAgc2lnblBzYnQocHNidCwgZGVzY3JpcHRvck1hcCwgcHJ2LCB7IG9uVW5rbm93bklucHV0OiAndGhyb3cnIH0pO1xuICByZXR1cm4gcHNidDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uRXhwbGFuYXRpb25Gcm9tUHNidChcbiAgdHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbixcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIHtcbiAgY29uc3QgcHNidCA9IHV0eG9saWIuYml0Z28uY3JlYXRlUHNidERlY29kZSh0eC5jb2luU3BlY2lmaWMudHhIZXgsIG5ldHdvcmspO1xuICBjb25zdCBkZXNjcmlwdG9yTWFwID0gZ2V0RGVzY3JpcHRvcnNGcm9tRGVzY3JpcHRvclRyYW5zYWN0aW9uKHR4KTtcbiAgY29uc3QgeyBvdXRwdXRzLCBjaGFuZ2VPdXRwdXRzLCBmZWUgfSA9IGV4cGxhaW5Qc2J0KHBzYnQsIGRlc2NyaXB0b3JNYXApO1xuICByZXR1cm4ge1xuICAgIG91dHB1dHMsXG4gICAgY2hhbmdlT3V0cHV0cyxcbiAgICBmZWU6IHtcbiAgICAgIC8qIG5ldHdvcmsgZmVlICovXG4gICAgICBmZWUsXG4gICAgICAvKiBUT0RPICovXG4gICAgICBwYXlHb0ZlZVN0cmluZzogdW5kZWZpbmVkLFxuICAgICAgcGF5R29GZWVBZGRyZXNzOiB1bmRlZmluZWQsXG4gICAgfSxcbiAgfTtcbn1cbiJdfQ==
@@ -1,3 +1,6 @@
1
1
  export * as descriptor from './descriptor';
2
2
  export * from './OfflineVaultHalfSigned';
3
+ export { getTransactionExplanation } from './TransactionExplanation';
4
+ export { TransactionExplanation } from './TransactionExplanation';
5
+ export { ExplanationOutput } from './TransactionExplanation';
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/offlineVault/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,cAAc,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/offlineVault/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -36,7 +36,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
36
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.descriptor = void 0;
39
+ exports.getTransactionExplanation = exports.descriptor = void 0;
40
40
  exports.descriptor = __importStar(require("./descriptor"));
41
41
  __exportStar(require("./OfflineVaultHalfSigned"), exports);
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb2ZmbGluZVZhdWx0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUEyQztBQUMzQywyREFBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBkZXNjcmlwdG9yIGZyb20gJy4vZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL09mZmxpbmVWYXVsdEhhbGZTaWduZWQnO1xuIl19
42
+ var TransactionExplanation_1 = require("./TransactionExplanation");
43
+ Object.defineProperty(exports, "getTransactionExplanation", { enumerable: true, get: function () { return TransactionExplanation_1.getTransactionExplanation; } });
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb2ZmbGluZVZhdWx0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJEQUEyQztBQUMzQywyREFBeUM7QUFDekMsbUVBQXFFO0FBQTVELG1JQUFBLHlCQUF5QixPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogYXMgZGVzY3JpcHRvciBmcm9tICcuL2Rlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9PZmZsaW5lVmF1bHRIYWxmU2lnbmVkJztcbmV4cG9ydCB7IGdldFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfSBmcm9tICcuL1RyYW5zYWN0aW9uRXhwbGFuYXRpb24nO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiB9IGZyb20gJy4vVHJhbnNhY3Rpb25FeHBsYW5hdGlvbic7XG5leHBvcnQgeyBFeHBsYW5hdGlvbk91dHB1dCB9IGZyb20gJy4vVHJhbnNhY3Rpb25FeHBsYW5hdGlvbic7XG4iXX0=
@@ -44,10 +44,12 @@ const sdk_core_1 = require("@bitgo-beta/sdk-core");
44
44
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
45
45
  const offlineVault_1 = require("../../src/offlineVault");
46
46
  const descriptor_1 = require("../../src/offlineVault/descriptor");
47
+ const fixtures_utils_1 = require("../transaction/descriptor/fixtures.utils");
48
+ const { assertEqualFixture } = (0, fixtures_utils_1.getFixtureRoot)(__dirname + '/fixtures');
47
49
  function getFixturesNames() {
48
50
  // I'm using sync here because mocha cannot do async setup
49
51
  // eslint-disable-next-line no-sync
50
- return fs.readdirSync(__dirname + '/fixtures').filter((f) => f.endsWith('.json'));
52
+ return fs.readdirSync(__dirname + '/fixtures').filter((f) => f.endsWith('.json') && !f.endsWith('.explanation.json'));
51
53
  }
52
54
  const KeyPair = t.intersection([t.type({ xpub: t.string }), t.partial({ xprv: t.string })]);
53
55
  const KeyWithParent = t.intersection([KeyPair, t.partial({ parent: KeyPair })]);
@@ -115,7 +117,8 @@ describe('OfflineVaultHalfSigned', function () {
115
117
  for (const mutation of mutations) {
116
118
  assert_1.default.throws(() => (0, offlineVault_1.createHalfSigned)('btc', rootPrv, derivationId, mutation));
117
119
  }
120
+ await assertEqualFixture(fixtureName.replace(/\.json$/, '.explanation.json'), (0, offlineVault_1.getTransactionExplanation)('btc', response));
118
121
  });
119
122
  }
120
123
  });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFsZlNpZ25lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3Qvb2ZmbGluZVZhdWx0L2hhbGZTaWduZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1Qix5Q0FBMkI7QUFDM0IsbURBQW9EO0FBQ3BELDhEQUFnRDtBQUVoRCx5REFBMEQ7QUFDMUQsa0VBQTBFO0FBRTFFLFNBQVMsZ0JBQWdCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxtQ0FBbUM7SUFDbkMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNwRixDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFNUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBR2hGLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckIsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO0lBQ2xDLFFBQVEsRUFBRSxDQUFDLENBQUMsT0FBTztDQUNwQixDQUFDLENBQUM7QUFJ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LE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUN2RSxJQUFBLCtCQUFnQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sU0FBUyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDeEcsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDakMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSwrQkFBZ0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcblxuaW1wb3J0ICogYXMgdCBmcm9tICdpby10cyc7XG5pbXBvcnQgeyBkZWNvZGVPckVsc2UgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgY3JlYXRlSGFsZlNpZ25lZCB9IGZyb20gJy4uLy4uL3NyYy9vZmZsaW5lVmF1bHQnO1xuaW1wb3J0IHsgRGVzY3JpcHRvclRyYW5zYWN0aW9uIH0gZnJvbSAnLi4vLi4vc3JjL29mZmxpbmVWYXVsdC9kZXNjcmlwdG9yJztcblxuZnVuY3Rpb24gZ2V0Rml4dHVyZXNOYW1lcygpOiBzdHJpbmdbXSB7XG4gIC8vIEknbSB1c2luZyBzeW5jIGhlcmUgYmVjYXVzZSBtb2NoYSBjYW5ub3QgZG8gYXN5bmMgc2V0dXBcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXN5bmNcbiAgcmV0dXJuIGZzLnJlYWRkaXJTeW5jKF9fZGlybmFtZSArICcvZml4dHVyZXMnKS5maWx0ZXIoKGYpID0+IGYuZW5kc1dpdGgoJy5qc29uJykpO1xufVxuXG5jb25zdCBLZXlQYWlyID0gdC5pbnRlcnNlY3Rpb24oW3QudHlwZSh7IHhwdWI6IHQuc3RyaW5nIH0pLCB0LnBhcnRpYWwoeyB4cHJ2OiB0LnN0cmluZyB9KV0pO1xuXG5jb25zdCBLZXlXaXRoUGFyZW50ID0gdC5pbnRlcnNlY3Rpb24oW0tleVBhaXIsIHQucGFydGlhbCh7IHBhcmVudDogS2V5UGFpciB9KV0pO1xudHlwZSBLZXlXaXRoUGFyZW50ID0gdC5UeXBlT2Y8dHlwZW9mIEtleVdpdGhQYXJlbnQ+O1xuXG5jb25zdCBGaXh0dXJlID0gdC50eXBlKHtcbiAgd2FsbGV0S2V5czogdC5hcnJheShLZXlXaXRoUGFyZW50KSxcbiAgcmVzcG9uc2U6IHQudW5rbm93bixcbn0pO1xuXG50eXBlIEZpeHR1cmUgPSB0LlR5cGVPZjx0eXBlb2YgRml4dHVyZT47XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRGaXh0dXJlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8Rml4dHVyZT4ge1xuICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShfX2Rpcm5hbWUgKyAnL2ZpeHR1cmVzLycgKyBuYW1lLCAndXRmLTgnKSk7XG4gIHJldHVybiBkZWNvZGVPckVsc2UoJ0ZpeHR1cmUnLCBGaXh0dXJlLCBkYXRhLCAoZSkgPT4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgZmFpbGVkIHRvIGRlY29kZSBmaXh0dXJlICR7bmFtZX06ICR7ZX1gKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdpdGhSb3RhdGVkWHB1YnModHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbik6IERlc2NyaXB0b3JUcmFuc2FjdGlvbiB7XG4gIGNvbnN0IHsgdXNlciwgYmFja3VwLCBiaXRnbyB9ID0gdHgueHB1YnNXaXRoRGVyaXZhdGlvblBhdGg7XG4gIHJldHVybiB7XG4gICAgLi4udHgsXG4gICAgeHB1YnNXaXRoRGVyaXZhdGlvblBhdGg6IHtcbiAgICAgIHVzZXI6IGJpdGdvLFxuICAgICAgYmFja3VwOiB1c2VyLFxuICAgICAgYml0Z286IGJhY2t1cCxcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXRoUmFuZG9tWHB1YnModHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbikge1xuICBmdW5jdGlvbiByYW5kb21YcHViKCkge1xuICAgIGNvbnN0IGJ5dGVzID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgzMikpO1xuICAgIHJldHVybiB1dHhvbGliLmJpcDMyLmZyb21TZWVkKEJ1ZmZlci5mcm9tKGJ5dGVzKSkubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4udHgsXG4gICAgeHB1YnNXaXRoRGVyaXZhdGlvblBhdGg6IHtcbiAgICAgIHVzZXI6IHJhbmRvbVhwdWIoKSxcbiAgICAgIGJhY2t1cDogcmFuZG9tWHB1YigpLFxuICAgICAgYml0Z286IHJhbmRvbVhwdWIoKSxcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXRob3V0RGVzY3JpcHRvcnModHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbik6IERlc2NyaXB0b3JUcmFuc2FjdGlvbiB7XG4gIHJldHVybiB7XG4gICAgLi4udHgsXG4gICAgZGVzY3JpcHRvcnM6IFtdLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREZXJpdmF0aW9uSWQodjogRGVzY3JpcHRvclRyYW5zYWN0aW9uWyd4cHVic1dpdGhEZXJpdmF0aW9uUGF0aCddKTogc3RyaW5nIHtcbiAgY29uc3QgaWQgPSB2LnVzZXIuZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZDtcbiAgYXNzZXJ0KGlkKTtcbiAgcmV0dXJuIGlkO1xufVxuXG5mdW5jdGlvbiBnZXRSb290UHJ2KHdhbGxldEtleXM6IEtleVdpdGhQYXJlbnRbXSk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2Uge1xuICBhc3NlcnQod2FsbGV0S2V5c1swXSk7XG4gIGFzc2VydCh3YWxsZXRLZXlzWzBdLnBhcmVudCk7XG4gIGFzc2VydCh3YWxsZXRLZXlzWzBdLnBhcmVudC54cHJ2KTtcbiAgcmV0dXJuIHV0eG9saWIuYmlwMzIuZnJvbUJhc2U1OCh3YWxsZXRLZXlzWzBdLnBhcmVudC54cHJ2KTtcbn1cblxuZGVzY3JpYmUoJ09mZmxpbmVWYXVsdEhhbGZTaWduZWQnLCBmdW5jdGlvbiAoKSB7XG4gIGZvciAoY29uc3QgZml4dHVyZU5hbWUgb2YgZ2V0Rml4dHVyZXNOYW1lcygpKSB7XG4gICAgaXQoYGNhbiBzaWduIGZpeHR1cmUgJHtmaXh0dXJlTmFtZX1gLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB7IHdhbGxldEtleXMsIHJlc3BvbnNlIH0gPSBhd2FpdCByZWFkRml4dHVyZShmaXh0dXJlTmFtZSk7XG4gICAgICBhc3NlcnQoRGVzY3JpcHRvclRyYW5zYWN0aW9uLmlzKHJlc3BvbnNlKSk7XG4gICAgICBjb25zdCByb290UHJ2ID0gZ2V0Um9vdFBydih3YWxsZXRLZXlzKTtcbiAgICAgIGNvbnN0IGRlcml2YXRpb25JZCA9IGdldERlcml2YXRpb25JZChyZXNwb25zZS54cHVic1dpdGhEZXJpdmF0aW9uUGF0aCk7XG4gICAgICBjcmVhdGVIYWxmU2lnbmVkKCdidGMnLCByb290UHJ2LCBkZXJpdmF0aW9uSWQsIHJlc3BvbnNlKTtcbiAgICAgIGNvbnN0IG11dGF0aW9ucyA9IFt3aXRoUm90YXRlZFhwdWJzKHJlc3BvbnNlKSwgd2l0aFJhbmRvbVhwdWJzKHJlc3BvbnNlKSwgd2l0aG91dERlc2NyaXB0b3JzKHJlc3BvbnNlKV07XG4gICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGNyZWF0ZUhhbGZTaWduZWQoJ2J0YycsIHJvb3RQcnYsIGRlcml2YXRpb25JZCwgbXV0YXRpb24pKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufSk7XG4iXX0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFsZlNpZ25lZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Rlc3Qvb2ZmbGluZVZhdWx0L2hhbGZTaWduZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsb0RBQTRCO0FBQzVCLG9EQUE0QjtBQUU1Qix5Q0FBMkI7QUFDM0IsbURBQW9EO0FBQ3BELDhEQUFnRDtBQUVoRCx5REFBcUY7QUFDckYsa0VBQTBFO0FBQzFFLDZFQUEwRTtBQUUxRSxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxJQUFBLCtCQUFjLEVBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBRXZFLFNBQVMsZ0JBQWdCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxtQ0FBbUM7SUFDbkMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQztBQUN4SCxDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFNUYsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBR2hGLE1B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QUFXLENBQUMsQ0FBQztZQUNoRSxJQUFBLGdCQUFNLEVBQUMsa0NBQXFCLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDM0MsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUN2RSxJQUFBLCtCQUFnQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELE1BQU0sU0FBUyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsZUFBZSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDeEcsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDakMsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSwrQkFBZ0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ2hGLENBQUM7WUFDRCxNQUFNLGtCQUFrQixDQUN0QixXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxFQUNuRCxJQUFBLHdDQUF5QixFQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FDM0MsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IGNyeXB0byBmcm9tICdjcnlwdG8nO1xuXG5pbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCB7IGRlY29kZU9yRWxzZSB9IGZyb20gJ0BiaXRnby1iZXRhL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBjcmVhdGVIYWxmU2lnbmVkLCBnZXRUcmFuc2FjdGlvbkV4cGxhbmF0aW9uIH0gZnJvbSAnLi4vLi4vc3JjL29mZmxpbmVWYXVsdCc7XG5pbXBvcnQgeyBEZXNjcmlwdG9yVHJhbnNhY3Rpb24gfSBmcm9tICcuLi8uLi9zcmMvb2ZmbGluZVZhdWx0L2Rlc2NyaXB0b3InO1xuaW1wb3J0IHsgZ2V0Rml4dHVyZVJvb3QgfSBmcm9tICcuLi90cmFuc2FjdGlvbi9kZXNjcmlwdG9yL2ZpeHR1cmVzLnV0aWxzJztcblxuY29uc3QgeyBhc3NlcnRFcXVhbEZpeHR1cmUgfSA9IGdldEZpeHR1cmVSb290KF9fZGlybmFtZSArICcvZml4dHVyZXMnKTtcblxuZnVuY3Rpb24gZ2V0Rml4dHVyZXNOYW1lcygpOiBzdHJpbmdbXSB7XG4gIC8vIEknbSB1c2luZyBzeW5jIGhlcmUgYmVjYXVzZSBtb2NoYSBjYW5ub3QgZG8gYXN5bmMgc2V0dXBcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXN5bmNcbiAgcmV0dXJuIGZzLnJlYWRkaXJTeW5jKF9fZGlybmFtZSArICcvZml4dHVyZXMnKS5maWx0ZXIoKGYpID0+IGYuZW5kc1dpdGgoJy5qc29uJykgJiYgIWYuZW5kc1dpdGgoJy5leHBsYW5hdGlvbi5qc29uJykpO1xufVxuXG5jb25zdCBLZXlQYWlyID0gdC5pbnRlcnNlY3Rpb24oW3QudHlwZSh7IHhwdWI6IHQuc3RyaW5nIH0pLCB0LnBhcnRpYWwoeyB4cHJ2OiB0LnN0cmluZyB9KV0pO1xuXG5jb25zdCBLZXlXaXRoUGFyZW50ID0gdC5pbnRlcnNlY3Rpb24oW0tleVBhaXIsIHQucGFydGlhbCh7IHBhcmVudDogS2V5UGFpciB9KV0pO1xudHlwZSBLZXlXaXRoUGFyZW50ID0gdC5UeXBlT2Y8dHlwZW9mIEtleVdpdGhQYXJlbnQ+O1xuXG5jb25zdCBGaXh0dXJlID0gdC50eXBlKHtcbiAgd2FsbGV0S2V5czogdC5hcnJheShLZXlXaXRoUGFyZW50KSxcbiAgcmVzcG9uc2U6IHQudW5rbm93bixcbn0pO1xuXG50eXBlIEZpeHR1cmUgPSB0LlR5cGVPZjx0eXBlb2YgRml4dHVyZT47XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRGaXh0dXJlKG5hbWU6IHN0cmluZyk6IFByb21pc2U8Rml4dHVyZT4ge1xuICBjb25zdCBkYXRhID0gSlNPTi5wYXJzZShhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShfX2Rpcm5hbWUgKyAnL2ZpeHR1cmVzLycgKyBuYW1lLCAndXRmLTgnKSk7XG4gIHJldHVybiBkZWNvZGVPckVsc2UoJ0ZpeHR1cmUnLCBGaXh0dXJlLCBkYXRhLCAoZSkgPT4ge1xuICAgIHRocm93IG5ldyBFcnJvcihgZmFpbGVkIHRvIGRlY29kZSBmaXh0dXJlICR7bmFtZX06ICR7ZX1gKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHdpdGhSb3RhdGVkWHB1YnModHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbik6IERlc2NyaXB0b3JUcmFuc2FjdGlvbiB7XG4gIGNvbnN0IHsgdXNlciwgYmFja3VwLCBiaXRnbyB9ID0gdHgueHB1YnNXaXRoRGVyaXZhdGlvblBhdGg7XG4gIHJldHVybiB7XG4gICAgLi4udHgsXG4gICAgeHB1YnNXaXRoRGVyaXZhdGlvblBhdGg6IHtcbiAgICAgIHVzZXI6IGJpdGdvLFxuICAgICAgYmFja3VwOiB1c2VyLFxuICAgICAgYml0Z286IGJhY2t1cCxcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXRoUmFuZG9tWHB1YnModHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbikge1xuICBmdW5jdGlvbiByYW5kb21YcHViKCkge1xuICAgIGNvbnN0IGJ5dGVzID0gY3J5cHRvLmdldFJhbmRvbVZhbHVlcyhuZXcgVWludDhBcnJheSgzMikpO1xuICAgIHJldHVybiB1dHhvbGliLmJpcDMyLmZyb21TZWVkKEJ1ZmZlci5mcm9tKGJ5dGVzKSkubmV1dGVyZWQoKS50b0Jhc2U1OCgpO1xuICB9XG4gIHJldHVybiB7XG4gICAgLi4udHgsXG4gICAgeHB1YnNXaXRoRGVyaXZhdGlvblBhdGg6IHtcbiAgICAgIHVzZXI6IHJhbmRvbVhwdWIoKSxcbiAgICAgIGJhY2t1cDogcmFuZG9tWHB1YigpLFxuICAgICAgYml0Z286IHJhbmRvbVhwdWIoKSxcbiAgICB9LFxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXRob3V0RGVzY3JpcHRvcnModHg6IERlc2NyaXB0b3JUcmFuc2FjdGlvbik6IERlc2NyaXB0b3JUcmFuc2FjdGlvbiB7XG4gIHJldHVybiB7XG4gICAgLi4udHgsXG4gICAgZGVzY3JpcHRvcnM6IFtdLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREZXJpdmF0aW9uSWQodjogRGVzY3JpcHRvclRyYW5zYWN0aW9uWyd4cHVic1dpdGhEZXJpdmF0aW9uUGF0aCddKTogc3RyaW5nIHtcbiAgY29uc3QgaWQgPSB2LnVzZXIuZGVyaXZlZEZyb21QYXJlbnRXaXRoU2VlZDtcbiAgYXNzZXJ0KGlkKTtcbiAgcmV0dXJuIGlkO1xufVxuXG5mdW5jdGlvbiBnZXRSb290UHJ2KHdhbGxldEtleXM6IEtleVdpdGhQYXJlbnRbXSk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2Uge1xuICBhc3NlcnQod2FsbGV0S2V5c1swXSk7XG4gIGFzc2VydCh3YWxsZXRLZXlzWzBdLnBhcmVudCk7XG4gIGFzc2VydCh3YWxsZXRLZXlzWzBdLnBhcmVudC54cHJ2KTtcbiAgcmV0dXJuIHV0eG9saWIuYmlwMzIuZnJvbUJhc2U1OCh3YWxsZXRLZXlzWzBdLnBhcmVudC54cHJ2KTtcbn1cblxuZGVzY3JpYmUoJ09mZmxpbmVWYXVsdEhhbGZTaWduZWQnLCBmdW5jdGlvbiAoKSB7XG4gIGZvciAoY29uc3QgZml4dHVyZU5hbWUgb2YgZ2V0Rml4dHVyZXNOYW1lcygpKSB7XG4gICAgaXQoYGNhbiBzaWduIGZpeHR1cmUgJHtmaXh0dXJlTmFtZX1gLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB7IHdhbGxldEtleXMsIHJlc3BvbnNlIH0gPSBhd2FpdCByZWFkRml4dHVyZShmaXh0dXJlTmFtZSk7XG4gICAgICBhc3NlcnQoRGVzY3JpcHRvclRyYW5zYWN0aW9uLmlzKHJlc3BvbnNlKSk7XG4gICAgICBjb25zdCByb290UHJ2ID0gZ2V0Um9vdFBydih3YWxsZXRLZXlzKTtcbiAgICAgIGNvbnN0IGRlcml2YXRpb25JZCA9IGdldERlcml2YXRpb25JZChyZXNwb25zZS54cHVic1dpdGhEZXJpdmF0aW9uUGF0aCk7XG4gICAgICBjcmVhdGVIYWxmU2lnbmVkKCdidGMnLCByb290UHJ2LCBkZXJpdmF0aW9uSWQsIHJlc3BvbnNlKTtcbiAgICAgIGNvbnN0IG11dGF0aW9ucyA9IFt3aXRoUm90YXRlZFhwdWJzKHJlc3BvbnNlKSwgd2l0aFJhbmRvbVhwdWJzKHJlc3BvbnNlKSwgd2l0aG91dERlc2NyaXB0b3JzKHJlc3BvbnNlKV07XG4gICAgICBmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9ucykge1xuICAgICAgICBhc3NlcnQudGhyb3dzKCgpID0+IGNyZWF0ZUhhbGZTaWduZWQoJ2J0YycsIHJvb3RQcnYsIGRlcml2YXRpb25JZCwgbXV0YXRpb24pKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IGFzc2VydEVxdWFsRml4dHVyZShcbiAgICAgICAgZml4dHVyZU5hbWUucmVwbGFjZSgvXFwuanNvbiQvLCAnLmV4cGxhbmF0aW9uLmpzb24nKSxcbiAgICAgICAgZ2V0VHJhbnNhY3Rpb25FeHBsYW5hdGlvbignYnRjJywgcmVzcG9uc2UpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG59KTtcbiJdfQ==
@@ -9,6 +9,7 @@ const mock_utils_1 = require("../../core/descriptor/psbt/mock.utils");
9
9
  const descriptor_utils_1 = require("../../core/descriptor/descriptor.utils");
10
10
  const key_utils_1 = require("../../core/key.utils");
11
11
  const fixtures_utils_1 = require("./fixtures.utils");
12
+ const { assertEqualFixture } = (0, fixtures_utils_1.getFixtureRoot)(__dirname + '/fixtures');
12
13
  function assertSignatureCount(expl, signatures, inputSignatures) {
13
14
  assert_1.default.deepStrictEqual(expl.signatures, signatures);
14
15
  assert_1.default.deepStrictEqual(expl.inputSignatures, inputSignatures);
@@ -18,11 +19,11 @@ describe('explainPsbt', function () {
18
19
  const psbt = (0, mock_utils_1.mockPsbtDefaultWithDescriptorTemplate)('Wsh2Of3');
19
20
  const keys = (0, key_utils_1.getKeyTriple)('a');
20
21
  const descriptorMap = (0, descriptor_utils_1.getDescriptorMap)('Wsh2Of3', keys);
21
- await (0, fixtures_utils_1.assertEqualFixture)('explainPsbt.a.json', (0, descriptor_1.explainPsbt)(psbt, descriptorMap));
22
+ await assertEqualFixture('explainPsbt.a.json', (0, descriptor_1.explainPsbt)(psbt, descriptorMap));
22
23
  psbt.signAllInputsHD(keys[0]);
23
24
  assertSignatureCount((0, descriptor_1.explainPsbt)(psbt, descriptorMap), 1, [1, 1]);
24
25
  psbt.signAllInputsHD(keys[1]);
25
26
  assertSignatureCount((0, descriptor_1.explainPsbt)(psbt, descriptorMap), 2, [2, 2]);
26
27
  });
27
28
  });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvZXhwbGFpblBzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFHNUIsb0VBQWtFO0FBQ2xFLHNFQUE4RjtBQUM5Riw2RUFBMEU7QUFDMUUsb0RBQW9EO0FBRXBELHFEQUFzRDtBQUV0RCxTQUFTLG9CQUFvQixDQUFDLElBQTRCLEVBQUUsVUFBa0IsRUFBRSxlQUF5QjtJQUN2RyxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELFFBQVEsQ0FBQyxhQUFhLEVBQUU7SUFDdEIsRUFBRSxDQUFDLHFCQUFxQixFQUFFLEtBQUs7UUFDN0IsTUFBTSxJQUFJLEdBQUcsSUFBQSxrREFBcUMsRUFBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxNQUFNLElBQUksR0FBRyxJQUFBLHdCQUFZLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsTUFBTSxhQUFhLEdBQUcsSUFBQSxtQ0FBZ0IsRUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEQsTUFBTSxJQUFBLG1DQUFrQixFQUFDLG9CQUFvQixFQUFFLElBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLG9CQUFvQixDQUFDLElBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixvQkFBb0IsQ0FBQyxJQUFBLHdCQUFXLEVBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgZXhwbGFpblBzYnQgfSBmcm9tICcuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL3BzYnQvbW9jay51dGlscyc7XG5pbXBvcnQgeyBnZXREZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL2Rlc2NyaXB0b3IudXRpbHMnO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlIH0gZnJvbSAnLi4vLi4vY29yZS9rZXkudXRpbHMnO1xuXG5pbXBvcnQgeyBhc3NlcnRFcXVhbEZpeHR1cmUgfSBmcm9tICcuL2ZpeHR1cmVzLnV0aWxzJztcblxuZnVuY3Rpb24gYXNzZXJ0U2lnbmF0dXJlQ291bnQoZXhwbDogVHJhbnNhY3Rpb25FeHBsYW5hdGlvbiwgc2lnbmF0dXJlczogbnVtYmVyLCBpbnB1dFNpZ25hdHVyZXM6IG51bWJlcltdKSB7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoZXhwbC5zaWduYXR1cmVzLCBzaWduYXR1cmVzKTtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChleHBsLmlucHV0U2lnbmF0dXJlcywgaW5wdXRTaWduYXR1cmVzKTtcbn1cblxuZGVzY3JpYmUoJ2V4cGxhaW5Qc2J0JywgZnVuY3Rpb24gKCkge1xuICBpdCgnaGFzIGV4cGVjdGVkIHZhbHVlcycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwc2J0ID0gbW9ja1BzYnREZWZhdWx0V2l0aERlc2NyaXB0b3JUZW1wbGF0ZSgnV3NoMk9mMycpO1xuICAgIGNvbnN0IGtleXMgPSBnZXRLZXlUcmlwbGUoJ2EnKTtcbiAgICBjb25zdCBkZXNjcmlwdG9yTWFwID0gZ2V0RGVzY3JpcHRvck1hcCgnV3NoMk9mMycsIGtleXMpO1xuICAgIGF3YWl0IGFzc2VydEVxdWFsRml4dHVyZSgnZXhwbGFpblBzYnQuYS5qc29uJywgZXhwbGFpblBzYnQocHNidCwgZGVzY3JpcHRvck1hcCkpO1xuICAgIHBzYnQuc2lnbkFsbElucHV0c0hEKGtleXNbMF0pO1xuICAgIGFzc2VydFNpZ25hdHVyZUNvdW50KGV4cGxhaW5Qc2J0KHBzYnQsIGRlc2NyaXB0b3JNYXApLCAxLCBbMSwgMV0pO1xuICAgIHBzYnQuc2lnbkFsbElucHV0c0hEKGtleXNbMV0pO1xuICAgIGFzc2VydFNpZ25hdHVyZUNvdW50KGV4cGxhaW5Qc2J0KHBzYnQsIGRlc2NyaXB0b3JNYXApLCAyLCBbMiwgMl0pO1xuICB9KTtcbn0pO1xuIl19
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbGFpblBzYnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvZXhwbGFpblBzYnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFHNUIsb0VBQWtFO0FBQ2xFLHNFQUE4RjtBQUM5Riw2RUFBMEU7QUFDMUUsb0RBQW9EO0FBRXBELHFEQUFrRDtBQUVsRCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxJQUFBLCtCQUFjLEVBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBRXZFLFNBQVMsb0JBQW9CLENBQUMsSUFBNEIsRUFBRSxVQUFrQixFQUFFLGVBQXlCO0lBQ3ZHLGdCQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDcEQsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsUUFBUSxDQUFDLGFBQWEsRUFBRTtJQUN0QixFQUFFLENBQUMscUJBQXFCLEVBQUUsS0FBSztRQUM3QixNQUFNLElBQUksR0FBRyxJQUFBLGtEQUFxQyxFQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELE1BQU0sSUFBSSxHQUFHLElBQUEsd0JBQVksRUFBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixNQUFNLGFBQWEsR0FBRyxJQUFBLG1DQUFnQixFQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4RCxNQUFNLGtCQUFrQixDQUFDLG9CQUFvQixFQUFFLElBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNqRixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzlCLG9CQUFvQixDQUFDLElBQUEsd0JBQVcsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixvQkFBb0IsQ0FBQyxJQUFBLHdCQUFXLEVBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IFRyYW5zYWN0aW9uRXhwbGFuYXRpb24gfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuaW1wb3J0IHsgZXhwbGFpblBzYnQgfSBmcm9tICcuLi8uLi8uLi9zcmMvdHJhbnNhY3Rpb24vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL3BzYnQvbW9jay51dGlscyc7XG5pbXBvcnQgeyBnZXREZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL2Rlc2NyaXB0b3IudXRpbHMnO1xuaW1wb3J0IHsgZ2V0S2V5VHJpcGxlIH0gZnJvbSAnLi4vLi4vY29yZS9rZXkudXRpbHMnO1xuXG5pbXBvcnQgeyBnZXRGaXh0dXJlUm9vdCB9IGZyb20gJy4vZml4dHVyZXMudXRpbHMnO1xuXG5jb25zdCB7IGFzc2VydEVxdWFsRml4dHVyZSB9ID0gZ2V0Rml4dHVyZVJvb3QoX19kaXJuYW1lICsgJy9maXh0dXJlcycpO1xuXG5mdW5jdGlvbiBhc3NlcnRTaWduYXR1cmVDb3VudChleHBsOiBUcmFuc2FjdGlvbkV4cGxhbmF0aW9uLCBzaWduYXR1cmVzOiBudW1iZXIsIGlucHV0U2lnbmF0dXJlczogbnVtYmVyW10pIHtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChleHBsLnNpZ25hdHVyZXMsIHNpZ25hdHVyZXMpO1xuICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGV4cGwuaW5wdXRTaWduYXR1cmVzLCBpbnB1dFNpZ25hdHVyZXMpO1xufVxuXG5kZXNjcmliZSgnZXhwbGFpblBzYnQnLCBmdW5jdGlvbiAoKSB7XG4gIGl0KCdoYXMgZXhwZWN0ZWQgdmFsdWVzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IHBzYnQgPSBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlKCdXc2gyT2YzJyk7XG4gICAgY29uc3Qga2V5cyA9IGdldEtleVRyaXBsZSgnYScpO1xuICAgIGNvbnN0IGRlc2NyaXB0b3JNYXAgPSBnZXREZXNjcmlwdG9yTWFwKCdXc2gyT2YzJywga2V5cyk7XG4gICAgYXdhaXQgYXNzZXJ0RXF1YWxGaXh0dXJlKCdleHBsYWluUHNidC5hLmpzb24nLCBleHBsYWluUHNidChwc2J0LCBkZXNjcmlwdG9yTWFwKSk7XG4gICAgcHNidC5zaWduQWxsSW5wdXRzSEQoa2V5c1swXSk7XG4gICAgYXNzZXJ0U2lnbmF0dXJlQ291bnQoZXhwbGFpblBzYnQocHNidCwgZGVzY3JpcHRvck1hcCksIDEsIFsxLCAxXSk7XG4gICAgcHNidC5zaWduQWxsSW5wdXRzSEQoa2V5c1sxXSk7XG4gICAgYXNzZXJ0U2lnbmF0dXJlQ291bnQoZXhwbGFpblBzYnQocHNidCwgZGVzY3JpcHRvck1hcCksIDIsIFsyLCAyXSk7XG4gIH0pO1xufSk7XG4iXX0=
@@ -1,2 +1,6 @@
1
- export declare function assertEqualFixture(name: string, v: unknown): Promise<void>;
1
+ interface FixtureRoot {
2
+ assertEqualFixture(name: string, v: unknown): Promise<void>;
3
+ }
4
+ export declare function getFixtureRoot(root: string): FixtureRoot;
5
+ export {};
2
6
  //# sourceMappingURL=fixtures.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.utils.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/fixtures.utils.ts"],"names":[],"mappings":"AAIA,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhF"}
1
+ {"version":3,"file":"fixtures.utils.d.ts","sourceRoot":"","sources":["../../../../test/transaction/descriptor/fixtures.utils.ts"],"names":[],"mappings":"AAKA,UAAU,WAAW;IACnB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAID,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAMxD"}
@@ -3,10 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.assertEqualFixture = assertEqualFixture;
6
+ exports.getFixtureRoot = getFixtureRoot;
7
7
  const assert_1 = __importDefault(require("assert"));
8
+ const path_1 = __importDefault(require("path"));
8
9
  const fixtures_utils_1 = require("../../core/fixtures.utils");
9
- async function assertEqualFixture(name, v) {
10
- assert_1.default.deepStrictEqual(v, await (0, fixtures_utils_1.getFixture)(__dirname + '/fixtures/' + name, v));
10
+ function getFixtureRoot(root) {
11
+ return {
12
+ async assertEqualFixture(name, v, normalize = fixtures_utils_1.jsonNormalize) {
13
+ assert_1.default.deepStrictEqual(normalize(v), await (0, fixtures_utils_1.getFixture)(path_1.default.join(root, name), normalize(v)));
14
+ },
15
+ };
11
16
  }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvZml4dHVyZXMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFJQSxnREFFQztBQU5ELG9EQUE0QjtBQUU1Qiw4REFBdUQ7QUFFaEQsS0FBSyxVQUFVLGtCQUFrQixDQUFDLElBQVksRUFBRSxDQUFVO0lBQy9ELGdCQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUEsMkJBQVUsRUFBQyxTQUFTLEdBQUcsWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IGdldEZpeHR1cmUgfSBmcm9tICcuLi8uLi9jb3JlL2ZpeHR1cmVzLnV0aWxzJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGFzc2VydEVxdWFsRml4dHVyZShuYW1lOiBzdHJpbmcsIHY6IHVua25vd24pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh2LCBhd2FpdCBnZXRGaXh0dXJlKF9fZGlybmFtZSArICcvZml4dHVyZXMvJyArIG5hbWUsIHYpKTtcbn1cbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml4dHVyZXMudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvZml4dHVyZXMudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFXQSx3Q0FNQztBQWpCRCxvREFBNEI7QUFDNUIsZ0RBQXdCO0FBRXhCLDhEQUFzRTtBQVF0RSxTQUFnQixjQUFjLENBQUMsSUFBWTtJQUN6QyxPQUFPO1FBQ0wsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQVksRUFBRSxDQUFVLEVBQUUsWUFBdUIsOEJBQWE7WUFDckYsZ0JBQU0sQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sSUFBQSwyQkFBVSxFQUFDLGNBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUYsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IGdldEZpeHR1cmUsIGpzb25Ob3JtYWxpemUgfSBmcm9tICcuLi8uLi9jb3JlL2ZpeHR1cmVzLnV0aWxzJztcblxuaW50ZXJmYWNlIEZpeHR1cmVSb290IHtcbiAgYXNzZXJ0RXF1YWxGaXh0dXJlKG5hbWU6IHN0cmluZywgdjogdW5rbm93bik6IFByb21pc2U8dm9pZD47XG59XG5cbnR5cGUgTm9ybWFsaXplID0gKHY6IHVua25vd24pID0+IHVua25vd247XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaXh0dXJlUm9vdChyb290OiBzdHJpbmcpOiBGaXh0dXJlUm9vdCB7XG4gIHJldHVybiB7XG4gICAgYXN5bmMgYXNzZXJ0RXF1YWxGaXh0dXJlKG5hbWU6IHN0cmluZywgdjogdW5rbm93biwgbm9ybWFsaXplOiBOb3JtYWxpemUgPSBqc29uTm9ybWFsaXplKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKG5vcm1hbGl6ZSh2KSwgYXdhaXQgZ2V0Rml4dHVyZShwYXRoLmpvaW4ocm9vdCwgbmFtZSksIG5vcm1hbGl6ZSh2KSkpO1xuICAgIH0sXG4gIH07XG59XG4iXX0=
@@ -11,6 +11,7 @@ const toPlainObject_utils_1 = require("../../core/toPlainObject.utils");
11
11
  const verifyTransaction_1 = require("../../../src/transaction/descriptor/verifyTransaction");
12
12
  const parseToAmountType_1 = require("../../../src/transaction/descriptor/parseToAmountType");
13
13
  const fixtures_utils_1 = require("./fixtures.utils");
14
+ const { assertEqualFixture } = (0, fixtures_utils_1.getFixtureRoot)(__dirname + '/fixtures');
14
15
  function toBaseOutput(output, amountType) {
15
16
  (0, assert_1.default)(output.address);
16
17
  return {
@@ -37,9 +38,9 @@ describe('parse', function () {
37
38
  }
38
39
  describe('toBase', function () {
39
40
  it('should return the correct BaseParsedTransactionOutputs', async function () {
40
- await (0, fixtures_utils_1.assertEqualFixture)('parseWithoutRecipients.json', (0, toPlainObject_utils_1.toPlainObject)(getBaseParsedTransaction([])));
41
- await (0, fixtures_utils_1.assertEqualFixture)('parseWithRecipient.json', (0, toPlainObject_utils_1.toPlainObject)(getBaseParsedTransaction([psbt.txOutputs[0]])));
42
- await (0, fixtures_utils_1.assertEqualFixture)('parseWithRecipient.json',
41
+ await assertEqualFixture('parseWithoutRecipients.json', (0, toPlainObject_utils_1.toPlainObject)(getBaseParsedTransaction([])));
42
+ await assertEqualFixture('parseWithRecipient.json', (0, toPlainObject_utils_1.toPlainObject)(getBaseParsedTransaction([psbt.txOutputs[0]])));
43
+ await assertEqualFixture('parseWithRecipient.json',
43
44
  // max recipient: ignore actual value
44
45
  (0, toPlainObject_utils_1.toPlainObject)(getBaseParsedTransaction([toMaxOutput(psbt.txOutputs[0])])));
45
46
  });
@@ -75,4 +76,4 @@ describe('parse', function () {
75
76
  });
76
77
  });
77
78
  });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsc0VBQThGO0FBQzlGLHFFQUF3SDtBQUN4SCw2RUFBMkY7QUFDM0Ysd0VBQStEO0FBQy9ELDZGQUsrRDtBQUMvRCw2RkFBcUY7QUFHckYscURBQXNEO0FBT3RELFNBQVMsWUFBWSxDQUFVLE1BQXVCLEVBQUUsVUFBK0I7SUFDckYsSUFBQSxnQkFBTSxFQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2QixPQUFPO1FBQ0wsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO1FBQ3ZCLE1BQU0sRUFBRSxJQUFBLGdDQUFZLEVBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQVk7S0FDMUQsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE1BQXVCO0lBQ2pELE9BQU8sWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxNQUF1QjtJQUNqRCxPQUFPLFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLE1BQXVCO0lBQzFDLE9BQU87UUFDTCxHQUFHLE1BQU07UUFDVCxLQUFLLEVBQUUsS0FBSztLQUNiLENBQUM7QUFDSixDQUFDO0FBRUQsUUFBUSxDQUFDLE9BQU8sRUFBRTtJQUNoQixNQUFNLElBQUksR0FBRyxJQUFBLGtEQUFxQyxFQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRTlELFNBQVMsd0JBQXdCLENBQUMsVUFBNkI7UUFDN0QsT0FBTyxJQUFBLDhDQUFzQyxFQUMzQyxJQUFJLEVBQ0osSUFBQSxtQ0FBZ0IsRUFBQyxTQUFTLEVBQUUsSUFBQSxrQ0FBZSxFQUFD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QUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUNqRyxDQUFDLENBQ0gsQ0FBQztZQUVGLHFCQUFxQixDQUNuQixHQUFHLEVBQUUsQ0FBQyxJQUFBLGtEQUE4QixFQUFDLHdCQUF3QixDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDaEcsSUFBSSw0Q0FBd0IsQ0FBQztnQkFDM0IsSUFBSSx1Q0FBbUIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3BHLElBQUksZ0RBQTRCLENBQUMsQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ2pHLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgeyBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL3BzYnQvbW9jay51dGlscyc7XG5pbXBvcnQgeyBQYXJzZWRPdXRwdXRzQmlnSW50LCB0b0Jhc2VQYXJzZWRUcmFuc2FjdGlvbk91dHB1dHNGcm9tUHNidCB9IGZyb20gJy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9kZXNjcmlwdG9yL3BhcnNlJztcbmltcG9ydCB7IGdldERlZmF1bHRYUHVicywgZ2V0RGVzY3JpcHRvck1hcCB9IGZyb20gJy4uLy4uL2NvcmUvZGVzY3JpcHRvci9kZXNjcmlwdG9yLnV0aWxzJztcbmltcG9ydCB7IHRvUGxhaW5PYmplY3QgfSBmcm9tICcuLi8uLi9jb3JlL3RvUGxhaW5PYmplY3QudXRpbHMnO1xuaW1wb3J0IHtcbiAgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yLFxuICBhc3NlcnRFeHBlY3RlZE91dHB1dERpZmZlcmVuY2UsXG4gIEVycm9ySW1wbGljaXRFeHRlcm5hbE91dHB1dHMsXG4gIEVycm9yTWlzc2luZ091dHB1dHMsXG59IGZyb20gJy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9kZXNjcmlwdG9yL3ZlcmlmeVRyYW5zYWN0aW9uJztcbmltcG9ydCB7IHRvQW1vdW50VHlwZSB9IGZyb20gJy4uLy4uLy4uL3NyYy90cmFuc2FjdGlvbi9kZXNjcmlwdG9yL3BhcnNlVG9BbW91bnRUeXBlJztcbmltcG9ydCB7IEJhc2VPdXRwdXQgfSBmcm9tICcuLi8uLi8uLi9zcmMnO1xuXG5pbXBvcnQgeyBhc3NlcnRFcXVhbEZpeHR1cmUgfSBmcm9tICcuL2ZpeHR1cmVzLnV0aWxzJztcblxudHlwZSBPdXRwdXRXaXRoVmFsdWU8VCA9IG51bWJlciB8IGJpZ2ludCB8IHN0cmluZz4gPSB7XG4gIGFkZHJlc3M/OiBzdHJpbmc7XG4gIHZhbHVlOiBUO1xufTtcblxuZnVuY3Rpb24gdG9CYXNlT3V0cHV0PFROdW1iZXI+KG91dHB1dDogT3V0cHV0V2l0aFZhbHVlLCBhbW91bnRUeXBlOiAnYmlnaW50JyB8ICdzdHJpbmcnKTogQmFzZU91dHB1dDxUTnVtYmVyPiB7XG4gIGFzc2VydChvdXRwdXQuYWRkcmVzcyk7XG4gIHJldHVybiB7XG4gICAgYWRkcmVzczogb3V0cHV0LmFkZHJlc3MsXG4gICAgYW1vdW50OiB0b0Ftb3VudFR5cGUob3V0cHV0LnZhbHVlLCBhbW91bnRUeXBlKSBhcyBUTnVtYmVyLFxuICB9O1xufVxuXG5mdW5jdGlvbiB0b0Jhc2VPdXRwdXRCaWdJbnQob3V0cHV0OiBPdXRwdXRXaXRoVmFsdWUpOiBCYXNlT3V0cHV0PGJpZ2ludD4ge1xuICByZXR1cm4gdG9CYXNlT3V0cHV0KG91dHB1dCwgJ2JpZ2ludCcpO1xufVxuXG5mdW5jdGlvbiB0b0Jhc2VPdXRwdXRTdHJpbmcob3V0cHV0OiBPdXRwdXRXaXRoVmFsdWUpOiBCYXNlT3V0cHV0PHN0cmluZz4ge1xuICByZXR1cm4gdG9CYXNlT3V0cHV0KG91dHB1dCwgJ3N0cmluZycpO1xufVxuXG5mdW5jdGlvbiB0b01heE91dHB1dChvdXRwdXQ6IE91dHB1dFdpdGhWYWx1ZSk6IE91dHB1dFdpdGhWYWx1ZTwnbWF4Jz4ge1xuICByZXR1cm4ge1xuICAgIC4uLm91dHB1dCxcbiAgICB2YWx1ZTogJ21heCcsXG4gIH07XG59XG5cbmRlc2NyaWJlKCdwYXJzZScsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgcHNidCA9IG1vY2tQc2J0RGVmYXVsdFdpdGhEZXNjcmlwdG9yVGVtcGxhdGUoJ1dzaDJPZjMnKTtcblxuICBmdW5jdGlvbiBnZXRCYXNlUGFyc2VkVHJhbnNhY3Rpb24ocmVjaXBpZW50czogT3V0cHV0V2l0aFZhbHVlW10pOiBQYXJzZWRPdXRwdXRzQmlnSW50IHtcbiAgICByZXR1cm4gdG9CYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzRnJvbVBzYnQoXG4gICAgICBwc2J0LFxuICAgICAgZ2V0RGVzY3JpcHRvck1hcCgnV3NoMk9mMycsIGdldERlZmF1bHRYUHVicygnYScpKSxcbiAgICAgIHJlY2lwaWVudHMubWFwKHRvQmFzZU91dHB1dFN0cmluZyksXG4gICAgICBwc2J0Lm5ldHdvcmtcbiAgICApO1xuICB9XG5cbiAgZGVzY3JpYmUoJ3RvQmFzZScsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIHJldHVybiB0aGUgY29ycmVjdCBCYXNlUGFyc2VkVHJhbnNhY3Rpb25PdXRwdXRzJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgYXdhaXQgYXNzZXJ0RXF1YWxGaXh0dXJlKCdwYXJzZVdpdGhvdXRSZWNpcGllbnRzLmpzb24nLCB0b1BsYWluT2JqZWN0KGdldEJhc2VQYXJzZWRUcmFuc2FjdGlvbihbXSkpKTtcbiAgICAgIGF3YWl0IGFzc2VydEVxdWFsRml4dHVyZSgncGFyc2VXaXRoUmVjaXBpZW50Lmpzb24nLCB0b1BsYWluT2JqZWN0KGdldEJhc2VQYXJzZWRUcmFuc2FjdGlvbihbcHNidC50eE91dHB1dHNbMF1dKSkpO1xuICAgICAgYXdhaXQgYXNzZXJ0RXF1YWxGaXh0dXJlKFxuICAgICAgICAncGFyc2VXaXRoUmVjaXBpZW50Lmpzb24nLFxuICAgICAgICAvLyBtYXggcmVjaXBpZW50OiBpZ25vcmUgYWN0dWFsIHZhbHVlXG4gICAgICAgIHRvUGxhaW5PYmplY3QoZ2V0QmFzZVBhcnNlZFRyYW5zYWN0aW9uKFt0b01heE91dHB1dChwc2J0LnR4T3V0cHV0c1swXSldKSlcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBhc3NlcnRFcXVhbFZhbGlkYXRpb25FcnJvcihhY3R1YWw6IHVua25vd24sIGV4cGVjdGVkOiBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIGlmIChhY3R1YWwgaW5zdGFuY2VvZiBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChhY3R1YWwuZXJyb3JzLCBleHBlY3RlZC5lcnJvcnMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmV4cGVjdGVkIGVycm9yIHR5cGUnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhc3NlcnRWYWxpZGF0aW9uRXJyb3IoZjogKCkgPT4gdm9pZCwgZXhwZWN0ZWQ6IEFnZ3JlZ2F0ZVZhbGlkYXRpb25FcnJvcikge1xuICAgICAgYXNzZXJ0LnRocm93cyhmLCAoZXJyKSA9PiB7XG4gICAgICAgIGFzc2VydEVxdWFsVmFsaWRhdGlvbkVycm9yKGVyciwgZXhwZWN0ZWQpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGl0KCdzaG91bGQgdGhyb3cgZXhwZWN0ZWQgZXJyb3JzJywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAoKSA9PiBhc3NlcnRFeHBlY3RlZE91dHB1dERpZmZlcmVuY2UoZ2V0QmFzZVBhcnNlZFRyYW5zYWN0aW9uKFtdKSksXG4gICAgICAgIG5ldyBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IoW1xuICAgICAgICAgIG5ldyBFcnJvckltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKFt7IC4uLnRvQmFzZU91dHB1dEJpZ0ludChwc2J0LnR4T3V0cHV0c1swXSksIGV4dGVybmFsOiB0cnVlIH1dKSxcbiAgICAgICAgXSlcbiAgICAgICk7XG5cbiAgICAgIGFzc2VydFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgKCkgPT4gYXNzZXJ0RXhwZWN0ZWRPdXRwdXREaWZmZXJlbmNlKGdldEJhc2VQYXJzZWRUcmFuc2FjdGlvbihbXSkpLFxuICAgICAgICBuZXcgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKFtcbiAgICAgICAgICBuZXcgRXJyb3JJbXBsaWNpdEV4dGVybmFsT3V0cHV0cyhbeyAuLi50b0Jhc2VPdXRwdXRCaWdJbnQocHNidC50eE91dHB1dHNbMF0pLCBleHRlcm5hbDogdHJ1ZSB9XSksXG4gICAgICAgIF0pXG4gICAgICApO1xuXG4gICAgICBhc3NlcnRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICgpID0+IGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZShnZXRCYXNlUGFyc2VkVHJhbnNhY3Rpb24oW3BzYnQudHhPdXRwdXRzWzFdXSkpLFxuICAgICAgICBuZXcgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKFtcbiAgICAgICAgICBuZXcgRXJyb3JNaXNzaW5nT3V0cHV0cyhbeyAuLi50b0Jhc2VPdXRwdXRCaWdJbnQocHNidC50eE91dHB1dHNbMV0pLCBleHRlcm5hbDogdHJ1ZSB9XSksXG4gICAgICAgICAgbmV3IEVycm9ySW1wbGljaXRFeHRlcm5hbE91dHB1dHMoW3sgLi4udG9CYXNlT3V0cHV0QmlnSW50KHBzYnQudHhPdXRwdXRzWzBdKSwgZXh0ZXJuYWw6IHRydWUgfV0pLFxuICAgICAgICBdKVxuICAgICAgKTtcblxuICAgICAgYXNzZXJ0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAoKSA9PiBhc3NlcnRFeHBlY3RlZE91dHB1dERpZmZlcmVuY2UoZ2V0QmFzZVBhcnNlZFRyYW5zYWN0aW9uKFt0b01heE91dHB1dChwc2J0LnR4T3V0cHV0c1sxXSldKSksXG4gICAgICAgIG5ldyBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IoW1xuICAgICAgICAgIG5ldyBFcnJvck1pc3NpbmdPdXRwdXRzKFt7IC4uLnRvQmFzZU91dHB1dEJpZ0ludCh0b01heE91dHB1dChwc2J0LnR4T3V0cHV0c1sxXSkpLCBleHRlcm5hbDogdHJ1ZSB9XSksXG4gICAgICAgICAgbmV3IEVycm9ySW1wbGljaXRFeHRlcm5hbE91dHB1dHMoW3sgLi4udG9CYXNlT3V0cHV0QmlnSW50KHBzYnQudHhPdXRwdXRzWzBdKSwgZXh0ZXJuYWw6IHRydWUgfV0pLFxuICAgICAgICBdKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcGFyc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFFNUIsc0VBQThGO0FBQzlGLHFFQUF3SDtBQUN4SCw2RUFBMkY7QUFDM0Ysd0VBQStEO0FBQy9ELDZGQUsrRDtBQUMvRCw2RkFBcUY7QUFHckYscURBQWtEO0FBRWxELE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxHQUFHLElBQUEsK0JBQWMsRUFBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLENBQUM7QUFPdkUsU0FBUyxZQUFZLENBQVUsTUFBdUIsRUFBRSxVQUErQjtJQUNyRixJQUFBLGdCQUFNLEVBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLE9BQU87UUFDTCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDdkIsTUFBTSxFQUFFLElBQUEsZ0NBQVksRUFBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBWTtLQUMxRCxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsTUFBdUI7SUFDakQsT0FBTyxZQUFZLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE1BQXVCO0lBQ2pELE9BQU8sWUFBWSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsTUFBdUI7SUFDMUMsT0FBTztRQUNMLEdBQUcsTUFBTTtRQUNULEtBQUssRUFBRSxLQUFLO0tBQ2IsQ0FBQztBQUNKLENBQUM7QUFFRCxRQUFRLENBQUMsT0FBTyxFQUFFO0lBQ2hCLE1BQU0sSUFBSSxHQUFHLElBQUEsa0RBQXFDLEVBQUMsU0FBUyxDQUFDLENBQUM7SUFFOUQsU0FBUyx3QkFBd0IsQ0FBQyxVQUE2QjtRQUM3RCxP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LENBQUM7Z0JBQ3ZGLElBQUksZ0RBQTRCLENBQUMsQ0FBQyxFQUFFLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQ2pHLENBQUMsQ0FDSCxDQUFDO1lBRUYscUJBQXFCLENBQ25CLEdBQUcsRUFBRSxDQUFDLElBQUEsa0RBQThCLEVBQUMsd0JBQXdCLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUNoRyxJQUFJLDRDQUF3QixDQUFDO2dCQUMzQixJQUFJLHVDQUFtQixDQUFDLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDcEcsSUFBSSxnREFBNEIsQ0FBQyxDQUFDLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDakcsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IG1vY2tQc2J0RGVmYXVsdFdpdGhEZXNjcmlwdG9yVGVtcGxhdGUgfSBmcm9tICcuLi8uLi9jb3JlL2Rlc2NyaXB0b3IvcHNidC9tb2NrLnV0aWxzJztcbmltcG9ydCB7IFBhcnNlZE91dHB1dHNCaWdJbnQsIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0IH0gZnJvbSAnLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcGFyc2UnO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdFhQdWJzLCBnZXREZXNjcmlwdG9yTWFwIH0gZnJvbSAnLi4vLi4vY29yZS9kZXNjcmlwdG9yL2Rlc2NyaXB0b3IudXRpbHMnO1xuaW1wb3J0IHsgdG9QbGFpbk9iamVjdCB9IGZyb20gJy4uLy4uL2NvcmUvdG9QbGFpbk9iamVjdC51dGlscyc7XG5pbXBvcnQge1xuICBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IsXG4gIGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZSxcbiAgRXJyb3JJbXBsaWNpdEV4dGVybmFsT3V0cHV0cyxcbiAgRXJyb3JNaXNzaW5nT3V0cHV0cyxcbn0gZnJvbSAnLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvdmVyaWZ5VHJhbnNhY3Rpb24nO1xuaW1wb3J0IHsgdG9BbW91bnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vc3JjL3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvcGFyc2VUb0Ftb3VudFR5cGUnO1xuaW1wb3J0IHsgQmFzZU91dHB1dCB9IGZyb20gJy4uLy4uLy4uL3NyYyc7XG5cbmltcG9ydCB7IGdldEZpeHR1cmVSb290IH0gZnJvbSAnLi9maXh0dXJlcy51dGlscyc7XG5cbmNvbnN0IHsgYXNzZXJ0RXF1YWxGaXh0dXJlIH0gPSBnZXRGaXh0dXJlUm9vdChfX2Rpcm5hbWUgKyAnL2ZpeHR1cmVzJyk7XG5cbnR5cGUgT3V0cHV0V2l0aFZhbHVlPFQgPSBudW1iZXIgfCBiaWdpbnQgfCBzdHJpbmc+ID0ge1xuICBhZGRyZXNzPzogc3RyaW5nO1xuICB2YWx1ZTogVDtcbn07XG5cbmZ1bmN0aW9uIHRvQmFzZU91dHB1dDxUTnVtYmVyPihvdXRwdXQ6IE91dHB1dFdpdGhWYWx1ZSwgYW1vdW50VHlwZTogJ2JpZ2ludCcgfCAnc3RyaW5nJyk6IEJhc2VPdXRwdXQ8VE51bWJlcj4ge1xuICBhc3NlcnQob3V0cHV0LmFkZHJlc3MpO1xuICByZXR1cm4ge1xuICAgIGFkZHJlc3M6IG91dHB1dC5hZGRyZXNzLFxuICAgIGFtb3VudDogdG9BbW91bnRUeXBlKG91dHB1dC52YWx1ZSwgYW1vdW50VHlwZSkgYXMgVE51bWJlcixcbiAgfTtcbn1cblxuZnVuY3Rpb24gdG9CYXNlT3V0cHV0QmlnSW50KG91dHB1dDogT3V0cHV0V2l0aFZhbHVlKTogQmFzZU91dHB1dDxiaWdpbnQ+IHtcbiAgcmV0dXJuIHRvQmFzZU91dHB1dChvdXRwdXQsICdiaWdpbnQnKTtcbn1cblxuZnVuY3Rpb24gdG9CYXNlT3V0cHV0U3RyaW5nKG91dHB1dDogT3V0cHV0V2l0aFZhbHVlKTogQmFzZU91dHB1dDxzdHJpbmc+IHtcbiAgcmV0dXJuIHRvQmFzZU91dHB1dChvdXRwdXQsICdzdHJpbmcnKTtcbn1cblxuZnVuY3Rpb24gdG9NYXhPdXRwdXQob3V0cHV0OiBPdXRwdXRXaXRoVmFsdWUpOiBPdXRwdXRXaXRoVmFsdWU8J21heCc+IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5vdXRwdXQsXG4gICAgdmFsdWU6ICdtYXgnLFxuICB9O1xufVxuXG5kZXNjcmliZSgncGFyc2UnLCBmdW5jdGlvbiAoKSB7XG4gIGNvbnN0IHBzYnQgPSBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlKCdXc2gyT2YzJyk7XG5cbiAgZnVuY3Rpb24gZ2V0QmFzZVBhcnNlZFRyYW5zYWN0aW9uKHJlY2lwaWVudHM6IE91dHB1dFdpdGhWYWx1ZVtdKTogUGFyc2VkT3V0cHV0c0JpZ0ludCB7XG4gICAgcmV0dXJuIHRvQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0c0Zyb21Qc2J0KFxuICAgICAgcHNidCxcbiAgICAgIGdldERlc2NyaXB0b3JNYXAoJ1dzaDJPZjMnLCBnZXREZWZhdWx0WFB1YnMoJ2EnKSksXG4gICAgICByZWNpcGllbnRzLm1hcCh0b0Jhc2VPdXRwdXRTdHJpbmcpLFxuICAgICAgcHNidC5uZXR3b3JrXG4gICAgKTtcbiAgfVxuXG4gIGRlc2NyaWJlKCd0b0Jhc2UnLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCByZXR1cm4gdGhlIGNvcnJlY3QgQmFzZVBhcnNlZFRyYW5zYWN0aW9uT3V0cHV0cycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgIGF3YWl0IGFzc2VydEVxdWFsRml4dHVyZSgncGFyc2VXaXRob3V0UmVjaXBpZW50cy5qc29uJywgdG9QbGFpbk9iamVjdChnZXRCYXNlUGFyc2VkVHJhbnNhY3Rpb24oW10pKSk7XG4gICAgICBhd2FpdCBhc3NlcnRFcXVhbEZpeHR1cmUoJ3BhcnNlV2l0aFJlY2lwaWVudC5qc29uJywgdG9QbGFpbk9iamVjdChnZXRCYXNlUGFyc2VkVHJhbnNhY3Rpb24oW3BzYnQudHhPdXRwdXRzWzBdXSkpKTtcbiAgICAgIGF3YWl0IGFzc2VydEVxdWFsRml4dHVyZShcbiAgICAgICAgJ3BhcnNlV2l0aFJlY2lwaWVudC5qc29uJyxcbiAgICAgICAgLy8gbWF4IHJlY2lwaWVudDogaWdub3JlIGFjdHVhbCB2YWx1ZVxuICAgICAgICB0b1BsYWluT2JqZWN0KGdldEJhc2VQYXJzZWRUcmFuc2FjdGlvbihbdG9NYXhPdXRwdXQocHNidC50eE91dHB1dHNbMF0pXSkpXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgZnVuY3Rpb24gYXNzZXJ0RXF1YWxWYWxpZGF0aW9uRXJyb3IoYWN0dWFsOiB1bmtub3duLCBleHBlY3RlZDogQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICBpZiAoYWN0dWFsIGluc3RhbmNlb2YgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICAgIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoYWN0dWFsLmVycm9ycywgZXhwZWN0ZWQuZXJyb3JzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBlcnJvciB0eXBlJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXNzZXJ0VmFsaWRhdGlvbkVycm9yKGY6ICgpID0+IHZvaWQsIGV4cGVjdGVkOiBBZ2dyZWdhdGVWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgIGFzc2VydC50aHJvd3MoZiwgKGVycikgPT4ge1xuICAgICAgICBhc3NlcnRFcXVhbFZhbGlkYXRpb25FcnJvcihlcnIsIGV4cGVjdGVkKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpdCgnc2hvdWxkIHRocm93IGV4cGVjdGVkIGVycm9ycycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGFzc2VydFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgKCkgPT4gYXNzZXJ0RXhwZWN0ZWRPdXRwdXREaWZmZXJlbmNlKGdldEJhc2VQYXJzZWRUcmFuc2FjdGlvbihbXSkpLFxuICAgICAgICBuZXcgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKFtcbiAgICAgICAgICBuZXcgRXJyb3JJbXBsaWNpdEV4dGVybmFsT3V0cHV0cyhbeyAuLi50b0Jhc2VPdXRwdXRCaWdJbnQocHNidC50eE91dHB1dHNbMF0pLCBleHRlcm5hbDogdHJ1ZSB9XSksXG4gICAgICAgIF0pXG4gICAgICApO1xuXG4gICAgICBhc3NlcnRWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgICgpID0+IGFzc2VydEV4cGVjdGVkT3V0cHV0RGlmZmVyZW5jZShnZXRCYXNlUGFyc2VkVHJhbnNhY3Rpb24oW10pKSxcbiAgICAgICAgbmV3IEFnZ3JlZ2F0ZVZhbGlkYXRpb25FcnJvcihbXG4gICAgICAgICAgbmV3IEVycm9ySW1wbGljaXRFeHRlcm5hbE91dHB1dHMoW3sgLi4udG9CYXNlT3V0cHV0QmlnSW50KHBzYnQudHhPdXRwdXRzWzBdKSwgZXh0ZXJuYWw6IHRydWUgfV0pLFxuICAgICAgICBdKVxuICAgICAgKTtcblxuICAgICAgYXNzZXJ0VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICAoKSA9PiBhc3NlcnRFeHBlY3RlZE91dHB1dERpZmZlcmVuY2UoZ2V0QmFzZVBhcnNlZFRyYW5zYWN0aW9uKFtwc2J0LnR4T3V0cHV0c1sxXV0pKSxcbiAgICAgICAgbmV3IEFnZ3JlZ2F0ZVZhbGlkYXRpb25FcnJvcihbXG4gICAgICAgICAgbmV3IEVycm9yTWlzc2luZ091dHB1dHMoW3sgLi4udG9CYXNlT3V0cHV0QmlnSW50KHBzYnQudHhPdXRwdXRzWzFdKSwgZXh0ZXJuYWw6IHRydWUgfV0pLFxuICAgICAgICAgIG5ldyBFcnJvckltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKFt7IC4uLnRvQmFzZU91dHB1dEJpZ0ludChwc2J0LnR4T3V0cHV0c1swXSksIGV4dGVybmFsOiB0cnVlIH1dKSxcbiAgICAgICAgXSlcbiAgICAgICk7XG5cbiAgICAgIGFzc2VydFZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgKCkgPT4gYXNzZXJ0RXhwZWN0ZWRPdXRwdXREaWZmZXJlbmNlKGdldEJhc2VQYXJzZWRUcmFuc2FjdGlvbihbdG9NYXhPdXRwdXQocHNidC50eE91dHB1dHNbMV0pXSkpLFxuICAgICAgICBuZXcgQWdncmVnYXRlVmFsaWRhdGlvbkVycm9yKFtcbiAgICAgICAgICBuZXcgRXJyb3JNaXNzaW5nT3V0cHV0cyhbeyAuLi50b0Jhc2VPdXRwdXRCaWdJbnQodG9NYXhPdXRwdXQocHNidC50eE91dHB1dHNbMV0pKSwgZXh0ZXJuYWw6IHRydWUgfV0pLFxuICAgICAgICAgIG5ldyBFcnJvckltcGxpY2l0RXh0ZXJuYWxPdXRwdXRzKFt7IC4uLnRvQmFzZU91dHB1dEJpZ0ludChwc2J0LnR4T3V0cHV0c1swXSksIGV4dGVybmFsOiB0cnVlIH1dKSxcbiAgICAgICAgXSlcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=