@bitgo-beta/utxo-core 1.0.1-alpha.94 → 1.0.1-alpha.96

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,2 +1,4 @@
1
1
  export * from './toSpend';
2
+ export * from './toSign';
3
+ export * from './utils';
2
4
  //# 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"}
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"}
@@ -15,4 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./toSpend"), exports);
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlwMzIyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3RvU3BlbmQnO1xuIl19
18
+ __exportStar(require("./toSign"), exports);
19
+ __exportStar(require("./utils"), exports);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlwMzIyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBMEI7QUFDMUIsMkNBQXlCO0FBQ3pCLDBDQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdG9TcGVuZCc7XG5leHBvcnQgKiBmcm9tICcuL3RvU2lnbic7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { Psbt, bitgo } from '@bitgo-beta/utxo-lib';
2
+ export type AddressDetails = {
3
+ redeemScript?: Buffer;
4
+ witnessScript?: Buffer;
5
+ scriptPubKey: Buffer;
6
+ };
7
+ /**
8
+ * Construct the toSign PSBT for a BIP322 verification.
9
+ * Source implementation:
10
+ * https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki#full
11
+ *
12
+ * @param {string} message - The message that is hashed into the `to_spend` transaction.
13
+ * @param {AddressDetails} addressDetails - The details of the address, including redeemScript and/or witnessScript.
14
+ * @param {string} [tag=BIP322_TAG] - The tag to use for hashing, defaults to BIP322_TAG.
15
+ * @returns {Psbt} - The hex representation of the constructed PSBT.
16
+ */
17
+ export declare function buildToSignPsbt(message: string, addressDetails: AddressDetails, tag?: string): Psbt;
18
+ export declare function buildToSignPsbtForChainAndIndex(message: string, rootWalletKeys: bitgo.RootWalletKeys, chain: bitgo.ChainCode, index: number): Psbt;
19
+ //# sourceMappingURL=toSign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toSign.d.ts","sourceRoot":"","sources":["../../../src/bip322/toSign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAKnD,MAAM,MAAM,cAAc,GAAG;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,SAAa,GAAG,IAAI,CAmCvG;AAED,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,MAAM,EACf,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,KAAK,EAAE,MAAM,GACZ,IAAI,CAcN"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildToSignPsbt = buildToSignPsbt;
4
+ exports.buildToSignPsbtForChainAndIndex = buildToSignPsbtForChainAndIndex;
5
+ const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
6
+ const utils_1 = require("./utils");
7
+ const toSpend_1 = require("./toSpend");
8
+ /**
9
+ * Construct the toSign PSBT for a BIP322 verification.
10
+ * Source implementation:
11
+ * https://github.com/bitcoin/bips/blob/master/bip-0322.mediawiki#full
12
+ *
13
+ * @param {string} message - The message that is hashed into the `to_spend` transaction.
14
+ * @param {AddressDetails} addressDetails - The details of the address, including redeemScript and/or witnessScript.
15
+ * @param {string} [tag=BIP322_TAG] - The tag to use for hashing, defaults to BIP322_TAG.
16
+ * @returns {Psbt} - The hex representation of the constructed PSBT.
17
+ */
18
+ function buildToSignPsbt(message, addressDetails, tag = toSpend_1.BIP322_TAG) {
19
+ const toSpendTx = (0, toSpend_1.buildToSpendTransaction)(addressDetails.scriptPubKey, message, tag);
20
+ // Create PSBT object for constructing the transaction
21
+ const psbt = new utxo_lib_1.Psbt();
22
+ // Set default value for nVersion and nLockTime
23
+ psbt.setVersion(0); // nVersion = 0
24
+ psbt.setLocktime(0); // nLockTime = 0
25
+ // Set the input
26
+ psbt.addInput({
27
+ hash: toSpendTx.getId(), // vin[0].prevout.hash = to_spend.txid
28
+ index: 0, // vin[0].prevout.n = 0
29
+ sequence: 0, // vin[0].nSequence = 0
30
+ nonWitnessUtxo: toSpendTx.toBuffer(), // previous transaction for us to rebuild later to verify
31
+ });
32
+ psbt.updateInput(0, {
33
+ witnessUtxo: { value: BigInt(0), script: addressDetails.scriptPubKey },
34
+ });
35
+ if (addressDetails.redeemScript) {
36
+ psbt.updateInput(0, { redeemScript: addressDetails.redeemScript });
37
+ }
38
+ if (addressDetails.witnessScript) {
39
+ psbt.updateInput(0, { witnessScript: addressDetails.witnessScript });
40
+ }
41
+ // Add the message as a proprietary key value to the PSBT so we can verify it later
42
+ (0, utils_1.addBip322ProofMessage)(psbt, 0, Buffer.from(message));
43
+ // Set the output
44
+ psbt.addOutput({
45
+ value: BigInt(0), // vout[0].nValue = 0
46
+ script: Buffer.from([0x6a]), // vout[0].scriptPubKey = OP_RETURN
47
+ });
48
+ return psbt;
49
+ }
50
+ function buildToSignPsbtForChainAndIndex(message, rootWalletKeys, chain, index) {
51
+ if ((0, utils_1.isTaprootChain)(chain)) {
52
+ throw new Error('BIP322 is not supported for Taproot script types.');
53
+ }
54
+ const output = utxo_lib_1.bitgo.outputScripts.createOutputScript2of3(rootWalletKeys.deriveForChainAndIndex(chain, index).publicKeys, utxo_lib_1.bitgo.scriptTypeForChain(chain));
55
+ return buildToSignPsbt(message, {
56
+ scriptPubKey: output.scriptPubKey,
57
+ redeemScript: output.redeemScript,
58
+ witnessScript: output.witnessScript,
59
+ });
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9TaWduLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpcDMyMi90b1NpZ24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFxQkEsMENBbUNDO0FBRUQsMEVBbUJDO0FBN0VELG1EQUFtRDtBQUVuRCxtQ0FBZ0U7QUFDaEUsdUNBQWdFO0FBUWhFOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLGVBQWUsQ0FBQyxPQUFlLEVBQUUsY0FBOEIsRUFBRSxHQUFHLEdBQUcsb0JBQVU7SUFDL0YsTUFBTSxTQUFTLEdBQUcsSUFBQSxpQ0FBdUIsRUFBQyxjQUFjLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztJQUVyRixzREFBc0Q7SUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxlQUFJLEVBQUUsQ0FBQztJQUN4QiwrQ0FBK0M7SUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWU7SUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtJQUNyQyxnQkFBZ0I7SUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNaLElBQUksRUFBRSxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsc0NBQXNDO1FBQy9ELEtBQUssRUFBRSxDQUFDLEVBQUUsdUJBQXVCO1FBQ2pDLFFBQVEsRUFBRSxDQUFDLEVBQUUsdUJBQXVCO1FBQ3BDLGNBQWMsRUFBRSxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUseURBQXlEO0tBQ2hHLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFO1FBQ2xCLFdBQVcsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLGNBQWMsQ0FBQyxZQUFZLEVBQUU7S0FDdkUsQ0FBQyxDQUFDO0lBRUgsSUFBSSxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxZQUFZLEVBQUUsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUNELElBQUksY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxtRkFBbUY7SUFDbkYsSUFBQSw2QkFBcUIsRUFBQyxJQUFzQixFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFFdkUsaUJBQWlCO0lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDYixLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLHFCQUFxQjtRQUN2QyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsbUNBQW1DO0tBQ2pFLENBQUMsQ0FBQztJQUNILE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQWdCLCtCQUErQixDQUM3QyxPQUFlLEVBQ2YsY0FBb0MsRUFDcEMsS0FBc0IsRUFDdEIsS0FBYTtJQUViLElBQUksSUFBQSxzQkFBYyxFQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFDRCxNQUFNLE1BQU0sR0FBRyxnQkFBSyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FDdkQsY0FBYyxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQzlELGdCQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQ2hDLENBQUM7SUFFRixPQUFPLGVBQWUsQ0FBQyxPQUFPLEVBQUU7UUFDOUIsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO1FBQ2pDLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWTtRQUNqQyxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7S0FDcEMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBzYnQsIGJpdGdvIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5pbXBvcnQgeyBhZGRCaXAzMjJQcm9vZk1lc3NhZ2UsIGlzVGFwcm9vdENoYWluIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBCSVAzMjJfVEFHLCBidWlsZFRvU3BlbmRUcmFuc2FjdGlvbiB9IGZyb20gJy4vdG9TcGVuZCc7XG5cbmV4cG9ydCB0eXBlIEFkZHJlc3NEZXRhaWxzID0ge1xuICByZWRlZW1TY3JpcHQ/OiBCdWZmZXI7XG4gIHdpdG5lc3NTY3JpcHQ/OiBCdWZmZXI7XG4gIHNjcmlwdFB1YktleTogQnVmZmVyO1xufTtcblxuLyoqXG4gKiBDb25zdHJ1Y3QgdGhlIHRvU2lnbiBQU0JUIGZvciBhIEJJUDMyMiB2ZXJpZmljYXRpb24uXG4gKiBTb3VyY2UgaW1wbGVtZW50YXRpb246XG4gKiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXBzL2Jsb2IvbWFzdGVyL2JpcC0wMzIyLm1lZGlhd2lraSNmdWxsXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0aGF0IGlzIGhhc2hlZCBpbnRvIHRoZSBgdG9fc3BlbmRgIHRyYW5zYWN0aW9uLlxuICogQHBhcmFtIHtBZGRyZXNzRGV0YWlsc30gYWRkcmVzc0RldGFpbHMgLSBUaGUgZGV0YWlscyBvZiB0aGUgYWRkcmVzcywgaW5jbHVkaW5nIHJlZGVlbVNjcmlwdCBhbmQvb3Igd2l0bmVzc1NjcmlwdC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBbdGFnPUJJUDMyMl9UQUddIC0gVGhlIHRhZyB0byB1c2UgZm9yIGhhc2hpbmcsIGRlZmF1bHRzIHRvIEJJUDMyMl9UQUcuXG4gKiBAcmV0dXJucyB7UHNidH0gLSBUaGUgaGV4IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBjb25zdHJ1Y3RlZCBQU0JULlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRUb1NpZ25Qc2J0KG1lc3NhZ2U6IHN0cmluZywgYWRkcmVzc0RldGFpbHM6IEFkZHJlc3NEZXRhaWxzLCB0YWcgPSBCSVAzMjJfVEFHKTogUHNidCB7XG4gIGNvbnN0IHRvU3BlbmRUeCA9IGJ1aWxkVG9TcGVuZFRyYW5zYWN0aW9uKGFkZHJlc3NEZXRhaWxzLnNjcmlwdFB1YktleSwgbWVzc2FnZSwgdGFnKTtcblxuICAvLyBDcmVhdGUgUFNCVCBvYmplY3QgZm9yIGNvbnN0cnVjdGluZyB0aGUgdHJhbnNhY3Rpb25cbiAgY29uc3QgcHNidCA9IG5ldyBQc2J0KCk7XG4gIC8vIFNldCBkZWZhdWx0IHZhbHVlIGZvciBuVmVyc2lvbiBhbmQgbkxvY2tUaW1lXG4gIHBzYnQuc2V0VmVyc2lvbigwKTsgLy8gblZlcnNpb24gPSAwXG4gIHBzYnQuc2V0TG9ja3RpbWUoMCk7IC8vIG5Mb2NrVGltZSA9IDBcbiAgLy8gU2V0IHRoZSBpbnB1dFxuICBwc2J0LmFkZElucHV0KHtcbiAgICBoYXNoOiB0b1NwZW5kVHguZ2V0SWQoKSwgLy8gdmluWzBdLnByZXZvdXQuaGFzaCA9IHRvX3NwZW5kLnR4aWRcbiAgICBpbmRleDogMCwgLy8gdmluWzBdLnByZXZvdXQubiA9IDBcbiAgICBzZXF1ZW5jZTogMCwgLy8gdmluWzBdLm5TZXF1ZW5jZSA9IDBcbiAgICBub25XaXRuZXNzVXR4bzogdG9TcGVuZFR4LnRvQnVmZmVyKCksIC8vIHByZXZpb3VzIHRyYW5zYWN0aW9uIGZvciB1cyB0byByZWJ1aWxkIGxhdGVyIHRvIHZlcmlmeVxuICB9KTtcbiAgcHNidC51cGRhdGVJbnB1dCgwLCB7XG4gICAgd2l0bmVzc1V0eG86IHsgdmFsdWU6IEJpZ0ludCgwKSwgc2NyaXB0OiBhZGRyZXNzRGV0YWlscy5zY3JpcHRQdWJLZXkgfSxcbiAgfSk7XG5cbiAgaWYgKGFkZHJlc3NEZXRhaWxzLnJlZGVlbVNjcmlwdCkge1xuICAgIHBzYnQudXBkYXRlSW5wdXQoMCwgeyByZWRlZW1TY3JpcHQ6IGFkZHJlc3NEZXRhaWxzLnJlZGVlbVNjcmlwdCB9KTtcbiAgfVxuICBpZiAoYWRkcmVzc0RldGFpbHMud2l0bmVzc1NjcmlwdCkge1xuICAgIHBzYnQudXBkYXRlSW5wdXQoMCwgeyB3aXRuZXNzU2NyaXB0OiBhZGRyZXNzRGV0YWlscy53aXRuZXNzU2NyaXB0IH0pO1xuICB9XG5cbiAgLy8gQWRkIHRoZSBtZXNzYWdlIGFzIGEgcHJvcHJpZXRhcnkga2V5IHZhbHVlIHRvIHRoZSBQU0JUIHNvIHdlIGNhbiB2ZXJpZnkgaXQgbGF0ZXJcbiAgYWRkQmlwMzIyUHJvb2ZNZXNzYWdlKHBzYnQgYXMgYml0Z28uVXR4b1BzYnQsIDAsIEJ1ZmZlci5mcm9tKG1lc3NhZ2UpKTtcblxuICAvLyBTZXQgdGhlIG91dHB1dFxuICBwc2J0LmFkZE91dHB1dCh7XG4gICAgdmFsdWU6IEJpZ0ludCgwKSwgLy8gdm91dFswXS5uVmFsdWUgPSAwXG4gICAgc2NyaXB0OiBCdWZmZXIuZnJvbShbMHg2YV0pLCAvLyB2b3V0WzBdLnNjcmlwdFB1YktleSA9IE9QX1JFVFVSTlxuICB9KTtcbiAgcmV0dXJuIHBzYnQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFRvU2lnblBzYnRGb3JDaGFpbkFuZEluZGV4KFxuICBtZXNzYWdlOiBzdHJpbmcsXG4gIHJvb3RXYWxsZXRLZXlzOiBiaXRnby5Sb290V2FsbGV0S2V5cyxcbiAgY2hhaW46IGJpdGdvLkNoYWluQ29kZSxcbiAgaW5kZXg6IG51bWJlclxuKTogUHNidCB7XG4gIGlmIChpc1RhcHJvb3RDaGFpbihjaGFpbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0JJUDMyMiBpcyBub3Qgc3VwcG9ydGVkIGZvciBUYXByb290IHNjcmlwdCB0eXBlcy4nKTtcbiAgfVxuICBjb25zdCBvdXRwdXQgPSBiaXRnby5vdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdDJvZjMoXG4gICAgcm9vdFdhbGxldEtleXMuZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFpbiwgaW5kZXgpLnB1YmxpY0tleXMsXG4gICAgYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKGNoYWluKVxuICApO1xuXG4gIHJldHVybiBidWlsZFRvU2lnblBzYnQobWVzc2FnZSwge1xuICAgIHNjcmlwdFB1YktleTogb3V0cHV0LnNjcmlwdFB1YktleSxcbiAgICByZWRlZW1TY3JpcHQ6IG91dHB1dC5yZWRlZW1TY3JpcHQsXG4gICAgd2l0bmVzc1NjcmlwdDogb3V0cHV0LndpdG5lc3NTY3JpcHQsXG4gIH0pO1xufVxuIl19
@@ -1,3 +1,4 @@
1
+ import { Transaction, bitgo } from '@bitgo-beta/utxo-lib';
1
2
  export declare const BIP322_TAG = "BIP0322-signed-message";
2
3
  /**
3
4
  * Perform a tagged hash
@@ -14,7 +15,8 @@ export declare function hashMessageWithTag(message: string | Buffer, tag?: strin
14
15
  * @param {Buffer} scriptPubKey - The scriptPubKey to use for the output
15
16
  * @param {string | Buffer} message - The message to include in the transaction
16
17
  * @param {Buffer} [tag=BIP322_TAG] - The tag to use for hashing, defaults to BIP322_TAG.
17
- * @returns {string} - The hex representation of the constructed transaction
18
+ * @returns {Transaction} - The constructed transaction
18
19
  */
19
- export declare function buildToSpendTransaction(scriptPubKey: Buffer, message: string | Buffer, tag?: string): string;
20
+ export declare function buildToSpendTransaction(scriptPubKey: Buffer, message: string | Buffer, tag?: string): Transaction<bigint>;
21
+ export declare function buildToSpendTransactionFromChainAndIndex(rootWalletKeys: bitgo.RootWalletKeys, chain: bitgo.ChainCode, index: number, message: string | Buffer, tag?: string): Transaction<bigint>;
20
22
  //# sourceMappingURL=toSpend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toSpend.d.ts","sourceRoot":"","sources":["../../../src/bip322/toSpend.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU,2BAA2B,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM,CAYrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM,CA4BhH"}
1
+ {"version":3,"file":"toSpend.d.ts","sourceRoot":"","sources":["../../../src/bip322/toSpend.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,WAAW,EAAE,KAAK,EAAY,MAAM,sBAAsB,CAAC;AAI1E,eAAO,MAAM,UAAU,2BAA2B,CAAC;AAEnD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAa,GAAG,MAAM,CAYrF;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,GAAG,SAAa,GACf,WAAW,CAAC,MAAM,CAAC,CA4BrB;AAED,wBAAgB,wCAAwC,CACtD,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,KAAK,EAAE,KAAK,CAAC,SAAS,EACtB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,GAAG,SAAa,GACf,WAAW,CAAC,MAAM,CAAC,CAWrB"}
@@ -3,8 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BIP322_TAG = void 0;
4
4
  exports.hashMessageWithTag = hashMessageWithTag;
5
5
  exports.buildToSpendTransaction = buildToSpendTransaction;
6
+ exports.buildToSpendTransactionFromChainAndIndex = buildToSpendTransactionFromChainAndIndex;
6
7
  const fast_sha256_1 = require("fast-sha256");
7
8
  const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
9
+ const utils_1 = require("./utils");
8
10
  exports.BIP322_TAG = 'BIP0322-signed-message';
9
11
  /**
10
12
  * Perform a tagged hash
@@ -33,7 +35,7 @@ function hashMessageWithTag(message, tag = exports.BIP322_TAG) {
33
35
  * @param {Buffer} scriptPubKey - The scriptPubKey to use for the output
34
36
  * @param {string | Buffer} message - The message to include in the transaction
35
37
  * @param {Buffer} [tag=BIP322_TAG] - The tag to use for hashing, defaults to BIP322_TAG.
36
- * @returns {string} - The hex representation of the constructed transaction
38
+ * @returns {Transaction} - The constructed transaction
37
39
  */
38
40
  function buildToSpendTransaction(scriptPubKey, message, tag = exports.BIP322_TAG) {
39
41
  // Create PSBT object for constructing the transaction
@@ -62,6 +64,13 @@ function buildToSpendTransaction(scriptPubKey, message, tag = exports.BIP322_TAG
62
64
  script: scriptPubKey, // vout[0].scriptPubKey = message_challenge
63
65
  });
64
66
  // Return transaction
65
- return psbt.extractTransaction().toHex();
67
+ return psbt.extractTransaction();
66
68
  }
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9TcGVuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXAzMjIvdG9TcGVuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFZQSxnREFZQztBQVdELDBEQTRCQztBQS9ERCw2Q0FBbUM7QUFDbkMsbURBQTRDO0FBRS9CLFFBQUEsVUFBVSxHQUFHLHdCQUF3QixDQUFDO0FBRW5EOzs7Ozs7R0FNRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE9BQXdCLEVBQUUsR0FBRyxHQUFHLGtCQUFVO0lBQzNFLDJFQUEyRTtJQUMzRSxpRkFBaUY7SUFDakYsTUFBTSxTQUFTLEdBQUcsSUFBSSxrQkFBSSxFQUFFLENBQUM7SUFDN0IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzFDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLGtCQUFJLEVBQUUsQ0FBQztJQUNqQyxhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLGFBQWEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUIsYUFBYSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDM0MsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzNDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQix1QkFBdUIsQ0FBQyxZQUFvQixFQUFFLE9BQXdCLEVBQUUsR0FBRyxHQUFHLGtCQUFVO0lBQ3RHLHNEQUFzRDtJQUN0RCxNQUFNLElBQUksR0FBRyxJQUFJLGVBQUksRUFBRSxDQUFDO0lBQ3hCLCtDQUErQztJQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZTtJQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCO0lBQ3JDLDJFQUEyRTtJQUMzRSxNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDckQsd0RBQXdEO0lBQ3hELE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxVQUFVLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWM7SUFDckUsTUFBTSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvRSxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDaEMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEQsZ0JBQWdCO0lBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDWixJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxtQ0FBbUM7UUFDekQsS0FBSyxFQUFFLFVBQVUsRUFBRSxnQ0FBZ0M7UUFDbkQsUUFBUSxFQUFFLENBQUMsRUFBRSx1QkFBdUI7UUFDcEMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsaURBQWlEO1FBQ3pGLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLDRCQUE0QjtLQUM3RCxDQUFDLENBQUM7SUFDSCxpQkFBaUI7SUFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUNiLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUscUJBQXFCO1FBQ3ZDLE1BQU0sRUFBRSxZQUFZLEVBQUUsMkNBQTJDO0tBQ2xFLENBQUMsQ0FBQztJQUNILHFCQUFxQjtJQUNyQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXNoIH0gZnJvbSAnZmFzdC1zaGEyNTYnO1xuaW1wb3J0IHsgUHNidCB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuZXhwb3J0IGNvbnN0IEJJUDMyMl9UQUcgPSAnQklQMDMyMi1zaWduZWQtbWVzc2FnZSc7XG5cbi8qKlxuICogUGVyZm9ybSBhIHRhZ2dlZCBoYXNoXG4gKlxuICogQHBhcmFtIHtzdHJpbmcgfCBCdWZmZXJ9IG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBoYXNoIGFzIGEgQnVmZmVyIG9yIHV0Zi04IHN0cmluZ1xuICogQHBhcmFtIHtCdWZmZXJ9IFt0YWc9QklQMzIyX1RBR10gLSBUaGUgdGFnIHRvIHVzZSBmb3IgaGFzaGluZywgZGVmYXVsdHMgdG8gQklQMzIyX1RBRy5cbiAqIEByZXR1cm5zIHtCdWZmZXJ9IC0gVGhlIHJlc3VsdGluZyBoYXNoIG9mIHRoZSBtZXNzYWdlIHdpdGggdGhlIHRhZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc2hNZXNzYWdlV2l0aFRhZyhtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIsIHRhZyA9IEJJUDMyMl9UQUcpOiBCdWZmZXIge1xuICAvLyBDb21wdXRlIHRoZSBtZXNzYWdlIGhhc2ggLSBTSEEyNTYoU0hBMjU2KHRhZykgfHwgU0hBMjU2KHRhZykgfHwgbWVzc2FnZSlcbiAgLy8gUmVmZXJlbmNlOiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXBzL2Jsb2IvbWFzdGVyL2JpcC0wMzIyLm1lZGlhd2lraSNmdWxsXG4gIGNvbnN0IHRhZ0hhc2hlciA9IG5ldyBIYXNoKCk7XG4gIHRhZ0hhc2hlci51cGRhdGUoQnVmZmVyLmZyb20oQklQMzIyX1RBRykpO1xuICBjb25zdCB0YWdIYXNoID0gdGFnSGFzaGVyLmRpZ2VzdCgpO1xuICBjb25zdCBtZXNzYWdlSGFzaGVyID0gbmV3IEhhc2goKTtcbiAgbWVzc2FnZUhhc2hlci51cGRhdGUodGFnSGFzaCk7XG4gIG1lc3NhZ2VIYXNoZXIudXBkYXRlKHRhZ0hhc2gpO1xuICBtZXNzYWdlSGFzaGVyLnVwZGF0ZShCdWZmZXIuZnJvbShtZXNzYWdlKSk7XG4gIGNvbnN0IG1lc3NhZ2VIYXNoID0gbWVzc2FnZUhhc2hlci5kaWdlc3QoKTtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKG1lc3NhZ2VIYXNoKTtcbn1cblxuLyoqXG4gKiBCdWlsZCBhIEJJUDMyMiBcInRvIHNwZW5kXCIgdHJhbnNhY3Rpb25cbiAqIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy9ibG9iL21hc3Rlci9iaXAtMDMyMi5tZWRpYXdpa2kjZnVsbFxuICpcbiAqIEBwYXJhbSB7QnVmZmVyfSBzY3JpcHRQdWJLZXkgLSBUaGUgc2NyaXB0UHViS2V5IHRvIHVzZSBmb3IgdGhlIG91dHB1dFxuICogQHBhcmFtIHtzdHJpbmcgfCBCdWZmZXJ9IG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBpbmNsdWRlIGluIHRoZSB0cmFuc2FjdGlvblxuICogQHBhcmFtIHtCdWZmZXJ9IFt0YWc9QklQMzIyX1RBR10gLSBUaGUgdGFnIHRvIHVzZSBmb3IgaGFzaGluZywgZGVmYXVsdHMgdG8gQklQMzIyX1RBRy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gVGhlIGhleCByZXByZXNlbnRhdGlvbiBvZiB0aGUgY29uc3RydWN0ZWQgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVG9TcGVuZFRyYW5zYWN0aW9uKHNjcmlwdFB1YktleTogQnVmZmVyLCBtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIsIHRhZyA9IEJJUDMyMl9UQUcpOiBzdHJpbmcge1xuICAvLyBDcmVhdGUgUFNCVCBvYmplY3QgZm9yIGNvbnN0cnVjdGluZyB0aGUgdHJhbnNhY3Rpb25cbiAgY29uc3QgcHNidCA9IG5ldyBQc2J0KCk7XG4gIC8vIFNldCBkZWZhdWx0IHZhbHVlIGZvciBuVmVyc2lvbiBhbmQgbkxvY2tUaW1lXG4gIHBzYnQuc2V0VmVyc2lvbigwKTsgLy8gblZlcnNpb24gPSAwXG4gIHBzYnQuc2V0TG9ja3RpbWUoMCk7IC8vIG5Mb2NrVGltZSA9IDBcbiAgLy8gQ29tcHV0ZSB0aGUgbWVzc2FnZSBoYXNoIC0gU0hBMjU2KFNIQTI1Nih0YWcpIHx8IFNIQTI1Nih0YWcpIHx8IG1lc3NhZ2UpXG4gIGNvbnN0IG1lc3NhZ2VIYXNoID0gaGFzaE1lc3NhZ2VXaXRoVGFnKG1lc3NhZ2UsIHRhZyk7XG4gIC8vIENvbnN0cnVjdCB0aGUgc2NyaXB0U2lnIC0gT1BfMCBQVVNIMzJbIG1lc3NhZ2VfaGFzaCBdXG4gIGNvbnN0IHNjcmlwdFNpZ1BhcnRPbmUgPSBuZXcgVWludDhBcnJheShbMHgwMCwgMHgyMF0pOyAvLyBPUF8wIFBVU0gzMlxuICBjb25zdCBzY3JpcHRTaWcgPSBuZXcgVWludDhBcnJheShzY3JpcHRTaWdQYXJ0T25lLmxlbmd0aCArIG1lc3NhZ2VIYXNoLmxlbmd0aCk7XG4gIHNjcmlwdFNpZy5zZXQoc2NyaXB0U2lnUGFydE9uZSk7XG4gIHNjcmlwdFNpZy5zZXQobWVzc2FnZUhhc2gsIHNjcmlwdFNpZ1BhcnRPbmUubGVuZ3RoKTtcbiAgLy8gU2V0IHRoZSBpbnB1dFxuICBwc2J0LmFkZElucHV0KHtcbiAgICBoYXNoOiAnMCcucmVwZWF0KDY0KSwgLy8gdmluWzBdLnByZXZvdXQuaGFzaCA9IDAwMDAuLi4wMDBcbiAgICBpbmRleDogMHhmZmZmZmZmZiwgLy8gdmluWzBdLnByZXZvdXQubiA9IDB4RkZGRkZGRkZcbiAgICBzZXF1ZW5jZTogMCwgLy8gdmluWzBdLm5TZXF1ZW5jZSA9IDBcbiAgICBmaW5hbFNjcmlwdFNpZzogQnVmZmVyLmZyb20oc2NyaXB0U2lnKSwgLy8gdmluWzBdLnNjcmlwdFNpZyA9IE9QXzAgUFVTSDMyWyBtZXNzYWdlX2hhc2ggXVxuICAgIHdpdG5lc3NTY3JpcHQ6IEJ1ZmZlci5mcm9tKFtdKSwgLy8gdmluWzBdLnNjcmlwdFdpdG5lc3MgPSBbXVxuICB9KTtcbiAgLy8gU2V0IHRoZSBvdXRwdXRcbiAgcHNidC5hZGRPdXRwdXQoe1xuICAgIHZhbHVlOiBCaWdJbnQoMCksIC8vIHZvdXRbMF0ublZhbHVlID0gMFxuICAgIHNjcmlwdDogc2NyaXB0UHViS2V5LCAvLyB2b3V0WzBdLnNjcmlwdFB1YktleSA9IG1lc3NhZ2VfY2hhbGxlbmdlXG4gIH0pO1xuICAvLyBSZXR1cm4gdHJhbnNhY3Rpb25cbiAgcmV0dXJuIHBzYnQuZXh0cmFjdFRyYW5zYWN0aW9uKCkudG9IZXgoKTtcbn1cbiJdfQ==
69
+ function buildToSpendTransactionFromChainAndIndex(rootWalletKeys, chain, index, message, tag = exports.BIP322_TAG) {
70
+ if ((0, utils_1.isTaprootChain)(chain)) {
71
+ throw new Error('BIP322 is not supported for Taproot script types.');
72
+ }
73
+ const outputScript = utxo_lib_1.bitgo.outputScripts.createOutputScript2of3(rootWalletKeys.deriveForChainAndIndex(chain, index).publicKeys, utxo_lib_1.bitgo.scriptTypeForChain(chain), utxo_lib_1.networks.bitcoin);
74
+ return buildToSpendTransaction(outputScript.scriptPubKey, message, tag);
75
+ }
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9TcGVuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iaXAzMjIvdG9TcGVuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFjQSxnREFZQztBQVdELDBEQWdDQztBQUVELDRGQWlCQztBQXhGRCw2Q0FBbUM7QUFDbkMsbURBQTBFO0FBRTFFLG1DQUF5QztBQUU1QixRQUFBLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQztBQUVuRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxPQUF3QixFQUFFLEdBQUcsR0FBRyxrQkFBVTtJQUMzRSwyRUFBMkU7SUFDM0UsaUZBQWlGO0lBQ2pGLE1BQU0sU0FBUyxHQUFHLElBQUksa0JBQUksRUFBRSxDQUFDO0lBQzdCLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBVSxDQUFDLENBQUMsQ0FBQztJQUMxQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxrQkFBSSxFQUFFLENBQUM7SUFDakMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixhQUFhLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzlCLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMzQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLFlBQW9CLEVBQ3BCLE9BQXdCLEVBQ3hCLEdBQUcsR0FBRyxrQkFBVTtJQUVoQixzREFBc0Q7SUFDdEQsTUFBTSxJQUFJLEdBQUcsSUFBSSxlQUFJLEVBQUUsQ0FBQztJQUN4QiwrQ0FBK0M7SUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWU7SUFDbkMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQjtJQUNyQywyRUFBMkU7SUFDM0UsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JELHdEQUF3RDtJQUN4RCxNQUFNLGdCQUFnQixHQUFHLElBQUksVUFBVSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjO0lBQ3JFLE1BQU0sU0FBUyxHQUFHLElBQUksVUFBVSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0UsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BELGdCQUFnQjtJQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ1osSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEVBQUUsbUNBQW1DO1FBQ3pELEtBQUssRUFBRSxVQUFVLEVBQUUsZ0NBQWdDO1FBQ25ELFFBQVEsRUFBRSxDQUFDLEVBQUUsdUJBQXVCO1FBQ3BDLGNBQWMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGlEQUFpRDtRQUN6RixhQUFhLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSw0QkFBNEI7S0FDN0QsQ0FBQyxDQUFDO0lBQ0gsaUJBQWlCO0lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDYixLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLHFCQUFxQjtRQUN2QyxNQUFNLEVBQUUsWUFBWSxFQUFFLDJDQUEyQztLQUNsRSxDQUFDLENBQUM7SUFDSCxxQkFBcUI7SUFDckIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztBQUNuQyxDQUFDO0FBRUQsU0FBZ0Isd0NBQXdDLENBQ3RELGNBQW9DLEVBQ3BDLEtBQXNCLEVBQ3RCLEtBQWEsRUFDYixPQUF3QixFQUN4QixHQUFHLEdBQUcsa0JBQVU7SUFFaEIsSUFBSSxJQUFBLHNCQUFjLEVBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMxQixNQUFNLElBQUksS0FBSyxDQUFDLG1EQUFtRCxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLGdCQUFLLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUM3RCxjQUFjLENBQUMsc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFDOUQsZ0JBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFDL0IsbUJBQVEsQ0FBQyxPQUFPLENBQ2pCLENBQUM7SUFDRixPQUFPLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIYXNoIH0gZnJvbSAnZmFzdC1zaGEyNTYnO1xuaW1wb3J0IHsgUHNidCwgVHJhbnNhY3Rpb24sIGJpdGdvLCBuZXR3b3JrcyB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuaW1wb3J0IHsgaXNUYXByb290Q2hhaW4gfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IEJJUDMyMl9UQUcgPSAnQklQMDMyMi1zaWduZWQtbWVzc2FnZSc7XG5cbi8qKlxuICogUGVyZm9ybSBhIHRhZ2dlZCBoYXNoXG4gKlxuICogQHBhcmFtIHtzdHJpbmcgfCBCdWZmZXJ9IG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBoYXNoIGFzIGEgQnVmZmVyIG9yIHV0Zi04IHN0cmluZ1xuICogQHBhcmFtIHtCdWZmZXJ9IFt0YWc9QklQMzIyX1RBR10gLSBUaGUgdGFnIHRvIHVzZSBmb3IgaGFzaGluZywgZGVmYXVsdHMgdG8gQklQMzIyX1RBRy5cbiAqIEByZXR1cm5zIHtCdWZmZXJ9IC0gVGhlIHJlc3VsdGluZyBoYXNoIG9mIHRoZSBtZXNzYWdlIHdpdGggdGhlIHRhZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc2hNZXNzYWdlV2l0aFRhZyhtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIsIHRhZyA9IEJJUDMyMl9UQUcpOiBCdWZmZXIge1xuICAvLyBDb21wdXRlIHRoZSBtZXNzYWdlIGhhc2ggLSBTSEEyNTYoU0hBMjU2KHRhZykgfHwgU0hBMjU2KHRhZykgfHwgbWVzc2FnZSlcbiAgLy8gUmVmZXJlbmNlOiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbi9iaXBzL2Jsb2IvbWFzdGVyL2JpcC0wMzIyLm1lZGlhd2lraSNmdWxsXG4gIGNvbnN0IHRhZ0hhc2hlciA9IG5ldyBIYXNoKCk7XG4gIHRhZ0hhc2hlci51cGRhdGUoQnVmZmVyLmZyb20oQklQMzIyX1RBRykpO1xuICBjb25zdCB0YWdIYXNoID0gdGFnSGFzaGVyLmRpZ2VzdCgpO1xuICBjb25zdCBtZXNzYWdlSGFzaGVyID0gbmV3IEhhc2goKTtcbiAgbWVzc2FnZUhhc2hlci51cGRhdGUodGFnSGFzaCk7XG4gIG1lc3NhZ2VIYXNoZXIudXBkYXRlKHRhZ0hhc2gpO1xuICBtZXNzYWdlSGFzaGVyLnVwZGF0ZShCdWZmZXIuZnJvbShtZXNzYWdlKSk7XG4gIGNvbnN0IG1lc3NhZ2VIYXNoID0gbWVzc2FnZUhhc2hlci5kaWdlc3QoKTtcbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKG1lc3NhZ2VIYXNoKTtcbn1cblxuLyoqXG4gKiBCdWlsZCBhIEJJUDMyMiBcInRvIHNwZW5kXCIgdHJhbnNhY3Rpb25cbiAqIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYmlwcy9ibG9iL21hc3Rlci9iaXAtMDMyMi5tZWRpYXdpa2kjZnVsbFxuICpcbiAqIEBwYXJhbSB7QnVmZmVyfSBzY3JpcHRQdWJLZXkgLSBUaGUgc2NyaXB0UHViS2V5IHRvIHVzZSBmb3IgdGhlIG91dHB1dFxuICogQHBhcmFtIHtzdHJpbmcgfCBCdWZmZXJ9IG1lc3NhZ2UgLSBUaGUgbWVzc2FnZSB0byBpbmNsdWRlIGluIHRoZSB0cmFuc2FjdGlvblxuICogQHBhcmFtIHtCdWZmZXJ9IFt0YWc9QklQMzIyX1RBR10gLSBUaGUgdGFnIHRvIHVzZSBmb3IgaGFzaGluZywgZGVmYXVsdHMgdG8gQklQMzIyX1RBRy5cbiAqIEByZXR1cm5zIHtUcmFuc2FjdGlvbn0gLSBUaGUgY29uc3RydWN0ZWQgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkVG9TcGVuZFRyYW5zYWN0aW9uKFxuICBzY3JpcHRQdWJLZXk6IEJ1ZmZlcixcbiAgbWVzc2FnZTogc3RyaW5nIHwgQnVmZmVyLFxuICB0YWcgPSBCSVAzMjJfVEFHXG4pOiBUcmFuc2FjdGlvbjxiaWdpbnQ+IHtcbiAgLy8gQ3JlYXRlIFBTQlQgb2JqZWN0IGZvciBjb25zdHJ1Y3RpbmcgdGhlIHRyYW5zYWN0aW9uXG4gIGNvbnN0IHBzYnQgPSBuZXcgUHNidCgpO1xuICAvLyBTZXQgZGVmYXVsdCB2YWx1ZSBmb3IgblZlcnNpb24gYW5kIG5Mb2NrVGltZVxuICBwc2J0LnNldFZlcnNpb24oMCk7IC8vIG5WZXJzaW9uID0gMFxuICBwc2J0LnNldExvY2t0aW1lKDApOyAvLyBuTG9ja1RpbWUgPSAwXG4gIC8vIENvbXB1dGUgdGhlIG1lc3NhZ2UgaGFzaCAtIFNIQTI1NihTSEEyNTYodGFnKSB8fCBTSEEyNTYodGFnKSB8fCBtZXNzYWdlKVxuICBjb25zdCBtZXNzYWdlSGFzaCA9IGhhc2hNZXNzYWdlV2l0aFRhZyhtZXNzYWdlLCB0YWcpO1xuICAvLyBDb25zdHJ1Y3QgdGhlIHNjcmlwdFNpZyAtIE9QXzAgUFVTSDMyWyBtZXNzYWdlX2hhc2ggXVxuICBjb25zdCBzY3JpcHRTaWdQYXJ0T25lID0gbmV3IFVpbnQ4QXJyYXkoWzB4MDAsIDB4MjBdKTsgLy8gT1BfMCBQVVNIMzJcbiAgY29uc3Qgc2NyaXB0U2lnID0gbmV3IFVpbnQ4QXJyYXkoc2NyaXB0U2lnUGFydE9uZS5sZW5ndGggKyBtZXNzYWdlSGFzaC5sZW5ndGgpO1xuICBzY3JpcHRTaWcuc2V0KHNjcmlwdFNpZ1BhcnRPbmUpO1xuICBzY3JpcHRTaWcuc2V0KG1lc3NhZ2VIYXNoLCBzY3JpcHRTaWdQYXJ0T25lLmxlbmd0aCk7XG4gIC8vIFNldCB0aGUgaW5wdXRcbiAgcHNidC5hZGRJbnB1dCh7XG4gICAgaGFzaDogJzAnLnJlcGVhdCg2NCksIC8vIHZpblswXS5wcmV2b3V0Lmhhc2ggPSAwMDAwLi4uMDAwXG4gICAgaW5kZXg6IDB4ZmZmZmZmZmYsIC8vIHZpblswXS5wcmV2b3V0Lm4gPSAweEZGRkZGRkZGXG4gICAgc2VxdWVuY2U6IDAsIC8vIHZpblswXS5uU2VxdWVuY2UgPSAwXG4gICAgZmluYWxTY3JpcHRTaWc6IEJ1ZmZlci5mcm9tKHNjcmlwdFNpZyksIC8vIHZpblswXS5zY3JpcHRTaWcgPSBPUF8wIFBVU0gzMlsgbWVzc2FnZV9oYXNoIF1cbiAgICB3aXRuZXNzU2NyaXB0OiBCdWZmZXIuZnJvbShbXSksIC8vIHZpblswXS5zY3JpcHRXaXRuZXNzID0gW11cbiAgfSk7XG4gIC8vIFNldCB0aGUgb3V0cHV0XG4gIHBzYnQuYWRkT3V0cHV0KHtcbiAgICB2YWx1ZTogQmlnSW50KDApLCAvLyB2b3V0WzBdLm5WYWx1ZSA9IDBcbiAgICBzY3JpcHQ6IHNjcmlwdFB1YktleSwgLy8gdm91dFswXS5zY3JpcHRQdWJLZXkgPSBtZXNzYWdlX2NoYWxsZW5nZVxuICB9KTtcbiAgLy8gUmV0dXJuIHRyYW5zYWN0aW9uXG4gIHJldHVybiBwc2J0LmV4dHJhY3RUcmFuc2FjdGlvbigpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRUb1NwZW5kVHJhbnNhY3Rpb25Gcm9tQ2hhaW5BbmRJbmRleChcbiAgcm9vdFdhbGxldEtleXM6IGJpdGdvLlJvb3RXYWxsZXRLZXlzLFxuICBjaGFpbjogYml0Z28uQ2hhaW5Db2RlLFxuICBpbmRleDogbnVtYmVyLFxuICBtZXNzYWdlOiBzdHJpbmcgfCBCdWZmZXIsXG4gIHRhZyA9IEJJUDMyMl9UQUdcbik6IFRyYW5zYWN0aW9uPGJpZ2ludD4ge1xuICBpZiAoaXNUYXByb290Q2hhaW4oY2hhaW4pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCSVAzMjIgaXMgbm90IHN1cHBvcnRlZCBmb3IgVGFwcm9vdCBzY3JpcHQgdHlwZXMuJyk7XG4gIH1cblxuICBjb25zdCBvdXRwdXRTY3JpcHQgPSBiaXRnby5vdXRwdXRTY3JpcHRzLmNyZWF0ZU91dHB1dFNjcmlwdDJvZjMoXG4gICAgcm9vdFdhbGxldEtleXMuZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFpbiwgaW5kZXgpLnB1YmxpY0tleXMsXG4gICAgYml0Z28uc2NyaXB0VHlwZUZvckNoYWluKGNoYWluKSxcbiAgICBuZXR3b3Jrcy5iaXRjb2luXG4gICk7XG4gIHJldHVybiBidWlsZFRvU3BlbmRUcmFuc2FjdGlvbihvdXRwdXRTY3JpcHQuc2NyaXB0UHViS2V5LCBtZXNzYWdlLCB0YWcpO1xufVxuIl19
@@ -0,0 +1,6 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ export declare function addBip322ProofMessage(psbt: utxolib.bitgo.UtxoPsbt, inputIndex: number, message: Buffer): void;
3
+ export declare function getBip322ProofInputIndex(psbt: utxolib.Psbt): number | undefined;
4
+ export declare function psbtIsBip322Proof(psbt: utxolib.Psbt): boolean;
5
+ export declare function isTaprootChain(chain: utxolib.bitgo.ChainCode): boolean;
6
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/bip322/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAS7G;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,MAAM,GAAG,SAAS,CAY/E;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAE7D;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,OAAO,CAGtE"}
@@ -0,0 +1,71 @@
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.addBip322ProofMessage = addBip322ProofMessage;
37
+ exports.getBip322ProofInputIndex = getBip322ProofInputIndex;
38
+ exports.psbtIsBip322Proof = psbtIsBip322Proof;
39
+ exports.isTaprootChain = isTaprootChain;
40
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
41
+ function addBip322ProofMessage(psbt, inputIndex, message) {
42
+ utxolib.bitgo.addProprietaryKeyValuesFromUnknownKeyValues(psbt, 'input', inputIndex, {
43
+ key: {
44
+ identifier: utxolib.bitgo.PSBT_PROPRIETARY_IDENTIFIER,
45
+ subtype: utxolib.bitgo.ProprietaryKeySubtype.BIP322_MESSAGE,
46
+ keydata: Buffer.alloc(0),
47
+ },
48
+ value: message,
49
+ });
50
+ }
51
+ function getBip322ProofInputIndex(psbt) {
52
+ const res = psbt.data.inputs.flatMap((input, inputIndex) => {
53
+ const proprietaryKeyVals = utxolib.bitgo.getPsbtInputProprietaryKeyVals(input, {
54
+ identifier: utxolib.bitgo.PSBT_PROPRIETARY_IDENTIFIER,
55
+ subtype: utxolib.bitgo.ProprietaryKeySubtype.BIP322_MESSAGE,
56
+ });
57
+ if (proprietaryKeyVals.length > 1) {
58
+ throw new Error(`Multiple BIP322 messages found at input index ${inputIndex}`);
59
+ }
60
+ return proprietaryKeyVals.length === 0 ? [] : [inputIndex];
61
+ });
62
+ return res.length === 0 ? undefined : res[0];
63
+ }
64
+ function psbtIsBip322Proof(psbt) {
65
+ return getBip322ProofInputIndex(psbt) !== undefined;
66
+ }
67
+ function isTaprootChain(chain) {
68
+ const taprootChains = [...utxolib.bitgo.chainCodesP2tr, ...utxolib.bitgo.chainCodesP2trMusig2];
69
+ return taprootChains.some((tc) => tc === chain);
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmlwMzIyL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsc0RBU0M7QUFFRCw0REFZQztBQUVELDhDQUVDO0FBRUQsd0NBR0M7QUFsQ0QsOERBQWdEO0FBRWhELFNBQWdCLHFCQUFxQixDQUFDLElBQTRCLEVBQUUsVUFBa0IsRUFBRSxPQUFlO0lBQ3JHLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7UUFDbkYsR0FBRyxFQUFFO1lBQ0gsVUFBVSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCO1lBQ3JELE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLGNBQWM7WUFDM0QsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1NBQ3pCO1FBQ0QsS0FBSyxFQUFFLE9BQU87S0FDZixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBZ0Isd0JBQXdCLENBQUMsSUFBa0I7SUFDekQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFO1FBQ3pELE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLEVBQUU7WUFDN0UsVUFBVSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCO1lBQ3JELE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLGNBQWM7U0FDNUQsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUNqRixDQUFDO1FBQ0QsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsSUFBa0I7SUFDbEQsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUM7QUFDdEQsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxLQUE4QjtJQUMzRCxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDL0YsT0FBTyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5leHBvcnQgZnVuY3Rpb24gYWRkQmlwMzIyUHJvb2ZNZXNzYWdlKHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsIGlucHV0SW5kZXg6IG51bWJlciwgbWVzc2FnZTogQnVmZmVyKTogdm9pZCB7XG4gIHV0eG9saWIuYml0Z28uYWRkUHJvcHJpZXRhcnlLZXlWYWx1ZXNGcm9tVW5rbm93bktleVZhbHVlcyhwc2J0LCAnaW5wdXQnLCBpbnB1dEluZGV4LCB7XG4gICAga2V5OiB7XG4gICAgICBpZGVudGlmaWVyOiB1dHhvbGliLmJpdGdvLlBTQlRfUFJPUFJJRVRBUllfSURFTlRJRklFUixcbiAgICAgIHN1YnR5cGU6IHV0eG9saWIuYml0Z28uUHJvcHJpZXRhcnlLZXlTdWJ0eXBlLkJJUDMyMl9NRVNTQUdFLFxuICAgICAga2V5ZGF0YTogQnVmZmVyLmFsbG9jKDApLFxuICAgIH0sXG4gICAgdmFsdWU6IG1lc3NhZ2UsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmlwMzIyUHJvb2ZJbnB1dEluZGV4KHBzYnQ6IHV0eG9saWIuUHNidCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHJlcyA9IHBzYnQuZGF0YS5pbnB1dHMuZmxhdE1hcCgoaW5wdXQsIGlucHV0SW5kZXgpID0+IHtcbiAgICBjb25zdCBwcm9wcmlldGFyeUtleVZhbHMgPSB1dHhvbGliLmJpdGdvLmdldFBzYnRJbnB1dFByb3ByaWV0YXJ5S2V5VmFscyhpbnB1dCwge1xuICAgICAgaWRlbnRpZmllcjogdXR4b2xpYi5iaXRnby5QU0JUX1BST1BSSUVUQVJZX0lERU5USUZJRVIsXG4gICAgICBzdWJ0eXBlOiB1dHhvbGliLmJpdGdvLlByb3ByaWV0YXJ5S2V5U3VidHlwZS5CSVAzMjJfTUVTU0FHRSxcbiAgICB9KTtcbiAgICBpZiAocHJvcHJpZXRhcnlLZXlWYWxzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTXVsdGlwbGUgQklQMzIyIG1lc3NhZ2VzIGZvdW5kIGF0IGlucHV0IGluZGV4ICR7aW5wdXRJbmRleH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIHByb3ByaWV0YXJ5S2V5VmFscy5sZW5ndGggPT09IDAgPyBbXSA6IFtpbnB1dEluZGV4XTtcbiAgfSk7XG4gIHJldHVybiByZXMubGVuZ3RoID09PSAwID8gdW5kZWZpbmVkIDogcmVzWzBdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHNidElzQmlwMzIyUHJvb2YocHNidDogdXR4b2xpYi5Qc2J0KTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRCaXAzMjJQcm9vZklucHV0SW5kZXgocHNidCkgIT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGFwcm9vdENoYWluKGNoYWluOiB1dHhvbGliLmJpdGdvLkNoYWluQ29kZSk6IGJvb2xlYW4ge1xuICBjb25zdCB0YXByb290Q2hhaW5zID0gWy4uLnV0eG9saWIuYml0Z28uY2hhaW5Db2Rlc1AydHIsIC4uLnV0eG9saWIuYml0Z28uY2hhaW5Db2Rlc1AydHJNdXNpZzJdO1xuICByZXR1cm4gdGFwcm9vdENoYWlucy5zb21lKCh0YykgPT4gdGMgPT09IGNoYWluKTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/utxo-core",
3
- "version": "1.0.1-alpha.94",
3
+ "version": "1.0.1-alpha.96",
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.364",
56
- "@bitgo-beta/utxo-lib": "4.0.1-alpha.364",
55
+ "@bitgo-beta/unspents": "0.11.3-alpha.366",
56
+ "@bitgo-beta/utxo-lib": "4.0.1-alpha.366",
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": "351bb6960f635659ff5a7d5f383dd79217cd59a3"
62
+ "gitHead": "206b1c48a655acf92596150b49d90a84ecdc146a"
63
63
  }