@bitgo-beta/utxo-core 1.0.1-alpha.115 → 1.0.1-alpha.117

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.
@@ -1,4 +1,5 @@
1
1
  export * from './toSpend';
2
2
  export * from './toSign';
3
3
  export * from './utils';
4
+ export * from './verify';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bip322/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/bip322/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./toSpend"), exports);
18
18
  __exportStar(require("./toSign"), exports);
19
19
  __exportStar(require("./utils"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlwMzIyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsMkNBQXlCO0FBQ3pCLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdG9TcGVuZCc7XG5leHBvcnQgKiBmcm9tICcuL3RvU2lnbic7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbiJdfQ==
20
+ __exportStar(require("./verify"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlwMzIyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsMkNBQXlCO0FBQ3pCLDBDQUF3QjtBQUN4QiwyQ0FBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RvU3BlbmQnO1xuZXhwb3J0ICogZnJvbSAnLi90b1NpZ24nO1xuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XG5leHBvcnQgKiBmcm9tICcuL3ZlcmlmeSc7XG4iXX0=
@@ -9,7 +9,7 @@ export declare const MAX_NUM_BIP322_INPUTS = 200;
9
9
  * Create the base PSBT for the to_sign transaction for BIP322 signing.
10
10
  * There will be ever 1 output.
11
11
  */
12
- export declare function createBaseToSignPsbt(rootWalletKeys?: bitgo.RootWalletKeys): bitgo.UtxoPsbt;
12
+ export declare function createBaseToSignPsbt(rootWalletKeys?: bitgo.RootWalletKeys, network?: import("@bitgo-beta/utxo-lib").Network): bitgo.UtxoPsbt;
13
13
  /**
14
14
  * Add a BIP322 input to the PSBT.
15
15
  * Source implementation:
@@ -1 +1 @@
1
- {"version":3,"file":"toSign.d.ts","sourceRoot":"","sources":["../../../src/bip322/toSign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAyB,MAAM,sBAAsB,CAAC;AAM1E,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC,QAAQ,CAmB1F;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,SAAa,GAAG,IAAI,CA6BlH;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,KAAK,CAAC,QAAQ,EACpB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,GACvB,IAAI,CA0EN"}
1
+ {"version":3,"file":"toSign.d.ts","sourceRoot":"","sources":["../../../src/bip322/toSign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAyB,MAAM,sBAAsB,CAAC;AAM1E,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AACF,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,cAAc,CAAC,EAAE,KAAK,CAAC,cAAc,EACrC,OAAO,yCAAmB,GACzB,KAAK,CAAC,QAAQ,CAmBhB;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,SAAa,GAAG,IAAI,CA6BlH;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,KAAK,CAAC,QAAQ,EACpB,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,QAAQ,EAAE,KAAK,CAAC,QAAQ,GACvB,IAAI,CA0EN"}
@@ -13,9 +13,9 @@ exports.MAX_NUM_BIP322_INPUTS = 200;
13
13
  * Create the base PSBT for the to_sign transaction for BIP322 signing.
14
14
  * There will be ever 1 output.
15
15
  */
16
- function createBaseToSignPsbt(rootWalletKeys) {
16
+ function createBaseToSignPsbt(rootWalletKeys, network = utxo_lib_1.networks.bitcoin) {
17
17
  // Create PSBT object for constructing the transaction
18
- const psbt = utxo_lib_1.bitgo.createPsbtForNetwork({ network: utxo_lib_1.networks.bitcoin });
18
+ const psbt = utxo_lib_1.bitgo.createPsbtForNetwork({ network });
19
19
  // Set default value for nVersion and nLockTime
20
20
  psbt.setVersion(0); // nVersion = 0
21
21
  psbt.setLocktime(0); // nLockTime = 0
@@ -123,4 +123,4 @@ function addBip322InputWithChainAndIndex(psbt, message, rootWalletKeys, scriptId
123
123
  psbt.updateInput(inputIndex, utxo_lib_1.bitgo.getPsbtBip32DerivationOutputUpdate(rootWalletKeys, walletKeys, utxo_lib_1.bitgo.scriptTypeForChain(scriptId.chain)));
124
124
  }
125
125
  }
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9TaWduLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpcDMyMi90b1NpZ24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLG9EQW1CQztBQVlELHdDQTZCQztBQUVELDBFQStFQztBQTlKRCxtREFBMEU7QUFDMUUscUZBQXFGO0FBRXJGLG1DQUFnRDtBQUNoRCx1Q0FBZ0U7QUFPbkQsUUFBQSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFFekM7OztHQUdHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsY0FBcUM7SUFDeEUsc0RBQXNEO0lBQ3RELE1BQU0sSUFBSSxHQUFHLGdCQUFLLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsbUJBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLCtDQUErQztJQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZTtJQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCO0lBRXJDLGlCQUFpQjtJQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxxQkFBcUI7UUFDdkMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG1DQUFtQztLQUNqRSxDQUFDLENBQUM7SUFFSCx1RUFBdUU7SUFDdkUsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNuQixnQkFBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxJQUFVLEVBQUUsT0FBZSxFQUFFLGNBQThCLEVBQUUsR0FBRyxHQUFHLG9CQUFVO0lBQzFHLE1BQU0sU0FBUyxHQUFHLElBQUEsaUNBQXVCLEVBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckYsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksNkJBQXFCLEVBQUUsQ0FBQztRQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2Qyw2QkFBcUIsR0FBRyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELElBQUksQ0FBQyxRQUFRLENBQUM7UUFDWixJQUFJLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLHNDQUFzQztRQUMvRCxLQUFLLEVBQUUsQ0FBQyxFQUFFLHVCQUF1QjtRQUNqQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLHVCQUF1QjtRQUNwQyxjQUFjLEVBQUUsU0FBUyxDQUFDLFFBQVEsRUFBRSxFQUFFLHlEQUF5RDtRQUMvRixXQUFXLEVBQUUsc0JBQVcsQ0FBQyxXQUFXO0tBQ3JDLENBQUMsQ0FBQztJQUNILE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUU7UUFDM0IsV0FBVyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsY0FBYyxDQUFDLFlBQVksRUFBRTtLQUN2RSxDQUFDLENBQUM7SUFFSCxJQUFJLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxFQUFFLFlBQVksRUFBRSxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBQ0QsSUFBSSxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUU7WUFDM0IsYUFBYSxFQUFFLGNBQWMsQ0FBQyxhQUFhO1NBQzVDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxtRkFBbUY7SUFDbkYsSUFBQSw2QkFBcUIsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsU0FBZ0IsK0JBQStCLENBQzdDLElBQW9CLEVBQ3BCLE9BQWUsRUFDZixjQUFvQyxFQUNwQyxRQUF3QjtJQUV4QixNQUFNLFVBQVUsR0FBRyxnQkFBSyxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1RCxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekYsTUFBTSxNQUFNLEdBQUcsZ0JBQUssQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQ3ZELFVBQVUsQ0FBQyxVQUFVLEVBQ3JCLGdCQUFLLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUN6QyxDQUFDO0lBRUYsY0FBYyxDQUFDLElBQVksRUFBRSxPQUFPLEVBQUU7UUFDcEMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO1FBQ2pDLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWTtRQUNqQyxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7S0FDcEMsQ0FBQyxDQUFDO0lBRUgsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUUvQyxvRkFBb0Y7SUFDcEYsb0dBQW9HO0lBQ3BHLDJGQUEyRjtJQUMzRixNQUFNLFFBQVEsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQW9CLENBQUM7SUFDdEQsSUFBSSxVQUFVLEtBQUssTUFBTSxFQUFFLENBQUM7UUFDMUIsTUFBTSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxHQUFHLGdCQUFLLENBQUMsYUFBYSxDQUFDLHFCQUFxQixDQUN0RyxVQUFVLENBQUMsVUFBVSxFQUNyQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQ3hELENBQUM7UUFDRixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRTtZQUMzQixhQUFhLEVBQUUsQ0FBQyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDO1NBQ3RFLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFO1lBQzNCLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFDdEIsTUFBTSxFQUFFLElBQUEsZ0NBQWdCLEVBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDbkQsSUFBSSxFQUFFLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUMzRixpQkFBaUIsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVzthQUNuRCxDQUFDLENBQUM7U0FDSixDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFLENBQUM7UUFDdkMsTUFBTSxFQUNKLGNBQWMsRUFBRSxjQUFjLEVBQzlCLFlBQVksRUFBRSxZQUFZLEVBQzFCLFdBQVcsR0FDWixHQUFHLGdCQUFLLENBQUMsYUFBYSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV2RSxNQUFNLHNCQUFzQixHQUFHLGdCQUFLLENBQUMsTUFBTSxDQUFDLDRCQUE0QixDQUFDO1lBQ3ZFLFlBQVk7WUFDWixjQUFjO1lBQ2Qsa0JBQWtCLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQztTQUM1RSxDQUFDLENBQUM7UUFDSCxnQkFBSyxDQUFDLDJDQUEyQyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLHNCQUFzQixDQUFDLENBQUM7UUFFckcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUU7WUFDM0IsY0FBYyxFQUFFLGNBQWM7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUU7WUFDM0IsYUFBYSxFQUFFLFdBQVc7U0FDM0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUU7WUFDM0Isa0JBQWtCLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDekMsVUFBVSxFQUFFLEVBQUU7Z0JBQ2QsTUFBTSxFQUFFLElBQUEsZ0NBQWdCLEVBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDbkQsSUFBSSxFQUFFLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUMzRixpQkFBaUIsRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVzthQUNuRCxDQUFDLENBQUM7U0FDSixDQUFDLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNOLGlEQUFpRDtRQUNqRCxJQUFJLENBQUMsV0FBVyxDQUNkLFVBQVUsRUFDVixnQkFBSyxDQUFDLGtDQUFrQyxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsZ0JBQUssQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDL0csQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHNidCwgYml0Z28sIG5ldHdvcmtzLCBUcmFuc2FjdGlvbiB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IHRvWE9ubHlQdWJsaWNLZXkgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYi9kaXN0L3NyYy9iaXRnby9vdXRwdXRTY3JpcHRzJztcblxuaW1wb3J0IHsgYWRkQmlwMzIyUHJvb2ZNZXNzYWdlIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBCSVAzMjJfVEFHLCBidWlsZFRvU3BlbmRUcmFuc2FjdGlvbiB9IGZyb20gJy4vdG9TcGVuZCc7XG5cbmV4cG9ydCB0eXBlIEFkZHJlc3NEZXRhaWxzID0ge1xuICByZWRlZW1TY3JpcHQ/OiBCdWZmZXI7XG4gIHdpdG5lc3NTY3JpcHQ/OiBCdWZmZXI7XG4gIHNjcmlwdFB1YktleTogQnVmZmVyO1xufTtcbmV4cG9ydCBjb25zdCBNQVhfTlVNX0JJUDMyMl9JTlBVVFMgPSAyMDA7XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBiYXNlIFBTQlQgZm9yIHRoZSB0b19zaWduIHRyYW5zYWN0aW9uIGZvciBCSVAzMjIgc2lnbmluZy5cbiAqIFRoZXJlIHdpbGwgYmUgZXZlciAxIG91dHB1dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhc2VUb1NpZ25Qc2J0KHJvb3RXYWxsZXRLZXlzPzogYml0Z28uUm9vdFdhbGxldEtleXMpOiBiaXRnby5VdHhvUHNidCB7XG4gIC8vIENyZWF0ZSBQU0JUIG9iamVjdCBmb3IgY29uc3RydWN0aW5nIHRoZSB0cmFuc2FjdGlvblxuICBjb25zdCBwc2J0ID0gYml0Z28uY3JlYXRlUHNidEZvck5ldHdvcmsoeyBuZXR3b3JrOiBuZXR3b3Jrcy5iaXRjb2luIH0pO1xuICAvLyBTZXQgZGVmYXVsdCB2YWx1ZSBmb3IgblZlcnNpb24gYW5kIG5Mb2NrVGltZVxuICBwc2J0LnNldFZlcnNpb24oMCk7IC8vIG5WZXJzaW9uID0gMFxuICBwc2J0LnNldExvY2t0aW1lKDApOyAvLyBuTG9ja1RpbWUgPSAwXG5cbiAgLy8gU2V0IHRoZSBvdXRwdXRcbiAgcHNidC5hZGRPdXRwdXQoe1xuICAgIHZhbHVlOiBCaWdJbnQoMCksIC8vIHZvdXRbMF0ublZhbHVlID0gMFxuICAgIHNjcmlwdDogQnVmZmVyLmZyb20oWzB4NmFdKSwgLy8gdm91dFswXS5zY3JpcHRQdWJLZXkgPSBPUF9SRVRVUk5cbiAgfSk7XG5cbiAgLy8gSWYgcm9vdFdhbGxldEtleXMgYXJlIHByb3ZpZGVkLCBhZGQgdGhlbSB0byB0aGUgUFNCVCBhcyBnbG9iYWwgeHB1YnNcbiAgaWYgKHJvb3RXYWxsZXRLZXlzKSB7XG4gICAgYml0Z28uYWRkWHB1YnNUb1BzYnQocHNidCwgcm9vdFdhbGxldEtleXMpO1xuICB9XG5cbiAgcmV0dXJuIHBzYnQ7XG59XG5cbi8qKlxuICogQWRkIGEgQklQMzIyIGlucHV0IHRvIHRoZSBQU0JULlxuICogU291cmNlIGltcGxlbWVudGF0aW9uOlxuICogaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy9ibG9iL21hc3Rlci9iaXAtMDMyMi5tZWRpYXdpa2kjZnVsbFxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIC0gVGhlIG1lc3NhZ2UgdGhhdCBpcyBoYXNoZWQgaW50byB0aGUgYHRvX3NwZW5kYCB0cmFuc2FjdGlvbi5cbiAqIEBwYXJhbSB7QWRkcmVzc0RldGFpbHN9IGFkZHJlc3NEZXRhaWxzIC0gVGhlIGRldGFpbHMgb2YgdGhlIGFkZHJlc3MsIGluY2x1ZGluZyByZWRlZW1TY3JpcHQgYW5kL29yIHdpdG5lc3NTY3JpcHQuXG4gKiBAcGFyYW0ge3N0cmluZ30gW3RhZz1CSVAzMjJfVEFHXSAtIFRoZSB0YWcgdG8gdXNlIGZvciBoYXNoaW5nLCBkZWZhdWx0cyB0byBCSVAzMjJfVEFHLlxuICogQHJldHVybnMge1BzYnR9IC0gVGhlIGhleCByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29uc3RydWN0ZWQgUFNCVC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZEJpcDMyMklucHV0KHBzYnQ6IFBzYnQsIG1lc3NhZ2U6IHN0cmluZywgYWRkcmVzc0RldGFpbHM6IEFkZHJlc3NEZXRhaWxzLCB0YWcgPSBCSVAzMjJfVEFHKTogdm9pZCB7XG4gIGNvbnN0IHRvU3BlbmRUeCA9IGJ1aWxkVG9TcGVuZFRyYW5zYWN0aW9uKGFkZHJlc3NEZXRhaWxzLnNjcmlwdFB1YktleSwgbWVzc2FnZSwgdGFnKTtcbiAgaWYgKHBzYnQuZGF0YS5pbnB1dHMubGVuZ3RoID49IE1BWF9OVU1fQklQMzIyX0lOUFVUUykge1xuICAgIHRocm93IG5ldyBFcnJvcihgRXhjZWVkZWQgbWF4aW11bSBudW1iZXIgb2YgQklQMzIyIGlucHV0cyAoJHtNQVhfTlVNX0JJUDMyMl9JTlBVVFN9KWApO1xuICB9XG5cbiAgcHNidC5hZGRJbnB1dCh7XG4gICAgaGFzaDogdG9TcGVuZFR4LmdldElkKCksIC8vIHZpblswXS5wcmV2b3V0Lmhhc2ggPSB0b19zcGVuZC50eGlkXG4gICAgaW5kZXg6IDAsIC8vIHZpblswXS5wcmV2b3V0Lm4gPSAwXG4gICAgc2VxdWVuY2U6IDAsIC8vIHZpblswXS5uU2VxdWVuY2UgPSAwXG4gICAgbm9uV2l0bmVzc1V0eG86IHRvU3BlbmRUeC50b0J1ZmZlcigpLCAvLyBwcmV2aW91cyB0cmFuc2FjdGlvbiBmb3IgdXMgdG8gcmVidWlsZCBsYXRlciB0byB2ZXJpZnlcbiAgICBzaWdoYXNoVHlwZTogVHJhbnNhY3Rpb24uU0lHSEFTSF9BTEwsXG4gIH0pO1xuICBjb25zdCBpbnB1dEluZGV4ID0gcHNidC5kYXRhLmlucHV0cy5sZW5ndGggLSAxO1xuICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHtcbiAgICB3aXRuZXNzVXR4bzogeyB2YWx1ZTogQmlnSW50KDApLCBzY3JpcHQ6IGFkZHJlc3NEZXRhaWxzLnNjcmlwdFB1YktleSB9LFxuICB9KTtcblxuICBpZiAoYWRkcmVzc0RldGFpbHMucmVkZWVtU2NyaXB0KSB7XG4gICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7IHJlZGVlbVNjcmlwdDogYWRkcmVzc0RldGFpbHMucmVkZWVtU2NyaXB0IH0pO1xuICB9XG4gIGlmIChhZGRyZXNzRGV0YWlscy53aXRuZXNzU2NyaXB0KSB7XG4gICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgICB3aXRuZXNzU2NyaXB0OiBhZGRyZXNzRGV0YWlscy53aXRuZXNzU2NyaXB0LFxuICAgIH0pO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBtZXNzYWdlIGFzIGEgcHJvcHJpZXRhcnkga2V5IHZhbHVlIHRvIHRoZSBQU0JUIHNvIHdlIGNhbiB2ZXJpZnkgaXQgbGF0ZXJcbiAgYWRkQmlwMzIyUHJvb2ZNZXNzYWdlKHBzYnQsIGlucHV0SW5kZXgsIEJ1ZmZlci5mcm9tKG1lc3NhZ2UpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFkZEJpcDMyMklucHV0V2l0aENoYWluQW5kSW5kZXgoXG4gIHBzYnQ6IGJpdGdvLlV0eG9Qc2J0LFxuICBtZXNzYWdlOiBzdHJpbmcsXG4gIHJvb3RXYWxsZXRLZXlzOiBiaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgc2NyaXB0SWQ6IGJpdGdvLlNjcmlwdElkXG4pOiB2b2lkIHtcbiAgY29uc3Qgc2NyaXB0VHlwZSA9IGJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihzY3JpcHRJZC5jaGFpbik7XG4gIGNvbnN0IHdhbGxldEtleXMgPSByb290V2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KHNjcmlwdElkLmNoYWluLCBzY3JpcHRJZC5pbmRleCk7XG4gIGNvbnN0IG91dHB1dCA9IGJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhcbiAgICB3YWxsZXRLZXlzLnB1YmxpY0tleXMsXG4gICAgYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKHNjcmlwdElkLmNoYWluKVxuICApO1xuXG4gIGFkZEJpcDMyMklucHV0KHBzYnQgYXMgUHNidCwgbWVzc2FnZSwge1xuICAgIHNjcmlwdFB1YktleTogb3V0cHV0LnNjcmlwdFB1YktleSxcbiAgICByZWRlZW1TY3JpcHQ6IG91dHB1dC5yZWRlZW1TY3JpcHQsXG4gICAgd2l0bmVzc1NjcmlwdDogb3V0cHV0LndpdG5lc3NTY3JpcHQsXG4gIH0pO1xuXG4gIGNvbnN0IGlucHV0SW5kZXggPSBwc2J0LmRhdGEuaW5wdXRzLmxlbmd0aCAtIDE7XG5cbiAgLy8gV2hlbiBhZGRpbmcgdGhlIHRhcHJvb3QgbWV0YWRhdGEsIHdlIGFzc3VtZSB0aGF0IHdlIGFyZSBOT1QgdXNpbmcgdGhlIGJhY2t1cCBwYXRoXG4gIC8vIEZvciBzY3JpcHQgdHlwZSBwMnRyLCBpdCBtZWFucyB0aGF0IHdlIGFyZSB1c2luZyBzaWduZXIgYW5kIGJpdGdvIGtleXMgd2hlbiBjcmVhdGluZyB0aGUgdGFwIHRyZWVcbiAgLy8gc3BlbmRpbmcgcGF0aHMuIEZvciBwMnRyTXVzaWcyLCBpdCBtZWFucyB0aGF0IHdlIGFyZSB1c2luZyB0aGUgdGFwcm9vdCBrZXkgcGF0aCBzcGVuZGluZ1xuICBjb25zdCBrZXlOYW1lcyA9IFsndXNlcicsICdiaXRnbyddIGFzIGJpdGdvLktleU5hbWVbXTtcbiAgaWYgKHNjcmlwdFR5cGUgPT09ICdwMnRyJykge1xuICAgIGNvbnN0IHsgY29udHJvbEJsb2NrLCB3aXRuZXNzU2NyaXB0LCBsZWFmVmVyc2lvbiwgbGVhZkhhc2ggfSA9IGJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlU3BlbmRTY3JpcHRQMnRyKFxuICAgICAgd2FsbGV0S2V5cy5wdWJsaWNLZXlzLFxuICAgICAgW3dhbGxldEtleXMudXNlci5wdWJsaWNLZXksIHdhbGxldEtleXMuYml0Z28ucHVibGljS2V5XVxuICAgICk7XG4gICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgICB0YXBMZWFmU2NyaXB0OiBbeyBjb250cm9sQmxvY2ssIHNjcmlwdDogd2l0bmVzc1NjcmlwdCwgbGVhZlZlcnNpb24gfV0sXG4gICAgfSk7XG5cbiAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHtcbiAgICAgIHRhcEJpcDMyRGVyaXZhdGlvbjoga2V5TmFtZXMubWFwKChrZXkpID0+ICh7XG4gICAgICAgIGxlYWZIYXNoZXM6IFtsZWFmSGFzaF0sXG4gICAgICAgIHB1YmtleTogdG9YT25seVB1YmxpY0tleSh3YWxsZXRLZXlzW2tleV0ucHVibGljS2V5KSxcbiAgICAgICAgcGF0aDogcm9vdFdhbGxldEtleXMuZ2V0RGVyaXZhdGlvblBhdGgocm9vdFdhbGxldEtleXNba2V5XSwgc2NyaXB0SWQuY2hhaW4sIHNjcmlwdElkLmluZGV4KSxcbiAgICAgICAgbWFzdGVyRmluZ2VycHJpbnQ6IHJvb3RXYWxsZXRLZXlzW2tleV0uZmluZ2VycHJpbnQsXG4gICAgICB9KSksXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoc2NyaXB0VHlwZSA9PT0gJ3AydHJNdXNpZzInKSB7XG4gICAgY29uc3Qge1xuICAgICAgaW50ZXJuYWxQdWJrZXk6IHRhcEludGVybmFsS2V5LFxuICAgICAgb3V0cHV0UHVia2V5OiB0YXBPdXRwdXRLZXksXG4gICAgICB0YXB0cmVlUm9vdCxcbiAgICB9ID0gYml0Z28ub3V0cHV0U2NyaXB0cy5jcmVhdGVLZXlQYXRoUDJ0ck11c2lnMih3YWxsZXRLZXlzLnB1YmxpY0tleXMpO1xuXG4gICAgY29uc3QgcGFydGljaXBhbnRzS2V5VmFsRGF0YSA9IGJpdGdvLm11c2lnMi5lbmNvZGVQc2J0TXVzaWcyUGFydGljaXBhbnRzKHtcbiAgICAgIHRhcE91dHB1dEtleSxcbiAgICAgIHRhcEludGVybmFsS2V5LFxuICAgICAgcGFydGljaXBhbnRQdWJLZXlzOiBbd2FsbGV0S2V5cy51c2VyLnB1YmxpY0tleSwgd2FsbGV0S2V5cy5iaXRnby5wdWJsaWNLZXldLFxuICAgIH0pO1xuICAgIGJpdGdvLmFkZFByb3ByaWV0YXJ5S2V5VmFsdWVzRnJvbVVua25vd25LZXlWYWx1ZXMocHNidCwgJ2lucHV0JywgaW5wdXRJbmRleCwgcGFydGljaXBhbnRzS2V5VmFsRGF0YSk7XG5cbiAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHtcbiAgICAgIHRhcEludGVybmFsS2V5OiB0YXBJbnRlcm5hbEtleSxcbiAgICB9KTtcblxuICAgIHBzYnQudXBkYXRlSW5wdXQoaW5wdXRJbmRleCwge1xuICAgICAgdGFwTWVya2xlUm9vdDogdGFwdHJlZVJvb3QsXG4gICAgfSk7XG5cbiAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHtcbiAgICAgIHRhcEJpcDMyRGVyaXZhdGlvbjoga2V5TmFtZXMubWFwKChrZXkpID0+ICh7XG4gICAgICAgIGxlYWZIYXNoZXM6IFtdLFxuICAgICAgICBwdWJrZXk6IHRvWE9ubHlQdWJsaWNLZXkod2FsbGV0S2V5c1trZXldLnB1YmxpY0tleSksXG4gICAgICAgIHBhdGg6IHJvb3RXYWxsZXRLZXlzLmdldERlcml2YXRpb25QYXRoKHJvb3RXYWxsZXRLZXlzW2tleV0sIHNjcmlwdElkLmNoYWluLCBzY3JpcHRJZC5pbmRleCksXG4gICAgICAgIG1hc3RlckZpbmdlcnByaW50OiByb290V2FsbGV0S2V5c1trZXldLmZpbmdlcnByaW50LFxuICAgICAgfSkpLFxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIC8vIEFkZCBiaXAzMiBkZXJpdmF0aW9uIGluZm9ybWF0aW9uIGZvciB0aGUgaW5wdXRcbiAgICBwc2J0LnVwZGF0ZUlucHV0KFxuICAgICAgaW5wdXRJbmRleCxcbiAgICAgIGJpdGdvLmdldFBzYnRCaXAzMkRlcml2YXRpb25PdXRwdXRVcGRhdGUocm9vdFdhbGxldEtleXMsIHdhbGxldEtleXMsIGJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihzY3JpcHRJZC5jaGFpbikpXG4gICAgKTtcbiAgfVxufVxuIl19
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9TaWduLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpcDMyMi90b1NpZ24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBaUJBLG9EQXNCQztBQVlELHdDQTZCQztBQUVELDBFQStFQztBQWpLRCxtREFBMEU7QUFDMUUscUZBQXFGO0FBRXJGLG1DQUFnRDtBQUNoRCx1Q0FBZ0U7QUFPbkQsUUFBQSxxQkFBcUIsR0FBRyxHQUFHLENBQUM7QUFFekM7OztHQUdHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQ2xDLGNBQXFDLEVBQ3JDLE9BQU8sR0FBRyxtQkFBUSxDQUFDLE9BQU87SUFFMUIsc0RBQXNEO0lBQ3RELE1BQU0sSUFBSSxHQUFHLGdCQUFLLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELCtDQUErQztJQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZTtJQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCO0lBRXJDLGlCQUFpQjtJQUNqQixJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxxQkFBcUI7UUFDdkMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLG1DQUFtQztLQUNqRSxDQUFDLENBQUM7SUFFSCx1RUFBdUU7SUFDdkUsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNuQixnQkFBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsY0FBYyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxJQUFVLEVBQUUsT0FBZSxFQUFFLGNBQThCLEVBQUUsR0FBRyxHQUFHLG9CQUFV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cmtzLCBUcmFuc2FjdGlvbiB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IHRvWE9ubHlQdWJsaWNLZXkgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYi9kaXN0L3NyYy9iaXRnby9vdXRwdXRTY3JpcHRzJztcblxuaW1wb3J0IHsgYWRkQmlwMzIyUHJvb2ZNZXNzYWdlIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBCSVAzMjJfVEFHLCBidWlsZFRvU3BlbmRUcmFuc2FjdGlvbiB9IGZyb20gJy4vdG9TcGVuZCc7XG5cbmV4cG9ydCB0eXBlIEFkZHJlc3NEZXRhaWxzID0ge1xuICByZWRlZW1TY3JpcHQ/OiBCdWZmZXI7XG4gIHdpdG5lc3NTY3JpcHQ/OiBCdWZmZXI7XG4gIHNjcmlwdFB1YktleTogQnVmZmVyO1xufTtcbmV4cG9ydCBjb25zdCBNQVhfTlVNX0JJUDMyMl9JTlBVVFMgPSAyMDA7XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBiYXNlIFBTQlQgZm9yIHRoZSB0b19zaWduIHRyYW5zYWN0aW9uIGZvciBCSVAzMjIgc2lnbmluZy5cbiAqIFRoZXJlIHdpbGwgYmUgZXZlciAxIG91dHB1dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhc2VUb1NpZ25Qc2J0KFxuICByb290V2FsbGV0S2V5cz86IGJpdGdvLlJvb3RXYWxsZXRLZXlzLFxuICBuZXR3b3JrID0gbmV0d29ya3MuYml0Y29pblxuKTogYml0Z28uVXR4b1BzYnQge1xuICAvLyBDcmVhdGUgUFNCVCBvYmplY3QgZm9yIGNvbnN0cnVjdGluZyB0aGUgdHJhbnNhY3Rpb25cbiAgY29uc3QgcHNidCA9IGJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yayB9KTtcbiAgLy8gU2V0IGRlZmF1bHQgdmFsdWUgZm9yIG5WZXJzaW9uIGFuZCBuTG9ja1RpbWVcbiAgcHNidC5zZXRWZXJzaW9uKDApOyAvLyBuVmVyc2lvbiA9IDBcbiAgcHNidC5zZXRMb2NrdGltZSgwKTsgLy8gbkxvY2tUaW1lID0gMFxuXG4gIC8vIFNldCB0aGUgb3V0cHV0XG4gIHBzYnQuYWRkT3V0cHV0KHtcbiAgICB2YWx1ZTogQmlnSW50KDApLCAvLyB2b3V0WzBdLm5WYWx1ZSA9IDBcbiAgICBzY3JpcHQ6IEJ1ZmZlci5mcm9tKFsweDZhXSksIC8vIHZvdXRbMF0uc2NyaXB0UHViS2V5ID0gT1BfUkVUVVJOXG4gIH0pO1xuXG4gIC8vIElmIHJvb3RXYWxsZXRLZXlzIGFyZSBwcm92aWRlZCwgYWRkIHRoZW0gdG8gdGhlIFBTQlQgYXMgZ2xvYmFsIHhwdWJzXG4gIGlmIChyb290V2FsbGV0S2V5cykge1xuICAgIGJpdGdvLmFkZFhwdWJzVG9Qc2J0KHBzYnQsIHJvb3RXYWxsZXRLZXlzKTtcbiAgfVxuXG4gIHJldHVybiBwc2J0O1xufVxuXG4vKipcbiAqIEFkZCBhIEJJUDMyMiBpbnB1dCB0byB0aGUgUFNCVC5cbiAqIFNvdXJjZSBpbXBsZW1lbnRhdGlvbjpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvYmxvYi9tYXN0ZXIvYmlwLTAzMjIubWVkaWF3aWtpI2Z1bGxcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbWVzc2FnZSAtIFRoZSBtZXNzYWdlIHRoYXQgaXMgaGFzaGVkIGludG8gdGhlIGB0b19zcGVuZGAgdHJhbnNhY3Rpb24uXG4gKiBAcGFyYW0ge0FkZHJlc3NEZXRhaWxzfSBhZGRyZXNzRGV0YWlscyAtIFRoZSBkZXRhaWxzIG9mIHRoZSBhZGRyZXNzLCBpbmNsdWRpbmcgcmVkZWVtU2NyaXB0IGFuZC9vciB3aXRuZXNzU2NyaXB0LlxuICogQHBhcmFtIHtzdHJpbmd9IFt0YWc9QklQMzIyX1RBR10gLSBUaGUgdGFnIHRvIHVzZSBmb3IgaGFzaGluZywgZGVmYXVsdHMgdG8gQklQMzIyX1RBRy5cbiAqIEByZXR1cm5zIHtQc2J0fSAtIFRoZSBoZXggcmVwcmVzZW50YXRpb24gb2YgdGhlIGNvbnN0cnVjdGVkIFBTQlQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRCaXAzMjJJbnB1dChwc2J0OiBQc2J0LCBtZXNzYWdlOiBzdHJpbmcsIGFkZHJlc3NEZXRhaWxzOiBBZGRyZXNzRGV0YWlscywgdGFnID0gQklQMzIyX1RBRyk6IHZvaWQge1xuICBjb25zdCB0b1NwZW5kVHggPSBidWlsZFRvU3BlbmRUcmFuc2FjdGlvbihhZGRyZXNzRGV0YWlscy5zY3JpcHRQdWJLZXksIG1lc3NhZ2UsIHRhZyk7XG4gIGlmIChwc2J0LmRhdGEuaW5wdXRzLmxlbmd0aCA+PSBNQVhfTlVNX0JJUDMyMl9JTlBVVFMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEV4Y2VlZGVkIG1heGltdW0gbnVtYmVyIG9mIEJJUDMyMiBpbnB1dHMgKCR7TUFYX05VTV9CSVAzMjJfSU5QVVRTfSlgKTtcbiAgfVxuXG4gIHBzYnQuYWRkSW5wdXQoe1xuICAgIGhhc2g6IHRvU3BlbmRUeC5nZXRJZCgpLCAvLyB2aW5bMF0ucHJldm91dC5oYXNoID0gdG9fc3BlbmQudHhpZFxuICAgIGluZGV4OiAwLCAvLyB2aW5bMF0ucHJldm91dC5uID0gMFxuICAgIHNlcXVlbmNlOiAwLCAvLyB2aW5bMF0ublNlcXVlbmNlID0gMFxuICAgIG5vbldpdG5lc3NVdHhvOiB0b1NwZW5kVHgudG9CdWZmZXIoKSwgLy8gcHJldmlvdXMgdHJhbnNhY3Rpb24gZm9yIHVzIHRvIHJlYnVpbGQgbGF0ZXIgdG8gdmVyaWZ5XG4gICAgc2lnaGFzaFR5cGU6IFRyYW5zYWN0aW9uLlNJR0hBU0hfQUxMLFxuICB9KTtcbiAgY29uc3QgaW5wdXRJbmRleCA9IHBzYnQuZGF0YS5pbnB1dHMubGVuZ3RoIC0gMTtcbiAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgd2l0bmVzc1V0eG86IHsgdmFsdWU6IEJpZ0ludCgwKSwgc2NyaXB0OiBhZGRyZXNzRGV0YWlscy5zY3JpcHRQdWJLZXkgfSxcbiAgfSk7XG5cbiAgaWYgKGFkZHJlc3NEZXRhaWxzLnJlZGVlbVNjcmlwdCkge1xuICAgIHBzYnQudXBkYXRlSW5wdXQoaW5wdXRJbmRleCwgeyByZWRlZW1TY3JpcHQ6IGFkZHJlc3NEZXRhaWxzLnJlZGVlbVNjcmlwdCB9KTtcbiAgfVxuICBpZiAoYWRkcmVzc0RldGFpbHMud2l0bmVzc1NjcmlwdCkge1xuICAgIHBzYnQudXBkYXRlSW5wdXQoaW5wdXRJbmRleCwge1xuICAgICAgd2l0bmVzc1NjcmlwdDogYWRkcmVzc0RldGFpbHMud2l0bmVzc1NjcmlwdCxcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEFkZCB0aGUgbWVzc2FnZSBhcyBhIHByb3ByaWV0YXJ5IGtleSB2YWx1ZSB0byB0aGUgUFNCVCBzbyB3ZSBjYW4gdmVyaWZ5IGl0IGxhdGVyXG4gIGFkZEJpcDMyMlByb29mTWVzc2FnZShwc2J0LCBpbnB1dEluZGV4LCBCdWZmZXIuZnJvbShtZXNzYWdlKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRCaXAzMjJJbnB1dFdpdGhDaGFpbkFuZEluZGV4KFxuICBwc2J0OiBiaXRnby5VdHhvUHNidCxcbiAgbWVzc2FnZTogc3RyaW5nLFxuICByb290V2FsbGV0S2V5czogYml0Z28uUm9vdFdhbGxldEtleXMsXG4gIHNjcmlwdElkOiBiaXRnby5TY3JpcHRJZFxuKTogdm9pZCB7XG4gIGNvbnN0IHNjcmlwdFR5cGUgPSBiaXRnby5zY3JpcHRUeXBlRm9yQ2hhaW4oc2NyaXB0SWQuY2hhaW4pO1xuICBjb25zdCB3YWxsZXRLZXlzID0gcm9vdFdhbGxldEtleXMuZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChzY3JpcHRJZC5jaGFpbiwgc2NyaXB0SWQuaW5kZXgpO1xuICBjb25zdCBvdXRwdXQgPSBiaXRnby5vdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdDJvZjMoXG4gICAgd2FsbGV0S2V5cy5wdWJsaWNLZXlzLFxuICAgIGJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihzY3JpcHRJZC5jaGFpbilcbiAgKTtcblxuICBhZGRCaXAzMjJJbnB1dChwc2J0IGFzIFBzYnQsIG1lc3NhZ2UsIHtcbiAgICBzY3JpcHRQdWJLZXk6IG91dHB1dC5zY3JpcHRQdWJLZXksXG4gICAgcmVkZWVtU2NyaXB0OiBvdXRwdXQucmVkZWVtU2NyaXB0LFxuICAgIHdpdG5lc3NTY3JpcHQ6IG91dHB1dC53aXRuZXNzU2NyaXB0LFxuICB9KTtcblxuICBjb25zdCBpbnB1dEluZGV4ID0gcHNidC5kYXRhLmlucHV0cy5sZW5ndGggLSAxO1xuXG4gIC8vIFdoZW4gYWRkaW5nIHRoZSB0YXByb290IG1ldGFkYXRhLCB3ZSBhc3N1bWUgdGhhdCB3ZSBhcmUgTk9UIHVzaW5nIHRoZSBiYWNrdXAgcGF0aFxuICAvLyBGb3Igc2NyaXB0IHR5cGUgcDJ0ciwgaXQgbWVhbnMgdGhhdCB3ZSBhcmUgdXNpbmcgc2lnbmVyIGFuZCBiaXRnbyBrZXlzIHdoZW4gY3JlYXRpbmcgdGhlIHRhcCB0cmVlXG4gIC8vIHNwZW5kaW5nIHBhdGhzLiBGb3IgcDJ0ck11c2lnMiwgaXQgbWVhbnMgdGhhdCB3ZSBhcmUgdXNpbmcgdGhlIHRhcHJvb3Qga2V5IHBhdGggc3BlbmRpbmdcbiAgY29uc3Qga2V5TmFtZXMgPSBbJ3VzZXInLCAnYml0Z28nXSBhcyBiaXRnby5LZXlOYW1lW107XG4gIGlmIChzY3JpcHRUeXBlID09PSAncDJ0cicpIHtcbiAgICBjb25zdCB7IGNvbnRyb2xCbG9jaywgd2l0bmVzc1NjcmlwdCwgbGVhZlZlcnNpb24sIGxlYWZIYXNoIH0gPSBiaXRnby5vdXRwdXRTY3JpcHRzLmNyZWF0ZVNwZW5kU2NyaXB0UDJ0cihcbiAgICAgIHdhbGxldEtleXMucHVibGljS2V5cyxcbiAgICAgIFt3YWxsZXRLZXlzLnVzZXIucHVibGljS2V5LCB3YWxsZXRLZXlzLmJpdGdvLnB1YmxpY0tleV1cbiAgICApO1xuICAgIHBzYnQudXBkYXRlSW5wdXQoaW5wdXRJbmRleCwge1xuICAgICAgdGFwTGVhZlNjcmlwdDogW3sgY29udHJvbEJsb2NrLCBzY3JpcHQ6IHdpdG5lc3NTY3JpcHQsIGxlYWZWZXJzaW9uIH1dLFxuICAgIH0pO1xuXG4gICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgICB0YXBCaXAzMkRlcml2YXRpb246IGtleU5hbWVzLm1hcCgoa2V5KSA9PiAoe1xuICAgICAgICBsZWFmSGFzaGVzOiBbbGVhZkhhc2hdLFxuICAgICAgICBwdWJrZXk6IHRvWE9ubHlQdWJsaWNLZXkod2FsbGV0S2V5c1trZXldLnB1YmxpY0tleSksXG4gICAgICAgIHBhdGg6IHJvb3RXYWxsZXRLZXlzLmdldERlcml2YXRpb25QYXRoKHJvb3RXYWxsZXRLZXlzW2tleV0sIHNjcmlwdElkLmNoYWluLCBzY3JpcHRJZC5pbmRleCksXG4gICAgICAgIG1hc3RlckZpbmdlcnByaW50OiByb290V2FsbGV0S2V5c1trZXldLmZpbmdlcnByaW50LFxuICAgICAgfSkpLFxuICAgIH0pO1xuICB9IGVsc2UgaWYgKHNjcmlwdFR5cGUgPT09ICdwMnRyTXVzaWcyJykge1xuICAgIGNvbnN0IHtcbiAgICAgIGludGVybmFsUHVia2V5OiB0YXBJbnRlcm5hbEtleSxcbiAgICAgIG91dHB1dFB1YmtleTogdGFwT3V0cHV0S2V5LFxuICAgICAgdGFwdHJlZVJvb3QsXG4gICAgfSA9IGJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlS2V5UGF0aFAydHJNdXNpZzIod2FsbGV0S2V5cy5wdWJsaWNLZXlzKTtcblxuICAgIGNvbnN0IHBhcnRpY2lwYW50c0tleVZhbERhdGEgPSBiaXRnby5tdXNpZzIuZW5jb2RlUHNidE11c2lnMlBhcnRpY2lwYW50cyh7XG4gICAgICB0YXBPdXRwdXRLZXksXG4gICAgICB0YXBJbnRlcm5hbEtleSxcbiAgICAgIHBhcnRpY2lwYW50UHViS2V5czogW3dhbGxldEtleXMudXNlci5wdWJsaWNLZXksIHdhbGxldEtleXMuYml0Z28ucHVibGljS2V5XSxcbiAgICB9KTtcbiAgICBiaXRnby5hZGRQcm9wcmlldGFyeUtleVZhbHVlc0Zyb21Vbmtub3duS2V5VmFsdWVzKHBzYnQsICdpbnB1dCcsIGlucHV0SW5kZXgsIHBhcnRpY2lwYW50c0tleVZhbERhdGEpO1xuXG4gICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgICB0YXBJbnRlcm5hbEtleTogdGFwSW50ZXJuYWxLZXksXG4gICAgfSk7XG5cbiAgICBwc2J0LnVwZGF0ZUlucHV0KGlucHV0SW5kZXgsIHtcbiAgICAgIHRhcE1lcmtsZVJvb3Q6IHRhcHRyZWVSb290LFxuICAgIH0pO1xuXG4gICAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7XG4gICAgICB0YXBCaXAzMkRlcml2YXRpb246IGtleU5hbWVzLm1hcCgoa2V5KSA9PiAoe1xuICAgICAgICBsZWFmSGFzaGVzOiBbXSxcbiAgICAgICAgcHVia2V5OiB0b1hPbmx5UHVibGljS2V5KHdhbGxldEtleXNba2V5XS5wdWJsaWNLZXkpLFxuICAgICAgICBwYXRoOiByb290V2FsbGV0S2V5cy5nZXREZXJpdmF0aW9uUGF0aChyb290V2FsbGV0S2V5c1trZXldLCBzY3JpcHRJZC5jaGFpbiwgc2NyaXB0SWQuaW5kZXgpLFxuICAgICAgICBtYXN0ZXJGaW5nZXJwcmludDogcm9vdFdhbGxldEtleXNba2V5XS5maW5nZXJwcmludCxcbiAgICAgIH0pKSxcbiAgICB9KTtcbiAgfSBlbHNlIHtcbiAgICAvLyBBZGQgYmlwMzIgZGVyaXZhdGlvbiBpbmZvcm1hdGlvbiBmb3IgdGhlIGlucHV0XG4gICAgcHNidC51cGRhdGVJbnB1dChcbiAgICAgIGlucHV0SW5kZXgsXG4gICAgICBiaXRnby5nZXRQc2J0QmlwMzJEZXJpdmF0aW9uT3V0cHV0VXBkYXRlKHJvb3RXYWxsZXRLZXlzLCB3YWxsZXRLZXlzLCBiaXRnby5zY3JpcHRUeXBlRm9yQ2hhaW4oc2NyaXB0SWQuY2hhaW4pKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ export type MessageInfo = {
3
+ address: string;
4
+ message: string;
5
+ pubkeys: string[];
6
+ scriptType: utxolib.bitgo.outputScripts.ScriptType2Of3;
7
+ };
8
+ export declare function assertBaseTx(tx: utxolib.bitgo.UtxoTransaction<bigint>): void;
9
+ export declare function assertTxInput(tx: utxolib.bitgo.UtxoTransaction<bigint>, inputIndex: number, prevOuts: utxolib.TxOutput<bigint>[], info: MessageInfo, checkSignature: boolean): void;
10
+ export declare function assertBip322TxProof(tx: utxolib.bitgo.UtxoTransaction<bigint>, messageInfo: MessageInfo[]): void;
11
+ export declare function assertBip322PsbtProof(psbt: utxolib.bitgo.UtxoPsbt, messageInfo: MessageInfo[]): void;
12
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/bip322/verify.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAIhD,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAEhB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC;CACxD,CAAC;AAEF,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAM5E;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EACpC,IAAI,EAAE,WAAW,EACjB,cAAc,EAAE,OAAO,GACtB,IAAI,CA8CN;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAkB/G;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CA2CpG"}
@@ -0,0 +1,115 @@
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.assertBaseTx = assertBaseTx;
37
+ exports.assertTxInput = assertTxInput;
38
+ exports.assertBip322TxProof = assertBip322TxProof;
39
+ exports.assertBip322PsbtProof = assertBip322PsbtProof;
40
+ const assert = __importStar(require("assert"));
41
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
42
+ const toSpend_1 = require("./toSpend");
43
+ function assertBaseTx(tx) {
44
+ assert.deepStrictEqual(tx.version, 0, 'Transaction version must be 0.');
45
+ assert.deepStrictEqual(tx.locktime, 0, 'Transaction locktime must be 0.');
46
+ assert.deepStrictEqual(tx.outs.length, 1, 'Transaction must have exactly 1 output.');
47
+ assert.deepStrictEqual(tx.outs[0].value, BigInt(0), 'Transaction output value must be 0.');
48
+ assert.deepStrictEqual(tx.outs[0].script.toString('hex'), '6a', 'Transaction output script must be OP_RETURN.');
49
+ }
50
+ function assertTxInput(tx, inputIndex, prevOuts, info, checkSignature) {
51
+ assert.ok(inputIndex < tx.ins.length, `inputIndex ${inputIndex} is out of range for tx with ${tx.ins.length} inputs.`);
52
+ const input = tx.ins[inputIndex];
53
+ assert.deepStrictEqual(input.index, 0, `transaction input ${inputIndex} must have index=0.`);
54
+ assert.deepStrictEqual(input.sequence, 0, `transaction input ${inputIndex} sequence must be 0.`);
55
+ // Make sure that the message is correctly encoded into the input of the transaction and
56
+ // verify that the message info corresponds
57
+ const scriptPubKey = utxolib.bitgo.outputScripts.createOutputScript2of3(info.pubkeys.map((pubkey) => Buffer.from(pubkey, 'hex')), info.scriptType, tx.network).scriptPubKey;
58
+ assert.deepStrictEqual(info.address, utxolib.address.fromOutputScript(scriptPubKey, tx.network).toString(), `Address does not match derived scriptPubKey for input ${inputIndex}.`);
59
+ const txid = utxolib.bitgo.getOutputIdForInput(input).txid;
60
+ const toSpendTx = (0, toSpend_1.buildToSpendTransaction)(scriptPubKey, info.message);
61
+ assert.deepStrictEqual(txid, toSpendTx.getId(), `Input ${inputIndex} derived to_spend transaction is not encoded in the input.`);
62
+ if (checkSignature) {
63
+ const signatureScript = utxolib.bitgo.parseSignatureScript2Of3(input);
64
+ const scriptType = signatureScript.scriptType === 'taprootKeyPathSpend'
65
+ ? 'p2trMusig2'
66
+ : signatureScript.scriptType === 'taprootScriptPathSpend'
67
+ ? 'p2tr'
68
+ : signatureScript.scriptType;
69
+ assert.deepStrictEqual(scriptType, info.scriptType, 'Script type does not match.');
70
+ utxolib.bitgo.verifySignatureWithPublicKeys(tx, inputIndex, prevOuts, info.pubkeys.map((pubkey) => Buffer.from(pubkey, 'hex')));
71
+ }
72
+ }
73
+ function assertBip322TxProof(tx, messageInfo) {
74
+ assertBaseTx(tx);
75
+ assert.deepStrictEqual(tx.ins.length, messageInfo.length, 'Transaction must have the same number of inputs as messageInfo entries.');
76
+ const prevOuts = messageInfo.map((info) => {
77
+ return {
78
+ value: 0n,
79
+ script: utxolib.bitgo.outputScripts.createOutputScript2of3(info.pubkeys.map((pubkey) => Buffer.from(pubkey, 'hex')), info.scriptType, tx.network).scriptPubKey,
80
+ };
81
+ });
82
+ tx.ins.forEach((input, inputIndex) => assertTxInput(tx, inputIndex, prevOuts, messageInfo[inputIndex], true));
83
+ }
84
+ function assertBip322PsbtProof(psbt, messageInfo) {
85
+ const unsignedTx = psbt.getUnsignedTx();
86
+ assertBaseTx(unsignedTx);
87
+ assert.deepStrictEqual(psbt.data.inputs.length, messageInfo.length, 'PSBT must have the same number of inputs as messageInfo entries.');
88
+ const prevOuts = psbt.data.inputs.map((input, inputIndex) => {
89
+ assert.ok(input.witnessUtxo, `PSBT input ${inputIndex} is missing witnessUtxo`);
90
+ return input.witnessUtxo;
91
+ });
92
+ psbt.data.inputs.forEach((input, inputIndex) => {
93
+ // Check that the metadata in the PSBT matches the messageInfo, then check the input data
94
+ const info = messageInfo[inputIndex];
95
+ // Check that the to_spend transaction is encoded in the nonWitnessUtxo
96
+ assert.ok(input.nonWitnessUtxo, `PSBT input ${inputIndex} is missing nonWitnessUtxo`);
97
+ const toSpendTx = (0, toSpend_1.buildToSpendTransaction)(prevOuts[inputIndex].script, info.message);
98
+ assert.deepStrictEqual(input.nonWitnessUtxo.toString('hex'), toSpendTx.toHex());
99
+ if (input.bip32Derivation) {
100
+ input.bip32Derivation.forEach((b) => {
101
+ const pubkey = b.pubkey.toString('hex');
102
+ assert.ok(info.pubkeys.includes(pubkey), `PSBT input ${inputIndex} has a pubkey in (tap)bip32Derivation that is not in messageInfo`);
103
+ });
104
+ }
105
+ else if (!input.tapBip32Derivation) {
106
+ throw new Error(`PSBT input ${inputIndex} is missing (tap)bip32Derivation when it should have it.`);
107
+ }
108
+ // Verify the signature on the input
109
+ assert.ok(psbt.validateSignaturesOfInputCommon(inputIndex), `PSBT input ${inputIndex} has an invalid signature.`);
110
+ // Do not check the signature when using the PSBT, the signature is not there. We are going
111
+ // to signatures in the PSBT.
112
+ assertTxInput(unsignedTx, inputIndex, prevOuts, info, false);
113
+ });
114
+ }
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpcDMyMi92ZXJpZnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFjQSxvQ0FNQztBQUVELHNDQW9EQztBQUVELGtEQWtCQztBQUVELHNEQTJDQztBQTNJRCwrQ0FBaUM7QUFFakMsOERBQWdEO0FBRWhELHVDQUFvRDtBQVVwRCxTQUFnQixZQUFZLENBQUMsRUFBeUM7SUFDcEUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsaUNBQWlDLENBQUMsQ0FBQztJQUMxRSxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSx5Q0FBeUMsQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLHFDQUFxQyxDQUFDLENBQUM7SUFDM0YsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLDhDQUE4QyxDQUFDLENBQUM7QUFDbEgsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FDM0IsRUFBeUMsRUFDekMsVUFBa0IsRUFDbEIsUUFBb0MsRUFDcEMsSUFBaUIsRUFDakIsY0FBdUI7SUFFdkIsTUFBTSxDQUFDLEVBQUUsQ0FDUCxVQUFVLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQzFCLGNBQWMsVUFBVSxnQ0FBZ0Ms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QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgYnVpbGRUb1NwZW5kVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RvU3BlbmQnO1xuXG5leHBvcnQgdHlwZSBNZXNzYWdlSW5mbyA9IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIC8vIEhleCBlbmNvZGVkIHB1YmtleXNcbiAgcHVia2V5czogc3RyaW5nW107XG4gIHNjcmlwdFR5cGU6IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlMk9mMztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRCYXNlVHgodHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4pOiB2b2lkIHtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0eC52ZXJzaW9uLCAwLCAnVHJhbnNhY3Rpb24gdmVyc2lvbiBtdXN0IGJlIDAuJyk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodHgubG9ja3RpbWUsIDAsICdUcmFuc2FjdGlvbiBsb2NrdGltZSBtdXN0IGJlIDAuJyk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwodHgub3V0cy5sZW5ndGgsIDEsICdUcmFuc2FjdGlvbiBtdXN0IGhhdmUgZXhhY3RseSAxIG91dHB1dC4nKTtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbCh0eC5vdXRzWzBdLnZhbHVlLCBCaWdJbnQoMCksICdUcmFuc2FjdGlvbiBvdXRwdXQgdmFsdWUgbXVzdCBiZSAwLicpO1xuICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHR4Lm91dHNbMF0uc2NyaXB0LnRvU3RyaW5nKCdoZXgnKSwgJzZhJywgJ1RyYW5zYWN0aW9uIG91dHB1dCBzY3JpcHQgbXVzdCBiZSBPUF9SRVRVUk4uJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRUeElucHV0KFxuICB0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248YmlnaW50PixcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBwcmV2T3V0czogdXR4b2xpYi5UeE91dHB1dDxiaWdpbnQ+W10sXG4gIGluZm86IE1lc3NhZ2VJbmZvLFxuICBjaGVja1NpZ25hdHVyZTogYm9vbGVhblxuKTogdm9pZCB7XG4gIGFzc2VydC5vayhcbiAgICBpbnB1dEluZGV4IDwgdHguaW5zLmxlbmd0aCxcbiAgICBgaW5wdXRJbmRleCAke2lucHV0SW5kZXh9IGlzIG91dCBvZiByYW5nZSBmb3IgdHggd2l0aCAke3R4Lmlucy5sZW5ndGh9IGlucHV0cy5gXG4gICk7XG4gIGNvbnN0IGlucHV0ID0gdHguaW5zW2lucHV0SW5kZXhdO1xuICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKGlucHV0LmluZGV4LCAwLCBgdHJhbnNhY3Rpb24gaW5wdXQgJHtpbnB1dEluZGV4fSBtdXN0IGhhdmUgaW5kZXg9MC5gKTtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnB1dC5zZXF1ZW5jZSwgMCwgYHRyYW5zYWN0aW9uIGlucHV0ICR7aW5wdXRJbmRleH0gc2VxdWVuY2UgbXVzdCBiZSAwLmApO1xuXG4gIC8vIE1ha2Ugc3VyZSB0aGF0IHRoZSBtZXNzYWdlIGlzIGNvcnJlY3RseSBlbmNvZGVkIGludG8gdGhlIGlucHV0IG9mIHRoZSB0cmFuc2FjdGlvbiBhbmRcbiAgLy8gdmVyaWZ5IHRoYXQgdGhlIG1lc3NhZ2UgaW5mbyBjb3JyZXNwb25kc1xuICBjb25zdCBzY3JpcHRQdWJLZXkgPSB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhcbiAgICBpbmZvLnB1YmtleXMubWFwKChwdWJrZXkpID0+IEJ1ZmZlci5mcm9tKHB1YmtleSwgJ2hleCcpKSxcbiAgICBpbmZvLnNjcmlwdFR5cGUsXG4gICAgdHgubmV0d29ya1xuICApLnNjcmlwdFB1YktleTtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChcbiAgICBpbmZvLmFkZHJlc3MsXG4gICAgdXR4b2xpYi5hZGRyZXNzLmZyb21PdXRwdXRTY3JpcHQoc2NyaXB0UHViS2V5LCB0eC5uZXR3b3JrKS50b1N0cmluZygpLFxuICAgIGBBZGRyZXNzIGRvZXMgbm90IG1hdGNoIGRlcml2ZWQgc2NyaXB0UHViS2V5IGZvciBpbnB1dCAke2lucHV0SW5kZXh9LmBcbiAgKTtcblxuICBjb25zdCB0eGlkID0gdXR4b2xpYi5iaXRnby5nZXRPdXRwdXRJZEZvcklucHV0KGlucHV0KS50eGlkO1xuICBjb25zdCB0b1NwZW5kVHggPSBidWlsZFRvU3BlbmRUcmFuc2FjdGlvbihzY3JpcHRQdWJLZXksIGluZm8ubWVzc2FnZSk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoXG4gICAgdHhpZCxcbiAgICB0b1NwZW5kVHguZ2V0SWQoKSxcbiAgICBgSW5wdXQgJHtpbnB1dEluZGV4fSBkZXJpdmVkIHRvX3NwZW5kIHRyYW5zYWN0aW9uIGlzIG5vdCBlbmNvZGVkIGluIHRoZSBpbnB1dC5gXG4gICk7XG5cbiAgaWYgKGNoZWNrU2lnbmF0dXJlKSB7XG4gICAgY29uc3Qgc2lnbmF0dXJlU2NyaXB0ID0gdXR4b2xpYi5iaXRnby5wYXJzZVNpZ25hdHVyZVNjcmlwdDJPZjMoaW5wdXQpO1xuICAgIGNvbnN0IHNjcmlwdFR5cGUgPVxuICAgICAgc2lnbmF0dXJlU2NyaXB0LnNjcmlwdFR5cGUgPT09ICd0YXByb290S2V5UGF0aFNwZW5kJ1xuICAgICAgICA/ICdwMnRyTXVzaWcyJ1xuICAgICAgICA6IHNpZ25hdHVyZVNjcmlwdC5zY3JpcHRUeXBlID09PSAndGFwcm9vdFNjcmlwdFBhdGhTcGVuZCdcbiAgICAgICAgPyAncDJ0cidcbiAgICAgICAgOiBzaWduYXR1cmVTY3JpcHQuc2NyaXB0VHlwZTtcbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKHNjcmlwdFR5cGUsIGluZm8uc2NyaXB0VHlwZSwgJ1NjcmlwdCB0eXBlIGRvZXMgbm90IG1hdGNoLicpO1xuICAgIHV0eG9saWIuYml0Z28udmVyaWZ5U2lnbmF0dXJlV2l0aFB1YmxpY0tleXMoXG4gICAgICB0eCxcbiAgICAgIGlucHV0SW5kZXgsXG4gICAgICBwcmV2T3V0cyxcbiAgICAgIGluZm8ucHVia2V5cy5tYXAoKHB1YmtleSkgPT4gQnVmZmVyLmZyb20ocHVia2V5LCAnaGV4JykpXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0QmlwMzIyVHhQcm9vZih0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248YmlnaW50PiwgbWVzc2FnZUluZm86IE1lc3NhZ2VJbmZvW10pOiB2b2lkIHtcbiAgYXNzZXJ0QmFzZVR4KHR4KTtcbiAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChcbiAgICB0eC5pbnMubGVuZ3RoLFxuICAgIG1lc3NhZ2VJbmZvLmxlbmd0aCxcbiAgICAnVHJhbnNhY3Rpb24gbXVzdCBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBpbnB1dHMgYXMgbWVzc2FnZUluZm8gZW50cmllcy4nXG4gICk7XG4gIGNvbnN0IHByZXZPdXRzID0gbWVzc2FnZUluZm8ubWFwKChpbmZvKSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHZhbHVlOiAwbixcbiAgICAgIHNjcmlwdDogdXR4b2xpYi5iaXRnby5vdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdDJvZjMoXG4gICAgICAgIGluZm8ucHVia2V5cy5tYXAoKHB1YmtleSkgPT4gQnVmZmVyLmZyb20ocHVia2V5LCAnaGV4JykpLFxuICAgICAgICBpbmZvLnNjcmlwdFR5cGUsXG4gICAgICAgIHR4Lm5ldHdvcmtcbiAgICAgICkuc2NyaXB0UHViS2V5LFxuICAgIH07XG4gIH0pO1xuICB0eC5pbnMuZm9yRWFjaCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IGFzc2VydFR4SW5wdXQodHgsIGlucHV0SW5kZXgsIHByZXZPdXRzLCBtZXNzYWdlSW5mb1tpbnB1dEluZGV4XSwgdHJ1ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0QmlwMzIyUHNidFByb29mKHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsIG1lc3NhZ2VJbmZvOiBNZXNzYWdlSW5mb1tdKTogdm9pZCB7XG4gIGNvbnN0IHVuc2lnbmVkVHggPSBwc2J0LmdldFVuc2lnbmVkVHgoKTtcblxuICBhc3NlcnRCYXNlVHgodW5zaWduZWRUeCk7XG4gIGFzc2VydC5kZWVwU3RyaWN0RXF1YWwoXG4gICAgcHNidC5kYXRhLmlucHV0cy5sZW5ndGgsXG4gICAgbWVzc2FnZUluZm8ubGVuZ3RoLFxuICAgICdQU0JUIG11c3QgaGF2ZSB0aGUgc2FtZSBudW1iZXIgb2YgaW5wdXRzIGFzIG1lc3NhZ2VJbmZvIGVudHJpZXMuJ1xuICApO1xuXG4gIGNvbnN0IHByZXZPdXRzID0gcHNidC5kYXRhLmlucHV0cy5tYXAoKGlucHV0LCBpbnB1dEluZGV4KSA9PiB7XG4gICAgYXNzZXJ0Lm9rKGlucHV0LndpdG5lc3NVdHhvLCBgUFNCVCBpbnB1dCAke2lucHV0SW5kZXh9IGlzIG1pc3Npbmcgd2l0bmVzc1V0eG9gKTtcbiAgICByZXR1cm4gaW5wdXQud2l0bmVzc1V0eG87XG4gIH0pO1xuXG4gIHBzYnQuZGF0YS5pbnB1dHMuZm9yRWFjaCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICAvLyBDaGVjayB0aGF0IHRoZSBtZXRhZGF0YSBpbiB0aGUgUFNCVCBtYXRjaGVzIHRoZSBtZXNzYWdlSW5mbywgdGhlbiBjaGVjayB0aGUgaW5wdXQgZGF0YVxuICAgIGNvbnN0IGluZm8gPSBtZXNzYWdlSW5mb1tpbnB1dEluZGV4XTtcblxuICAgIC8vIENoZWNrIHRoYXQgdGhlIHRvX3NwZW5kIHRyYW5zYWN0aW9uIGlzIGVuY29kZWQgaW4gdGhlIG5vbldpdG5lc3NVdHhvXG4gICAgYXNzZXJ0Lm9rKGlucHV0Lm5vbldpdG5lc3NVdHhvLCBgUFNCVCBpbnB1dCAke2lucHV0SW5kZXh9IGlzIG1pc3Npbmcgbm9uV2l0bmVzc1V0eG9gKTtcbiAgICBjb25zdCB0b1NwZW5kVHggPSBidWlsZFRvU3BlbmRUcmFuc2FjdGlvbihwcmV2T3V0c1tpbnB1dEluZGV4XS5zY3JpcHQsIGluZm8ubWVzc2FnZSk7XG4gICAgYXNzZXJ0LmRlZXBTdHJpY3RFcXVhbChpbnB1dC5ub25XaXRuZXNzVXR4by50b1N0cmluZygnaGV4JyksIHRvU3BlbmRUeC50b0hleCgpKTtcblxuICAgIGlmIChpbnB1dC5iaXAzMkRlcml2YXRpb24pIHtcbiAgICAgIGlucHV0LmJpcDMyRGVyaXZhdGlvbi5mb3JFYWNoKChiKSA9PiB7XG4gICAgICAgIGNvbnN0IHB1YmtleSA9IGIucHVia2V5LnRvU3RyaW5nKCdoZXgnKTtcbiAgICAgICAgYXNzZXJ0Lm9rKFxuICAgICAgICAgIGluZm8ucHVia2V5cy5pbmNsdWRlcyhwdWJrZXkpLFxuICAgICAgICAgIGBQU0JUIGlucHV0ICR7aW5wdXRJbmRleH0gaGFzIGEgcHVia2V5IGluICh0YXApYmlwMzJEZXJpdmF0aW9uIHRoYXQgaXMgbm90IGluIG1lc3NhZ2VJbmZvYFxuICAgICAgICApO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmICghaW5wdXQudGFwQmlwMzJEZXJpdmF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFBTQlQgaW5wdXQgJHtpbnB1dEluZGV4fSBpcyBtaXNzaW5nICh0YXApYmlwMzJEZXJpdmF0aW9uIHdoZW4gaXQgc2hvdWxkIGhhdmUgaXQuYCk7XG4gICAgfVxuXG4gICAgLy8gVmVyaWZ5IHRoZSBzaWduYXR1cmUgb24gdGhlIGlucHV0XG4gICAgYXNzZXJ0Lm9rKHBzYnQudmFsaWRhdGVTaWduYXR1cmVzT2ZJbnB1dENvbW1vbihpbnB1dEluZGV4KSwgYFBTQlQgaW5wdXQgJHtpbnB1dEluZGV4fSBoYXMgYW4gaW52YWxpZCBzaWduYXR1cmUuYCk7XG5cbiAgICAvLyBEbyBub3QgY2hlY2sgdGhlIHNpZ25hdHVyZSB3aGVuIHVzaW5nIHRoZSBQU0JULCB0aGUgc2lnbmF0dXJlIGlzIG5vdCB0aGVyZS4gV2UgYXJlIGdvaW5nXG4gICAgLy8gdG8gc2lnbmF0dXJlcyBpbiB0aGUgUFNCVC5cbiAgICBhc3NlcnRUeElucHV0KHVuc2lnbmVkVHgsIGlucHV0SW5kZXgsIHByZXZPdXRzLCBpbmZvLCBmYWxzZSk7XG4gIH0pO1xufVxuIl19
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/utxo-core",
3
- "version": "1.0.1-alpha.115",
3
+ "version": "1.0.1-alpha.117",
4
4
  "description": "BitGo UTXO Core types",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
@@ -52,12 +52,12 @@
52
52
  ]
53
53
  },
54
54
  "dependencies": {
55
- "@bitgo-beta/unspents": "0.11.3-alpha.385",
56
- "@bitgo-beta/utxo-lib": "4.0.1-alpha.385",
55
+ "@bitgo-beta/unspents": "0.11.3-alpha.387",
56
+ "@bitgo-beta/utxo-lib": "4.0.1-alpha.387",
57
57
  "@bitgo/wasm-miniscript": "2.0.0-beta.7",
58
58
  "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
59
59
  "bitcoinjs-message": "npm:@bitgo-forks/bitcoinjs-message@1.0.0-master.3",
60
60
  "fast-sha256": "^1.3.0"
61
61
  },
62
- "gitHead": "9cb603f7d18076468f3671626412f81ad42c83ab"
62
+ "gitHead": "546f05448e8def0db7b1aeac856673263e50bd96"
63
63
  }