@bitgo-beta/utxo-core 1.8.1-beta.16 → 1.8.1-beta.161

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.
Files changed (56) hide show
  1. package/dist/src/bip32utils.d.ts +16 -0
  2. package/dist/src/bip32utils.d.ts.map +1 -0
  3. package/dist/src/bip32utils.js +71 -0
  4. package/dist/src/descriptor/fromFixedScriptWallet.d.ts +16 -0
  5. package/dist/src/descriptor/fromFixedScriptWallet.d.ts.map +1 -0
  6. package/dist/src/descriptor/fromFixedScriptWallet.js +88 -0
  7. package/dist/src/descriptor/index.d.ts +2 -0
  8. package/dist/src/descriptor/index.d.ts.map +1 -1
  9. package/dist/src/descriptor/index.js +3 -1
  10. package/dist/src/descriptor/parse/PatternMatcher.d.ts +14 -0
  11. package/dist/src/descriptor/parse/PatternMatcher.d.ts.map +1 -0
  12. package/dist/src/descriptor/parse/PatternMatcher.js +60 -0
  13. package/dist/src/descriptor/psbt/createPsbt.d.ts +4 -0
  14. package/dist/src/descriptor/psbt/createPsbt.d.ts.map +1 -1
  15. package/dist/src/descriptor/psbt/createPsbt.js +34 -9
  16. package/dist/src/index.d.ts +2 -0
  17. package/dist/src/index.d.ts.map +1 -1
  18. package/dist/src/index.js +4 -2
  19. package/dist/src/paygo/attestation.d.ts +11 -0
  20. package/dist/src/paygo/attestation.d.ts.map +1 -0
  21. package/dist/src/paygo/attestation.js +58 -0
  22. package/dist/src/paygo/index.d.ts +3 -0
  23. package/dist/src/paygo/index.d.ts.map +1 -0
  24. package/dist/src/paygo/index.js +19 -0
  25. package/dist/src/paygo/parsePayGoAttestation.d.ts +16 -0
  26. package/dist/src/paygo/parsePayGoAttestation.d.ts.map +1 -0
  27. package/dist/src/paygo/parsePayGoAttestation.js +50 -0
  28. package/dist/src/paygo/psbt/Errors.d.ts +22 -0
  29. package/dist/src/paygo/psbt/Errors.d.ts.map +1 -0
  30. package/dist/src/paygo/psbt/Errors.js +44 -0
  31. package/dist/src/paygo/psbt/index.d.ts +2 -0
  32. package/dist/src/paygo/psbt/index.d.ts.map +1 -0
  33. package/dist/src/paygo/psbt/index.js +18 -0
  34. package/dist/src/paygo/psbt/payGoAddressProof.d.ts +29 -0
  35. package/dist/src/paygo/psbt/payGoAddressProof.d.ts.map +1 -0
  36. package/dist/src/paygo/psbt/payGoAddressProof.js +124 -0
  37. package/dist/src/testutil/descriptor/descriptors.d.ts +4 -1
  38. package/dist/src/testutil/descriptor/descriptors.d.ts.map +1 -1
  39. package/dist/src/testutil/descriptor/descriptors.js +38 -1
  40. package/dist/src/testutil/descriptor/mock.utils.d.ts +3 -1
  41. package/dist/src/testutil/descriptor/mock.utils.d.ts.map +1 -1
  42. package/dist/src/testutil/descriptor/mock.utils.js +2 -1
  43. package/dist/src/testutil/descriptor/psbt.utils.d.ts.map +1 -1
  44. package/dist/src/testutil/descriptor/psbt.utils.js +2 -1
  45. package/dist/src/testutil/generatePayGoAttestationProof.utils.d.ts +12 -0
  46. package/dist/src/testutil/generatePayGoAttestationProof.utils.d.ts.map +1 -0
  47. package/dist/src/testutil/generatePayGoAttestationProof.utils.js +38 -0
  48. package/dist/src/testutil/index.d.ts +2 -0
  49. package/dist/src/testutil/index.d.ts.map +1 -1
  50. package/dist/src/testutil/index.js +3 -1
  51. package/dist/src/testutil/toPlainObject.utils.d.ts.map +1 -1
  52. package/dist/src/testutil/toPlainObject.utils.js +16 -2
  53. package/dist/src/testutil/trimMessagePrefix.d.ts +11 -0
  54. package/dist/src/testutil/trimMessagePrefix.d.ts.map +1 -0
  55. package/dist/src/testutil/trimMessagePrefix.js +60 -0
  56. package/package.json +8 -6
