@bitgo/utxo-staking 1.25.0 → 1.27.0

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 (136) hide show
  1. package/dist/cjs/scripts/babylon-sync.d.ts +2 -0
  2. package/dist/cjs/scripts/babylon-sync.d.ts.map +1 -0
  3. package/dist/cjs/scripts/babylon-sync.js +126 -0
  4. package/dist/cjs/src/babylon/delegationMessage.d.ts.map +1 -0
  5. package/dist/cjs/src/babylon/delegationMessage.js +285 -0
  6. package/dist/cjs/src/babylon/descriptor.d.ts.map +1 -0
  7. package/dist/cjs/src/babylon/descriptor.js +97 -0
  8. package/dist/{src → cjs/src}/babylon/index.d.ts +2 -0
  9. package/dist/cjs/src/babylon/index.d.ts.map +1 -0
  10. package/dist/{src → cjs/src}/babylon/index.js +3 -1
  11. package/dist/cjs/src/babylon/network.d.ts.map +1 -0
  12. package/dist/{src → cjs/src}/babylon/network.js +1 -1
  13. package/dist/cjs/src/babylon/parseDescriptor.d.ts.map +1 -0
  14. package/dist/cjs/src/babylon/parseDescriptor.js +159 -0
  15. package/dist/cjs/src/babylon/stakingManager.d.ts.map +1 -0
  16. package/dist/cjs/src/babylon/stakingManager.js +120 -0
  17. package/dist/cjs/src/babylon/stakingParams.d.ts.map +1 -0
  18. package/dist/cjs/src/babylon/stakingParams.js +132 -0
  19. package/dist/cjs/src/babylon/undelegation/UndelegationResponse.d.ts.map +1 -0
  20. package/dist/{src → cjs/src}/babylon/undelegation/UndelegationResponse.js +1 -1
  21. package/dist/cjs/src/babylon/undelegation/index.d.ts.map +1 -0
  22. package/dist/{src → cjs/src}/babylon/undelegation/index.js +1 -1
  23. package/dist/cjs/src/babylon/undelegation/unbonding.d.ts.map +1 -0
  24. package/dist/cjs/src/babylon/undelegation/unbonding.js +111 -0
  25. package/dist/cjs/src/coreDao/descriptor.d.ts.map +1 -0
  26. package/dist/cjs/src/coreDao/descriptor.js +38 -0
  27. package/dist/cjs/src/coreDao/index.d.ts.map +1 -0
  28. package/dist/{src → cjs/src}/coreDao/index.js +1 -1
  29. package/dist/cjs/src/coreDao/opReturn.d.ts.map +1 -0
  30. package/dist/cjs/src/coreDao/opReturn.js +183 -0
  31. package/dist/cjs/src/coreDao/transaction.d.ts.map +1 -0
  32. package/dist/cjs/src/coreDao/transaction.js +34 -0
  33. package/dist/cjs/src/index.d.ts.map +1 -0
  34. package/dist/{src → cjs/src}/index.js +1 -1
  35. package/dist/cjs/test/unit/babylon/bug71.d.ts +2 -0
  36. package/dist/cjs/test/unit/babylon/bug71.d.ts.map +1 -0
  37. package/dist/cjs/test/unit/babylon/bug71.js +108 -0
  38. package/dist/cjs/test/unit/babylon/key.utils.d.ts +6 -0
  39. package/dist/cjs/test/unit/babylon/key.utils.d.ts.map +1 -0
  40. package/dist/cjs/test/unit/babylon/key.utils.js +68 -0
  41. package/dist/cjs/test/unit/babylon/transactions.d.ts +2 -0
  42. package/dist/cjs/test/unit/babylon/transactions.d.ts.map +1 -0
  43. package/dist/cjs/test/unit/babylon/transactions.js +338 -0
  44. package/dist/cjs/test/unit/babylon/undelegation.d.ts +2 -0
  45. package/dist/cjs/test/unit/babylon/undelegation.d.ts.map +1 -0
  46. package/dist/cjs/test/unit/babylon/undelegation.js +156 -0
  47. package/dist/cjs/test/unit/babylon/vendor.utils.d.ts +13 -0
  48. package/dist/cjs/test/unit/babylon/vendor.utils.d.ts.map +1 -0
  49. package/dist/cjs/test/unit/babylon/vendor.utils.js +78 -0
  50. package/dist/cjs/test/unit/coreDao/descriptor.d.ts +2 -0
  51. package/dist/cjs/test/unit/coreDao/descriptor.d.ts.map +1 -0
  52. package/dist/cjs/test/unit/coreDao/descriptor.js +144 -0
  53. package/dist/cjs/test/unit/coreDao/opReturn.d.ts +2 -0
  54. package/dist/cjs/test/unit/coreDao/opReturn.d.ts.map +1 -0
  55. package/dist/cjs/test/unit/coreDao/opReturn.js +275 -0
  56. package/dist/cjs/test/unit/coreDao/utils.d.ts +5 -0
  57. package/dist/cjs/test/unit/coreDao/utils.d.ts.map +1 -0
  58. package/dist/cjs/test/unit/coreDao/utils.js +54 -0
  59. package/dist/cjs/test/unit/fixtures.utils.d.ts +9 -0
  60. package/dist/cjs/test/unit/fixtures.utils.d.ts.map +1 -0
  61. package/dist/cjs/test/unit/fixtures.utils.js +91 -0
  62. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  63. package/dist/esm/babylon/delegationMessage.d.ts +38 -0
  64. package/dist/esm/babylon/delegationMessage.js +239 -0
  65. package/dist/esm/babylon/descriptor.d.ts +48 -0
  66. package/dist/esm/babylon/descriptor.js +91 -0
  67. package/dist/esm/babylon/index.d.ts +8 -0
  68. package/dist/esm/babylon/index.d.ts.map +1 -0
  69. package/dist/esm/babylon/index.js +13 -0
  70. package/dist/esm/babylon/network.d.ts +7 -0
  71. package/dist/esm/babylon/network.js +29 -0
  72. package/dist/esm/babylon/params.mainnet.json +152 -0
  73. package/dist/esm/babylon/params.testnet.json +212 -0
  74. package/dist/esm/babylon/parseDescriptor.d.ts +26 -0
  75. package/dist/esm/babylon/parseDescriptor.js +155 -0
  76. package/dist/esm/babylon/stakingManager.d.ts +6 -0
  77. package/dist/esm/babylon/stakingManager.js +83 -0
  78. package/dist/esm/babylon/stakingParams.d.ts +40 -0
  79. package/dist/esm/babylon/stakingParams.js +86 -0
  80. package/dist/esm/babylon/undelegation/UndelegationResponse.d.ts +24 -0
  81. package/dist/esm/babylon/undelegation/UndelegationResponse.js +18 -0
  82. package/dist/esm/babylon/undelegation/index.d.ts +3 -0
  83. package/dist/esm/babylon/undelegation/index.js +3 -0
  84. package/dist/esm/babylon/undelegation/unbonding.d.ts +16 -0
  85. package/dist/esm/babylon/undelegation/unbonding.js +70 -0
  86. package/dist/esm/coreDao/descriptor.d.ts +18 -0
  87. package/dist/esm/coreDao/descriptor.js +35 -0
  88. package/dist/esm/coreDao/index.d.ts +4 -0
  89. package/dist/esm/coreDao/index.js +4 -0
  90. package/dist/esm/coreDao/opReturn.d.ts +41 -0
  91. package/dist/esm/coreDao/opReturn.js +175 -0
  92. package/dist/esm/coreDao/transaction.d.ts +28 -0
  93. package/dist/esm/coreDao/transaction.js +30 -0
  94. package/dist/esm/index.d.ts +3 -0
  95. package/dist/esm/index.js +3 -0
  96. package/package.json +26 -10
  97. package/dist/src/babylon/delegationMessage.js +0 -285
  98. package/dist/src/babylon/descriptor.js +0 -97
  99. package/dist/src/babylon/index.d.ts.map +0 -1
  100. package/dist/src/babylon/parseDescriptor.js +0 -159
  101. package/dist/src/babylon/stakingManager.js +0 -120
  102. package/dist/src/babylon/stakingParams.js +0 -132
  103. package/dist/src/babylon/undelegation/unbonding.js +0 -111
  104. package/dist/src/coreDao/descriptor.js +0 -38
  105. package/dist/src/coreDao/opReturn.js +0 -183
  106. package/dist/src/coreDao/transaction.js +0 -34
  107. /package/dist/{src → cjs/src}/babylon/delegationMessage.d.ts +0 -0
  108. /package/dist/{src → cjs/src}/babylon/descriptor.d.ts +0 -0
  109. /package/dist/{src → cjs/src}/babylon/network.d.ts +0 -0
  110. /package/dist/{src → cjs/src}/babylon/params.mainnet.json +0 -0
  111. /package/dist/{src → cjs/src}/babylon/params.testnet.json +0 -0
  112. /package/dist/{src → cjs/src}/babylon/parseDescriptor.d.ts +0 -0
  113. /package/dist/{src → cjs/src}/babylon/stakingManager.d.ts +0 -0
  114. /package/dist/{src → cjs/src}/babylon/stakingParams.d.ts +0 -0
  115. /package/dist/{src → cjs/src}/babylon/undelegation/UndelegationResponse.d.ts +0 -0
  116. /package/dist/{src → cjs/src}/babylon/undelegation/index.d.ts +0 -0
  117. /package/dist/{src → cjs/src}/babylon/undelegation/unbonding.d.ts +0 -0
  118. /package/dist/{src → cjs/src}/coreDao/descriptor.d.ts +0 -0
  119. /package/dist/{src → cjs/src}/coreDao/index.d.ts +0 -0
  120. /package/dist/{src → cjs/src}/coreDao/opReturn.d.ts +0 -0
  121. /package/dist/{src → cjs/src}/coreDao/transaction.d.ts +0 -0
  122. /package/dist/{src → cjs/src}/index.d.ts +0 -0
  123. /package/dist/{src → esm}/babylon/delegationMessage.d.ts.map +0 -0
  124. /package/dist/{src → esm}/babylon/descriptor.d.ts.map +0 -0
  125. /package/dist/{src → esm}/babylon/network.d.ts.map +0 -0
  126. /package/dist/{src → esm}/babylon/parseDescriptor.d.ts.map +0 -0
  127. /package/dist/{src → esm}/babylon/stakingManager.d.ts.map +0 -0
  128. /package/dist/{src → esm}/babylon/stakingParams.d.ts.map +0 -0
  129. /package/dist/{src → esm}/babylon/undelegation/UndelegationResponse.d.ts.map +0 -0
  130. /package/dist/{src → esm}/babylon/undelegation/index.d.ts.map +0 -0
  131. /package/dist/{src → esm}/babylon/undelegation/unbonding.d.ts.map +0 -0
  132. /package/dist/{src → esm}/coreDao/descriptor.d.ts.map +0 -0
  133. /package/dist/{src → esm}/coreDao/index.d.ts.map +0 -0
  134. /package/dist/{src → esm}/coreDao/opReturn.d.ts.map +0 -0
  135. /package/dist/{src → esm}/coreDao/transaction.d.ts.map +0 -0
  136. /package/dist/{src → esm}/index.d.ts.map +0 -0
