@bitgo-beta/utxo-staking 1.1.1-beta.81 → 1.1.1-beta.811

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dist/src/babylon/delegationMessage.d.ts +38 -0
  2. package/dist/src/babylon/delegationMessage.d.ts.map +1 -0
  3. package/dist/src/babylon/delegationMessage.js +285 -0
  4. package/dist/src/babylon/descriptor.d.ts +48 -0
  5. package/dist/src/babylon/descriptor.d.ts.map +1 -0
  6. package/dist/src/babylon/descriptor.js +97 -0
  7. package/dist/src/babylon/index.d.ts +6 -0
  8. package/dist/src/babylon/index.d.ts.map +1 -0
  9. package/dist/src/babylon/index.js +49 -0
  10. package/dist/src/babylon/network.d.ts +7 -0
  11. package/dist/src/babylon/network.d.ts.map +1 -0
  12. package/dist/src/babylon/network.js +66 -0
  13. package/dist/src/babylon/params.mainnet.json +152 -0
  14. package/dist/src/babylon/params.testnet.json +212 -0
  15. package/dist/src/babylon/parseDescriptor.d.ts +26 -0
  16. package/dist/src/babylon/parseDescriptor.d.ts.map +1 -0
  17. package/dist/src/babylon/parseDescriptor.js +159 -0
  18. package/dist/src/babylon/stakingManager.d.ts +6 -0
  19. package/dist/src/babylon/stakingManager.d.ts.map +1 -0
  20. package/dist/src/babylon/stakingManager.js +120 -0
  21. package/dist/src/babylon/stakingParams.d.ts +40 -0
  22. package/dist/src/babylon/stakingParams.d.ts.map +1 -0
  23. package/dist/src/babylon/stakingParams.js +132 -0
  24. package/dist/src/babylon/undelegation/UndelegationResponse.d.ts +24 -0
  25. package/dist/src/babylon/undelegation/UndelegationResponse.d.ts.map +1 -0
  26. package/dist/src/babylon/undelegation/UndelegationResponse.js +55 -0
  27. package/dist/src/babylon/undelegation/index.d.ts +3 -0
  28. package/dist/src/babylon/undelegation/index.d.ts.map +1 -0
  29. package/dist/src/babylon/undelegation/index.js +19 -0
  30. package/dist/src/babylon/undelegation/unbonding.d.ts +16 -0
  31. package/dist/src/babylon/undelegation/unbonding.d.ts.map +1 -0
  32. package/dist/src/babylon/undelegation/unbonding.js +111 -0
  33. package/dist/src/coreDao/descriptor.d.ts.map +1 -1
  34. package/dist/src/coreDao/descriptor.js +6 -5
  35. package/dist/src/coreDao/transaction.d.ts +15 -6
  36. package/dist/src/coreDao/transaction.d.ts.map +1 -1
  37. package/dist/src/coreDao/transaction.js +12 -4
  38. package/dist/src/index.d.ts +1 -1
  39. package/dist/src/index.d.ts.map +1 -1
  40. package/dist/src/index.js +26 -7
  41. package/package.json +23 -9
  42. package/.eslintignore +0 -5
  43. package/.mocharc.yml +0 -8
  44. package/CHANGELOG.md +0 -63
  45. package/dist/src/transaction.d.ts +0 -32
  46. package/dist/src/transaction.d.ts.map +0 -1
  47. package/dist/src/transaction.js +0 -54