@@ -0,0 +1,12 @@
1
+ /** We have a mirrored function similar to our hsm that generates our Bitcoin signed
2
+ * message so that we can use for testing. This creates a random entropy as well using
3
+ * the nilUUID structure to construct our uuid buffer and given our address we can
4
+ * directly encode it into our message.
5
+ *
6
+ * @param attestationPrvKey
7
+ * @param uuid
8
+ * @param address
9
+ * @returns
10
+ */
11
+ export declare function generatePayGoAttestationProof(uuid: string, address: Buffer, hasPrefix?: boolean): Buffer;
12
+ //# sourceMappingURL=generatePayGoAttestationProof.utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generatePayGoAttestationProof.utils.d.ts","sourceRoot":"","sources":["../../../src/testutil/generatePayGoAttestationProof.utils.ts"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,MAAM,CAsBrG"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.generatePayGoAttestationProof = generatePayGoAttestationProof;
7
+ const crypto_1 = __importDefault(require("crypto"));
8
+ const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
9
+ const paygo_1 = require("../paygo");
10
+ /** We have a mirrored function similar to our hsm that generates our Bitcoin signed
11
+ * message so that we can use for testing. This creates a random entropy as well using
12
+ * the nilUUID structure to construct our uuid buffer and given our address we can
13
+ * directly encode it into our message.
14
+ *
15
+ * @param attestationPrvKey
16
+ * @param uuid
17
+ * @param address
18
+ * @returns
19
+ */
20
+ function generatePayGoAttestationProof(uuid, address, hasPrefix = true) {
21
+ // <ENTROPY>
22
+ const entropyLength = 64;
23
+ const entropy = crypto_1.default.randomBytes(entropyLength);
24
+ // <UUID>
25
+ const uuidBuffer = Buffer.from(uuid);
26
+ const uuidBufferLength = uuidBuffer.length;
27
+ // <ADDRESS>
28
+ const addressBufferLength = address.length;
29
+ // <VARINT_LENGTH>
30
+ const msgLength = entropyLength + addressBufferLength + uuidBufferLength;
31
+ const msgLengthBuffer = utxo_lib_1.bufferutils.varuint.encode(msgLength);
32
+ // <LENGTH><ENTROPY><ADDRESS><UUID>
33
+ const proofMessage = Buffer.concat([msgLengthBuffer, entropy, address, uuidBuffer]);
34
+ // If hasPrefix, we return 0x18Bitcoin Signed Message:\n<proof> otherwise its just <proof>
35
+ // where <proof> = <VARINT_LEN><ENTROPY><ADDRESS><UUID>
36
+ return hasPrefix ? Buffer.concat([paygo_1.Prefix, proofMessage]) : proofMessage;
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQYXlHb0F0dGVzdGF0aW9uUHJvb2YudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvZ2VuZXJhdGVQYXlHb0F0dGVzdGF0aW9uUHJvb2YudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFnQkEsc0VBc0JDO0FBdENELG9EQUE0QjtBQUU1QixtREFBbUQ7QUFFbkQsb0NBQWtDO0FBRWxDOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLDZCQUE2QixDQUFDLElBQVksRUFBRSxPQUFlLEVBQUUsU0FBUyxHQUFHLElBQUk7SUFDM0YsWUFBWTtJQUNaLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN6QixNQUFNLE9BQU8sR0FBRyxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVsRCxTQUFTO0lBQ1QsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFFM0MsWUFBWTtJQUNaLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUUzQyxrQkFBa0I7SUFDbEIsTUFBTSxTQUFTLEdBQUcsYUFBYSxHQUFHLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDO0lBQ3pFLE1BQU0sZUFBZSxHQUFHLHNCQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU5RCxtQ0FBbUM7SUFDbkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFFcEYsMEZBQTBGO0lBQzFGLHVEQUF1RDtJQUN2RCxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcblxuaW1wb3J0IHsgYnVmZmVydXRpbHMgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmltcG9ydCB7IFByZWZpeCB9IGZyb20gJy4uL3BheWdvJztcblxuLyoqIFdlIGhhdmUgYSBtaXJyb3JlZCBmdW5jdGlvbiBzaW1pbGFyIHRvIG91ciBoc20gdGhhdCBnZW5lcmF0ZXMgb3VyIEJpdGNvaW4gc2lnbmVkXG4gKiBtZXNzYWdlIHNvIHRoYXQgd2UgY2FuIHVzZSBmb3IgdGVzdGluZy4gVGhpcyBjcmVhdGVzIGEgcmFuZG9tIGVudHJvcHkgYXMgd2VsbCB1c2luZ1xuICogdGhlIG5pbFVVSUQgc3RydWN0dXJlIHRvIGNvbnN0cnVjdCBvdXIgdXVpZCBidWZmZXIgYW5kIGdpdmVuIG91ciBhZGRyZXNzIHdlIGNhblxuICogZGlyZWN0bHkgZW5jb2RlIGl0IGludG8gb3VyIG1lc3NhZ2UuXG4gKlxuICogQHBhcmFtIGF0dGVzdGF0aW9uUHJ2S2V5XG4gKiBAcGFyYW0gdXVpZFxuICogQHBhcmFtIGFkZHJlc3NcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVBheUdvQXR0ZXN0YXRpb25Qcm9vZih1dWlkOiBzdHJpbmcsIGFkZHJlc3M6IEJ1ZmZlciwgaGFzUHJlZml4ID0gdHJ1ZSk6IEJ1ZmZlciB7XG4gIC8vIDxFTlRST1BZPlxuICBjb25zdCBlbnRyb3B5TGVuZ3RoID0gNjQ7XG4gIGNvbnN0IGVudHJvcHkgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoZW50cm9weUxlbmd0aCk7XG5cbiAgLy8gPFVVSUQ+XG4gIGNvbnN0IHV1aWRCdWZmZXIgPSBCdWZmZXIuZnJvbSh1dWlkKTtcbiAgY29uc3QgdXVpZEJ1ZmZlckxlbmd0aCA9IHV1aWRCdWZmZXIubGVuZ3RoO1xuXG4gIC8vIDxBRERSRVNTPlxuICBjb25zdCBhZGRyZXNzQnVmZmVyTGVuZ3RoID0gYWRkcmVzcy5sZW5ndGg7XG5cbiAgLy8gPFZBUklOVF9MRU5HVEg+XG4gIGNvbnN0IG1zZ0xlbmd0aCA9IGVudHJvcHlMZW5ndGggKyBhZGRyZXNzQnVmZmVyTGVuZ3RoICsgdXVpZEJ1ZmZlckxlbmd0aDtcbiAgY29uc3QgbXNnTGVuZ3RoQnVmZmVyID0gYnVmZmVydXRpbHMudmFydWludC5lbmNvZGUobXNnTGVuZ3RoKTtcblxuICAvLyA8TEVOR1RIPjxFTlRST1BZPjxBRERSRVNTPjxVVUlEPlxuICBjb25zdCBwcm9vZk1lc3NhZ2UgPSBCdWZmZXIuY29uY2F0KFttc2dMZW5ndGhCdWZmZXIsIGVudHJvcHksIGFkZHJlc3MsIHV1aWRCdWZmZXJdKTtcblxuICAvLyBJZiBoYXNQcmVmaXgsIHdlIHJldHVybiAweDE4Qml0Y29pbiBTaWduZWQgTWVzc2FnZTpcXG48cHJvb2Y+IG90aGVyd2lzZSBpdHMganVzdCA8cHJvb2Y+XG4gIC8vIHdoZXJlIDxwcm9vZj4gPSA8VkFSSU5UX0xFTj48RU5UUk9QWT48QUREUkVTUz48VVVJRD5cbiAgcmV0dXJuIGhhc1ByZWZpeCA/IEJ1ZmZlci5jb25jYXQoW1ByZWZpeCwgcHJvb2ZNZXNzYWdlXSkgOiBwcm9vZk1lc3NhZ2U7XG59XG4iXX0=
@@ -1,4 +1,6 @@
1
1
  export * from './fixtures.utils';
2
2
  export * from './key.utils';
3
3
  export * from './toPlainObject.utils';
4
+ export * from './generatePayGoAttestationProof.utils';
5
+ export * from './trimMessagePrefix';
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testutil/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testutil/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uCAAuC,CAAC;AACtD,cAAc,qBAAqB,CAAC"}
@@ -17,4 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./fixtures.utils"), exports);
18
18
  __exportStar(require("./key.utils"), exports);
19
19
  __exportStar(require("./toPlainObject.utils"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFpQztBQUNqQyw4Q0FBNEI7QUFDNUIsd0RBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maXh0dXJlcy51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2tleS51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3RvUGxhaW5PYmplY3QudXRpbHMnO1xuIl19
20
+ __exportStar(require("./generatePayGoAttestationProof.utils"), exports);
21
+ __exportStar(require("./trimMessagePrefix"), exports);
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFpQztBQUNqQyw4Q0FBNEI7QUFDNUIsd0RBQXNDO0FBQ3RDLHdFQUFzRDtBQUN0RCxzREFBb0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ZpeHR1cmVzLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4va2V5LnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdG9QbGFpbk9iamVjdC51dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL2dlbmVyYXRlUGF5R29BdHRlc3RhdGlvblByb29mLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdHJpbU1lc3NhZ2VQcmVmaXgnO1xuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"toPlainObject.utils.d.ts","sourceRoot":"","sources":["../../../src/testutil/toPlainObject.utils.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC;CACtD,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,wBAAgB,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAErE;AA0CD,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,iBAAsB,EAAE,IAAI,GAAE,WAAW,EAAO,GAAG,OAAO,CAyCzG"}
1
+ {"version":3,"file":"toPlainObject.utils.d.ts","sourceRoot":"","sources":["../../../src/testutil/toPlainObject.utils.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG;IACvB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC;IAC5D,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,OAAO,CAAC;CACtD,CAAC;AACF,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAE1C,wBAAgB,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,WAAW,EAAE,GAAG,OAAO,CAErE;AAyDD,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,GAAE,iBAAsB,EAAE,IAAI,GAAE,WAAW,EAAO,GAAG,OAAO,CAyCzG"}
@@ -23,9 +23,23 @@ function toPlainEntries(key, value, opts, path) {
23
23
  }
24
24
  return [[key, toPlainObject(value, opts, [...path, key])]];
25
25
  }
26
- function toPlainObjectFromPropertyDescriptors(v, opts, path) {
26
+ function getAllDescriptors(v) {
27
+ if (v === null || typeof v !== 'object') {
28
+ return {};
29
+ }
27
30
  const descriptors = Object.getOwnPropertyDescriptors(v);
31
+ const proto = Object.getPrototypeOf(v);
32
+ if (proto) {
33
+ Object.assign(descriptors, getAllDescriptors(proto));
34
+ }
35
+ return descriptors;
36
+ }
37
+ function toPlainObjectFromPropertyDescriptors(v, opts, path) {
38
+ const descriptors = getAllDescriptors(v);
28
39
  return Object.fromEntries(Object.entries(descriptors).flatMap(([key, descriptor]) => {
40
+ if (typeof descriptor.value === 'function') {
41
+ return [];
42
+ }
29
43
  if (descriptor.value !== undefined) {
30
44
  return toPlainEntries(key, descriptor.value, opts, path);
31
45
  }
@@ -72,4 +86,4 @@ function toPlainObject(v, opts = {}, path = []) {
72
86
  }
73
87
  throw new Error(`unknown v ${typeof v}`);
74
88
  }
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9QbGFpbk9iamVjdC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC90b1BsYWluT2JqZWN0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsOEJBRUM7QUEwQ0Qsc0NBeUNDO0FBckZELFNBQWdCLFNBQVMsQ0FBQyxDQUFnQixFQUFFLENBQWdCO0lBQzFELE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQXVCLEVBQUUsSUFBbUI7SUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hGLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDckIsR0FBVyxFQUNYLEtBQWEsRUFDYixJQUF1QixFQUN2QixJQUFtQjtJQUVuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENB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QUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQ3BGLENBQUM7UUFDRixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLG9DQUFvQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbInR5cGUgVG9QbGFpbk9iamVjdE9wdHMgPSB7XG4gIHByb3BlcnR5RGVzY3JpcHRvcnM/OiBib29sZWFuO1xuICBza2lwVW5kZWZpbmVkVmFsdWVzPzogYm9vbGVhbjtcbiAgaWdub3JlUGF0aHM/OiBzdHJpbmdbXSB8ICgocGF0aDogUGF0aEVsZW1lbnRbXSkgPT4gYm9vbGVhbik7XG4gIGFwcGx5PzogKHY6IHVua25vd24sIHBhdGg6IFBhdGhFbGVtZW50W10pID0+IHVua25vd247XG59O1xuZXhwb3J0IHR5cGUgUGF0aEVsZW1lbnQgPSBzdHJpbmcgfCBudW1iZXI7XG5cbmV4cG9ydCBmdW5jdGlvbiBtYXRjaFBhdGgoYTogUGF0aEVsZW1lbnRbXSwgYjogUGF0aEVsZW1lbnRbXSk6IGJvb2xlYW4ge1xuICByZXR1cm4gYS5sZW5ndGggPT09IGIubGVuZ3RoICYmIGEuZXZlcnkoKGUsIGkpID0+IGUgPT09IGJbaV0pO1xufVxuXG5mdW5jdGlvbiBpbmNsdWRlUGF0aChvcHRzOiBUb1BsYWluT2JqZWN0T3B0cywgcGF0aDogUGF0aEVsZW1lbnRbXSk6IGJvb2xlYW4ge1xuICBpZiAoIW9wdHMuaWdub3JlUGF0aHMpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBpZiAodHlwZW9mIG9wdHMuaWdub3JlUGF0aHMgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gIW9wdHMuaWdub3JlUGF0aHMocGF0aCk7XG4gIH1cbiAgcmV0dXJuICFvcHRzLmlnbm9yZVBhdGhzLnNvbWUoKGlnbm9yZVBhdGgpID0+IG1hdGNoUGF0aChwYXRoLCBpZ25vcmVQYXRoLnNwbGl0KCcuJykpKTtcbn1cblxuZnVuY3Rpb24gdG9QbGFpbkVudHJpZXMoXG4gIGtleTogc3RyaW5nLFxuICB2YWx1ZTogc3RyaW5nLFxuICBvcHRzOiBUb1BsYWluT2JqZWN0T3B0cyxcbiAgcGF0aDogUGF0aEVsZW1lbnRbXVxuKTogW10gfCBbW3N0cmluZywgdW5rbm93bl1dIHtcbiAgaWYgKCFpbmNsdWRlUGF0aChvcHRzLCBbLi4ucGF0aCwga2V5XSkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgJiYgKG9wdHMuc2tpcFVuZGVmaW5lZFZhbHVlcyA/PyB0cnVlKSkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICByZXR1cm4gW1trZXksIHRvUGxhaW5PYmplY3QodmFsdWUsIG9wdHMsIFsuLi5wYXRoLCBrZXldKV1dO1xufVxuXG5mdW5jdGlvbiB0b1BsYWluT2JqZWN0RnJvbVByb3BlcnR5RGVzY3JpcHRvcnModjogdW5rbm93biwgb3B0czogVG9QbGFpbk9iamVjdE9wdHMsIHBhdGg6IFBhdGhFbGVtZW50W10pIHtcbiAgY29uc3QgZGVzY3JpcHRvcnMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh2KTtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhcbiAgICBPYmplY3QuZW50cmllcyhkZXNjcmlwdG9ycykuZmxhdE1hcCgoW2tleSwgZGVzY3JpcHRvcl0pID0+IHtcbiAgICAgIGlmIChkZXNjcmlwdG9yLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHRvUGxhaW5FbnRyaWVzKGtleSwgZGVzY3JpcHRvci52YWx1ZSwgb3B0cywgcGF0aCk7XG4gICAgICB9XG4gICAgICBpZiAodHlwZW9mIGRlc2NyaXB0b3IuZ2V0ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHJldHVybiB0b1BsYWluRW50cmllcyhrZXksIGRlc2NyaXB0b3IuZ2V0LmNhbGwodiksIG9wdHMsIHBhdGgpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtdO1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluT2JqZWN0KHY6IHVua25vd24sIG9wdHM6IFRvUGxhaW5PYmplY3RPcHRzID0ge30sIHBhdGg6IFBhdGhFbGVtZW50W10gPSBbXSk6IHVua25vd24ge1xuICBpZiAob3B0cy5hcHBseSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IG9wdHMuYXBwbHkodiwgcGF0aCk7XG4gICAgaWYgKHJlc3VsdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cbiAgfVxuXG4gIHN3aXRjaCAodHlwZW9mIHYpIHtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgIGNhc2UgJ251bWJlcic6XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgY2FzZSAndW5kZWZpbmVkJzpcbiAgICAgIHJldHVybiB2O1xuICAgIGNhc2UgJ2JpZ2ludCc6XG4gICAgICByZXR1cm4gdi50b1N0cmluZygpO1xuICAgIGNhc2UgJ2Z1bmN0aW9uJzpcbiAgICBjYXNlICdzeW1ib2wnOlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGlmICh2ID09PSBudWxsKSB7XG4gICAgcmV0dXJuIHY7XG4gIH1cblxuICBpZiAoQnVmZmVyLmlzQnVmZmVyKHYpKSB7XG4gICAgcmV0dXJuIHYudG9TdHJpbmcoJ2hleCcpO1xuICB9XG4gIGlmIChBcnJheS5pc0FycmF5KHYpKSB7XG4gICAgcmV0dXJuIHYubWFwKChlLCBpKSA9PiB0b1BsYWluT2JqZWN0KGUsIG9wdHMsIFsuLi5wYXRoLCBpXSkpO1xuICB9XG4gIGlmICh0eXBlb2YgdiA9PT0gJ29iamVjdCcpIHtcbiAgICBjb25zdCByZXN1bHQgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyh2KS5mbGF0TWFwKChba2V5LCB2YWx1ZV0pID0+IHRvUGxhaW5FbnRyaWVzKGtleSwgdmFsdWUsIG9wdHMsIHBhdGgpKVxuICAgICk7XG4gICAgaWYgKG9wdHMucHJvcGVydHlEZXNjcmlwdG9ycykge1xuICAgICAgT2JqZWN0LmFzc2lnbihyZXN1bHQsIHRvUGxhaW5PYmplY3RGcm9tUHJvcGVydHlEZXNjcmlwdG9ycyh2LCBvcHRzLCBwYXRoKSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIHYgJHt0eXBlb2Ygdn1gKTtcbn1cbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9QbGFpbk9iamVjdC51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90ZXN0dXRpbC90b1BsYWluT2JqZWN0LnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsOEJBRUM7QUF5REQsc0NBeUNDO0FBcEdELFNBQWdCLFNBQVMsQ0FBQyxDQUFnQixFQUFFLENBQWdCO0lBQzFELE9BQU8sQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLElBQXVCLEVBQUUsSUFBbUI7SUFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUMzQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hGLENBQUM7QUFFRCxTQUFTLGNBQWMsQ0FDckIsR0FBVyxFQUNYLEtBQWEsRUFDYixJQUF1QixFQUN2QixJQUFtQjtJQUVuQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2QyxPQUFPLEVBQUUsQ0FBQztJQUNaLENB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LE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzFCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUNwRixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJ0eXBlIFRvUGxhaW5PYmplY3RPcHRzID0ge1xuICBwcm9wZXJ0eURlc2NyaXB0b3JzPzogYm9vbGVhbjtcbiAgc2tpcFVuZGVmaW5lZFZhbHVlcz86IGJvb2xlYW47XG4gIGlnbm9yZVBhdGhzPzogc3RyaW5nW10gfCAoKHBhdGg6IFBhdGhFbGVtZW50W10pID0+IGJvb2xlYW4pO1xuICBhcHBseT86ICh2OiB1bmtub3duLCBwYXRoOiBQYXRoRWxlbWVudFtdKSA9PiB1bmtub3duO1xufTtcbmV4cG9ydCB0eXBlIFBhdGhFbGVtZW50ID0gc3RyaW5nIHwgbnVtYmVyO1xuXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hQYXRoKGE6IFBhdGhFbGVtZW50W10sIGI6IFBhdGhFbGVtZW50W10pOiBib29sZWFuIHtcbiAgcmV0dXJuIGEubGVuZ3RoID09PSBiLmxlbmd0aCAmJiBhLmV2ZXJ5KChlLCBpKSA9PiBlID09PSBiW2ldKTtcbn1cblxuZnVuY3Rpb24gaW5jbHVkZVBhdGgob3B0czogVG9QbGFpbk9iamVjdE9wdHMsIHBhdGg6IFBhdGhFbGVtZW50W10pOiBib29sZWFuIHtcbiAgaWYgKCFvcHRzLmlnbm9yZVBhdGhzKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbiAgaWYgKHR5cGVvZiBvcHRzLmlnbm9yZVBhdGhzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcmV0dXJuICFvcHRzLmlnbm9yZVBhdGhzKHBhdGgpO1xuICB9XG4gIHJldHVybiAhb3B0cy5pZ25vcmVQYXRocy5zb21lKChpZ25vcmVQYXRoKSA9PiBtYXRjaFBhdGgocGF0aCwgaWdub3JlUGF0aC5zcGxpdCgnLicpKSk7XG59XG5cbmZ1bmN0aW9uIHRvUGxhaW5FbnRyaWVzKFxuICBrZXk6IHN0cmluZyxcbiAgdmFsdWU6IHN0cmluZyxcbiAgb3B0czogVG9QbGFpbk9iamVjdE9wdHMsXG4gIHBhdGg6IFBhdGhFbGVtZW50W11cbik6IFtdIHwgW1tzdHJpbmcsIHVua25vd25dXSB7XG4gIGlmICghaW5jbHVkZVBhdGgob3B0cywgWy4uLnBhdGgsIGtleV0pKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkICYmIChvcHRzLnNraXBVbmRlZmluZWRWYWx1ZXMgPz8gdHJ1ZSkpIHtcbiAgICByZXR1cm4gW107XG4gIH1cbiAgcmV0dXJuIFtba2V5LCB0b1BsYWluT2JqZWN0KHZhbHVlLCBvcHRzLCBbLi4ucGF0aCwga2V5XSldXTtcbn1cblxuZnVuY3Rpb24gZ2V0QWxsRGVzY3JpcHRvcnModjogdW5rbm93bik6IFByb3BlcnR5RGVzY3JpcHRvck1hcCB7XG4gIGlmICh2ID09PSBudWxsIHx8IHR5cGVvZiB2ICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICBjb25zdCBkZXNjcmlwdG9yczogUHJvcGVydHlEZXNjcmlwdG9yTWFwID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModik7XG4gIGNvbnN0IHByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKHYpO1xuICBpZiAocHJvdG8pIHtcbiAgICBPYmplY3QuYXNzaWduKGRlc2NyaXB0b3JzLCBnZXRBbGxEZXNjcmlwdG9ycyhwcm90bykpO1xuICB9XG4gIHJldHVybiBkZXNjcmlwdG9ycztcbn1cblxuZnVuY3Rpb24gdG9QbGFpbk9iamVjdEZyb21Qcm9wZXJ0eURlc2NyaXB0b3JzKHY6IHVua25vd24sIG9wdHM6IFRvUGxhaW5PYmplY3RPcHRzLCBwYXRoOiBQYXRoRWxlbWVudFtdKSB7XG4gIGNvbnN0IGRlc2NyaXB0b3JzID0gZ2V0QWxsRGVzY3JpcHRvcnModik7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMoZGVzY3JpcHRvcnMpLmZsYXRNYXAoKFtrZXksIGRlc2NyaXB0b3JdKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGRlc2NyaXB0b3IudmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgaWYgKGRlc2NyaXB0b3IudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm4gdG9QbGFpbkVudHJpZXMoa2V5LCBkZXNjcmlwdG9yLnZhbHVlLCBvcHRzLCBwYXRoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgZGVzY3JpcHRvci5nZXQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIHRvUGxhaW5FbnRyaWVzKGtleSwgZGVzY3JpcHRvci5nZXQuY2FsbCh2KSwgb3B0cywgcGF0aCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gW107XG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvUGxhaW5PYmplY3QodjogdW5rbm93biwgb3B0czogVG9QbGFpbk9iamVjdE9wdHMgPSB7fSwgcGF0aDogUGF0aEVsZW1lbnRbXSA9IFtdKTogdW5rbm93biB7XG4gIGlmIChvcHRzLmFwcGx5KSB7XG4gICAgY29uc3QgcmVzdWx0ID0gb3B0cy5hcHBseSh2LCBwYXRoKTtcbiAgICBpZiAocmVzdWx0ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuICB9XG5cbiAgc3dpdGNoICh0eXBlb2Ygdikge1xuICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICBjYXNlICd1bmRlZmluZWQnOlxuICAgICAgcmV0dXJuIHY7XG4gICAgY2FzZSAnYmlnaW50JzpcbiAgICAgIHJldHVybiB2LnRvU3RyaW5nKCk7XG4gICAgY2FzZSAnZnVuY3Rpb24nOlxuICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgaWYgKHYgPT09IG51bGwpIHtcbiAgICByZXR1cm4gdjtcbiAgfVxuXG4gIGlmIChCdWZmZXIuaXNCdWZmZXIodikpIHtcbiAgICByZXR1cm4gdi50b1N0cmluZygnaGV4Jyk7XG4gIH1cbiAgaWYgKEFycmF5LmlzQXJyYXkodikpIHtcbiAgICByZXR1cm4gdi5tYXAoKGUsIGkpID0+IHRvUGxhaW5PYmplY3QoZSwgb3B0cywgWy4uLnBhdGgsIGldKSk7XG4gIH1cbiAgaWYgKHR5cGVvZiB2ID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHJlc3VsdCA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIE9iamVjdC5lbnRyaWVzKHYpLmZsYXRNYXAoKFtrZXksIHZhbHVlXSkgPT4gdG9QbGFpbkVudHJpZXMoa2V5LCB2YWx1ZSwgb3B0cywgcGF0aCkpXG4gICAgKTtcbiAgICBpZiAob3B0cy5wcm9wZXJ0eURlc2NyaXB0b3JzKSB7XG4gICAgICBPYmplY3QuYXNzaWduKHJlc3VsdCwgdG9QbGFpbk9iamVjdEZyb21Qcm9wZXJ0eURlc2NyaXB0b3JzKHYsIG9wdHMsIHBhdGgpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYHVua25vd24gdiAke3R5cGVvZiB2fWApO1xufVxuIl19
@@ -0,0 +1,11 @@
1
+ /** We receive a proof in the form:
2
+ * 0x18Bitcoin Signed Message:\n<varint_length><ENTROPY><ADDRESS><UUID>
3
+ * and when verifying our message we want to exclude the 0x18Bitcoin Signed Message:\n<varint_length>
4
+ * of the proof so that we are left with the entropy address and uuid as our message.
5
+ * This is what we are going to be verifying.
6
+ *
7
+ * @param proof
8
+ * @returns
9
+ */
10
+ export declare function trimMessagePrefix(proof: Buffer): Buffer;
11
+ //# sourceMappingURL=trimMessagePrefix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trimMessagePrefix.d.ts","sourceRoot":"","sources":["../../../src/testutil/trimMessagePrefix.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAavD"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.trimMessagePrefix = trimMessagePrefix;
37
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
38
+ /** We receive a proof in the form:
39
+ * 0x18Bitcoin Signed Message:\n<varint_length><ENTROPY><ADDRESS><UUID>
40
+ * and when verifying our message we want to exclude the 0x18Bitcoin Signed Message:\n<varint_length>
41
+ * of the proof so that we are left with the entropy address and uuid as our message.
42
+ * This is what we are going to be verifying.
43
+ *
44
+ * @param proof
45
+ * @returns
46
+ */
47
+ function trimMessagePrefix(proof) {
48
+ const prefix = '\u0018Bitcoin Signed Message:\n';
49
+ if (proof.toString().startsWith(prefix)) {
50
+ proof = proof.slice(Buffer.from(prefix).length);
51
+ utxolib.bufferutils.varuint.decode(proof, 0);
52
+ // Determines how many bytes were consumed during our last varuint.decode(Buffer, offset)
53
+ // So if varuint.decode(0xfd) then varuint.decode.bytes = 3
54
+ // varuint.decode(0xfe) then varuint.decode.bytes = 5, etc.
55
+ const varintBytesLength = utxolib.bufferutils.varuint.decode.bytes;
56
+ proof.slice(varintBytesLength);
57
+ }
58
+ return proof;
59
+ }
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpbU1lc3NhZ2VQcmVmaXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvdHJpbU1lc3NhZ2VQcmVmaXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSw4Q0FhQztBQXhCRCw4REFBZ0Q7QUFFaEQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxLQUFhO0lBQzdDLE1BQU0sTUFBTSxHQUFHLGlDQUFpQyxDQUFDO0lBQ2pELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3hDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3Qyx5RkFBeUY7UUFDekYsMkRBQTJEO1FBQzNELDJEQUEyRDtRQUMzRCxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFbkUsS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuLyoqIFdlIHJlY2VpdmUgYSBwcm9vZiBpbiB0aGUgZm9ybTpcbiAqIDB4MThCaXRjb2luIFNpZ25lZCBNZXNzYWdlOlxcbjx2YXJpbnRfbGVuZ3RoPjxFTlRST1BZPjxBRERSRVNTPjxVVUlEPlxuICogYW5kIHdoZW4gdmVyaWZ5aW5nIG91ciBtZXNzYWdlIHdlIHdhbnQgdG8gZXhjbHVkZSB0aGUgMHgxOEJpdGNvaW4gU2lnbmVkIE1lc3NhZ2U6XFxuPHZhcmludF9sZW5ndGg+XG4gKiBvZiB0aGUgcHJvb2Ygc28gdGhhdCB3ZSBhcmUgbGVmdCB3aXRoIHRoZSBlbnRyb3B5IGFkZHJlc3MgYW5kIHV1aWQgYXMgb3VyIG1lc3NhZ2UuXG4gKiBUaGlzIGlzIHdoYXQgd2UgYXJlIGdvaW5nIHRvIGJlIHZlcmlmeWluZy5cbiAqXG4gKiBAcGFyYW0gcHJvb2ZcbiAqIEByZXR1cm5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmltTWVzc2FnZVByZWZpeChwcm9vZjogQnVmZmVyKTogQnVmZmVyIHtcbiAgY29uc3QgcHJlZml4ID0gJ1xcdTAwMThCaXRjb2luIFNpZ25lZCBNZXNzYWdlOlxcbic7XG4gIGlmIChwcm9vZi50b1N0cmluZygpLnN0YXJ0c1dpdGgocHJlZml4KSkge1xuICAgIHByb29mID0gcHJvb2Yuc2xpY2UoQnVmZmVyLmZyb20ocHJlZml4KS5sZW5ndGgpO1xuICAgIHV0eG9saWIuYnVmZmVydXRpbHMudmFydWludC5kZWNvZGUocHJvb2YsIDApO1xuICAgIC8vIERldGVybWluZXMgaG93IG1hbnkgYnl0ZXMgd2VyZSBjb25zdW1lZCBkdXJpbmcgb3VyIGxhc3QgdmFydWludC5kZWNvZGUoQnVmZmVyLCBvZmZzZXQpXG4gICAgLy8gU28gaWYgdmFydWludC5kZWNvZGUoMHhmZCkgdGhlbiB2YXJ1aW50LmRlY29kZS5ieXRlcyA9IDNcbiAgICAvLyB2YXJ1aW50LmRlY29kZSgweGZlKSB0aGVuIHZhcnVpbnQuZGVjb2RlLmJ5dGVzID0gNSwgZXRjLlxuICAgIGNvbnN0IHZhcmludEJ5dGVzTGVuZ3RoID0gdXR4b2xpYi5idWZmZXJ1dGlscy52YXJ1aW50LmRlY29kZS5ieXRlcztcblxuICAgIHByb29mLnNsaWNlKHZhcmludEJ5dGVzTGVuZ3RoKTtcbiAgfVxuICByZXR1cm4gcHJvb2Y7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/utxo-core",
3
- "version": "1.8.1-beta.16",
3
+ "version": "1.8.1-beta.161",
4
4
  "description": "BitGo UTXO Core types",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -27,7 +27,7 @@
27
27
  "lint": "eslint --quiet .",
28
28
  "prepare": "npm run build",
29
29
  "test": "npm run unit-test",
30
- "unit-test": "mocha --recursive test/"
30
+ "unit-test": "mocha --recursive \"dist/test/**/*.js\""
31
31
  },
32
32
  "author": "BitGo SDK Team <sdkteam@bitgo.com>",
33
33
  "license": "MIT",
@@ -45,16 +45,18 @@
45
45
  "publishConfig": {
46
46
  "access": "public"
47
47
  },
48
+ "type": "commonjs",
48
49
  "nyc": {
49
50
  "extension": [
50
51
  ".ts"
51
52
  ]
52
53
  },
53
54
  "dependencies": {
54
- "@bitgo-beta/unspents": "0.13.2-beta.899",
55
- "@bitgo-beta/utxo-lib": "8.0.3-beta.900",
55
+ "@bitgo-beta/unspents": "0.13.2-beta.1044",
56
+ "@bitgo-beta/utxo-lib": "8.0.3-beta.1045",
56
57
  "@bitgo/wasm-miniscript": "2.0.0-beta.7",
57
- "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4"
58
+ "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
59
+ "bitcoinjs-message": "npm:@bitgo-forks/bitcoinjs-message@1.0.0-master.3"
58
60
  },
59
- "gitHead": "7849ae6d9644af95823d5f1c0f9f3f280f653167"
61
+ "gitHead": "34594a8178d928ceaf4031e2fa5e7161be01ef30"
60
62
  }