@@ -1,120 +0,0 @@
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.mockBabylonProvider = void 0;
37
- exports.createStakingManager = createStakingManager;
38
- const bitcoinjslib = __importStar(require("bitcoinjs-lib"));
39
- const utxolib = __importStar(require("@bitgo/utxo-lib"));
40
- const vendor = __importStar(require("@bitgo/babylonlabs-io-btc-staking-ts"));
41
- const pop_1 = require("@babylonlabs-io/babylon-proto-ts/dist/generated/babylon/btcstaking/v1/pop");
42
- const stakingParams_1 = require("./stakingParams");
43
- /**
44
- * Subclass of BabylonBtcStakingManager with the sole purpose of forcing
45
- * a ECDSA signature.
46
- */
47
- class BitGoStakingManager extends vendor.BabylonBtcStakingManager {
48
- constructor(network, stakingParams, btcProvider, babylonProvider) {
49
- super(network, stakingParams, btcProvider, babylonProvider);
50
- }
51
- /**
52
- * Creates a proof of possession for the staker based on ECDSA signature.
53
- *
54
- * This is a parameterized version of the superclass method which infers
55
- * the signature type from the stakerBtcAddress.
56
- *
57
- * @param bech32Address - The staker's bech32 address on the babylon network.
58
- * @param stakerBtcAddress - The staker's BTC address.
59
- * @param sigType - The signature type (BIP322 or ECDSA).
60
- * @returns The proof of possession.
61
- */
62
- async createProofOfPossessionWithSigType(bech32Address, stakerBtcAddress, sigType) {
63
- if (!bech32Address.startsWith('bbn1')) {
64
- throw new Error('invalid bech32 babylon address, must start with bbn1');
65
- }
66
- const signedBabylonAddress = await this.btcProvider.signMessage(bech32Address, sigType === pop_1.BTCSigType.BIP322 ? 'bip322-simple' : 'ecdsa');
67
- let btcSig;
68
- if (sigType === pop_1.BTCSigType.BIP322) {
69
- const bip322Sig = pop_1.BIP322Sig.fromPartial({
70
- address: stakerBtcAddress,
71
- sig: Buffer.from(signedBabylonAddress, 'base64'),
72
- });
73
- // Encode the BIP322 protobuf message to a Uint8Array
74
- btcSig = pop_1.BIP322Sig.encode(bip322Sig).finish();
75
- }
76
- else {
77
- // Encode the ECDSA signature to a Uint8Array
78
- btcSig = Buffer.from(signedBabylonAddress, 'base64');
79
- }
80
- return {
81
- btcSigType: sigType,
82
- btcSig,
83
- };
84
- }
85
- /**
86
- * Creates a proof of possession for the staker based on ECDSA signature.
87
- * @param channel - The channel for which the proof of possession is created.
88
- * @param bech32Address - The staker's bech32 address on the babylon network.
89
- * @param stakerBtcAddress
90
- * @returns The proof of possession.
91
- */
92
- async createProofOfPossession(channel, bech32Address, stakerBtcAddress) {
93
- // force the ECDSA signature type
94
- return this.createProofOfPossessionWithSigType(bech32Address, stakerBtcAddress, pop_1.BTCSigType.ECDSA);
95
- }
96
- }
97
- exports.mockBabylonProvider = {
98
- signTransaction() {
99
- throw new Error('Function not implemented.');
100
- },
101
- };
102
- function createStakingManager(network, btcProvider, stakingParams, babylonProvider = exports.mockBabylonProvider) {
103
- if (utxolib.isValidNetwork(network)) {
104
- switch (network) {
105
- case utxolib.networks.bitcoin:
106
- network = bitcoinjslib.networks.bitcoin;
107
- break;
108
- case utxolib.networks.testnet:
109
- case utxolib.networks.bitcoinTestnet4:
110
- throw new Error('Unsupported bitcoin testnet network - only signet is supported');
111
- case utxolib.networks.bitcoinPublicSignet:
112
- network = bitcoinjslib.networks.testnet;
113
- break;
114
- default:
115
- throw new Error('Unsupported network');
116
- }
117
- }
118
- return new BitGoStakingManager(network, stakingParams ?? (0, stakingParams_1.getStakingParams)(network), btcProvider, babylonProvider);
119
- }
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9zdGFraW5nTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyRkEsb0RBc0JDO0FBakhELDREQUE4QztBQUM5Qyx5REFBMkM7QUFDM0MsNkVBQStEO0FBQy9ELG1HQUltRjtBQUVuRixtREFBbUQ7QUFFbkQ7OztHQUdHO0FBQ0gsTUFBTSxtQkFBb0IsU0FBUSxNQUFNLENBQUMsd0JBQXdCO0lBQy9ELFlBQ0UsT0FBNkIsRUFDN0IsYUFBOEMsRUFDOUMsV0FBK0IsRUFDL0IsZUFBdUM7UUFFdkMsS0FBSyxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsS0FBSyxDQUFDLGtDQUFrQyxDQUN0QyxhQUFxQixFQUNyQixnQkFBd0IsRUFDeEIsT0FBbUI7UUFFbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLHNEQUFzRCxDQUFDLENBQUM7UUFDMUUsQ0FBQztRQUNELE1BQU0sb0JBQW9CLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FDN0QsYUFBYSxFQUNiLE9BQU8sS0FBSyxnQkFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQzFELENBQUM7UUFFRixJQUFJLE1BQWtCLENBQUM7UUFDdkIsSUFBSSxPQUFPLEtBQUssZ0JBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxNQUFNLFNBQVMsR0FBRyxlQUFTLENBQUMsV0FBVyxDQUFDO2dCQUN0QyxPQUFPLEVBQUUsZ0JBQWdCO2dCQUN6QixHQUFHLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLENBQUM7YUFDakQsQ0FBQyxDQUFDO1lBQ0gscURBQXFEO1lBQ3JELE1BQU0sR0FBRyxlQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hELENBQUM7YUFBTSxDQUFDO1lBQ04sNkNBQTZDO1lBQzdDLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFFRCxPQUFPO1lBQ0wsVUFBVSxFQUFFLE9BQU87WUFDbkIsTUFBTTtTQUNQLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ00sS0FBSyxDQUFDLHVCQUF1QixDQUNwQyxPQUFvRCxFQUNwRCxhQUFxQixFQUNyQixnQkFBd0I7UUFFeEIsaUNBQWlDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLGtDQUFrQyxDQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BHLENBQUM7Q0FDRjtBQUVZLFFBQUEsbUJBQW1CLEdBQTJCO0lBQ3pELGVBQWU7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFnQixvQkFBb0IsQ0FDbEMsT0FBK0MsRUFDL0MsV0FBK0IsRUFDL0IsYUFBK0MsRUFDL0MsZUFBZSxHQUFHLDJCQUFtQjtJQUVyQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxRQUFRLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPO2dCQUMzQixPQUFPLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQ3hDLE1BQU07WUFDUixLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQzlCLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlO2dCQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7WUFDcEYsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtnQkFDdkMsT0FBTyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO2dCQUN4QyxNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxhQUFhLElBQUksSUFBQSxnQ0FBZ0IsRUFBQyxPQUFPLENBQUMsRUFBRSxXQUFXLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDcEgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJpdGNvaW5qc2xpYiBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCAqIGFzIHZlbmRvciBmcm9tICdAYml0Z28vYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuaW1wb3J0IHtcbiAgQklQMzIyU2lnLFxuICBCVENTaWdUeXBlLFxuICBQcm9vZk9mUG9zc2Vzc2lvbkJUQyxcbn0gZnJvbSAnQGJhYnlsb25sYWJzLWlvL2JhYnlsb24tcHJvdG8tdHMvZGlzdC9nZW5lcmF0ZWQvYmFieWxvbi9idGNzdGFraW5nL3YxL3BvcCc7XG5cbmltcG9ydCB7IGdldFN0YWtpbmdQYXJhbXMgfSBmcm9tICcuL3N0YWtpbmdQYXJhbXMnO1xuXG4vKipcbiAqIFN1YmNsYXNzIG9mIEJhYnlsb25CdGNTdGFraW5nTWFuYWdlciB3aXRoIHRoZSBzb2xlIHB1cnBvc2Ugb2YgZm9yY2luZ1xuICogYSBFQ0RTQSBzaWduYXR1cmUuXG4gKi9cbmNsYXNzIEJpdEdvU3Rha2luZ01hbmFnZXIgZXh0ZW5kcyB2ZW5kb3IuQmFieWxvbkJ0Y1N0YWtpbmdNYW5hZ2VyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgbmV0d29yazogYml0Y29pbmpzbGliLk5ldHdvcmssXG4gICAgc3Rha2luZ1BhcmFtczogdmVuZG9yLlZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSxcbiAgICBidGNQcm92aWRlcjogdmVuZG9yLkJ0Y1Byb3ZpZGVyLFxuICAgIGJhYnlsb25Qcm92aWRlcjogdmVuZG9yLkJhYnlsb25Qcm92aWRlclxuICApIHtcbiAgICBzdXBlcihuZXR3b3JrLCBzdGFraW5nUGFyYW1zLCBidGNQcm92aWRlciwgYmFieWxvblByb3ZpZGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcHJvb2Ygb2YgcG9zc2Vzc2lvbiBmb3IgdGhlIHN0YWtlciBiYXNlZCBvbiBFQ0RTQSBzaWduYXR1cmUuXG4gICAqXG4gICAqIFRoaXMgaXMgYSBwYXJhbWV0ZXJpemVkIHZlcnNpb24gb2YgdGhlIHN1cGVyY2xhc3MgbWV0aG9kIHdoaWNoIGluZmVyc1xuICAgKiB0aGUgc2lnbmF0dXJlIHR5cGUgZnJvbSB0aGUgc3Rha2VyQnRjQWRkcmVzcy5cbiAgICpcbiAgICogQHBhcmFtIGJlY2gzMkFkZHJlc3MgLSBUaGUgc3Rha2VyJ3MgYmVjaDMyIGFkZHJlc3Mgb24gdGhlIGJhYnlsb24gbmV0d29yay5cbiAgICogQHBhcmFtIHN0YWtlckJ0Y0FkZHJlc3MgLSBUaGUgc3Rha2VyJ3MgQlRDIGFkZHJlc3MuXG4gICAqIEBwYXJhbSBzaWdUeXBlIC0gVGhlIHNpZ25hdHVyZSB0eXBlIChCSVAzMjIgb3IgRUNEU0EpLlxuICAgKiBAcmV0dXJucyBUaGUgcHJvb2Ygb2YgcG9zc2Vzc2lvbi5cbiAgICovXG4gIGFzeW5jIGNyZWF0ZVByb29mT2ZQb3NzZXNzaW9uV2l0aFNpZ1R5cGUoXG4gICAgYmVjaDMyQWRkcmVzczogc3RyaW5nLFxuICAgIHN0YWtlckJ0Y0FkZHJlc3M6IHN0cmluZyxcbiAgICBzaWdUeXBlOiBCVENTaWdUeXBlXG4gICk6IFByb21pc2U8UHJvb2ZPZlBvc3Nlc3Npb25CVEM+IHtcbiAgICBpZiAoIWJlY2gzMkFkZHJlc3Muc3RhcnRzV2l0aCgnYmJuMScpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWQgYmVjaDMyIGJhYnlsb24gYWRkcmVzcywgbXVzdCBzdGFydCB3aXRoIGJibjEnKTtcbiAgICB9XG4gICAgY29uc3Qgc2lnbmVkQmFieWxvbkFkZHJlc3MgPSBhd2FpdCB0aGlzLmJ0Y1Byb3ZpZGVyLnNpZ25NZXNzYWdlKFxuICAgICAgYmVjaDMyQWRkcmVzcyxcbiAgICAgIHNpZ1R5cGUgPT09IEJUQ1NpZ1R5cGUuQklQMzIyID8gJ2JpcDMyMi1zaW1wbGUnIDogJ2VjZHNhJ1xuICAgICk7XG5cbiAgICBsZXQgYnRjU2lnOiBVaW50OEFycmF5O1xuICAgIGlmIChzaWdUeXBlID09PSBCVENTaWdUeXBlLkJJUDMyMikge1xuICAgICAgY29uc3QgYmlwMzIyU2lnID0gQklQMzIyU2lnLmZyb21QYXJ0aWFsKHtcbiAgICAgICAgYWRkcmVzczogc3Rha2VyQnRjQWRkcmVzcyxcbiAgICAgICAgc2lnOiBCdWZmZXIuZnJvbShzaWduZWRCYWJ5bG9uQWRkcmVzcywgJ2Jhc2U2NCcpLFxuICAgICAgfSk7XG4gICAgICAvLyBFbmNvZGUgdGhlIEJJUDMyMiBwcm90b2J1ZiBtZXNzYWdlIHRvIGEgVWludDhBcnJheVxuICAgICAgYnRjU2lnID0gQklQMzIyU2lnLmVuY29kZShiaXAzMjJTaWcpLmZpbmlzaCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBFbmNvZGUgdGhlIEVDRFNBIHNpZ25hdHVyZSB0byBhIFVpbnQ4QXJyYXlcbiAgICAgIGJ0Y1NpZyA9IEJ1ZmZlci5mcm9tKHNpZ25lZEJhYnlsb25BZGRyZXNzLCAnYmFzZTY0Jyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJ0Y1NpZ1R5cGU6IHNpZ1R5cGUsXG4gICAgICBidGNTaWcsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgcHJvb2Ygb2YgcG9zc2Vzc2lvbiBmb3IgdGhlIHN0YWtlciBiYXNlZCBvbiBFQ0RTQSBzaWduYXR1cmUuXG4gICAqIEBwYXJhbSBjaGFubmVsIC0gVGhlIGNoYW5uZWwgZm9yIHdoaWNoIHRoZSBwcm9vZiBvZiBwb3NzZXNzaW9uIGlzIGNyZWF0ZWQuXG4gICAqIEBwYXJhbSBiZWNoMzJBZGRyZXNzIC0gVGhlIHN0YWtlcidzIGJlY2gzMiBhZGRyZXNzIG9uIHRoZSBiYWJ5bG9uIG5ldHdvcmsuXG4gICAqIEBwYXJhbSBzdGFrZXJCdGNBZGRyZXNzXG4gICAqIEByZXR1cm5zIFRoZSBwcm9vZiBvZiBwb3NzZXNzaW9uLlxuICAgKi9cbiAgb3ZlcnJpZGUgYXN5bmMgY3JlYXRlUHJvb2ZPZlBvc3Nlc3Npb24oXG4gICAgY2hhbm5lbDogJ2RlbGVnYXRpb246Y3JlYXRlJyB8ICdkZWxlZ2F0aW9uOnJlZ2lzdGVyJyxcbiAgICBiZWNoMzJBZGRyZXNzOiBzdHJpbmcsXG4gICAgc3Rha2VyQnRjQWRkcmVzczogc3RyaW5nXG4gICk6IFByb21pc2U8UHJvb2ZPZlBvc3Nlc3Npb25CVEM+IHtcbiAgICAvLyBmb3JjZSB0aGUgRUNEU0Egc2lnbmF0dXJlIHR5cGVcbiAgICByZXR1cm4gdGhpcy5jcmVhdGVQcm9vZk9mUG9zc2Vzc2lvbldpdGhTaWdUeXBlKGJlY2gzMkFkZHJlc3MsIHN0YWtlckJ0Y0FkZHJlc3MsIEJUQ1NpZ1R5cGUuRUNEU0EpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBtb2NrQmFieWxvblByb3ZpZGVyOiB2ZW5kb3IuQmFieWxvblByb3ZpZGVyID0ge1xuICBzaWduVHJhbnNhY3Rpb24oKTogUHJvbWlzZTxVaW50OEFycmF5PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3Rha2luZ01hbmFnZXIoXG4gIG5ldHdvcms6IGJpdGNvaW5qc2xpYi5OZXR3b3JrIHwgdXR4b2xpYi5OZXR3b3JrLFxuICBidGNQcm92aWRlcjogdmVuZG9yLkJ0Y1Byb3ZpZGVyLFxuICBzdGFraW5nUGFyYW1zPzogdmVuZG9yLlZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSxcbiAgYmFieWxvblByb3ZpZGVyID0gbW9ja0JhYnlsb25Qcm92aWRlclxuKTogdmVuZG9yLkJhYnlsb25CdGNTdGFraW5nTWFuYWdlciB7XG4gIGlmICh1dHhvbGliLmlzVmFsaWROZXR3b3JrKG5ldHdvcmspKSB7XG4gICAgc3dpdGNoIChuZXR3b3JrKSB7XG4gICAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuYml0Y29pbjpcbiAgICAgICAgbmV0d29yayA9IGJpdGNvaW5qc2xpYi5uZXR3b3Jrcy5iaXRjb2luO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy50ZXN0bmV0OlxuICAgICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5UZXN0bmV0NDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBiaXRjb2luIHRlc3RuZXQgbmV0d29yayAtIG9ubHkgc2lnbmV0IGlzIHN1cHBvcnRlZCcpO1xuICAgICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5QdWJsaWNTaWduZXQ6XG4gICAgICAgIG5ldHdvcmsgPSBiaXRjb2luanNsaWIubmV0d29ya3MudGVzdG5ldDtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIG5ldHdvcmsnKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG5ldyBCaXRHb1N0YWtpbmdNYW5hZ2VyKG5ldHdvcmssIHN0YWtpbmdQYXJhbXMgPz8gZ2V0U3Rha2luZ1BhcmFtcyhuZXR3b3JrKSwgYnRjUHJvdmlkZXIsIGJhYnlsb25Qcm92aWRlcik7XG59XG4iXX0=
@@ -1,132 +0,0 @@
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.testnetFinalityProvider0 = exports.testnetStakingParams = exports.mainnetStakingParams = exports.getBabylonParamByBtcHeight = exports.getBabylonParamByVersion = void 0;
40
- exports.toVersionedParams = toVersionedParams;
41
- exports.getStakingParams = getStakingParams;
42
- exports.getDescriptorBuilderForParams = getDescriptorBuilderForParams;
43
- exports.getDescriptorProviderForStakingParams = getDescriptorProviderForStakingParams;
44
- exports.getTestnetDescriptorBuilder = getTestnetDescriptorBuilder;
45
- const t = __importStar(require("io-ts"));
46
- const tt = __importStar(require("io-ts-types"));
47
- const Either_1 = require("fp-ts/Either");
48
- const PathReporter_1 = require("io-ts/lib/PathReporter");
49
- const babylonlabs_io_btc_staking_ts_1 = require("@bitgo/babylonlabs-io-btc-staking-ts");
50
- var babylonlabs_io_btc_staking_ts_2 = require("@bitgo/babylonlabs-io-btc-staking-ts");
51
- Object.defineProperty(exports, "getBabylonParamByVersion", { enumerable: true, get: function () { return babylonlabs_io_btc_staking_ts_2.getBabylonParamByVersion; } });
52
- Object.defineProperty(exports, "getBabylonParamByBtcHeight", { enumerable: true, get: function () { return babylonlabs_io_btc_staking_ts_2.getBabylonParamByBtcHeight; } });
53
- const descriptor_1 = require("./descriptor");
54
- const params_mainnet_json_1 = __importDefault(require("./params.mainnet.json"));
55
- const params_testnet_json_1 = __importDefault(require("./params.testnet.json"));
56
- const network_1 = require("./network");
57
- /** @see https://docs.babylonlabs.io/api/babylon-gRPC/params/ */
58
- const BabylonParamsJSON = t.type({
59
- covenant_pks: t.array(t.string),
60
- covenant_quorum: t.number,
61
- min_staking_value_sat: tt.NumberFromString,
62
- max_staking_value_sat: tt.NumberFromString,
63
- min_staking_time_blocks: t.number,
64
- max_staking_time_blocks: t.number,
65
- slashing_pk_script: t.string,
66
- min_slashing_tx_fee_sat: tt.NumberFromString,
67
- slashing_rate: t.string,
68
- unbonding_time_blocks: t.number,
69
- unbonding_fee_sat: tt.NumberFromString,
70
- min_commission_rate: tt.NumberFromString,
71
- delegation_creation_base_gas_fee: tt.NumberFromString,
72
- allow_list_expiration_height: tt.NumberFromString,
73
- btc_activation_height: t.number,
74
- });
75
- function toVersionedParams(ps) {
76
- return ps.map((p, version) => ({
77
- version,
78
- btcActivationHeight: p.btc_activation_height,
79
- covenantNoCoordPks: p.covenant_pks,
80
- covenantQuorum: p.covenant_quorum,
81
- unbondingTime: p.unbonding_time_blocks,
82
- unbondingFeeSat: p.unbonding_fee_sat,
83
- maxStakingAmountSat: p.max_staking_value_sat,
84
- minStakingAmountSat: p.min_staking_value_sat,
85
- maxStakingTimeBlocks: p.max_staking_time_blocks,
86
- minStakingTimeBlocks: p.min_staking_time_blocks,
87
- slashing: {
88
- slashingPkScriptHex: Buffer.from(p.slashing_pk_script, 'base64').toString('hex'),
89
- slashingRate: parseFloat(p.slashing_rate),
90
- minSlashingTxFeeSat: p.min_slashing_tx_fee_sat,
91
- },
92
- }));
93
- }
94
- function toVersionedParamsFromJson(jsonParams) {
95
- return toVersionedParams(jsonParams.map((p) => {
96
- const result = t.type({ params: BabylonParamsJSON }).decode(p);
97
- if ((0, Either_1.isLeft)(result)) {
98
- const msg = PathReporter_1.PathReporter.report(result).join('\n');
99
- throw new Error(`Invalid params: ${msg}`);
100
- }
101
- return result.right.params;
102
- }));
103
- }
104
- exports.mainnetStakingParams = Object.freeze(toVersionedParamsFromJson(params_mainnet_json_1.default));
105
- exports.testnetStakingParams = Object.freeze(toVersionedParamsFromJson(params_testnet_json_1.default));
106
- function getStakingParams(network) {
107
- switch ((0, network_1.toBabylonNetwork)(network)) {
108
- case 'mainnet':
109
- return [...exports.mainnetStakingParams];
110
- case 'testnet':
111
- return [...exports.testnetStakingParams];
112
- default:
113
- throw new Error('Unsupported network');
114
- }
115
- }
116
- // Source: https://btcstaking.testnet.babylonlabs.io/ "Babylon Foundation 0"
117
- exports.testnetFinalityProvider0 = Buffer.from('d23c2c25e1fcf8fd1c21b9a402c19e2e309e531e45e92fb1e9805b6056b0cc76', 'hex');
118
- function getDescriptorBuilderForParams(userKey, finalityProviderKeys, stakingTimelock, params) {
119
- if (!Buffer.isBuffer(userKey)) {
120
- userKey = userKey.publicKey;
121
- }
122
- return new descriptor_1.BabylonDescriptorBuilder(userKey, finalityProviderKeys, params.covenantNoCoordPks.map((pk) => Buffer.from(pk, 'hex')), params.covenantQuorum, stakingTimelock, params.unbondingTime);
123
- }
124
- function getDescriptorProviderForStakingParams(stakerBtcInfo, stakingInput, stakingParams) {
125
- const userKey = Buffer.from(stakerBtcInfo.publicKeyNoCoordHex, 'hex');
126
- const finalityProviderKeys = stakingInput.finalityProviderPksNoCoordHex.map((pk) => Buffer.from(pk, 'hex'));
127
- return getDescriptorBuilderForParams(userKey, finalityProviderKeys, stakingInput.stakingTimelock, stakingParams);
128
- }
129
- function getTestnetDescriptorBuilder(userKey, { finalityProviderKeys = [exports.testnetFinalityProvider0], params = (0, babylonlabs_io_btc_staking_ts_1.getBabylonParamByVersion)(5, getStakingParams('testnet')), stakingTimelock = params.minStakingTimeBlocks, } = {}) {
130
- return getDescriptorBuilderForParams(userKey, finalityProviderKeys, stakingTimelock, params);
131
- }
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1BhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL3N0YWtpbmdQYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0NBLDhDQWtCQztBQXVCRCw0Q0FTQztBQWFELHNFQWlCQztBQUVELHNGQVFDO0FBRUQsa0VBYUM7QUFqSkQseUNBQTJCO0FBQzNCLGdEQUFrQztBQUNsQyx5Q0FBc0M7QUFDdEMseURBQXNEO0FBRXRELHdGQU04QztBQUM5QyxzRkFBNEc7QUFBbkcseUlBQUEsd0JBQXdCLE9BQUE7QUFBRSwySUFBQSwwQkFBMEIsT0FBQTtBQUU3RCw2Q0FBd0Q7QUFDeEQsZ0ZBQXNEO0FBQ3RELGdGQUFzRDtBQUN0RCx1Q0FBaUU7QUFFakUsZ0VBQWdFO0FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvQixZQUFZLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUN6QixxQkFBcUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQzFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0I7SUFDMUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDNUIsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUM1QyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDdkIscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDL0IsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUN0QyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQ3hDLGdDQUFnQyxF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QyxDQUFDO0FBQy9GLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCAqIGFzIHR0IGZyb20gJ2lvLXRzLXR5cGVzJztcbmltcG9ydCB7IGlzTGVmdCB9IGZyb20gJ2ZwLXRzL0VpdGhlcic7XG5pbXBvcnQgeyBQYXRoUmVwb3J0ZXIgfSBmcm9tICdpby10cy9saWIvUGF0aFJlcG9ydGVyJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7XG4gIGdldEJhYnlsb25QYXJhbUJ5VmVyc2lvbixcbiAgU3Rha2VySW5mbyxcbiAgU3Rha2luZ0lucHV0cyxcbiAgU3Rha2luZ1BhcmFtcyxcbiAgVmVyc2lvbmVkU3Rha2luZ1BhcmFtcyxcbn0gZnJvbSAnQGJpdGdvL2JhYnlsb25sYWJzLWlvLWJ0Yy1zdGFraW5nLXRzJztcbmV4cG9ydCB7IGdldEJhYnlsb25QYXJhbUJ5VmVyc2lvbiwgZ2V0QmFieWxvblBhcmFtQnlCdGNIZWlnaHQgfSBmcm9tICdAYml0Z28vYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuXG5pbXBvcnQgeyBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIgfSBmcm9tICcuL2Rlc2NyaXB0b3InO1xuaW1wb3J0IGpzb25NYWlubmV0UGFyYW1zIGZyb20gJy4vcGFyYW1zLm1haW5uZXQuanNvbic7XG5pbXBvcnQganNvblRlc3RuZXRQYXJhbXMgZnJvbSAnLi9wYXJhbXMudGVzdG5ldC5qc29uJztcbmltcG9ydCB7IEJhYnlsb25OZXR3b3JrTGlrZSwgdG9CYWJ5bG9uTmV0d29yayB9IGZyb20gJy4vbmV0d29yayc7XG5cbi8qKiBAc2VlIGh0dHBzOi8vZG9jcy5iYWJ5bG9ubGFicy5pby9hcGkvYmFieWxvbi1nUlBDL3BhcmFtcy8gKi9cbmNvbnN0IEJhYnlsb25QYXJhbXNKU09OID0gdC50eXBlKHtcbiAgY292ZW5hbnRfcGtzOiB0LmFycmF5KHQuc3RyaW5nKSxcbiAgY292ZW5hbnRfcXVvcnVtOiB0Lm51bWJlcixcbiAgbWluX3N0YWtpbmdfdmFsdWVfc2F0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBtYXhfc3Rha2luZ192YWx1ZV9zYXQ6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIG1pbl9zdGFraW5nX3RpbWVfYmxvY2tzOiB0Lm51bWJlcixcbiAgbWF4X3N0YWtpbmdfdGltZV9ibG9ja3M6IHQubnVtYmVyLFxuICBzbGFzaGluZ19wa19zY3JpcHQ6IHQuc3RyaW5nLFxuICBtaW5fc2xhc2hpbmdfdHhfZmVlX3NhdDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgc2xhc2hpbmdfcmF0ZTogdC5zdHJpbmcsXG4gIHVuYm9uZGluZ190aW1lX2Jsb2NrczogdC5udW1iZXIsXG4gIHVuYm9uZGluZ19mZWVfc2F0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBtaW5fY29tbWlzc2lvbl9yYXRlOiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBkZWxlZ2F0aW9uX2NyZWF0aW9uX2Jhc2VfZ2FzX2ZlZTogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgYWxsb3dfbGlzdF9leHBpcmF0aW9uX2hlaWdodDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgYnRjX2FjdGl2YXRpb25faGVpZ2h0OiB0Lm51bWJlcixcbn0pO1xuXG50eXBlIEJhYnlsb25QYXJhbXNKU09OID0gdC5UeXBlT2Y8dHlwZW9mIEJhYnlsb25QYXJhbXNKU09OPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvVmVyc2lvbmVkUGFyYW1zKHBzOiBCYWJ5bG9uUGFyYW1zSlNPTltdKTogVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdIHtcbiAgcmV0dXJuIHBzLm1hcCgocCwgdmVyc2lvbikgPT4gKHtcbiAgICB2ZXJzaW9uLFxuICAgIGJ0Y0FjdGl2YXRpb25IZWlnaHQ6IHAuYnRjX2FjdGl2YXRpb25faGVpZ2h0LFxuICAgIGNvdmVuYW50Tm9Db29yZFBrczogcC5jb3ZlbmFudF9wa3MsXG4gICAgY292ZW5hbnRRdW9ydW06IHAuY292ZW5hbnRfcXVvcnVtLFxuICAgIHVuYm9uZGluZ1RpbWU6IHAudW5ib25kaW5nX3RpbWVfYmxvY2tzLFxuICAgIHVuYm9uZGluZ0ZlZVNhdDogcC51bmJvbmRpbmdfZmVlX3NhdCxcbiAgICBtYXhTdGFraW5nQW1vdW50U2F0OiBwLm1heF9zdGFraW5nX3ZhbHVlX3NhdCxcbiAgICBtaW5TdGFraW5nQW1vdW50U2F0OiBwLm1pbl9zdGFraW5nX3ZhbHVlX3NhdCxcbiAgICBtYXhTdGFraW5nVGltZUJsb2NrczogcC5tYXhfc3Rha2luZ190aW1lX2Jsb2NrcyxcbiAgICBtaW5TdGFraW5nVGltZUJsb2NrczogcC5taW5fc3Rha2luZ190aW1lX2Jsb2NrcyxcbiAgICBzbGFzaGluZzoge1xuICAgICAgc2xhc2hpbmdQa1NjcmlwdEhleDogQnVmZmVyLmZyb20ocC5zbGFzaGluZ19wa19zY3JpcHQsICdiYXNlNjQnKS50b1N0cmluZygnaGV4JyksXG4gICAgICBzbGFzaGluZ1JhdGU6IHBhcnNlRmxvYXQocC5zbGFzaGluZ19yYXRlKSxcbiAgICAgIG1pblNsYXNoaW5nVHhGZWVTYXQ6IHAubWluX3NsYXNoaW5nX3R4X2ZlZV9zYXQsXG4gICAgfSxcbiAgfSkpO1xufVxuXG5mdW5jdGlvbiB0b1ZlcnNpb25lZFBhcmFtc0Zyb21Kc29uKGpzb25QYXJhbXM6IHVua25vd25bXSk6IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSB7XG4gIHJldHVybiB0b1ZlcnNpb25lZFBhcmFtcyhcbiAgICBqc29uUGFyYW1zLm1hcCgocCk6IEJhYnlsb25QYXJhbXNKU09OID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHQudHlwZSh7IHBhcmFtczogQmFieWxvblBhcmFtc0pTT04gfSkuZGVjb2RlKHApO1xuICAgICAgaWYgKGlzTGVmdChyZXN1bHQpKSB7XG4gICAgICAgIGNvbnN0IG1zZyA9IFBhdGhSZXBvcnRlci5yZXBvcnQocmVzdWx0KS5qb2luKCdcXG4nKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHBhcmFtczogJHttc2d9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0LnJpZ2h0LnBhcmFtcztcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgY29uc3QgbWFpbm5ldFN0YWtpbmdQYXJhbXM6IHJlYWRvbmx5IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IE9iamVjdC5mcmVlemUoXG4gIHRvVmVyc2lvbmVkUGFyYW1zRnJvbUpzb24oanNvbk1haW5uZXRQYXJhbXMpXG4pO1xuXG5leHBvcnQgY29uc3QgdGVzdG5ldFN0YWtpbmdQYXJhbXM6IHJlYWRvbmx5IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IE9iamVjdC5mcmVlemUoXG4gIHRvVmVyc2lvbmVkUGFyYW1zRnJvbUpzb24oanNvblRlc3RuZXRQYXJhbXMpXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3Rha2luZ1BhcmFtcyhuZXR3b3JrOiBCYWJ5bG9uTmV0d29ya0xpa2UpOiBWZXJzaW9uZWRTdGFraW5nUGFyYW1zW10ge1xuICBzd2l0Y2ggKHRvQmFieWxvbk5ldHdvcmsobmV0d29yaykpIHtcbiAgICBjYXNlICdtYWlubmV0JzpcbiAgICAgIHJldHVybiBbLi4ubWFpbm5ldFN0YWtpbmdQYXJhbXNdO1xuICAgIGNhc2UgJ3Rlc3RuZXQnOlxuICAgICAgcmV0dXJuIFsuLi50ZXN0bmV0U3Rha2luZ1BhcmFtc107XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgbmV0d29yaycpO1xuICB9XG59XG5cbi8vIFNvdXJjZTogaHR0cHM6Ly9idGNzdGFraW5nLnRlc3RuZXQuYmFieWxvbmxhYnMuaW8vIFwiQmFieWxvbiBGb3VuZGF0aW9uIDBcIlxuZXhwb3J0IGNvbnN0IHRlc3RuZXRGaW5hbGl0eVByb3ZpZGVyMCA9IEJ1ZmZlci5mcm9tKFxuICAnZDIzYzJjMjVlMWZjZjhmZDFjMjFiOWE0MDJjMTllMmUzMDllNTMxZTQ1ZTkyZmIxZTk4MDViNjA1NmIwY2M3NicsXG4gICdoZXgnXG4pO1xuXG50eXBlIERlc2NyaXB0b3JTdGFraW5nUGFyYW1zID0gUGljazxcbiAgU3Rha2luZ1BhcmFtcyxcbiAgJ2NvdmVuYW50Tm9Db29yZFBrcycgfCAnY292ZW5hbnRRdW9ydW0nIHwgJ21pblN0YWtpbmdUaW1lQmxvY2tzJyB8ICd1bmJvbmRpbmdUaW1lJ1xuPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JCdWlsZGVyRm9yUGFyYW1zKFxuICB1c2VyS2V5OiB1dHhvbGliLkJJUDMySW50ZXJmYWNlIHwgdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2UgfCBCdWZmZXIsXG4gIGZpbmFsaXR5UHJvdmlkZXJLZXlzOiBCdWZmZXJbXSxcbiAgc3Rha2luZ1RpbWVsb2NrOiBudW1iZXIsXG4gIHBhcmFtczogRGVzY3JpcHRvclN0YWtpbmdQYXJhbXNcbik6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHVzZXJLZXkpKSB7XG4gICAgdXNlcktleSA9IHVzZXJLZXkucHVibGljS2V5O1xuICB9XG4gIHJldHVybiBuZXcgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyKFxuICAgIHVzZXJLZXksXG4gICAgZmluYWxpdHlQcm92aWRlcktleXMsXG4gICAgcGFyYW1zLmNvdmVuYW50Tm9Db29yZFBrcy5tYXAoKHBrKSA9PiBCdWZmZXIuZnJvbShwaywgJ2hleCcpKSxcbiAgICBwYXJhbXMuY292ZW5hbnRRdW9ydW0sXG4gICAgc3Rha2luZ1RpbWVsb2NrLFxuICAgIHBhcmFtcy51bmJvbmRpbmdUaW1lXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yUHJvdmlkZXJGb3JTdGFraW5nUGFyYW1zKFxuICBzdGFrZXJCdGNJbmZvOiBQaWNrPFN0YWtlckluZm8sICdwdWJsaWNLZXlOb0Nvb3JkSGV4Jz4sXG4gIHN0YWtpbmdJbnB1dDogU3Rha2luZ0lucHV0cyxcbiAgc3Rha2luZ1BhcmFtczogRGVzY3JpcHRvclN0YWtpbmdQYXJhbXNcbik6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB7XG4gIGNvbnN0IHVzZXJLZXkgPSBCdWZmZXIuZnJvbShzdGFrZXJCdGNJbmZvLnB1YmxpY0tleU5vQ29vcmRIZXgsICdoZXgnKTtcbiAgY29uc3QgZmluYWxpdHlQcm92aWRlcktleXMgPSBzdGFraW5nSW5wdXQuZmluYWxpdHlQcm92aWRlclBrc05vQ29vcmRIZXgubWFwKChwaykgPT4gQnVmZmVyLmZyb20ocGssICdoZXgnKSk7XG4gIHJldHVybiBnZXREZXNjcmlwdG9yQnVpbGRlckZvclBhcmFtcyh1c2VyS2V5LCBmaW5hbGl0eVByb3ZpZGVyS2V5cywgc3Rha2luZ0lucHV0LnN0YWtpbmdUaW1lbG9jaywgc3Rha2luZ1BhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXN0bmV0RGVzY3JpcHRvckJ1aWxkZXIoXG4gIHVzZXJLZXk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2UgfCB1dHhvbGliLkVDUGFpckludGVyZmFjZSB8IEJ1ZmZlcixcbiAge1xuICAgIGZpbmFsaXR5UHJvdmlkZXJLZXlzID0gW3Rlc3RuZXRGaW5hbGl0eVByb3ZpZGVyMF0sXG4gICAgcGFyYW1zID0gZ2V0QmFieWxvblBhcmFtQnlWZXJzaW9uKDUsIGdldFN0YWtpbmdQYXJhbXMoJ3Rlc3RuZXQnKSksXG4gICAgc3Rha2luZ1RpbWVsb2NrID0gcGFyYW1zLm1pblN0YWtpbmdUaW1lQmxvY2tzLFxuICB9OiB7XG4gICAgZmluYWxpdHlQcm92aWRlcktleXM/OiBCdWZmZXJbXTtcbiAgICBwYXJhbXM/OiBTdGFraW5nUGFyYW1zO1xuICAgIHN0YWtpbmdUaW1lbG9jaz86IG51bWJlcjtcbiAgfSA9IHt9XG4pOiBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIge1xuICByZXR1cm4gZ2V0RGVzY3JpcHRvckJ1aWxkZXJGb3JQYXJhbXModXNlcktleSwgZmluYWxpdHlQcm92aWRlcktleXMsIHN0YWtpbmdUaW1lbG9jaywgcGFyYW1zKTtcbn1cbiJdfQ==
@@ -1,111 +0,0 @@
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/utxo-lib"));
44
- const wasm_utxo_1 = require("@bitgo/wasm-utxo");
45
- const descriptor_1 = require("@bitgo/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_utxo_1.Miniscript.fromString(wasm_utxo_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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5ib25kaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2JhYnlsb24vdW5kZWxlZ2F0aW9uL3VuYm9uZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdCQSxzREFXQztBQVdELDBDQWlDQztBQUtELHNFQVlDO0FBaEdELG9EQUE0QjtBQUU1Qix5REFBMkM7QUFFM0MsZ0RBQStEO0FBQy9ELDREQUEyRjtBQUUzRix3REFBNEQ7QUFFNUQ7O0dBRUc7QUFDSCxTQUFTLHFCQUFxQixDQUFDLElBQTRCLEVBQUUsVUFBa0IsRUFBRSxVQUF3QjtJQUN2RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxJQUFBLGdCQUFNLEVBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO0lBQzdELElBQUEsZ0JBQU0sRUFBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsMkNBQTJDLENBQUMsQ0FBQztJQUN0RixNQUFNLENBQUMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO0lBQ3ZELE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25GLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzlGLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFC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Q0gsU0FBZ0IsNkJBQTZCLENBQzNDLEVBQXlDLEVBQ3pDLFdBQXdCLEVBQ3hCLGlCQUE2QixFQUM3QixVQUF3QixFQUN4QixPQUF3QjtJQUV4QixNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRSxJQUFBLGdCQUFNLEVBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxtREFBbUQsQ0FBQyxDQUFDO0lBQzNGLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDM0MscUJBQXFCLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMzQyxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7IFBhcnRpYWxTaWcsIFdpdG5lc3NVdHhvIH0gZnJvbSAnYmlwMTc0L3NyYy9saWIvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBEZXNjcmlwdG9yLCBNaW5pc2NyaXB0LCBhc3QgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcbmltcG9ydCB7IGZpbmRUYXBMZWFmU2NyaXB0LCB0b1V0eG9Qc2J0LCB0b1dyYXBwZWRQc2J0IH0gZnJvbSAnQGJpdGdvL3V0eG8tY29yZS9kZXNjcmlwdG9yJztcblxuaW1wb3J0IHsgcGFyc2VTdGFraW5nRGVzY3JpcHRvciB9IGZyb20gJy4uL3BhcnNlRGVzY3JpcHRvcic7XG5cbi8qKlxuICogQWRkcyBjb3ZlbmFudCBzaWduYXR1cmVzIHRvIGEgUFNCVCBpbnB1dC5cbiAqL1xuZnVuY3Rpb24gYWRkQ292ZW5hbnRTaWduYXR1cmVzKHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsIGlucHV0SW5kZXg6IG51bWJlciwgc2lnbmF0dXJlczogUGFydGlhbFNpZ1tdKTogdm9pZCB7XG4gIGNvbnN0IGlucHV0ID0gcHNidC5kYXRhLmlucHV0c1tpbnB1dEluZGV4XTtcbiAgYXNzZXJ0KGlucHV0LnRhcExlYWZTY3JpcHQsICdJbnB1dCBtdXN0IGhhdmUgdGFwTGVhZlNjcmlwdCcpO1xuICBhc3NlcnQoaW5wdXQudGFwTGVhZlNjcmlwdC5sZW5ndGggPT09IDEsICdJbnB1dCBtdXN0IGhhdmUgZXhhY3RseSBvbmUgdGFwTGVhZlNjcmlwdCcpO1xuICBjb25zdCBbeyBjb250cm9sQmxvY2ssIHNjcmlwdCB9XSA9IGlucHV0LnRhcExlYWZTY3JpcHQ7XG4gIGNvbnN0IGxlYWZIYXNoID0gdXR4b2xpYi50YXByb290LmdldFRhcGxlYWZIYXNoKHV0eG9saWIuZWNjLCBjb250cm9sQmxvY2ssIHNjcmlwdCk7XG4gIHBzYnQudXBkYXRlSW5wdXQoaW5wdXRJbmRleCwgeyB0YXBTY3JpcHRTaWc6IHNpZ25hdHVyZXMubWFwKChzKSA9PiAoeyAuLi5zLCBsZWFmSGFzaCB9KSkgfSk7XG59XG5cbi8qKlxuICogQXNzZXJ0cyB0aGF0IHRoZSBwcm92aWRlZCBzaWduYXR1cmVzIGFyZSB2YWxpZCBmb3IgdGhlIGdpdmVuIFBTQlQgaW5wdXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRWYWxpZFNpZ25hdHVyZXMoXG4gIHBzYnQ6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQsXG4gIGlucHV0SW5kZXg6IG51bWJlcixcbiAgc2lnbmF0dXJlczogUGFydGlhbFNpZ1tdXG4pOiB2b2lkIHtcbiAgc2lnbmF0dXJlcy5mb3JFYWNoKChzKSA9PiB7XG4gICAgYXNzZXJ0KFxuICAgICAgcHNidC52YWxpZGF0ZVRhcHJvb3RTaWduYXR1cmVzT2ZJbnB1dChpbnB1dEluZGV4LCBzLnB1YmtleSksXG4gICAgICBgU2lnbmF0dXJlIHZhbGlkYXRpb24gZmFpbGVkIGZvciAke3MucHVia2V5LnRvU3RyaW5nKCdoZXgnKX1gXG4gICAgKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFVuYm9uZGluZ1NjcmlwdChzdGFraW5nRGVzY3JpcHRvcjogRGVzY3JpcHRvcik6IE1pbmlzY3JpcHQge1xuICBjb25zdCBwYXJzZWREZXNjcmlwdG9yID0gcGFyc2VTdGFraW5nRGVzY3JpcHRvcihzdGFraW5nRGVzY3JpcHRvcik7XG4gIGFzc2VydChwYXJzZWREZXNjcmlwdG9yLCAnSW52YWxpZCBzdGFraW5nIGRlc2NyaXB0b3InKTtcbiAgcmV0dXJuIE1pbmlzY3JpcHQuZnJvbVN0cmluZyhhc3QuZm9ybWF0Tm9kZShwYXJzZWREZXNjcmlwdG9yLnVuYm9uZGluZ01pbmlzY3JpcHROb2RlKSwgJ3RhcCcpO1xufVxuXG4vKipcbiAqIEByZXR1cm4gdW5zaWduZWQgUFNCVCBmb3IgYW4gdW5ib25kaW5nIHRyYW5zYWN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1VuYm9uZGluZ1BzYnQoXG4gIHR4OiB1dHhvbGliLmJpdGdvLlV0eG9UcmFuc2FjdGlvbjxiaWdpbnQ+LFxuICB3aXRuZXNzVXR4bzogV2l0bmVzc1V0eG8sXG4gIHN0YWtpbmdEZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmtcbik6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICBjb25zdCB1bmJvbmRpbmdTY3JpcHQgPSBnZXRVbmJvbmRpbmdTY3JpcHQoc3Rha2luZ0Rlc2NyaXB0b3IpO1xuICBjb25zdCBwc2J0ID0gbmV3IHV0eG9saWIuUHNidCh7IG5ldHdvcmsgfSk7XG4gIHBzYnQuc2V0VmVyc2lvbih0eC52ZXJzaW9uKTtcbiAgcHNidC5zZXRMb2NrdGltZSh0eC5sb2NrdGltZSk7XG4gIHBzYnQuYWRkT3V0cHV0cyhcbiAgICB0eC5vdXRzLm1hcCgob3V0cHV0KSA9PiAoe1xuICAgICAgc2NyaXB0OiBvdXRwdXQuc2NyaXB0LFxuICAgICAgdmFsdWU6IEJpZ0ludChvdXRwdXQudmFsdWUpLFxuICAgIH0pKVxuICApO1xuICBhc3NlcnQodHguaW5zLmxlbmd0aCA9PT0gMSk7XG4gIGNvbnN0IGlucHV0ID0gdHguaW5zWzBdO1xuICBwc2J0LmFkZElucHV0KHtcbiAgICBoYXNoOiBpbnB1dC5oYXNoLFxuICAgIGluZGV4OiBpbnB1dC5pbmRleCxcbiAgICBzZXF1ZW5jZTogaW5wdXQuc2VxdWVuY2UsXG4gICAgd2l0bmVzc1V0eG8sXG4gIH0pO1xuICBjb25zdCB3cmFwcGVkUHNidCA9IHRvV3JhcHBlZFBzYnQocHNidCk7XG4gIHdyYXBwZWRQc2J0LnVwZGF0ZUlucHV0V2l0aERlc2NyaXB0b3IoMCwgc3Rha2luZ0Rlc2NyaXB0b3IpO1xuICBjb25zdCB1bndyYXBwZWQgPSB0b1V0eG9Qc2J0KHdyYXBwZWRQc2J0LCBuZXR3b3JrKTtcbiAgYXNzZXJ0KHVud3JhcHBlZC5kYXRhLmlucHV0cy5sZW5ndGggPT09IDEsICdVbmJvbmRpbmcgdHJhbnNhY3Rpb24gbXVzdCBoYXZlIGV4YWN0bHkgb25lIGlucHV0Jyk7XG4gIGNvbnN0IHVud3JhcHBlZElucHV0RGF0YSA9IHVud3JhcHBlZC5kYXRhLmlucHV0c1swXTtcbiAgYXNzZXJ0KHVud3JhcHBlZElucHV0RGF0YS50YXBMZWFmU2NyaXB0KTtcbiAgY29uc3QgdW53cmFwcGVkVW5ib25kID0gZmluZFRhcExlYWZTY3JpcHQodW53cmFwcGVkSW5wdXREYXRhLnRhcExlYWZTY3JpcHQsIHVuYm9uZGluZ1NjcmlwdCk7XG4gIHVud3JhcHBlZElucHV0RGF0YS50YXBMZWFmU2NyaXB0ID0gW3Vud3JhcHBlZFVuYm9uZF07XG4gIHJldHVybiB1bndyYXBwZWQ7XG59XG5cbi8qKlxuICogQHJldHVybiBQU0JUIGZvciBhbiB1bmJvbmRpbmcgdHJhbnNhY3Rpb24gd2l0aCBzaWduYXR1cmVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1VuYm9uZGluZ1BzYnRXaXRoU2lnbmF0dXJlcyhcbiAgdHg6IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludD4sXG4gIHdpdG5lc3NVdHhvOiBXaXRuZXNzVXR4byxcbiAgc3Rha2luZ0Rlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gIHNpZ25hdHVyZXM6IFBhcnRpYWxTaWdbXSxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgY29uc3QgcHNidCA9IHRvVW5ib25kaW5nUHNidCh0eCwgd2l0bmVzc1V0eG8sIHN0YWtpbmdEZXNjcmlwdG9yLCBuZXR3b3JrKTtcbiAgYXNzZXJ0KHBzYnQuZGF0YS5pbnB1dHMubGVuZ3RoID09PSAxLCAnVW5ib25kaW5nIHRyYW5zYWN0aW9uIG11c3QgaGF2ZSBleGFjdGx5IG9uZSBpbnB1dCcpO1xuICBhZGRDb3ZlbmFudFNpZ25hdHVyZXMocHNidCwgMCwgc2lnbmF0dXJlcyk7XG4gIGFzc2VydFZhbGlkU2lnbmF0dXJlcyhwc2J0LCAwLCBzaWduYXR1cmVzKTtcbiAgcmV0dXJuIHBzYnQ7XG59XG4iXX0=
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createMultiSigDescriptor = createMultiSigDescriptor;
4
- const wasm_utxo_1 = require("@bitgo/wasm-utxo");
5
- function asDescriptorKey(key, neutered) {
6
- if (Buffer.isBuffer(key)) {
7
- return key.toString('hex');
8
- }
9
- return (neutered ? key.neutered() : key).toBase58() + '/*';
10
- }
11
- /**
12
- * Create a multi-sig descriptor to produce a coredao staking address
13
- * @param scriptType segwit or legacy
14
- * @param locktime locktime for CLTV
15
- * @param m Total number of keys required to unlock
16
- * @param orderedKeys If Bip32Interfaces, these are xprvs or xpubs and are derivable.
17
- * If they are buffers, then they are pub/prv keys and are not derivable.
18
- * @param neutered If true, neuter the keys. Default to true
19
- */
20
- function createMultiSigDescriptor(scriptType, locktime, m, orderedKeys, neutered = true) {
21
- if (m > orderedKeys.length || m < 1) {
22
- throw new Error(`m (${m}) must be less than or equal to the number of keys (${orderedKeys.length}) and greater than 0`);
23
- }
24
- if (locktime <= 0) {
25
- throw new Error(`locktime (${locktime}) must be greater than 0`);
26
- }
27
- const keys = orderedKeys.map((key) => asDescriptorKey(key, neutered));
28
- const inner = { and_v: [{ 'r:after': locktime }, { multi: [m, ...keys] }] };
29
- switch (scriptType) {
30
- case 'sh':
31
- return wasm_utxo_1.ast.formatNode({ sh: inner });
32
- case 'sh-wsh':
33
- return wasm_utxo_1.ast.formatNode({ sh: { wsh: inner } });
34
- case 'wsh':
35
- return wasm_utxo_1.ast.formatNode({ wsh: inner });
36
- }
37
- }
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlRGFvL2Rlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEwQkEsNERBeUJDO0FBbERELGdEQUF1QztBQVN2QyxTQUFTLGVBQWUsQ0FBQyxHQUE0QixFQUFFLFFBQWlCO0lBQ3RFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDN0QsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQ3RDLFVBQXNCLEVBQ3RCLFFBQWdCLEVBQ2hCLENBQVMsRUFDVCxXQUF3QyxFQUN4QyxRQUFRLEdBQUcsSUFBSTtJQUVmLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ2IsTUFBTSxDQUFDLHVEQUF1RCxXQUFXLENBQUMsTUFBTSxzQkFBc0IsQ0FDdkcsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsUUFBUSwwQkFBMEIsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsTUFBTSxLQUFLLEdBQXVCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNoRyxRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLEtBQUssSUFBSTtZQUNQLE9BQU8sZUFBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssUUFBUTtZQUNYLE9BQU8sZUFBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDaEQsS0FBSyxLQUFLO1lBQ1IsT0FBTyxlQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBhc3QgfSBmcm9tICdAYml0Z28vd2FzbS11dHhvJztcblxuLyoqXG4gKiBTY3JpcHQgdHlwZSBmb3IgYSBkZXNjcmlwdG9yLlxuICpcbiAqIFNlZSBodHRwczovL2RvY3MuY29yZWRhby5vcmcvZG9jcy9MZWFybi9wcm9kdWN0cy9idGMtc3Rha2luZy9kZXNpZ24jcDJzaHAyd3NoLW91dHB1dFxuICovXG5leHBvcnQgdHlwZSBTY3JpcHRUeXBlID0gJ3NoJyB8ICdzaC13c2gnIHwgJ3dzaCc7XG5cbmZ1bmN0aW9uIGFzRGVzY3JpcHRvcktleShrZXk6IEJJUDMySW50ZXJmYWNlIHwgQnVmZmVyLCBuZXV0ZXJlZDogYm9vbGVhbik6IHN0cmluZyB7XG4gIGlmIChCdWZmZXIuaXNCdWZmZXIoa2V5KSkge1xuICAgIHJldHVybiBrZXkudG9TdHJpbmcoJ2hleCcpO1xuICB9XG4gIHJldHVybiAobmV1dGVyZWQgPyBrZXkubmV1dGVyZWQoKSA6IGtleSkudG9CYXNlNTgoKSArICcvKic7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgbXVsdGktc2lnIGRlc2NyaXB0b3IgdG8gcHJvZHVjZSBhIGNvcmVkYW8gc3Rha2luZyBhZGRyZXNzXG4gKiBAcGFyYW0gc2NyaXB0VHlwZSBzZWd3aXQgb3IgbGVnYWN5XG4gKiBAcGFyYW0gbG9ja3RpbWUgbG9ja3RpbWUgZm9yIENMVFZcbiAqIEBwYXJhbSBtIFRvdGFsIG51bWJlciBvZiBrZXlzIHJlcXVpcmVkIHRvIHVubG9ja1xuICogQHBhcmFtIG9yZGVyZWRLZXlzIElmIEJpcDMySW50ZXJmYWNlcywgdGhlc2UgYXJlIHhwcnZzIG9yIHhwdWJzIGFuZCBhcmUgZGVyaXZhYmxlLlxuICogICAgICAgICAgICAgICAgICAgIElmIHRoZXkgYXJlIGJ1ZmZlcnMsIHRoZW4gdGhleSBhcmUgcHViL3BydiBrZXlzIGFuZCBhcmUgbm90IGRlcml2YWJsZS5cbiAqIEBwYXJhbSBuZXV0ZXJlZCBJZiB0cnVlLCBuZXV0ZXIgdGhlIGtleXMuIERlZmF1bHQgdG8gdHJ1ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTXVsdGlTaWdEZXNjcmlwdG9yKFxuICBzY3JpcHRUeXBlOiBTY3JpcHRUeXBlLFxuICBsb2NrdGltZTogbnVtYmVyLFxuICBtOiBudW1iZXIsXG4gIG9yZGVyZWRLZXlzOiAoQklQMzJJbnRlcmZhY2UgfCBCdWZmZXIpW10sXG4gIG5ldXRlcmVkID0gdHJ1ZVxuKTogc3RyaW5nIHtcbiAgaWYgKG0gPiBvcmRlcmVkS2V5cy5sZW5ndGggfHwgbSA8IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgbSAoJHttfSkgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG51bWJlciBvZiBrZXlzICgke29yZGVyZWRLZXlzLmxlbmd0aH0pIGFuZCBncmVhdGVyIHRoYW4gMGBcbiAgICApO1xuICB9XG4gIGlmIChsb2NrdGltZSA8PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBsb2NrdGltZSAoJHtsb2NrdGltZX0pIG11c3QgYmUgZ3JlYXRlciB0aGFuIDBgKTtcbiAgfVxuICBjb25zdCBrZXlzID0gb3JkZXJlZEtleXMubWFwKChrZXkpID0+IGFzRGVzY3JpcHRvcktleShrZXksIG5ldXRlcmVkKSk7XG4gIGNvbnN0IGlubmVyOiBhc3QuTWluaXNjcmlwdE5vZGUgPSB7IGFuZF92OiBbeyAncjphZnRlcic6IGxvY2t0aW1lIH0sIHsgbXVsdGk6IFttLCAuLi5rZXlzXSB9XSB9O1xuICBzd2l0Y2ggKHNjcmlwdFR5cGUpIHtcbiAgICBjYXNlICdzaCc6XG4gICAgICByZXR1cm4gYXN0LmZvcm1hdE5vZGUoeyBzaDogaW5uZXIgfSk7XG4gICAgY2FzZSAnc2gtd3NoJzpcbiAgICAgIHJldHVybiBhc3QuZm9ybWF0Tm9kZSh7IHNoOiB7IHdzaDogaW5uZXIgfSB9KTtcbiAgICBjYXNlICd3c2gnOlxuICAgICAgcmV0dXJuIGFzdC5mb3JtYXROb2RlKHsgd3NoOiBpbm5lciB9KTtcbiAgfVxufVxuIl19