@@ -0,0 +1,19 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./unbonding"), exports);
18
+ __exportStar(require("./UndelegationResponse"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYmFieWxvbi91bmRlbGVnYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUE0QjtBQUM1Qix5REFBdUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VuYm9uZGluZyc7XG5leHBvcnQgKiBmcm9tICcuL1VuZGVsZWdhdGlvblJlc3BvbnNlJztcbiJdfQ==
@@ -0,0 +1,16 @@
1
+ import * as utxolib from '@bitgo-beta/utxo-lib';
2
+ import { PartialSig, WitnessUtxo } from 'bip174/src/lib/interfaces';
3
+ import { Descriptor } from '@bitgo/wasm-miniscript';
4
+ /**
5
+ * Asserts that the provided signatures are valid for the given PSBT input.
6
+ */
7
+ export declare function assertValidSignatures(psbt: utxolib.bitgo.UtxoPsbt, inputIndex: number, signatures: PartialSig[]): void;
8
+ /**
9
+ * @return unsigned PSBT for an unbonding transaction
10
+ */
11
+ export declare function toUnbondingPsbt(tx: utxolib.bitgo.UtxoTransaction<bigint>, witnessUtxo: WitnessUtxo, stakingDescriptor: Descriptor, network: utxolib.Network): utxolib.bitgo.UtxoPsbt;
12
+ /**
13
+ * @return PSBT for an unbonding transaction with signatures
14
+ */
15
+ export declare function toUnbondingPsbtWithSignatures(tx: utxolib.bitgo.UtxoTransaction<bigint>, witnessUtxo: WitnessUtxo, stakingDescriptor: Descriptor, signatures: PartialSig[], network: utxolib.Network): utxolib.bitgo.UtxoPsbt;
16
+ //# sourceMappingURL=unbonding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unbonding.d.ts","sourceRoot":"","sources":["../../../../src/babylon/undelegation/unbonding.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAmB,MAAM,wBAAwB,CAAC;AAiBrE;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAC5B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,UAAU,EAAE,GACvB,IAAI,CAON;AAQD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,UAAU,EAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAAC,KAAK,CAAC,QAAQ,CA4BxB;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,EACzC,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,UAAU,EAC7B,UAAU,EAAE,UAAU,EAAE,EACxB,OAAO,EAAE,OAAO,CAAC,OAAO,GACvB,OAAO,CAAC,KAAK,CAAC,QAAQ,CAMxB"}
@@ -0,0 +1,111 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.assertValidSignatures = assertValidSignatures;
40
+ exports.toUnbondingPsbt = toUnbondingPsbt;
41
+ exports.toUnbondingPsbtWithSignatures = toUnbondingPsbtWithSignatures;
42
+ const assert_1 = __importDefault(require("assert"));
43
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
44
+ const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
45
+ const descriptor_1 = require("@bitgo-beta/utxo-core/descriptor");
46
+ const parseDescriptor_1 = require("../parseDescriptor");
47
+ /**
48
+ * Adds covenant signatures to a PSBT input.
49
+ */
50
+ function addCovenantSignatures(psbt, inputIndex, signatures) {
51
+ const input = psbt.data.inputs[inputIndex];
52
+ (0, assert_1.default)(input.tapLeafScript, 'Input must have tapLeafScript');
53
+ (0, assert_1.default)(input.tapLeafScript.length === 1, 'Input must have exactly one tapLeafScript');
54
+ const [{ controlBlock, script }] = input.tapLeafScript;
55
+ const leafHash = utxolib.taproot.getTapleafHash(utxolib.ecc, controlBlock, script);
56
+ psbt.updateInput(inputIndex, { tapScriptSig: signatures.map((s) => ({ ...s, leafHash })) });
57
+ }
58
+ /**
59
+ * Asserts that the provided signatures are valid for the given PSBT input.
60
+ */
61
+ function assertValidSignatures(psbt, inputIndex, signatures) {
62
+ signatures.forEach((s) => {
63
+ (0, assert_1.default)(psbt.validateTaprootSignaturesOfInput(inputIndex, s.pubkey), `Signature validation failed for ${s.pubkey.toString('hex')}`);
64
+ });
65
+ }
66
+ function getUnbondingScript(stakingDescriptor) {
67
+ const parsedDescriptor = (0, parseDescriptor_1.parseStakingDescriptor)(stakingDescriptor);
68
+ (0, assert_1.default)(parsedDescriptor, 'Invalid staking descriptor');
69
+ return wasm_miniscript_1.Miniscript.fromString(wasm_miniscript_1.ast.formatNode(parsedDescriptor.unbondingMiniscriptNode), 'tap');
70
+ }
71
+ /**
72
+ * @return unsigned PSBT for an unbonding transaction
73
+ */
74
+ function toUnbondingPsbt(tx, witnessUtxo, stakingDescriptor, network) {
75
+ const unbondingScript = getUnbondingScript(stakingDescriptor);
76
+ const psbt = new utxolib.Psbt({ network });
77
+ psbt.setVersion(tx.version);
78
+ psbt.setLocktime(tx.locktime);
79
+ psbt.addOutputs(tx.outs.map((output) => ({
80
+ script: output.script,
81
+ value: BigInt(output.value),
82
+ })));
83
+ (0, assert_1.default)(tx.ins.length === 1);
84
+ const input = tx.ins[0];
85
+ psbt.addInput({
86
+ hash: input.hash,
87
+ index: input.index,
88
+ sequence: input.sequence,
89
+ witnessUtxo,
90
+ });
91
+ const wrappedPsbt = (0, descriptor_1.toWrappedPsbt)(psbt);
92
+ wrappedPsbt.updateInputWithDescriptor(0, stakingDescriptor);
93
+ const unwrapped = (0, descriptor_1.toUtxoPsbt)(wrappedPsbt, network);
94
+ (0, assert_1.default)(unwrapped.data.inputs.length === 1, 'Unbonding transaction must have exactly one input');
95
+ const unwrappedInputData = unwrapped.data.inputs[0];
96
+ (0, assert_1.default)(unwrappedInputData.tapLeafScript);
97
+ const unwrappedUnbond = (0, descriptor_1.findTapLeafScript)(unwrappedInputData.tapLeafScript, unbondingScript);
98
+ unwrappedInputData.tapLeafScript = [unwrappedUnbond];
99
+ return unwrapped;
100
+ }
101
+ /**
102
+ * @return PSBT for an unbonding transaction with signatures
103
+ */
104
+ function toUnbondingPsbtWithSignatures(tx, witnessUtxo, stakingDescriptor, signatures, network) {
105
+ const psbt = toUnbondingPsbt(tx, witnessUtxo, stakingDescriptor, network);
106
+ (0, assert_1.default)(psbt.data.inputs.length === 1, 'Unbonding transaction must have exactly one input');
107
+ addCovenantSignatures(psbt, 0, signatures);
108
+ assertValidSignatures(psbt, 0, signatures);
109
+ return psbt;
110
+ }
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5ib25kaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhYnlsb24vdW5kZWxlZ2F0aW9uL3VuYm9uZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSxzREFXQztBQVdELDBDQWlDQztBQUtELHNFQVlDO0FBaEdELG9EQUE0QjtBQUU1Qiw4REFBZ0Q7QUFFaEQsNERBQXFFO0FBQ3JFLGlFQUFnRztBQUVoRyx3REFBNEQ7QUFFNUQ7O0dBRUc7QUFDSCxTQUFTLHFCQUFxQixDQUFDLElBQTRCLEVBQUUsVUFBa0IsRUFBRSxVQUF3QjtJQUN2RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO0lBQzdELElBQUEsZ0JBQU0sRUFBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsMkNBQTJDLENBQUMsQ0FBQztJQUN0RixNQUFNLENBQUMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO0lBQ3ZELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25GLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzlGLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUNuQyxJQUE0QixFQUM1QixVQUFrQixFQUNsQixVQUF3QjtJQUV4QixVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDdkIsSUFBQSxnQkFBTSxFQUNKLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUMzRCxtQ0FBbUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDOUQsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsaUJBQTZCO0lBQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSx3Q0FBc0IsRUFBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25FLElBQUEsZ0JBQU0sRUFBQyxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQyxDQUFDO0lBQ3ZELE9BQU8sNEJBQVUsQ0FBQyxVQUFVLENBQUMscUJBQUcsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsdUJBQXVCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNoRyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixlQUFlLENBQzdCLEVBQXlDLEVBQ3pDLFdBQXdCLEVBQ3hCLGlCQUE2QixFQUM3QixPQUF3QjtJQUV4QixNQUFNLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzlELE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FDYixFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0tBQzVCLENBQUMsQ0FBQyxDQUNKLENBQUM7SUFDRixJQUFBLGdCQUFNLEVBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDNUIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ1osSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1FBQ2hCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztRQUNsQixRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7UUFDeEIsV0FBVztLQUNaLENBQUMsQ0FBQztJQUNILE1BQU0sV0FBVyxHQUFHLElBQUEsMEJBQWEsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxXQUFXLENBQUMseUJBQXlCLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDNUQsTUFBTSxTQUFTLEdBQUcsSUFBQSx1QkFBVSxFQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRCxJQUFBLGdCQUFNLEVBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxtREFBbUQsQ0FBQyxDQUFDO0lBQ2hHLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEQsSUFBQSxnQkFBTSxFQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sZUFBZSxHQUFHLElBQUEsOEJBQWlCLEVBQUMsa0JBQWtCLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzdGLGtCQUFrQixDQUFDLGFBQWEsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDZCQUE2QixDQUMzQyxFQUF5QyxFQUN6QyxXQUF3QixFQUN4QixpQkFBNkIsRUFDN0IsVUFBd0IsRUFDeEIsT0FBd0I7SUFFeEIsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLEVBQUUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDMUUsSUFBQSxnQkFBTSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsbURBQW1ELENBQUMsQ0FBQztJQUMzRixxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQzNDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0MsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IFBhcnRpYWxTaWcsIFdpdG5lc3NVdHhvIH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBEZXNjcmlwdG9yLCBNaW5pc2NyaXB0LCBhc3QgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCB7IGZpbmRUYXBMZWFmU2NyaXB0LCB0b1V0eG9Qc2J0LCB0b1dyYXBwZWRQc2J0IH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1jb3JlL2Rlc2NyaXB0b3InO1xuXG5pbXBvcnQgeyBwYXJzZVN0YWtpbmdEZXNjcmlwdG9yIH0gZnJvbSAnLi4vcGFyc2VEZXNjcmlwdG9yJztcblxuLyoqXG4gKiBBZGRzIGNvdmVuYW50IHNpZ25hdHVyZXMgdG8gYSBQU0JUIGlucHV0LlxuICovXG5mdW5jdGlvbiBhZGRDb3ZlbmFudFNpZ25hdHVyZXMocHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCwgaW5wdXRJbmRleDogbnVtYmVyLCBzaWduYXR1cmVzOiBQYXJ0aWFsU2lnW10pOiB2b2lkIHtcbiAgY29uc3QgaW5wdXQgPSBwc2J0LmRhdGEuaW5wdXRzW2lucHV0SW5kZXhdO1xuICBhc3NlcnQoaW5wdXQudGFwTGVhZlNjcmlwdCwgJ0lucHV0IG11c3QgaGF2ZSB0YXBMZWFmU2NyaXB0Jyk7XG4gIGFzc2VydChpbnB1dC50YXBMZWFmU2NyaXB0Lmxlbmd0aCA9PT0gMSwgJ0lucHV0IG11c3QgaGF2ZSBleGFjdGx5IG9uZSB0YXBMZWFmU2NyaXB0Jyk7XG4gIGNvbnN0IFt7IGNvbnRyb2xCbG9jaywgc2NyaXB0IH1dID0gaW5wdXQudGFwTGVhZlNjcmlwdDtcbiAgY29uc3QgbGVhZkhhc2ggPSB1dHhvbGliLnRhcHJvb3QuZ2V0VGFwbGVhZkhhc2godXR4b2xpYi5lY2MsIGNvbnRyb2xCbG9jaywgc2NyaXB0KTtcbiAgcHNidC51cGRhdGVJbnB1dChpbnB1dEluZGV4LCB7IHRhcFNjcmlwdFNpZzogc2lnbmF0dXJlcy5tYXAoKHMpID0+ICh7IC4uLnMsIGxlYWZIYXNoIH0pKSB9KTtcbn1cblxuLyoqXG4gKiBBc3NlcnRzIHRoYXQgdGhlIHByb3ZpZGVkIHNpZ25hdHVyZXMgYXJlIHZhbGlkIGZvciB0aGUgZ2l2ZW4gUFNCVCBpbnB1dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydFZhbGlkU2lnbmF0dXJlcyhcbiAgcHNidDogdXR4b2xpYi5iaXRnby5VdHhvUHNidCxcbiAgaW5wdXRJbmRleDogbnVtYmVyLFxuICBzaWduYXR1cmVzOiBQYXJ0aWFsU2lnW11cbik6IHZvaWQge1xuICBzaWduYXR1cmVzLmZvckVhY2goKHMpID0+IHtcbiAgICBhc3NlcnQoXG4gICAgICBwc2J0LnZhbGlkYXRlVGFwcm9vdFNpZ25hdHVyZXNPZklucHV0KGlucHV0SW5kZXgsIHMucHVia2V5KSxcbiAgICAgIGBTaWduYXR1cmUgdmFsaWRhdGlvbiBmYWlsZWQgZm9yICR7cy5wdWJrZXkudG9TdHJpbmcoJ2hleCcpfWBcbiAgICApO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0VW5ib25kaW5nU2NyaXB0KHN0YWtpbmdEZXNjcmlwdG9yOiBEZXNjcmlwdG9yKTogTWluaXNjcmlwdCB7XG4gIGNvbnN0IHBhcnNlZERlc2NyaXB0b3IgPSBwYXJzZVN0YWtpbmdEZXNjcmlwdG9yKHN0YWtpbmdEZXNjcmlwdG9yKTtcbiAgYXNzZXJ0KHBhcnNlZERlc2NyaXB0b3IsICdJbnZhbGlkIHN0YWtpbmcgZGVzY3JpcHRvcicpO1xuICByZXR1cm4gTWluaXNjcmlwdC5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHBhcnNlZERlc2NyaXB0b3IudW5ib25kaW5nTWluaXNjcmlwdE5vZGUpLCAndGFwJyk7XG59XG5cbi8qKlxuICogQHJldHVybiB1bnNpZ25lZCBQU0JUIGZvciBhbiB1bmJvbmRpbmcgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVW5ib25kaW5nUHNidChcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4sXG4gIHdpdG5lc3NVdHhvOiBXaXRuZXNzVXR4byxcbiAgc3Rha2luZ0Rlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29ya1xuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIGNvbnN0IHVuYm9uZGluZ1NjcmlwdCA9IGdldFVuYm9uZGluZ1NjcmlwdChzdGFraW5nRGVzY3JpcHRvcik7XG4gIGNvbnN0IHBzYnQgPSBuZXcgdXR4b2xpYi5Qc2J0KHsgbmV0d29yayB9KTtcbiAgcHNidC5zZXRWZXJzaW9uKHR4LnZlcnNpb24pO1xuICBwc2J0LnNldExvY2t0aW1lKHR4LmxvY2t0aW1lKTtcbiAgcHNidC5hZGRPdXRwdXRzKFxuICAgIHR4Lm91dHMubWFwKChvdXRwdXQpID0+ICh7XG4gICAgICBzY3JpcHQ6IG91dHB1dC5zY3JpcHQsXG4gICAgICB2YWx1ZTogQmlnSW50KG91dHB1dC52YWx1ZSksXG4gICAgfSkpXG4gICk7XG4gIGFzc2VydCh0eC5pbnMubGVuZ3RoID09PSAxKTtcbiAgY29uc3QgaW5wdXQgPSB0eC5pbnNbMF07XG4gIHBzYnQuYWRkSW5wdXQoe1xuICAgIGhhc2g6IGlucHV0Lmhhc2gsXG4gICAgaW5kZXg6IGlucHV0LmluZGV4LFxuICAgIHNlcXVlbmNlOiBpbnB1dC5zZXF1ZW5jZSxcbiAgICB3aXRuZXNzVXR4byxcbiAgfSk7XG4gIGNvbnN0IHdyYXBwZWRQc2J0ID0gdG9XcmFwcGVkUHNidChwc2J0KTtcbiAgd3JhcHBlZFBzYnQudXBkYXRlSW5wdXRXaXRoRGVzY3JpcHRvcigwLCBzdGFraW5nRGVzY3JpcHRvcik7XG4gIGNvbnN0IHVud3JhcHBlZCA9IHRvVXR4b1BzYnQod3JhcHBlZFBzYnQsIG5ldHdvcmspO1xuICBhc3NlcnQodW53cmFwcGVkLmRhdGEuaW5wdXRzLmxlbmd0aCA9PT0gMSwgJ1VuYm9uZGluZyB0cmFuc2FjdGlvbiBtdXN0IGhhdmUgZXhhY3RseSBvbmUgaW5wdXQnKTtcbiAgY29uc3QgdW53cmFwcGVkSW5wdXREYXRhID0gdW53cmFwcGVkLmRhdGEuaW5wdXRzWzBdO1xuICBhc3NlcnQodW53cmFwcGVkSW5wdXREYXRhLnRhcExlYWZTY3JpcHQpO1xuICBjb25zdCB1bndyYXBwZWRVbmJvbmQgPSBmaW5kVGFwTGVhZlNjcmlwdCh1bndyYXBwZWRJbnB1dERhdGEudGFwTGVhZlNjcmlwdCwgdW5ib25kaW5nU2NyaXB0KTtcbiAgdW53cmFwcGVkSW5wdXREYXRhLnRhcExlYWZTY3JpcHQgPSBbdW53cmFwcGVkVW5ib25kXTtcbiAgcmV0dXJuIHVud3JhcHBlZDtcbn1cblxuLyoqXG4gKiBAcmV0dXJuIFBTQlQgZm9yIGFuIHVuYm9uZGluZyB0cmFuc2FjdGlvbiB3aXRoIHNpZ25hdHVyZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvVW5ib25kaW5nUHNidFdpdGhTaWduYXR1cmVzKFxuICB0eDogdXR4b2xpYi5iaXRnby5VdHhvVHJhbnNhY3Rpb248YmlnaW50PixcbiAgd2l0bmVzc1V0eG86IFdpdG5lc3NVdHhvLFxuICBzdGFraW5nRGVzY3JpcHRvcjogRGVzY3JpcHRvcixcbiAgc2lnbmF0dXJlczogUGFydGlhbFNpZ1tdLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICBjb25zdCBwc2J0ID0gdG9VbmJvbmRpbmdQc2J0KHR4LCB3aXRuZXNzVXR4bywgc3Rha2luZ0Rlc2NyaXB0b3IsIG5ldHdvcmspO1xuICBhc3NlcnQocHNidC5kYXRhLmlucHV0cy5sZW5ndGggPT09IDEsICdVbmJvbmRpbmcgdHJhbnNhY3Rpb24gbXVzdCBoYXZlIGV4YWN0bHkgb25lIGlucHV0Jyk7XG4gIGFkZENvdmVuYW50U2lnbmF0dXJlcyhwc2J0LCAwLCBzaWduYXR1cmVzKTtcbiAgYXNzZXJ0VmFsaWRTaWduYXR1cmVzKHBzYnQsIDAsIHNpZ25hdHVyZXMpO1xuICByZXR1cm4gcHNidDtcbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/coreDao/descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;AASjD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,CAAC,EAAE,MAAM,EACT,WAAW,EAAE,CAAC,cAAc,GAAG,MAAM,CAAC,EAAE,EACxC,QAAQ,UAAO,GACd,MAAM,CAmBR"}
1
+ {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/coreDao/descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;AASjD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,CAAC,EAAE,MAAM,EACT,WAAW,EAAE,CAAC,cAAc,GAAG,MAAM,CAAC,EAAE,EACxC,QAAQ,UAAO,GACd,MAAM,CAmBR"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.createMultiSigDescriptor = createMultiSigDescriptor;
4
+ const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
4
5
  function asDescriptorKey(key, neutered) {
5
6
  if (Buffer.isBuffer(key)) {
6
7
  return key.toString('hex');
@@ -24,14 +25,14 @@ function createMultiSigDescriptor(scriptType, locktime, m, orderedKeys, neutered
24
25
  throw new Error(`locktime (${locktime}) must be greater than 0`);
25
26
  }
26
27
  const keys = orderedKeys.map((key) => asDescriptorKey(key, neutered));
27
- const inner = `and_v(r:after(${locktime}),multi(${m},${keys.join(',')}))`;
28
+ const inner = { and_v: [{ 'r:after': locktime }, { multi: [m, ...keys] }] };
28
29
  switch (scriptType) {
29
30
  case 'sh':
30
- return `sh(${inner})`;
31
+ return wasm_miniscript_1.ast.formatNode({ sh: inner });
31
32
  case 'sh-wsh':
32
- return `sh(wsh(${inner}))`;
33
+ return wasm_miniscript_1.ast.formatNode({ sh: { wsh: inner } });
33
34
  case 'wsh':
34
- return `wsh(${inner})`;
35
+ return wasm_miniscript_1.ast.formatNode({ wsh: inner });
35
36
  }
36
37
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlRGFvL2Rlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5QkEsNERBeUJDO0FBekNELFNBQVMsZUFBZSxDQUFDLEdBQTRCLEVBQUUsUUFBaUI7SUFDdEUsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDekIsT0FBTyxHQUFHLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztBQUM3RCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQix3QkFBd0IsQ0FDdEMsVUFBc0IsRUFDdEIsUUFBZ0IsRUFDaEIsQ0FBUyxFQUNULFdBQXdDLEVBQ3hDLFFBQVEsR0FBRyxJQUFJO0lBRWYsSUFBSSxDQUFDLEdBQUcsV0FBVyxDQUFDLE1BQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDcEMsTUFBTSxJQUFJLEtBQUssQ0FDYixNQUFNLENBQUMsdURBQXVELFdBQVcsQ0FBQyxNQUFNLHNCQUFzQixDQUN2RyxDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksUUFBUSxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxRQUFRLDBCQUEwQixDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUN0RSxNQUFNLEtBQUssR0FBRyxpQkFBaUIsUUFBUSxXQUFXLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7SUFDMUUsUUFBUSxVQUFVLEVBQUUsQ0FBQztRQUNuQixLQUFLLElBQUk7WUFDUCxPQUFPLE1BQU0sS0FBSyxHQUFHLENBQUM7UUFDeEIsS0FBSyxRQUFRO1lBQ1gsT0FBTyxVQUFVLEtBQUssSUFBSSxDQUFDO1FBQzdCLEtBQUssS0FBSztZQUNSLE9BQU8sT0FBTyxLQUFLLEdBQUcsQ0FBQztJQUMzQixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJJUDMySW50ZXJmYWNlIH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG4vKipcbiAqIFNjcmlwdCB0eXBlIGZvciBhIGRlc2NyaXB0b3IuXG4gKlxuICogU2VlIGh0dHBzOi8vZG9jcy5jb3JlZGFvLm9yZy9kb2NzL0xlYXJuL3Byb2R1Y3RzL2J0Yy1zdGFraW5nL2Rlc2lnbiNwMnNocDJ3c2gtb3V0cHV0XG4gKi9cbmV4cG9ydCB0eXBlIFNjcmlwdFR5cGUgPSAnc2gnIHwgJ3NoLXdzaCcgfCAnd3NoJztcblxuZnVuY3Rpb24gYXNEZXNjcmlwdG9yS2V5KGtleTogQklQMzJJbnRlcmZhY2UgfCBCdWZmZXIsIG5ldXRlcmVkOiBib29sZWFuKTogc3RyaW5nIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihrZXkpKSB7XG4gICAgcmV0dXJuIGtleS50b1N0cmluZygnaGV4Jyk7XG4gIH1cbiAgcmV0dXJuIChuZXV0ZXJlZCA/IGtleS5uZXV0ZXJlZCgpIDoga2V5KS50b0Jhc2U1OCgpICsgJy8qJztcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtdWx0aS1zaWcgZGVzY3JpcHRvciB0byBwcm9kdWNlIGEgY29yZWRhbyBzdGFraW5nIGFkZHJlc3NcbiAqIEBwYXJhbSBzY3JpcHRUeXBlIHNlZ3dpdCBvciBsZWdhY3lcbiAqIEBwYXJhbSBsb2NrdGltZSBsb2NrdGltZSBmb3IgQ0xUVlxuICogQHBhcmFtIG0gVG90YWwgbnVtYmVyIG9mIGtleXMgcmVxdWlyZWQgdG8gdW5sb2NrXG4gKiBAcGFyYW0gb3JkZXJlZEtleXMgSWYgQmlwMzJJbnRlcmZhY2VzLCB0aGVzZSBhcmUgeHBydnMgb3IgeHB1YnMgYW5kIGFyZSBkZXJpdmFibGUuXG4gKiAgICAgICAgICAgICAgICAgICAgSWYgdGhleSBhcmUgYnVmZmVycywgdGhlbiB0aGV5IGFyZSBwdWIvcHJ2IGtleXMgYW5kIGFyZSBub3QgZGVyaXZhYmxlLlxuICogQHBhcmFtIG5ldXRlcmVkIElmIHRydWUsIG5ldXRlciB0aGUga2V5cy4gRGVmYXVsdCB0byB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNdWx0aVNpZ0Rlc2NyaXB0b3IoXG4gIHNjcmlwdFR5cGU6IFNjcmlwdFR5cGUsXG4gIGxvY2t0aW1lOiBudW1iZXIsXG4gIG06IG51bWJlcixcbiAgb3JkZXJlZEtleXM6IChCSVAzMkludGVyZmFjZSB8IEJ1ZmZlcilbXSxcbiAgbmV1dGVyZWQgPSB0cnVlXG4pOiBzdHJpbmcge1xuICBpZiAobSA+IG9yZGVyZWRLZXlzLmxlbmd0aCB8fCBtIDwgMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBtICgke219KSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGtleXMgKCR7b3JkZXJlZEtleXMubGVuZ3RofSkgYW5kIGdyZWF0ZXIgdGhhbiAwYFxuICAgICk7XG4gIH1cbiAgaWYgKGxvY2t0aW1lIDw9IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGxvY2t0aW1lICgke2xvY2t0aW1lfSkgbXVzdCBiZSBncmVhdGVyIHRoYW4gMGApO1xuICB9XG4gIGNvbnN0IGtleXMgPSBvcmRlcmVkS2V5cy5tYXAoKGtleSkgPT4gYXNEZXNjcmlwdG9yS2V5KGtleSwgbmV1dGVyZWQpKTtcbiAgY29uc3QgaW5uZXIgPSBgYW5kX3YocjphZnRlcigke2xvY2t0aW1lfSksbXVsdGkoJHttfSwke2tleXMuam9pbignLCcpfSkpYDtcbiAgc3dpdGNoIChzY3JpcHRUeXBlKSB7XG4gICAgY2FzZSAnc2gnOlxuICAgICAgcmV0dXJuIGBzaCgke2lubmVyfSlgO1xuICAgIGNhc2UgJ3NoLXdzaCc6XG4gICAgICByZXR1cm4gYHNoKHdzaCgke2lubmVyfSkpYDtcbiAgICBjYXNlICd3c2gnOlxuICAgICAgcmV0dXJuIGB3c2goJHtpbm5lcn0pYDtcbiAgfVxufVxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlRGFvL2Rlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEwQkEsNERBeUJDO0FBbERELDREQUE2QztBQVM3QyxTQUFTLGVBQWUsQ0FBQyxHQUE0QixFQUFFLFFBQWlCO0lBQ3RFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDN0QsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQ3RDLFVBQXNCLEVBQ3RCLFFBQWdCLEVBQ2hCLENBQVMsRUFDVCxXQUF3QyxFQUN4QyxRQUFRLEdBQUcsSUFBSTtJQUVmLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ2IsTUFBTSxDQUFDLHVEQUF1RCxXQUFXLENBQUMsTUFBTSxzQkFBc0IsQ0FDdkcsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsUUFBUSwwQkFBMEIsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsTUFBTSxLQUFLLEdBQXVCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNoRyxRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLEtBQUssSUFBSTtZQUNQLE9BQU8scUJBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2QyxLQUFLLFFBQVE7WUFDWCxPQUFPLHFCQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNoRCxLQUFLLEtBQUs7WUFDUixPQUFPLHFCQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGFzdCB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG4vKipcbiAqIFNjcmlwdCB0eXBlIGZvciBhIGRlc2NyaXB0b3IuXG4gKlxuICogU2VlIGh0dHBzOi8vZG9jcy5jb3JlZGFvLm9yZy9kb2NzL0xlYXJuL3Byb2R1Y3RzL2J0Yy1zdGFraW5nL2Rlc2lnbiNwMnNocDJ3c2gtb3V0cHV0XG4gKi9cbmV4cG9ydCB0eXBlIFNjcmlwdFR5cGUgPSAnc2gnIHwgJ3NoLXdzaCcgfCAnd3NoJztcblxuZnVuY3Rpb24gYXNEZXNjcmlwdG9yS2V5KGtleTogQklQMzJJbnRlcmZhY2UgfCBCdWZmZXIsIG5ldXRlcmVkOiBib29sZWFuKTogc3RyaW5nIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihrZXkpKSB7XG4gICAgcmV0dXJuIGtleS50b1N0cmluZygnaGV4Jyk7XG4gIH1cbiAgcmV0dXJuIChuZXV0ZXJlZCA/IGtleS5uZXV0ZXJlZCgpIDoga2V5KS50b0Jhc2U1OCgpICsgJy8qJztcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtdWx0aS1zaWcgZGVzY3JpcHRvciB0byBwcm9kdWNlIGEgY29yZWRhbyBzdGFraW5nIGFkZHJlc3NcbiAqIEBwYXJhbSBzY3JpcHRUeXBlIHNlZ3dpdCBvciBsZWdhY3lcbiAqIEBwYXJhbSBsb2NrdGltZSBsb2NrdGltZSBmb3IgQ0xUVlxuICogQHBhcmFtIG0gVG90YWwgbnVtYmVyIG9mIGtleXMgcmVxdWlyZWQgdG8gdW5sb2NrXG4gKiBAcGFyYW0gb3JkZXJlZEtleXMgSWYgQmlwMzJJbnRlcmZhY2VzLCB0aGVzZSBhcmUgeHBydnMgb3IgeHB1YnMgYW5kIGFyZSBkZXJpdmFibGUuXG4gKiAgICAgICAgICAgICAgICAgICAgSWYgdGhleSBhcmUgYnVmZmVycywgdGhlbiB0aGV5IGFyZSBwdWIvcHJ2IGtleXMgYW5kIGFyZSBub3QgZGVyaXZhYmxlLlxuICogQHBhcmFtIG5ldXRlcmVkIElmIHRydWUsIG5ldXRlciB0aGUga2V5cy4gRGVmYXVsdCB0byB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNdWx0aVNpZ0Rlc2NyaXB0b3IoXG4gIHNjcmlwdFR5cGU6IFNjcmlwdFR5cGUsXG4gIGxvY2t0aW1lOiBudW1iZXIsXG4gIG06IG51bWJlcixcbiAgb3JkZXJlZEtleXM6IChCSVAzMkludGVyZmFjZSB8IEJ1ZmZlcilbXSxcbiAgbmV1dGVyZWQgPSB0cnVlXG4pOiBzdHJpbmcge1xuICBpZiAobSA+IG9yZGVyZWRLZXlzLmxlbmd0aCB8fCBtIDwgMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBtICgke219KSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGtleXMgKCR7b3JkZXJlZEtleXMubGVuZ3RofSkgYW5kIGdyZWF0ZXIgdGhhbiAwYFxuICAgICk7XG4gIH1cbiAgaWYgKGxvY2t0aW1lIDw9IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGxvY2t0aW1lICgke2xvY2t0aW1lfSkgbXVzdCBiZSBncmVhdGVyIHRoYW4gMGApO1xuICB9XG4gIGNvbnN0IGtleXMgPSBvcmRlcmVkS2V5cy5tYXAoKGtleSkgPT4gYXNEZXNjcmlwdG9yS2V5KGtleSwgbmV1dGVyZWQpKTtcbiAgY29uc3QgaW5uZXI6IGFzdC5NaW5pc2NyaXB0Tm9kZSA9IHsgYW5kX3Y6IFt7ICdyOmFmdGVyJzogbG9ja3RpbWUgfSwgeyBtdWx0aTogW20sIC4uLmtleXNdIH1dIH07XG4gIHN3aXRjaCAoc2NyaXB0VHlwZSkge1xuICAgIGNhc2UgJ3NoJzpcbiAgICAgIHJldHVybiBhc3QuZm9ybWF0Tm9kZSh7IHNoOiBpbm5lciB9KTtcbiAgICBjYXNlICdzaC13c2gnOlxuICAgICAgcmV0dXJuIGFzdC5mb3JtYXROb2RlKHsgc2g6IHsgd3NoOiBpbm5lciB9IH0pO1xuICAgIGNhc2UgJ3dzaCc6XG4gICAgICByZXR1cm4gYXN0LmZvcm1hdE5vZGUoeyB3c2g6IGlubmVyIH0pO1xuICB9XG59XG4iXX0=
@@ -1,5 +1,11 @@
1
+ import { Output } from '@bitgo-beta/utxo-core';
1
2
  import { Descriptor } from '@bitgo/wasm-miniscript';
2
3
  import { OpReturnParams } from './opReturn';
4
+ type StakingParams = {
5
+ amount: bigint;
6
+ descriptor: Descriptor;
7
+ index?: number;
8
+ };
3
9
  /**
4
10
  * Create the staking outputs for a CoreDAO staking transaction. This is the ordering
5
11
  * in which to add into the transaction.
@@ -8,12 +14,15 @@ import { OpReturnParams } from './opReturn';
8
14
  * If stakingParams.index is provided, then this is assumed to be a `derivable` descriptor.
9
15
  * @param opReturnParams to create the OP_RETURN output
10
16
  */
11
- export declare function createStakingOutputs(stakingParams: {
12
- amount: bigint;
13
- descriptor: Descriptor;
14
- index?: number;
15
- }, opReturnParams: OpReturnParams): {
17
+ export declare function createStakingOutputsCore(stakingParams: StakingParams, opReturnParams: OpReturnParams): Output<bigint>[];
18
+ type LegacyOutput = {
16
19
  script: Buffer;
17
20
  amount: bigint;
18
- }[];
21
+ };
22
+ /**
23
+ * @see createStakingOutputsCore
24
+ * @deprecated - use createStakingOutputsCore instead
25
+ */
26
+ export declare function createStakingOutputs(stakingParams: StakingParams, opReturnParams: OpReturnParams): LegacyOutput[];
27
+ export {};
19
28
  //# sourceMappingURL=transaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/coreDao/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAqC,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/E;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,EACD,cAAc,EAAE,cAAc,GAC7B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,CAgBtC"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/coreDao/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAqC,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/E,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,GAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAgBlB;AAED,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,GAAG,YAAY,EAAE,CAEjH"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createStakingOutputsCore = createStakingOutputsCore;
3
4
  exports.createStakingOutputs = createStakingOutputs;
4
5
  const opReturn_1 = require("./opReturn");
5
6
  /**
@@ -10,7 +11,7 @@ const opReturn_1 = require("./opReturn");
10
11
  * If stakingParams.index is provided, then this is assumed to be a `derivable` descriptor.
11
12
  * @param opReturnParams to create the OP_RETURN output
12
13
  */
13
- function createStakingOutputs(stakingParams, opReturnParams) {
14
+ function createStakingOutputsCore(stakingParams, opReturnParams) {
14
15
  if (stakingParams.descriptor.hasWildcard() && stakingParams.index === undefined) {
15
16
  throw new Error('Cannot create staking outputs with a wildcard descriptor and no derivation index');
16
17
  }
@@ -19,8 +20,15 @@ function createStakingOutputs(stakingParams, opReturnParams) {
19
20
  : stakingParams.descriptor.atDerivationIndex(stakingParams.index).scriptPubkey());
20
21
  const opReturnScript = (0, opReturn_1.createCoreDaoOpReturnOutputScript)(opReturnParams);
21
22
  return [
22
- { script: outputScript, amount: stakingParams.amount },
23
- { script: opReturnScript, amount: BigInt(0) },
23
+ { script: outputScript, value: stakingParams.amount },
24
+ { script: opReturnScript, value: BigInt(0) },
24
25
  ];
25
26
  }
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZURhby90cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLG9EQXVCQztBQWpDRCx5Q0FBK0U7QUFFL0U7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLG9CQUFvQixDQUNsQyxhQUlDLEVBQ0QsY0FBOEI7SUFFOUIsSUFBSSxhQUFhLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxJQUFJLGFBQWEsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDaEYsTUFBTSxJQUFJLEtBQUssQ0FBQyxrRkFBa0YsQ0FBQyxDQUFDO0lBQ3RHLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUM5QixhQUFhLENBQUMsS0FBSyxLQUFLLFNBQVM7UUFDL0IsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFO1FBQ3pDLENBQUMsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FDbkYsQ0FBQztJQUNGLE1BQU0sY0FBYyxHQUFHLElBQUEsNENBQWlDLEVBQUMsY0FBYyxDQUFDLENBQUM7SUFFekUsT0FBTztRQUNMLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsYUFBYSxDQUFDLE1BQU0sRUFBRTtRQUN0RCxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRTtLQUM5QyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcblxuaW1wb3J0IHsgY3JlYXRlQ29yZURhb09wUmV0dXJuT3V0cHV0U2NyaXB0LCBPcFJldHVyblBhcmFtcyB9IGZyb20gJy4vb3BSZXR1cm4nO1xuXG4vKipcbiAqIENyZWF0ZSB0aGUgc3Rha2luZyBvdXRwdXRzIGZvciBhIENvcmVEQU8gc3Rha2luZyB0cmFuc2FjdGlvbi4gVGhpcyBpcyB0aGUgb3JkZXJpbmdcbiAqIGluIHdoaWNoIHRvIGFkZCBpbnRvIHRoZSB0cmFuc2FjdGlvbi5cbiAqIEBwYXJhbSBzdGFraW5nUGFyYW1zIGhvdyB0byBjcmVhdGUgdGhlIHRpbWVsb2NrZWQgc3Rha2Ugb3V0cHV0XG4gKiBAcGFyYW0gc3Rha2luZ1BhcmFtcy5kZXNjcmlwdG9yIGlmIHN0YWtpbmdQYXJhbXMuaW5kZXggaXMgbm90IHByb3ZpZGVkLCB0aGVuIHRoaXMgaXMgYXNzdW1lZCB0byBiZSBhIGBkZWZpbml0ZWAgZGVzY3JpcHRvci5cbiAqIElmIHN0YWtpbmdQYXJhbXMuaW5kZXggaXMgcHJvdmlkZWQsIHRoZW4gdGhpcyBpcyBhc3N1bWVkIHRvIGJlIGEgYGRlcml2YWJsZWAgZGVzY3JpcHRvci5cbiAqIEBwYXJhbSBvcFJldHVyblBhcmFtcyB0byBjcmVhdGUgdGhlIE9QX1JFVFVSTiBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0YWtpbmdPdXRwdXRzKFxuICBzdGFraW5nUGFyYW1zOiB7XG4gICAgYW1vdW50OiBiaWdpbnQ7XG4gICAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcjtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSxcbiAgb3BSZXR1cm5QYXJhbXM6IE9wUmV0dXJuUGFyYW1zXG4pOiB7IHNjcmlwdDogQnVmZmVyOyBhbW91bnQ6IGJpZ2ludCB9W10ge1xuICBpZiAoc3Rha2luZ1BhcmFtcy5kZXNjcmlwdG9yLmhhc1dpbGRjYXJkKCkgJiYgc3Rha2luZ1BhcmFtcy5pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY3JlYXRlIHN0YWtpbmcgb3V0cHV0cyB3aXRoIGEgd2lsZGNhcmQgZGVzY3JpcHRvciBhbmQgbm8gZGVyaXZhdGlvbiBpbmRleCcpO1xuICB9XG5cbiAgY29uc3Qgb3V0cHV0U2NyaXB0ID0gQnVmZmVyLmZyb20oXG4gICAgc3Rha2luZ1BhcmFtcy5pbmRleCA9PT0gdW5kZWZpbmVkXG4gICAgICA/IHN0YWtpbmdQYXJhbXMuZGVzY3JpcHRvci5zY3JpcHRQdWJrZXkoKVxuICAgICAgOiBzdGFraW5nUGFyYW1zLmRlc2NyaXB0b3IuYXREZXJpdmF0aW9uSW5kZXgoc3Rha2luZ1BhcmFtcy5pbmRleCkuc2NyaXB0UHVia2V5KClcbiAgKTtcbiAgY29uc3Qgb3BSZXR1cm5TY3JpcHQgPSBjcmVhdGVDb3JlRGFvT3BSZXR1cm5PdXRwdXRTY3JpcHQob3BSZXR1cm5QYXJhbXMpO1xuXG4gIHJldHVybiBbXG4gICAgeyBzY3JpcHQ6IG91dHB1dFNjcmlwdCwgYW1vdW50OiBzdGFraW5nUGFyYW1zLmFtb3VudCB9LFxuICAgIHsgc2NyaXB0OiBvcFJldHVyblNjcmlwdCwgYW1vdW50OiBCaWdJbnQoMCkgfSxcbiAgXTtcbn1cbiJdfQ==
27
+ /**
28
+ * @see createStakingOutputsCore
29
+ * @deprecated - use createStakingOutputsCore instead
30
+ */
31
+ function createStakingOutputs(stakingParams, opReturnParams) {
32
+ return createStakingOutputsCore(stakingParams, opReturnParams).map(({ value, ...o }) => ({ ...o, amount: value }));
33
+ }
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZURhby90cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1CQSw0REFtQkM7QUFXRCxvREFFQztBQWhERCx5Q0FBK0U7QUFRL0U7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLHdCQUF3QixDQUN0QyxhQUE0QixFQUM1QixjQUE4QjtJQUU5QixJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksYUFBYSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNoRixNQUFNLElBQUksS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzlCLGFBQWEsQ0FBQyxLQUFLLEtBQUssU0FBUztRQUMvQixDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7UUFDekMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUNuRixDQUFDO0lBQ0YsTUFBTSxjQUFjLEdBQUcsSUFBQSw0Q0FBaUMsRUFBQyxjQUFjLENBQUMsQ0FBQztJQUV6RSxPQUFPO1FBQ0wsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFO1FBQ3JELEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO0tBQzdDLENBQUM7QUFDSixDQUFDO0FBT0Q7OztHQUdHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsYUFBNEIsRUFBRSxjQUE4QjtJQUMvRixPQUFPLHdCQUF3QixDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNySCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3V0cHV0IH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1jb3JlJztcbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcblxuaW1wb3J0IHsgY3JlYXRlQ29yZURhb09wUmV0dXJuT3V0cHV0U2NyaXB0LCBPcFJldHVyblBhcmFtcyB9IGZyb20gJy4vb3BSZXR1cm4nO1xuXG50eXBlIFN0YWtpbmdQYXJhbXMgPSB7XG4gIGFtb3VudDogYmlnaW50O1xuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yO1xuICBpbmRleD86IG51bWJlcjtcbn07XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBzdGFraW5nIG91dHB1dHMgZm9yIGEgQ29yZURBTyBzdGFraW5nIHRyYW5zYWN0aW9uLiBUaGlzIGlzIHRoZSBvcmRlcmluZ1xuICogaW4gd2hpY2ggdG8gYWRkIGludG8gdGhlIHRyYW5zYWN0aW9uLlxuICogQHBhcmFtIHN0YWtpbmdQYXJhbXMgaG93IHRvIGNyZWF0ZSB0aGUgdGltZWxvY2tlZCBzdGFrZSBvdXRwdXRcbiAqIEBwYXJhbSBzdGFraW5nUGFyYW1zLmRlc2NyaXB0b3IgaWYgc3Rha2luZ1BhcmFtcy5pbmRleCBpcyBub3QgcHJvdmlkZWQsIHRoZW4gdGhpcyBpcyBhc3N1bWVkIHRvIGJlIGEgYGRlZmluaXRlYCBkZXNjcmlwdG9yLlxuICogSWYgc3Rha2luZ1BhcmFtcy5pbmRleCBpcyBwcm92aWRlZCwgdGhlbiB0aGlzIGlzIGFzc3VtZWQgdG8gYmUgYSBgZGVyaXZhYmxlYCBkZXNjcmlwdG9yLlxuICogQHBhcmFtIG9wUmV0dXJuUGFyYW1zIHRvIGNyZWF0ZSB0aGUgT1BfUkVUVVJOIG91dHB1dFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3Rha2luZ091dHB1dHNDb3JlKFxuICBzdGFraW5nUGFyYW1zOiBTdGFraW5nUGFyYW1zLFxuICBvcFJldHVyblBhcmFtczogT3BSZXR1cm5QYXJhbXNcbik6IE91dHB1dDxiaWdpbnQ+W10ge1xuICBpZiAoc3Rha2luZ1BhcmFtcy5kZXNjcmlwdG9yLmhhc1dpbGRjYXJkKCkgJiYgc3Rha2luZ1BhcmFtcy5pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY3JlYXRlIHN0YWtpbmcgb3V0cHV0cyB3aXRoIGEgd2lsZGNhcmQgZGVzY3JpcHRvciBhbmQgbm8gZGVyaXZhdGlvbiBpbmRleCcpO1xuICB9XG5cbiAgY29uc3Qgb3V0cHV0U2NyaXB0ID0gQnVmZmVyLmZyb20oXG4gICAgc3Rha2luZ1BhcmFtcy5pbmRleCA9PT0gdW5kZWZpbmVkXG4gICAgICA/IHN0YWtpbmdQYXJhbXMuZGVzY3JpcHRvci5zY3JpcHRQdWJrZXkoKVxuICAgICAgOiBzdGFraW5nUGFyYW1zLmRlc2NyaXB0b3IuYXREZXJpdmF0aW9uSW5kZXgoc3Rha2luZ1BhcmFtcy5pbmRleCkuc2NyaXB0UHVia2V5KClcbiAgKTtcbiAgY29uc3Qgb3BSZXR1cm5TY3JpcHQgPSBjcmVhdGVDb3JlRGFvT3BSZXR1cm5PdXRwdXRTY3JpcHQob3BSZXR1cm5QYXJhbXMpO1xuXG4gIHJldHVybiBbXG4gICAgeyBzY3JpcHQ6IG91dHB1dFNjcmlwdCwgdmFsdWU6IHN0YWtpbmdQYXJhbXMuYW1vdW50IH0sXG4gICAgeyBzY3JpcHQ6IG9wUmV0dXJuU2NyaXB0LCB2YWx1ZTogQmlnSW50KDApIH0sXG4gIF07XG59XG5cbnR5cGUgTGVnYWN5T3V0cHV0ID0ge1xuICBzY3JpcHQ6IEJ1ZmZlcjtcbiAgYW1vdW50OiBiaWdpbnQ7XG59O1xuXG4vKipcbiAqIEBzZWUgY3JlYXRlU3Rha2luZ091dHB1dHNDb3JlXG4gKiBAZGVwcmVjYXRlZCAtIHVzZSBjcmVhdGVTdGFraW5nT3V0cHV0c0NvcmUgaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3Rha2luZ091dHB1dHMoc3Rha2luZ1BhcmFtczogU3Rha2luZ1BhcmFtcywgb3BSZXR1cm5QYXJhbXM6IE9wUmV0dXJuUGFyYW1zKTogTGVnYWN5T3V0cHV0W10ge1xuICByZXR1cm4gY3JlYXRlU3Rha2luZ091dHB1dHNDb3JlKHN0YWtpbmdQYXJhbXMsIG9wUmV0dXJuUGFyYW1zKS5tYXAoKHsgdmFsdWUsIC4uLm8gfSkgPT4gKHsgLi4ubywgYW1vdW50OiB2YWx1ZSB9KSk7XG59XG4iXX0=
@@ -1,3 +1,3 @@
1
1
  export * as coreDao from './coreDao';
2
- export * from './transaction';
2
+ export * as babylon from './babylon';
3
3
  //# 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;AAErC,cAAc,eAAe,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"}
package/dist/src/index.js CHANGED
@@ -10,11 +10,30 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
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
+ })();
16
35
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.coreDao = void 0;
18
- exports.coreDao = require("./coreDao");
19
- __exportStar(require("./transaction"), exports);
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBcUM7QUFFckMsZ0RBQThCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogYXMgY29yZURhbyBmcm9tICcuL2NvcmVEYW8nO1xuXG5leHBvcnQgKiBmcm9tICcuL3RyYW5zYWN0aW9uJztcbiJdfQ==
36
+ exports.babylon = exports.coreDao = void 0;
37
+ exports.coreDao = __importStar(require("./coreDao"));
38
+ exports.babylon = __importStar(require("./babylon"));
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXFDO0FBQ3JDLHFEQUFxQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGFzIGNvcmVEYW8gZnJvbSAnLi9jb3JlRGFvJztcbmV4cG9ydCAqIGFzIGJhYnlsb24gZnJvbSAnLi9iYWJ5bG9uJztcbiJdfQ==
package/package.json CHANGED
@@ -1,24 +1,26 @@
1
1
  {
2
2
  "name": "@bitgo-beta/utxo-staking",
3
- "version": "1.1.1-beta.81",
3
+ "version": "1.1.1-beta.811",
4
4
  "description": "BitGo SDK for build UTXO staking transactions",
5
5
  "main": "./dist/src/index.js",
6
6
  "types": "./dist/src/index.d.ts",
7
+ "files": [
8
+ "dist/src"
9
+ ],
7
10
  "scripts": {
8
11
  "build": "yarn tsc --build --incremental --verbose .",
9
12
  "fmt": "prettier --write .",
10
- "check-fmt": "prettier --check .",
13
+ "check-fmt": "prettier --check '**/*.{ts,js,json}'",
11
14
  "clean": "rm -r ./dist",
12
15
  "lint": "eslint --quiet .",
13
16
  "prepare": "npm run build",
14
- "test": "npm run coverage",
15
17
  "coverage": "nyc -- npm run unit-test",
16
- "unit-test": "mocha"
18
+ "unit-test": "mocha --recursive \"test/**/*.ts\""
17
19
  },
18
20
  "author": "BitGo SDK Team <sdkteam@bitgo.com>",
19
21
  "license": "MIT",
20
22
  "engines": {
21
- "node": ">=18 <21"
23
+ "node": ">=20 <23"
22
24
  },
23
25
  "repository": {
24
26
  "type": "git",
@@ -39,10 +41,22 @@
39
41
  ".ts"
40
42
  ]
41
43
  },
44
+ "type": "commonjs",
42
45
  "dependencies": {
43
- "@bitgo-beta/unspents": "0.13.2-beta.640",
44
- "@bitgo-beta/utxo-lib": "8.0.3-beta.641",
45
- "@bitgo/wasm-miniscript": "^2.0.0-beta.2"
46
+ "@babylonlabs-io/babylon-proto-ts": "1.7.2",
47
+ "@bitgo-beta/babylonlabs-io-btc-staking-ts": "0.4.0-beta.616",
48
+ "@bitgo-beta/utxo-core": "1.8.1-beta.487",
49
+ "@bitgo-beta/utxo-lib": "8.0.3-beta.1371",
50
+ "@bitgo/wasm-miniscript": "2.0.0-beta.7",
51
+ "bip174": "npm:@bitgo-forks/bip174@3.1.0-master.4",
52
+ "bip322-js": "^2.0.0",
53
+ "bitcoinjs-lib": "^6.1.7",
54
+ "fp-ts": "^2.16.2",
55
+ "io-ts": "npm:@bitgo-forks/io-ts@2.1.4",
56
+ "io-ts-types": "^0.5.19"
46
57
  },
47
- "gitHead": "8628f8794ced2a62bff530cf6c4483f0d368dca4"
58
+ "devDependencies": {
59
+ "yargs": "^17.7.2"
60
+ },
61
+ "gitHead": "7d7c8ea92509a28d646728a4f1950f773dc14b3c"
48
62
  }
package/.eslintignore DELETED
@@ -1,5 +0,0 @@
1
- node_modules
2
- .idea
3
- public
4
- dist
5
-
package/.mocharc.yml DELETED
@@ -1,8 +0,0 @@
1
- require: 'ts-node/register'
2
- timeout: '60000'
3
- reporter: 'min'
4
- reporter-option:
5
- - 'cdn=true'
6
- - 'json=false'
7
- exit: true
8
- spec: ['test/unit/**/*.ts']
package/CHANGELOG.md DELETED
@@ -1,63 +0,0 @@
1
- # Change Log
2
-
3
- All notable changes to this project will be documented in this file.
4
- See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
-
6
- # [1.5.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.5...@bitgo/utxo-staking@1.5.0) (2024-12-17)
7
-
8
- ### Features
9
-
10
- - **utxo-staking:** add support for wsh script type ([c3632a4](https://github.com/BitGo/BitGoJS/commit/c3632a456a92953ee52340c79740bcd9e6f66215))
11
-
12
- # [1.4.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.5...@bitgo/utxo-staking@1.4.0) (2024-12-17)
13
-
14
- ### Features
15
-
16
- - **utxo-staking:** add support for wsh script type ([c3632a4](https://github.com/BitGo/BitGoJS/commit/c3632a456a92953ee52340c79740bcd9e6f66215))
17
-
18
- ## [1.3.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.4...@bitgo/utxo-staking@1.3.5) (2024-12-12)
19
-
20
- **Note:** Version bump only for package @bitgo/utxo-staking
21
-
22
- ## [1.3.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.3...@bitgo/utxo-staking@1.3.4) (2024-12-11)
23
-
24
- **Note:** Version bump only for package @bitgo/utxo-staking
25
-
26
- ## [1.3.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.2...@bitgo/utxo-staking@1.3.3) (2024-12-03)
27
-
28
- **Note:** Version bump only for package @bitgo/utxo-staking
29
-
30
- ## [1.3.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.1...@bitgo/utxo-staking@1.3.2) (2024-11-26)
31
-
32
- **Note:** Version bump only for package @bitgo/utxo-staking
33
-
34
- ## [1.3.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.0...@bitgo/utxo-staking@1.3.1) (2024-11-21)
35
-
36
- **Note:** Version bump only for package @bitgo/utxo-staking
37
-
38
- # 1.3.0 (2024-11-19)
39
-
40
- ### Features
41
-
42
- - **utxo-staking:** build staking transaction ([73b33bc](https://github.com/BitGo/BitGoJS/commit/73b33bc93e46934fe5e6002c52c0b1443a3d0d8d))
43
- - **utxo-staking:** create coredao staking outputs ([6b5ca4b](https://github.com/BitGo/BitGoJS/commit/6b5ca4b7c726fb6a4380526391416f6db356e0b7))
44
-
45
- # 1.2.0 (2024-11-14)
46
-
47
- ### Features
48
-
49
- - **utxo-staking:** build staking transaction ([73b33bc](https://github.com/BitGo/BitGoJS/commit/73b33bc93e46934fe5e6002c52c0b1443a3d0d8d))
50
- - **utxo-staking:** create coredao staking outputs ([6b5ca4b](https://github.com/BitGo/BitGoJS/commit/6b5ca4b7c726fb6a4380526391416f6db356e0b7))
51
-
52
- # 1.1.0 (2024-11-01)
53
-
54
- ### Bug Fixes
55
-
56
- - **utxo-coredao:** clarifications from the coredao team ([56157b3](https://github.com/BitGo/BitGoJS/commit/56157b34e6802895489928d8e7a87f8f5c8129ed))
57
- - **utxo-coredao:** fix json encoding to add newline ([bb5be2f](https://github.com/BitGo/BitGoJS/commit/bb5be2f91e0e7f1d59d94a1786fdd2cccc4ebad6))
58
-
59
- ### Features
60
-
61
- - **utxo-coredao:** descriptor for CoreDao ([791f9e4](https://github.com/BitGo/BitGoJS/commit/791f9e47033a8224759d98f0483f5b0bb9bbc524))
62
- - **utxo-coredao:** init repo and op-return ([60fa058](https://github.com/BitGo/BitGoJS/commit/60fa058f693cf722db8d5e7507539a5ec1c8b1a5))
63
- - **utxo-coredao:** parse and verify op-return ([32dc7c4](https://github.com/BitGo/BitGoJS/commit/32dc7c49f0ff5baeb0db4a20853f70745f71c02b))
@@ -1,32 +0,0 @@
1
- import * as utxolib from '@bitgo-beta/utxo-lib';
2
- /**
3
- * Build a staking transaction for a wallet that assumes 2-of-3 multisig for the inputs
4
- *
5
- * Given the inputs and the staking outputs, we will create the PSBT with the desired fee rate.
6
- * We always add the change address as the last output.
7
- *
8
- * @param rootWalletKeys
9
- * @param unspents
10
- * @param createStakingOutputs
11
- * @param changeAddressInfo
12
- * @param feeRateSatKB
13
- * @param network
14
- */
15
- export declare function buildFixedWalletStakingPsbt({ rootWalletKeys, unspents, outputs, changeAddressInfo, feeRateSatKB, network, skipNonWitnessUtxo, dustAmount, }: {
16
- rootWalletKeys: utxolib.bitgo.RootWalletKeys;
17
- unspents: utxolib.bitgo.WalletUnspent<bigint>[];
18
- outputs: {
19
- script: Buffer;
20
- value: bigint;
21
- }[];
22
- changeAddressInfo: {
23
- chain: utxolib.bitgo.ChainCode;
24
- index: number;
25
- address: string;
26
- };
27
- feeRateSatKB: number;
28
- network: utxolib.Network;
29
- skipNonWitnessUtxo?: boolean;
30
- dustAmount?: bigint;
31
- }): utxolib.bitgo.UtxoPsbt;
32
- //# sourceMappingURL=transaction.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,cAAc,EACd,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,kBAAkB,EAClB,UAAsB,GACvB,EAAE;IACD,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;IAChD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,iBAAiB,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CA0DzB"}
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildFixedWalletStakingPsbt = buildFixedWalletStakingPsbt;
4
- const utxolib = require("@bitgo-beta/utxo-lib");
5
- const unspents_1 = require("@bitgo-beta/unspents");
6
- /**
7
- * Build a staking transaction for a wallet that assumes 2-of-3 multisig for the inputs
8
- *
9
- * Given the inputs and the staking outputs, we will create the PSBT with the desired fee rate.
10
- * We always add the change address as the last output.
11
- *
12
- * @param rootWalletKeys
13
- * @param unspents
14
- * @param createStakingOutputs
15
- * @param changeAddressInfo
16
- * @param feeRateSatKB
17
- * @param network
18
- */
19
- function buildFixedWalletStakingPsbt({ rootWalletKeys, unspents, outputs, changeAddressInfo, feeRateSatKB, network, skipNonWitnessUtxo, dustAmount = BigInt(0), }) {
20
- if (feeRateSatKB < 1000) {
21
- throw new Error('Fee rate must be at least 1 sat/vbyte');
22
- }
23
- if (unspents.length === 0 || outputs.length === 0) {
24
- throw new Error('Must have at least one input and one output');
25
- }
26
- // Check the change address info
27
- const changeScript = utxolib.bitgo.outputScripts.createOutputScript2of3(rootWalletKeys.deriveForChainAndIndex(changeAddressInfo.chain, changeAddressInfo.index).publicKeys, utxolib.bitgo.scriptTypeForChain(changeAddressInfo.chain), network).scriptPubKey;
28
- if (!changeScript.equals(utxolib.addressFormat.toOutputScriptTryFormats(changeAddressInfo.address, network))) {
29
- throw new Error('Change address info does not match the derived change script');
30
- }
31
- const psbt = utxolib.bitgo.createPsbtForNetwork({ network });
32
- utxolib.bitgo.addXpubsToPsbt(psbt, rootWalletKeys);
33
- const inputAmount = unspents.reduce((sum, unspent) => sum + unspent.value, BigInt(0));
34
- const outputAmount = outputs.reduce((sum, output) => sum + output.value, BigInt(0));
35
- unspents.forEach((unspent) => utxolib.bitgo.addWalletUnspentToPsbt(psbt, unspent, rootWalletKeys, 'user', 'bitgo', {
36
- isReplaceableByFee: true,
37
- skipNonWitnessUtxo,
38
- }));
39
- outputs.forEach((output) => psbt.addOutput(output));
40
- const fee = Math.ceil((unspents_1.Dimensions.fromPsbt(psbt)
41
- .plus(unspents_1.Dimensions.fromOutput({ script: changeScript }))
42
- .getVSize() *
43
- feeRateSatKB) /
44
- 1000);
45
- const changeAmount = inputAmount - (outputAmount + BigInt(fee));
46
- if (changeAmount < BigInt(0)) {
47
- throw new Error(`Input amount ${inputAmount.toString()} cannot cover the staking amount ${outputAmount} and the fee: ${fee}`);
48
- }
49
- if (changeAmount > dustAmount) {
50
- utxolib.bitgo.addWalletOutputToPsbt(psbt, rootWalletKeys, changeAddressInfo.chain, changeAddressInfo.index, changeAmount);
51
- }
52
- return psbt;
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsa0VBbUZDO0FBbkdELGdEQUFnRDtBQUNoRCxtREFBa0Q7QUFFbEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsRUFDMUMsY0FBYyxFQUNkLFFBQVEsRUFDUixPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBaUJ2QjtJQUNDLElBQUksWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUNyRSxjQUFjLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFDbEcsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFDekQsT0FBTyxDQUNSLENBQUMsWUFBWSxDQUFDO0lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdHLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDN0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRW5ELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRTtRQUNuRixrQkFBa0IsRUFBRSxJQUFJO1FBQ3hCLGtCQUFrQjtLQUNuQixDQUFDLENBQ0gsQ0FBQztJQUNGLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUVwRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUNuQixDQUFDLHFCQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztTQUN2QixJQUFJLENBQUMscUJBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztTQUNyRCxRQUFRLEVBQUU7UUFDWCxZQUFZLENBQUM7UUFDYixJQUFJLENBQ1AsQ0FBQztJQUVGLE1BQU0sWUFBWSxHQUFHLFdBQVcsR0FBRyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksS0FBSyxDQUNiLGdCQUFnQixXQUFXLENBQUMsUUFBUSxFQUFFLG9DQUFvQyxZQUFZLGtCQUFrQixHQUFHLEVBQUUsQ0FDOUcsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFlBQVksR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUNqQyxJQUFJLEVBQ0osY0FBYyxFQUNkLGlCQUFpQixDQUFDLEtBQUssRUFDdkIsaUJBQWlCLENBQUMsS0FBSyxFQUN2QixZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERpbWVuc2lvbnMgfSBmcm9tICdAYml0Z28tYmV0YS91bnNwZW50cyc7XG5cbi8qKlxuICogQnVpbGQgYSBzdGFraW5nIHRyYW5zYWN0aW9uIGZvciBhIHdhbGxldCB0aGF0IGFzc3VtZXMgMi1vZi0zIG11bHRpc2lnIGZvciB0aGUgaW5wdXRzXG4gKlxuICogR2l2ZW4gdGhlIGlucHV0cyBhbmQgdGhlIHN0YWtpbmcgb3V0cHV0cywgd2Ugd2lsbCBjcmVhdGUgdGhlIFBTQlQgd2l0aCB0aGUgZGVzaXJlZCBmZWUgcmF0ZS5cbiAqIFdlIGFsd2F5cyBhZGQgdGhlIGNoYW5nZSBhZGRyZXNzIGFzIHRoZSBsYXN0IG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXNcbiAqIEBwYXJhbSB1bnNwZW50c1xuICogQHBhcmFtIGNyZWF0ZVN0YWtpbmdPdXRwdXRzXG4gKiBAcGFyYW0gY2hhbmdlQWRkcmVzc0luZm9cbiAqIEBwYXJhbSBmZWVSYXRlU2F0S0JcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZpeGVkV2FsbGV0U3Rha2luZ1BzYnQoe1xuICByb290V2FsbGV0S2V5cyxcbiAgdW5zcGVudHMsXG4gIG91dHB1dHMsXG4gIGNoYW5nZUFkZHJlc3NJbmZvLFxuICBmZWVSYXRlU2F0S0IsXG4gIG5ldHdvcmssXG4gIHNraXBOb25XaXRuZXNzVXR4byxcbiAgZHVzdEFtb3VudCA9IEJpZ0ludCgwKSxcbn06IHtcbiAgcm9vdFdhbGxldEtleXM6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXM7XG4gIHVuc3BlbnRzOiB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnQ8YmlnaW50PltdO1xuICBvdXRwdXRzOiB7XG4gICAgc2NyaXB0OiBCdWZmZXI7XG4gICAgdmFsdWU6IGJpZ2ludDtcbiAgfVtdO1xuICBjaGFuZ2VBZGRyZXNzSW5mbzoge1xuICAgIGNoYWluOiB1dHhvbGliLmJpdGdvLkNoYWluQ29kZTtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgfTtcbiAgZmVlUmF0ZVNhdEtCOiBudW1iZXI7XG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yaztcbiAgc2tpcE5vbldpdG5lc3NVdHhvPzogYm9vbGVhbjtcbiAgZHVzdEFtb3VudD86IGJpZ2ludDtcbn0pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgaWYgKGZlZVJhdGVTYXRLQiA8IDEwMDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZlZSByYXRlIG11c3QgYmUgYXQgbGVhc3QgMSBzYXQvdmJ5dGUnKTtcbiAgfVxuICBpZiAodW5zcGVudHMubGVuZ3RoID09PSAwIHx8IG91dHB1dHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGlucHV0IGFuZCBvbmUgb3V0cHV0Jyk7XG4gIH1cblxuICAvLyBDaGVjayB0aGUgY2hhbmdlIGFkZHJlc3MgaW5mb1xuICBjb25zdCBjaGFuZ2VTY3JpcHQgPSB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhcbiAgICByb290V2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYW5nZUFkZHJlc3NJbmZvLmNoYWluLCBjaGFuZ2VBZGRyZXNzSW5mby5pbmRleCkucHVibGljS2V5cyxcbiAgICB1dHhvbGliLmJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihjaGFuZ2VBZGRyZXNzSW5mby5jaGFpbiksXG4gICAgbmV0d29ya1xuICApLnNjcmlwdFB1YktleTtcbiAgaWYgKCFjaGFuZ2VTY3JpcHQuZXF1YWxzKHV0eG9saWIuYWRkcmVzc0Zvcm1hdC50b091dHB1dFNjcmlwdFRyeUZvcm1hdHMoY2hhbmdlQWRkcmVzc0luZm8uYWRkcmVzcywgbmV0d29yaykpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDaGFuZ2UgYWRkcmVzcyBpbmZvIGRvZXMgbm90IG1hdGNoIHRoZSBkZXJpdmVkIGNoYW5nZSBzY3JpcHQnKTtcbiAgfVxuXG4gIGNvbnN0IHBzYnQgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yayB9KTtcbiAgdXR4b2xpYi5iaXRnby5hZGRYcHVic1RvUHNidChwc2J0LCByb290V2FsbGV0S2V5cyk7XG5cbiAgY29uc3QgaW5wdXRBbW91bnQgPSB1bnNwZW50cy5yZWR1Y2UoKHN1bSwgdW5zcGVudCkgPT4gc3VtICsgdW5zcGVudC52YWx1ZSwgQmlnSW50KDApKTtcbiAgY29uc3Qgb3V0cHV0QW1vdW50ID0gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBvdXRwdXQudmFsdWUsIEJpZ0ludCgwKSk7XG5cbiAgdW5zcGVudHMuZm9yRWFjaCgodW5zcGVudCkgPT5cbiAgICB1dHhvbGliLmJpdGdvLmFkZFdhbGxldFVuc3BlbnRUb1BzYnQocHNidCwgdW5zcGVudCwgcm9vdFdhbGxldEtleXMsICd1c2VyJywgJ2JpdGdvJywge1xuICAgICAgaXNSZXBsYWNlYWJsZUJ5RmVlOiB0cnVlLFxuICAgICAgc2tpcE5vbldpdG5lc3NVdHhvLFxuICAgIH0pXG4gICk7XG4gIG91dHB1dHMuZm9yRWFjaCgob3V0cHV0KSA9PiBwc2J0LmFkZE91dHB1dChvdXRwdXQpKTtcblxuICBjb25zdCBmZWUgPSBNYXRoLmNlaWwoXG4gICAgKERpbWVuc2lvbnMuZnJvbVBzYnQocHNidClcbiAgICAgIC5wbHVzKERpbWVuc2lvbnMuZnJvbU91dHB1dCh7IHNjcmlwdDogY2hhbmdlU2NyaXB0IH0pKVxuICAgICAgLmdldFZTaXplKCkgKlxuICAgICAgZmVlUmF0ZVNhdEtCKSAvXG4gICAgICAxMDAwXG4gICk7XG5cbiAgY29uc3QgY2hhbmdlQW1vdW50ID0gaW5wdXRBbW91bnQgLSAob3V0cHV0QW1vdW50ICsgQmlnSW50KGZlZSkpO1xuICBpZiAoY2hhbmdlQW1vdW50IDwgQmlnSW50KDApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYElucHV0IGFtb3VudCAke2lucHV0QW1vdW50LnRvU3RyaW5nKCl9IGNhbm5vdCBjb3ZlciB0aGUgc3Rha2luZyBhbW91bnQgJHtvdXRwdXRBbW91bnR9IGFuZCAgdGhlIGZlZTogJHtmZWV9YFxuICAgICk7XG4gIH1cblxuICBpZiAoY2hhbmdlQW1vdW50ID4gZHVzdEFtb3VudCkge1xuICAgIHV0eG9saWIuYml0Z28uYWRkV2FsbGV0T3V0cHV0VG9Qc2J0KFxuICAgICAgcHNidCxcbiAgICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgICAgY2hhbmdlQWRkcmVzc0luZm8uY2hhaW4sXG4gICAgICBjaGFuZ2VBZGRyZXNzSW5mby5pbmRleCxcbiAgICAgIGNoYW5nZUFtb3VudFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gcHNidDtcbn1cbiJdfQ==