@bitgo/utxo-staking 1.42.0 → 1.43.1

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,3 +1,4 @@
1
1
  export * as coreDao from './coreDao';
2
2
  export * as babylon from './babylon';
3
+ export * as pox5 from './pox5';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * as coreDao from './coreDao';
2
2
  export * as babylon from './babylon';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBjb3JlRGFvIGZyb20gJy4vY29yZURhbyc7XG5leHBvcnQgKiBhcyBiYWJ5bG9uIGZyb20gJy4vYmFieWxvbic7XG4iXX0=
3
+ export * as pox5 from './pox5';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxLQUFLLElBQUksTUFBTSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBjb3JlRGFvIGZyb20gJy4vY29yZURhbyc7XG5leHBvcnQgKiBhcyBiYWJ5bG9uIGZyb20gJy4vYmFieWxvbic7XG5leHBvcnQgKiBhcyBwb3g1IGZyb20gJy4vcG94NSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './witness';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/pox5/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './witness';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcG94NS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd2l0bmVzcyc7XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { ast, Descriptor, Psbt } from '@bitgo/wasm-utxo';
2
+ type Pox5Descriptor = Descriptor | ast.DescriptorNode;
3
+ export type Pox5FinalizerParams = {
4
+ /** A definite or derivation-indexed canonical PoX-5 descriptor. */
5
+ descriptor: Pox5Descriptor;
6
+ /** The derived user, backup, and BitGo keys in descriptor order. */
7
+ stakerKeys: [Buffer, Buffer, Buffer];
8
+ };
9
+ /** Finalize the post-CLTV 2-of-3 PoX-5 spend branch. */
10
+ export declare function finalizePox5LocktimePath(psbt: Psbt, inputIndex: number, params: Pox5FinalizerParams): void;
11
+ /** Finalize the principal-preimage early-exit 2-of-3 PoX-5 spend branch. */
12
+ export declare function finalizePox5EarlyExitPath(psbt: Psbt, inputIndex: number, params: Pox5FinalizerParams & {
13
+ principalPreimage: Buffer;
14
+ }): void;
15
+ export {};
16
+ //# sourceMappingURL=witness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"witness.d.ts","sourceRoot":"","sources":["../../../src/pox5/witness.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGzD,KAAK,cAAc,GAAG,UAAU,GAAG,GAAG,CAAC,cAAc,CAAC;AAEtD,MAAM,MAAM,mBAAmB,GAAG;IAChC,mEAAmE;IACnE,UAAU,EAAE,cAAc,CAAC;IAC3B,oEAAoE;IACpE,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,CAAC;AAuBF,wDAAwD;AACxD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,IAAI,CAM1G;AAED,4EAA4E;AAC5E,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,mBAAmB,GAAG;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,GAC1D,IAAI,CAQN"}
@@ -0,0 +1,40 @@
1
+ import { createHash } from 'crypto';
2
+ import { ast, Descriptor } from '@bitgo/wasm-utxo';
3
+ import { pox5 } from '@bitgo/utxo-descriptors';
4
+ function getParsedDescriptor(params) {
5
+ const parsed = pox5.parsePox5LockupDescriptor(params.descriptor);
6
+ if (!parsed || !parsed.stakerKeys) {
7
+ throw new Error('descriptor must be a definite or derivation-indexed canonical PoX-5 descriptor');
8
+ }
9
+ if (!parsed.stakerKeys.every((key, index) => key.equals(params.stakerKeys[index]))) {
10
+ throw new Error('stakerKeys must match the canonical descriptor order');
11
+ }
12
+ return parsed;
13
+ }
14
+ function getDescriptor(descriptor) {
15
+ return descriptor instanceof Descriptor ? descriptor : Descriptor.fromString(ast.formatNode(descriptor), 'definite');
16
+ }
17
+ function prepareInput(psbt, inputIndex, params) {
18
+ const parsed = getParsedDescriptor(params);
19
+ psbt.updateInputWithDescriptor(inputIndex, getDescriptor(params.descriptor));
20
+ return parsed;
21
+ }
22
+ /** Finalize the post-CLTV 2-of-3 PoX-5 spend branch. */
23
+ export function finalizePox5LocktimePath(psbt, inputIndex, params) {
24
+ const parsed = prepareInput(psbt, inputIndex, params);
25
+ if (psbt.lockTime() < parsed.unlockHeight) {
26
+ throw new Error(`transaction locktime must be at least ${parsed.unlockHeight}`);
27
+ }
28
+ psbt.finalizeInput(inputIndex);
29
+ }
30
+ /** Finalize the principal-preimage early-exit 2-of-3 PoX-5 spend branch. */
31
+ export function finalizePox5EarlyExitPath(psbt, inputIndex, params) {
32
+ const parsed = prepareInput(psbt, inputIndex, params);
33
+ const preimageHash = createHash('sha256').update(params.principalPreimage).digest();
34
+ if (!preimageHash.equals(parsed.stakerCommitment)) {
35
+ throw new Error('principalPreimage does not match the descriptor stakerCommitment');
36
+ }
37
+ psbt.addSha256Preimage(inputIndex, params.principalPreimage);
38
+ psbt.finalizeInput(inputIndex);
39
+ }
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0bmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wb3g1L3dpdG5lc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVwQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBUSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVcvQyxTQUFTLG1CQUFtQixDQUFDLE1BQTJCO0lBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakUsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLGdGQUFnRixDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUNELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuRixNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLGFBQWEsQ0FBQyxVQUEwQjtJQUMvQyxPQUFPLFVBQVUsWUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ3ZILENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxJQUFVLEVBQUUsVUFBa0IsRUFBRSxNQUEyQjtJQUMvRSxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMseUJBQXlCLENBQUMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM3RSxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsd0RBQXdEO0FBQ3hELE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxJQUFVLEVBQUUsVUFBa0IsRUFBRSxNQUEyQjtJQUNsRyxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDMUMsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBeUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUNELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELDRFQUE0RTtBQUM1RSxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLElBQVUsRUFDVixVQUFrQixFQUNsQixNQUEyRDtJQUUzRCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RCxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BGLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7UUFDbEQsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRUFBa0UsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUhhc2ggfSBmcm9tICdjcnlwdG8nO1xuXG5pbXBvcnQgeyBhc3QsIERlc2NyaXB0b3IsIFBzYnQgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCB7IHBveDUgfSBmcm9tICdAYml0Z28vdXR4by1kZXNjcmlwdG9ycyc7XG5cbnR5cGUgUG94NURlc2NyaXB0b3IgPSBEZXNjcmlwdG9yIHwgYXN0LkRlc2NyaXB0b3JOb2RlO1xuXG5leHBvcnQgdHlwZSBQb3g1RmluYWxpemVyUGFyYW1zID0ge1xuICAvKiogQSBkZWZpbml0ZSBvciBkZXJpdmF0aW9uLWluZGV4ZWQgY2Fub25pY2FsIFBvWC01IGRlc2NyaXB0b3IuICovXG4gIGRlc2NyaXB0b3I6IFBveDVEZXNjcmlwdG9yO1xuICAvKiogVGhlIGRlcml2ZWQgdXNlciwgYmFja3VwLCBhbmQgQml0R28ga2V5cyBpbiBkZXNjcmlwdG9yIG9yZGVyLiAqL1xuICBzdGFrZXJLZXlzOiBbQnVmZmVyLCBCdWZmZXIsIEJ1ZmZlcl07XG59O1xuXG5mdW5jdGlvbiBnZXRQYXJzZWREZXNjcmlwdG9yKHBhcmFtczogUG94NUZpbmFsaXplclBhcmFtcykge1xuICBjb25zdCBwYXJzZWQgPSBwb3g1LnBhcnNlUG94NUxvY2t1cERlc2NyaXB0b3IocGFyYW1zLmRlc2NyaXB0b3IpO1xuICBpZiAoIXBhcnNlZCB8fCAhcGFyc2VkLnN0YWtlcktleXMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2Rlc2NyaXB0b3IgbXVzdCBiZSBhIGRlZmluaXRlIG9yIGRlcml2YXRpb24taW5kZXhlZCBjYW5vbmljYWwgUG9YLTUgZGVzY3JpcHRvcicpO1xuICB9XG4gIGlmICghcGFyc2VkLnN0YWtlcktleXMuZXZlcnkoKGtleSwgaW5kZXgpID0+IGtleS5lcXVhbHMocGFyYW1zLnN0YWtlcktleXNbaW5kZXhdKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3N0YWtlcktleXMgbXVzdCBtYXRjaCB0aGUgY2Fub25pY2FsIGRlc2NyaXB0b3Igb3JkZXInKTtcbiAgfVxuICByZXR1cm4gcGFyc2VkO1xufVxuXG5mdW5jdGlvbiBnZXREZXNjcmlwdG9yKGRlc2NyaXB0b3I6IFBveDVEZXNjcmlwdG9yKTogRGVzY3JpcHRvciB7XG4gIHJldHVybiBkZXNjcmlwdG9yIGluc3RhbmNlb2YgRGVzY3JpcHRvciA/IGRlc2NyaXB0b3IgOiBEZXNjcmlwdG9yLmZyb21TdHJpbmcoYXN0LmZvcm1hdE5vZGUoZGVzY3JpcHRvciksICdkZWZpbml0ZScpO1xufVxuXG5mdW5jdGlvbiBwcmVwYXJlSW5wdXQocHNidDogUHNidCwgaW5wdXRJbmRleDogbnVtYmVyLCBwYXJhbXM6IFBveDVGaW5hbGl6ZXJQYXJhbXMpIHtcbiAgY29uc3QgcGFyc2VkID0gZ2V0UGFyc2VkRGVzY3JpcHRvcihwYXJhbXMpO1xuICBwc2J0LnVwZGF0ZUlucHV0V2l0aERlc2NyaXB0b3IoaW5wdXRJbmRleCwgZ2V0RGVzY3JpcHRvcihwYXJhbXMuZGVzY3JpcHRvcikpO1xuICByZXR1cm4gcGFyc2VkO1xufVxuXG4vKiogRmluYWxpemUgdGhlIHBvc3QtQ0xUViAyLW9mLTMgUG9YLTUgc3BlbmQgYnJhbmNoLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmFsaXplUG94NUxvY2t0aW1lUGF0aChwc2J0OiBQc2J0LCBpbnB1dEluZGV4OiBudW1iZXIsIHBhcmFtczogUG94NUZpbmFsaXplclBhcmFtcyk6IHZvaWQge1xuICBjb25zdCBwYXJzZWQgPSBwcmVwYXJlSW5wdXQocHNidCwgaW5wdXRJbmRleCwgcGFyYW1zKTtcbiAgaWYgKHBzYnQubG9ja1RpbWUoKSA8IHBhcnNlZC51bmxvY2tIZWlnaHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHRyYW5zYWN0aW9uIGxvY2t0aW1lIG11c3QgYmUgYXQgbGVhc3QgJHtwYXJzZWQudW5sb2NrSGVpZ2h0fWApO1xuICB9XG4gIHBzYnQuZmluYWxpemVJbnB1dChpbnB1dEluZGV4KTtcbn1cblxuLyoqIEZpbmFsaXplIHRoZSBwcmluY2lwYWwtcHJlaW1hZ2UgZWFybHktZXhpdCAyLW9mLTMgUG9YLTUgc3BlbmQgYnJhbmNoLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmFsaXplUG94NUVhcmx5RXhpdFBhdGgoXG4gIHBzYnQ6IFBzYnQsXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgcGFyYW1zOiBQb3g1RmluYWxpemVyUGFyYW1zICYgeyBwcmluY2lwYWxQcmVpbWFnZTogQnVmZmVyIH1cbik6IHZvaWQge1xuICBjb25zdCBwYXJzZWQgPSBwcmVwYXJlSW5wdXQocHNidCwgaW5wdXRJbmRleCwgcGFyYW1zKTtcbiAgY29uc3QgcHJlaW1hZ2VIYXNoID0gY3JlYXRlSGFzaCgnc2hhMjU2JykudXBkYXRlKHBhcmFtcy5wcmluY2lwYWxQcmVpbWFnZSkuZGlnZXN0KCk7XG4gIGlmICghcHJlaW1hZ2VIYXNoLmVxdWFscyhwYXJzZWQuc3Rha2VyQ29tbWl0bWVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3ByaW5jaXBhbFByZWltYWdlIGRvZXMgbm90IG1hdGNoIHRoZSBkZXNjcmlwdG9yIHN0YWtlckNvbW1pdG1lbnQnKTtcbiAgfVxuICBwc2J0LmFkZFNoYTI1NlByZWltYWdlKGlucHV0SW5kZXgsIHBhcmFtcy5wcmluY2lwYWxQcmVpbWFnZSk7XG4gIHBzYnQuZmluYWxpemVJbnB1dChpbnB1dEluZGV4KTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo/utxo-staking",
3
- "version": "1.42.0",
3
+ "version": "1.43.1",
4
4
  "description": "BitGo SDK for build UTXO staking transactions",
5
5
  "main": "./dist/cjs/src/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -61,9 +61,10 @@
61
61
  "dependencies": {
62
62
  "@babylonlabs-io/babylon-proto-ts": "1.7.2",
63
63
  "@bitgo/babylonlabs-io-btc-staking-ts": "^3.5.1",
64
- "@bitgo/utxo-core": "^1.40.0",
65
- "@bitgo/utxo-lib": "^11.24.2",
66
- "@bitgo/wasm-utxo": "^4.27.0",
64
+ "@bitgo/utxo-core": "^1.41.1",
65
+ "@bitgo/utxo-descriptors": "^1.5.1",
66
+ "@bitgo/utxo-lib": "^11.24.3",
67
+ "@bitgo/wasm-utxo": "^4.39.0",
67
68
  "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
68
69
  "bip322-js": "^2.0.0",
69
70
  "bitcoinjs-lib": "^6.1.7",
@@ -74,5 +75,5 @@
74
75
  "devDependencies": {
75
76
  "yargs": "^17.7.2"
76
77
  },
77
- "gitHead": "76a95ea6c0e8ac4aaa8e6e8a177cf4f40572694d"
78
+ "gitHead": "caff588f9bc06e6c05750653a872e71d45f66a17"
78
79
  }