@bitgo/utxo-staking 1.9.0 → 1.11.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.
@@ -0,0 +1,22 @@
1
+ import * as vendor from '@bitgo/babylonlabs-io-btc-staking-ts';
2
+ import * as babylonProtobuf from '@babylonlabs-io/babylon-proto-ts';
3
+ import * as bitcoinjslib from 'bitcoinjs-lib';
4
+ import * as utxolib from '@bitgo/utxo-lib';
5
+ import { Descriptor } from '@bitgo/wasm-miniscript';
6
+ import { BabylonDescriptorBuilder } from './descriptor';
7
+ export type ValueWithTypeUrl<T> = {
8
+ typeUrl: string;
9
+ value: T;
10
+ };
11
+ export declare function getSignedPsbt(psbt: bitcoinjslib.Psbt, descriptor: Descriptor, signers: utxolib.ECPairInterface[], { finalize }: {
12
+ finalize?: boolean | undefined;
13
+ }): bitcoinjslib.Psbt;
14
+ export declare function getBtcProviderForECKey(descriptorBuilder: BabylonDescriptorBuilder, stakerKey: utxolib.ECPairInterface): vendor.BtcProvider;
15
+ type Result = {
16
+ unsignedDelegationMsg: ValueWithTypeUrl<babylonProtobuf.btcstakingtx.MsgCreateBTCDelegation>;
17
+ stakingTx: bitcoinjslib.Transaction;
18
+ };
19
+ export declare function createUnsignedPreStakeRegistrationBabylonTransaction(manager: vendor.BabylonBtcStakingManager, stakingParams: vendor.VersionedStakingParams[], network: bitcoinjslib.Network, stakerBtcInfo: vendor.StakerInfo, stakingInput: vendor.StakingInputs, babylonBtcTipHeight: number, inputUTXOs: vendor.UTXO[], feeRateSatB: number, babylonAddress: string): Promise<Result>;
20
+ export declare function createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider(btcProvider: vendor.BtcProvider, network: bitcoinjslib.Network, stakerBtcInfo: vendor.StakerInfo, stakingInput: vendor.StakingInputs, babylonBtcTipHeight: number, inputUTXOs: vendor.UTXO[], feeRateSatB: number, babylonAddress: string, stakingParams?: vendor.VersionedStakingParams[]): Promise<Result>;
21
+ export {};
22
+ //# sourceMappingURL=delegationMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delegationMessage.d.ts","sourceRoot":"","sources":["../../../src/babylon/delegationMessage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAC;AAC/D,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAIxD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC;AAEhE,wBAAgB,aAAa,CAC3B,IAAI,EAAE,YAAY,CAAC,IAAI,EACvB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,EAClC,EAAE,QAAgB,EAAE;;CAAA,GACnB,YAAY,CAAC,IAAI,CAmBnB;AAED,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,wBAAwB,EAC3C,SAAS,EAAE,OAAO,CAAC,eAAe,GACjC,MAAM,CAAC,WAAW,CAkCpB;AAED,KAAK,MAAM,GAAG;IACZ,qBAAqB,EAAE,gBAAgB,CAAC,eAAe,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC;IAC7F,SAAS,EAAE,YAAY,CAAC,WAAW,CAAC;CACrC,CAAC;AAQF,wBAAsB,oDAAoD,CACxE,OAAO,EAAE,MAAM,CAAC,wBAAwB,EACxC,aAAa,EAAE,MAAM,CAAC,sBAAsB,EAAE,EAC9C,OAAO,EAAE,YAAY,CAAC,OAAO,EAC7B,aAAa,EAAE,MAAM,CAAC,UAAU,EAChC,YAAY,EAAE,MAAM,CAAC,aAAa,EAClC,mBAAmB,EAAE,MAAM,EAC3B,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,EACzB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC,CAsCjB;AAED,wBAAsB,mEAAmE,CACvF,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,OAAO,EAAE,YAAY,CAAC,OAAO,EAC7B,aAAa,EAAE,MAAM,CAAC,UAAU,EAChC,YAAY,EAAE,MAAM,CAAC,aAAa,EAClC,mBAAmB,EAAE,MAAM,EAC3B,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,EACzB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,aAAa,GAAE,MAAM,CAAC,sBAAsB,EAA8B,GACzE,OAAO,CAAC,MAAM,CAAC,CAajB"}
@@ -0,0 +1,131 @@
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.getSignedPsbt = getSignedPsbt;
40
+ exports.getBtcProviderForECKey = getBtcProviderForECKey;
41
+ exports.createUnsignedPreStakeRegistrationBabylonTransaction = createUnsignedPreStakeRegistrationBabylonTransaction;
42
+ exports.createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider = createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider;
43
+ const assert_1 = __importDefault(require("assert"));
44
+ const vendor = __importStar(require("@bitgo/babylonlabs-io-btc-staking-ts"));
45
+ const bitcoinjslib = __importStar(require("bitcoinjs-lib"));
46
+ const descriptor_1 = require("@bitgo/utxo-core/descriptor");
47
+ const stakingManager_1 = require("./stakingManager");
48
+ const stakingParams_1 = require("./stakingParams");
49
+ function getSignedPsbt(psbt, descriptor, signers, { finalize = false }) {
50
+ const wrappedPsbt = (0, descriptor_1.toWrappedPsbt)(psbt.toBuffer());
51
+ const signedInputs = psbt.data.inputs.flatMap((input, i) => {
52
+ (0, assert_1.default)(input.witnessUtxo);
53
+ if (Buffer.from(descriptor.scriptPubkey()).equals(input.witnessUtxo.script)) {
54
+ wrappedPsbt.updateInputWithDescriptor(i, descriptor);
55
+ const signResults = signers.map((signer) => {
56
+ (0, assert_1.default)(signer.privateKey);
57
+ return wrappedPsbt.signWithPrv(signer.privateKey);
58
+ });
59
+ return [[i, signResults]];
60
+ }
61
+ return [];
62
+ });
63
+ (0, assert_1.default)(signedInputs.length > 0);
64
+ if (finalize) {
65
+ wrappedPsbt.finalize();
66
+ }
67
+ return bitcoinjslib.Psbt.fromBuffer(Buffer.from(wrappedPsbt.serialize()));
68
+ }
69
+ function getBtcProviderForECKey(descriptorBuilder, stakerKey) {
70
+ function signWithDescriptor(psbt, descriptor, key) {
71
+ psbt = getSignedPsbt(psbt, descriptor, [key], { finalize: false });
72
+ // BUG: we need to blindly finalize here even though we have not fully signed
73
+ psbt.finalizeAllInputs();
74
+ return psbt;
75
+ }
76
+ return {
77
+ async signMessage(signingStep, message, type) {
78
+ (0, assert_1.default)(type === 'ecdsa');
79
+ switch (signingStep) {
80
+ case 'proof-of-possession':
81
+ return stakerKey.sign(Buffer.from(message, 'hex')).toString('hex');
82
+ default:
83
+ throw new Error(`unexpected signing step: ${signingStep}`);
84
+ }
85
+ },
86
+ async signPsbt(signingStep, psbtHex) {
87
+ const psbt = bitcoinjslib.Psbt.fromHex(psbtHex);
88
+ switch (signingStep) {
89
+ case 'staking-slashing':
90
+ return signWithDescriptor(psbt, descriptorBuilder.getStakingDescriptor(), stakerKey).toHex();
91
+ case 'unbonding-slashing':
92
+ return signWithDescriptor(psbt, descriptorBuilder.getUnbondingDescriptor(), stakerKey).toHex();
93
+ default:
94
+ throw new Error(`unexpected signing step: ${signingStep}`);
95
+ }
96
+ },
97
+ };
98
+ }
99
+ /*
100
+ * This is mostly lifted from
101
+ * https://github.com/babylonlabs-io/btc-staking-ts/blob/v0.4.0-rc.2/src/staking/manager.ts#L100-L172
102
+ *
103
+ * The difference is that here we are returning an _unsigned_ delegation message.
104
+ */
105
+ async function createUnsignedPreStakeRegistrationBabylonTransaction(manager, stakingParams, network, stakerBtcInfo, stakingInput, babylonBtcTipHeight, inputUTXOs, feeRateSatB, babylonAddress) {
106
+ if (babylonBtcTipHeight === 0) {
107
+ throw new Error('Babylon BTC tip height cannot be 0');
108
+ }
109
+ if (inputUTXOs.length === 0) {
110
+ throw new Error('No input UTXOs provided');
111
+ }
112
+ if (!vendor.isValidBabylonAddress(babylonAddress)) {
113
+ throw new Error('Invalid Babylon address');
114
+ }
115
+ // Get the Babylon params based on the BTC tip height from Babylon chain
116
+ const params = vendor.getBabylonParamByBtcHeight(babylonBtcTipHeight, stakingParams);
117
+ const staking = new vendor.Staking(network, stakerBtcInfo, params, stakingInput.finalityProviderPkNoCoordHex, stakingInput.stakingTimelock);
118
+ // Create unsigned staking transaction
119
+ const { transaction } = staking.createStakingTransaction(stakingInput.stakingAmountSat, inputUTXOs, feeRateSatB);
120
+ // Create delegation message without including inclusion proof
121
+ const msg = await manager.createBtcDelegationMsg(staking, stakingInput, transaction, babylonAddress, stakerBtcInfo, params);
122
+ return {
123
+ unsignedDelegationMsg: msg,
124
+ stakingTx: transaction,
125
+ };
126
+ }
127
+ async function createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider(btcProvider, network, stakerBtcInfo, stakingInput, babylonBtcTipHeight, inputUTXOs, feeRateSatB, babylonAddress, stakingParams = (0, stakingParams_1.getStakingParams)(network)) {
128
+ const manager = (0, stakingManager_1.createStakingManager)(network, btcProvider, stakingParams);
129
+ return await createUnsignedPreStakeRegistrationBabylonTransaction(manager, stakingParams, network, stakerBtcInfo, stakingInput, babylonBtcTipHeight, inputUTXOs, feeRateSatB, babylonAddress);
130
+ }
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvbk1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9kZWxlZ2F0aW9uTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLHNDQXdCQztBQUVELHdEQXFDQztBQWFELG9IQWdEQztBQUVELGtKQXVCQztBQXBLRCxvREFBNEI7QUFFNUIsNkVBQStEO0FBRS9ELDREQUE4QztBQUc5Qyw0REFBNEQ7QUFHNUQscURBQXdEO0FBQ3hELG1EQUFtRDtBQUluRCxTQUFnQixhQUFhLENBQzNCLElBQXVCLEVBQ3ZCLFVBQXNCLEVBQ3RCLE9BQWtDLEVBQ2xDLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRTtJQUVwQixNQUFNLFdBQVcsR0FBRyxJQUFBLDBCQUFhLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3pELElBQUEsZ0JBQU0sRUFBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDNUUsV0FBVyxDQUFDLHlCQUF5QixDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNyRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pDLElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFN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RUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsV0FBVyxFQUNYLGNBQWMsQ0FDZixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdmVuZG9yIGZyb20gJ0BiaXRnby9iYWJ5bG9ubGFicy1pby1idGMtc3Rha2luZy10cyc7XG5pbXBvcnQgKiBhcyBiYWJ5bG9uUHJvdG9idWYgZnJvbSAnQGJhYnlsb25sYWJzLWlvL2JhYnlsb24tcHJvdG8tdHMnO1xuaW1wb3J0ICogYXMgYml0Y29pbmpzbGliIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuaW1wb3J0IHsgdG9XcmFwcGVkUHNidCB9IGZyb20gJ0BiaXRnby91dHhvLWNvcmUvZGVzY3JpcHRvcic7XG5cbmltcG9ydCB7IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBjcmVhdGVTdGFraW5nTWFuYWdlciB9IGZyb20gJy4vc3Rha2luZ01hbmFnZXInO1xuaW1wb3J0IHsgZ2V0U3Rha2luZ1BhcmFtcyB9IGZyb20gJy4vc3Rha2luZ1BhcmFtcyc7XG5cbmV4cG9ydCB0eXBlIFZhbHVlV2l0aFR5cGVVcmw8VD4gPSB7IHR5cGVVcmw6IHN0cmluZzsgdmFsdWU6IFQgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ25lZFBzYnQoXG4gIHBzYnQ6IGJpdGNvaW5qc2xpYi5Qc2J0LFxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICBzaWduZXJzOiB1dHhvbGliLkVDUGFpckludGVyZmFjZVtdLFxuICB7IGZpbmFsaXplID0gZmFsc2UgfVxuKTogYml0Y29pbmpzbGliLlBzYnQge1xuICBjb25zdCB3cmFwcGVkUHNidCA9IHRvV3JhcHBlZFBzYnQocHNidC50b0J1ZmZlcigpKTtcbiAgY29uc3Qgc2lnbmVkSW5wdXRzID0gcHNidC5kYXRhLmlucHV0cy5mbGF0TWFwKChpbnB1dCwgaSkgPT4ge1xuICAgIGFzc2VydChpbnB1dC53aXRuZXNzVXR4byk7XG4gICAgaWYgKEJ1ZmZlci5mcm9tKGRlc2NyaXB0b3Iuc2NyaXB0UHVia2V5KCkpLmVxdWFscyhpbnB1dC53aXRuZXNzVXR4by5zY3JpcHQpKSB7XG4gICAgICB3cmFwcGVkUHNidC51cGRhdGVJbnB1dFdpdGhEZXNjcmlwdG9yKGksIGRlc2NyaXB0b3IpO1xuICAgICAgY29uc3Qgc2lnblJlc3VsdHMgPSBzaWduZXJzLm1hcCgoc2lnbmVyKSA9PiB7XG4gICAgICAgIGFzc2VydChzaWduZXIucHJpdmF0ZUtleSk7XG4gICAgICAgIHJldHVybiB3cmFwcGVkUHNidC5zaWduV2l0aFBydihzaWduZXIucHJpdmF0ZUtleSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBbW2ksIHNpZ25SZXN1bHRzXV07XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfSk7XG4gIGFzc2VydChzaWduZWRJbnB1dHMubGVuZ3RoID4gMCk7XG4gIGlmIChmaW5hbGl6ZSkge1xuICAgIHdyYXBwZWRQc2J0LmZpbmFsaXplKCk7XG4gIH1cbiAgcmV0dXJuIGJpdGNvaW5qc2xpYi5Qc2J0LmZyb21CdWZmZXIoQnVmZmVyLmZyb20od3JhcHBlZFBzYnQuc2VyaWFsaXplKCkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJ0Y1Byb3ZpZGVyRm9yRUNLZXkoXG4gIGRlc2NyaXB0b3JCdWlsZGVyOiBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIsXG4gIHN0YWtlcktleTogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2Vcbik6IHZlbmRvci5CdGNQcm92aWRlciB7XG4gIGZ1bmN0aW9uIHNpZ25XaXRoRGVzY3JpcHRvcihcbiAgICBwc2J0OiBiaXRjb2luanNsaWIuUHNidCxcbiAgICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICAgIGtleTogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2VcbiAgKTogYml0Y29pbmpzbGliLlBzYnQge1xuICAgIHBzYnQgPSBnZXRTaWduZWRQc2J0KHBzYnQsIGRlc2NyaXB0b3IsIFtrZXldLCB7IGZpbmFsaXplOiBmYWxzZSB9KTtcbiAgICAvLyBCVUc6IHdlIG5lZWQgdG8gYmxpbmRseSBmaW5hbGl6ZSBoZXJlIGV2ZW4gdGhvdWdoIHdlIGhhdmUgbm90IGZ1bGx5IHNpZ25lZFxuICAgIHBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICByZXR1cm4gcHNidDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYXN5bmMgc2lnbk1lc3NhZ2Uoc2lnbmluZ1N0ZXA6IHZlbmRvci5TaWduaW5nU3RlcCwgbWVzc2FnZTogc3RyaW5nLCB0eXBlOiAnZWNkc2EnKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIGFzc2VydCh0eXBlID09PSAnZWNkc2EnKTtcbiAgICAgIHN3aXRjaCAoc2lnbmluZ1N0ZXApIHtcbiAgICAgICAgY2FzZSAncHJvb2Ytb2YtcG9zc2Vzc2lvbic6XG4gICAgICAgICAgcmV0dXJuIHN0YWtlcktleS5zaWduKEJ1ZmZlci5mcm9tKG1lc3NhZ2UsICdoZXgnKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBzaWduaW5nIHN0ZXA6ICR7c2lnbmluZ1N0ZXB9YCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBhc3luYyBzaWduUHNidChzaWduaW5nU3RlcDogdmVuZG9yLlNpZ25pbmdTdGVwLCBwc2J0SGV4OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgY29uc3QgcHNidCA9IGJpdGNvaW5qc2xpYi5Qc2J0LmZyb21IZXgocHNidEhleCk7XG4gICAgICBzd2l0Y2ggKHNpZ25pbmdTdGVwKSB7XG4gICAgICAgIGNhc2UgJ3N0YWtpbmctc2xhc2hpbmcnOlxuICAgICAgICAgIHJldHVybiBzaWduV2l0aERlc2NyaXB0b3IocHNidCwgZGVzY3JpcHRvckJ1aWxkZXIuZ2V0U3Rha2luZ0Rlc2NyaXB0b3IoKSwgc3Rha2VyS2V5KS50b0hleCgpO1xuICAgICAgICBjYXNlICd1bmJvbmRpbmctc2xhc2hpbmcnOlxuICAgICAgICAgIHJldHVybiBzaWduV2l0aERlc2NyaXB0b3IocHNidCwgZGVzY3JpcHRvckJ1aWxkZXIuZ2V0VW5ib25kaW5nRGVzY3JpcHRvcigpLCBzdGFrZXJLZXkpLnRvSGV4KCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHNpZ25pbmcgc3RlcDogJHtzaWduaW5nU3RlcH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxuXG50eXBlIFJlc3VsdCA9IHtcbiAgdW5zaWduZWREZWxlZ2F0aW9uTXNnOiBWYWx1ZVdpdGhUeXBlVXJsPGJhYnlsb25Qcm90b2J1Zi5idGNzdGFraW5ndHguTXNnQ3JlYXRlQlRDRGVsZWdhdGlvbj47XG4gIHN0YWtpbmdUeDogYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uO1xufTtcblxuLypcbiAqIFRoaXMgaXMgbW9zdGx5IGxpZnRlZCBmcm9tXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmFieWxvbmxhYnMtaW8vYnRjLXN0YWtpbmctdHMvYmxvYi92MC40LjAtcmMuMi9zcmMvc3Rha2luZy9tYW5hZ2VyLnRzI0wxMDAtTDE3MlxuICpcbiAqIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgaGVyZSB3ZSBhcmUgcmV0dXJuaW5nIGFuIF91bnNpZ25lZF8gZGVsZWdhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVW5zaWduZWRQcmVTdGFrZVJlZ2lzdHJhdGlvbkJhYnlsb25UcmFuc2FjdGlvbihcbiAgbWFuYWdlcjogdmVuZG9yLkJhYnlsb25CdGNTdGFraW5nTWFuYWdlcixcbiAgc3Rha2luZ1BhcmFtczogdmVuZG9yLlZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSxcbiAgbmV0d29yazogYml0Y29pbmpzbGliLk5ldHdvcmssXG4gIHN0YWtlckJ0Y0luZm86IHZlbmRvci5TdGFrZXJJbmZvLFxuICBzdGFraW5nSW5wdXQ6IHZlbmRvci5TdGFraW5nSW5wdXRzLFxuICBiYWJ5bG9uQnRjVGlwSGVpZ2h0OiBudW1iZXIsXG4gIGlucHV0VVRYT3M6IHZlbmRvci5VVFhPW10sXG4gIGZlZVJhdGVTYXRCOiBudW1iZXIsXG4gIGJhYnlsb25BZGRyZXNzOiBzdHJpbmdcbik6IFByb21pc2U8UmVzdWx0PiB7XG4gIGlmIChiYWJ5bG9uQnRjVGlwSGVpZ2h0ID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCYWJ5bG9uIEJUQyB0aXAgaGVpZ2h0IGNhbm5vdCBiZSAwJyk7XG4gIH1cbiAgaWYgKGlucHV0VVRYT3MubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbnB1dCBVVFhPcyBwcm92aWRlZCcpO1xuICB9XG4gIGlmICghdmVuZG9yLmlzVmFsaWRCYWJ5bG9uQWRkcmVzcyhiYWJ5bG9uQWRkcmVzcykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQmFieWxvbiBhZGRyZXNzJyk7XG4gIH1cblxuICAvLyBHZXQgdGhlIEJhYnlsb24gcGFyYW1zIGJhc2VkIG9uIHRoZSBCVEMgdGlwIGhlaWdodCBmcm9tIEJhYnlsb24gY2hhaW5cbiAgY29uc3QgcGFyYW1zID0gdmVuZG9yLmdldEJhYnlsb25QYXJhbUJ5QnRjSGVpZ2h0KGJhYnlsb25CdGNUaXBIZWlnaHQsIHN0YWtpbmdQYXJhbXMpO1xuXG4gIGNvbnN0IHN0YWtpbmcgPSBuZXcgdmVuZG9yLlN0YWtpbmcoXG4gICAgbmV0d29yayxcbiAgICBzdGFrZXJCdGNJbmZvLFxuICAgIHBhcmFtcyxcbiAgICBzdGFraW5nSW5wdXQuZmluYWxpdHlQcm92aWRlclBrTm9Db29yZEhleCxcbiAgICBzdGFraW5nSW5wdXQuc3Rha2luZ1RpbWVsb2NrXG4gICk7XG5cbiAgLy8gQ3JlYXRlIHVuc2lnbmVkIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgY29uc3QgeyB0cmFuc2FjdGlvbiB9ID0gc3Rha2luZy5jcmVhdGVTdGFraW5nVHJhbnNhY3Rpb24oc3Rha2luZ0lucHV0LnN0YWtpbmdBbW91bnRTYXQsIGlucHV0VVRYT3MsIGZlZVJhdGVTYXRCKTtcblxuICAvLyBDcmVhdGUgZGVsZWdhdGlvbiBtZXNzYWdlIHdpdGhvdXQgaW5jbHVkaW5nIGluY2x1c2lvbiBwcm9vZlxuICBjb25zdCBtc2cgPSBhd2FpdCBtYW5hZ2VyLmNyZWF0ZUJ0Y0RlbGVnYXRpb25Nc2coXG4gICAgc3Rha2luZyxcbiAgICBzdGFraW5nSW5wdXQsXG4gICAgdHJhbnNhY3Rpb24sXG4gICAgYmFieWxvbkFkZHJlc3MsXG4gICAgc3Rha2VyQnRjSW5mbyxcbiAgICBwYXJhbXNcbiAgKTtcbiAgcmV0dXJuIHtcbiAgICB1bnNpZ25lZERlbGVnYXRpb25Nc2c6IG1zZyxcbiAgICBzdGFraW5nVHg6IHRyYW5zYWN0aW9uLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVW5zaWduZWRQcmVTdGFrZVJlZ2lzdHJhdGlvbkJhYnlsb25UcmFuc2FjdGlvbldpdGhCdGNQcm92aWRlcihcbiAgYnRjUHJvdmlkZXI6IHZlbmRvci5CdGNQcm92aWRlcixcbiAgbmV0d29yazogYml0Y29pbmpzbGliLk5ldHdvcmssXG4gIHN0YWtlckJ0Y0luZm86IHZlbmRvci5TdGFrZXJJbmZvLFxuICBzdGFraW5nSW5wdXQ6IHZlbmRvci5TdGFraW5nSW5wdXRzLFxuICBiYWJ5bG9uQnRjVGlwSGVpZ2h0OiBudW1iZXIsXG4gIGlucHV0VVRYT3M6IHZlbmRvci5VVFhPW10sXG4gIGZlZVJhdGVTYXRCOiBudW1iZXIsXG4gIGJhYnlsb25BZGRyZXNzOiBzdHJpbmcsXG4gIHN0YWtpbmdQYXJhbXM6IHZlbmRvci5WZXJzaW9uZWRTdGFraW5nUGFyYW1zW10gPSBnZXRTdGFraW5nUGFyYW1zKG5ldHdvcmspXG4pOiBQcm9taXNlPFJlc3VsdD4ge1xuICBjb25zdCBtYW5hZ2VyID0gY3JlYXRlU3Rha2luZ01hbmFnZXIobmV0d29yaywgYnRjUHJvdmlkZXIsIHN0YWtpbmdQYXJhbXMpO1xuICByZXR1cm4gYXdhaXQgY3JlYXRlVW5zaWduZWRQcmVTdGFrZVJlZ2lzdHJhdGlvbkJhYnlsb25UcmFuc2FjdGlvbihcbiAgICBtYW5hZ2VyLFxuICAgIHN0YWtpbmdQYXJhbXMsXG4gICAgbmV0d29yayxcbiAgICBzdGFrZXJCdGNJbmZvLFxuICAgIHN0YWtpbmdJbnB1dCxcbiAgICBiYWJ5bG9uQnRjVGlwSGVpZ2h0LFxuICAgIGlucHV0VVRYT3MsXG4gICAgZmVlUmF0ZVNhdEIsXG4gICAgYmFieWxvbkFkZHJlc3NcbiAgKTtcbn1cbiJdfQ==
@@ -1,4 +1,9 @@
1
+ /**
2
+ * https://github.com/babylonlabs-io/babylon/tree/main/docs
3
+ * https://github.com/babylonlabs-io/babylon/blob/main/docs/staking-script.md
4
+ */
1
5
  import { Descriptor, ast } from '@bitgo/wasm-miniscript';
6
+ import { StakingParams } from '@bitgo/babylonlabs-io-btc-staking-ts';
2
7
  export declare function getUnspendableKey(): string;
3
8
  export declare class BabylonDescriptorBuilder {
4
9
  stakerKey: Buffer;
@@ -8,6 +13,10 @@ export declare class BabylonDescriptorBuilder {
8
13
  stakingTimeLock: number;
9
14
  unbondingTimeLock: number;
10
15
  constructor(stakerKey: Buffer, finalityProviderKeys: Buffer[], covenantKeys: Buffer[], covenantThreshold: number, stakingTimeLock: number, unbondingTimeLock: number);
16
+ static fromParams(params: {
17
+ stakerKey: Buffer;
18
+ finalityProviderKeys: Buffer[];
19
+ } & StakingParams): BabylonDescriptorBuilder;
11
20
  getTimelockMiniscript(): ast.MiniscriptNode;
12
21
  getUnbondingMiniscript(): ast.MiniscriptNode;
13
22
  getSlashingMiniscript(): ast.MiniscriptNode;
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/babylon/descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AAEzD,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAmBD,qBAAa,wBAAwB;IAE1B,SAAS,EAAE,MAAM;IACjB,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY,EAAE,MAAM,EAAE;IACtB,iBAAiB,EAAE,MAAM;IACzB,eAAe,EAAE,MAAM;IACvB,iBAAiB,EAAE,MAAM;gBALzB,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAAE,EAC9B,YAAY,EAAE,MAAM,EAAE,EACtB,iBAAiB,EAAE,MAAM,EACzB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM;IAGlC,qBAAqB,IAAI,GAAG,CAAC,cAAc;IAI3C,sBAAsB,IAAI,GAAG,CAAC,cAAc;IAI5C,qBAAqB,IAAI,GAAG,CAAC,cAAc;IAgB3C,8BAA8B,IAAI,GAAG,CAAC,cAAc;IAIpD,oBAAoB,IAAI,UAAU;IAOlC,qBAAqB,IAAI,UAAU;IAInC,sBAAsB,IAAI,UAAU;CAGrC"}
1
+ {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/babylon/descriptor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAmBD,qBAAa,wBAAwB;IAE1B,SAAS,EAAE,MAAM;IACjB,oBAAoB,EAAE,MAAM,EAAE;IAC9B,YAAY,EAAE,MAAM,EAAE;IACtB,iBAAiB,EAAE,MAAM;IACzB,eAAe,EAAE,MAAM;IACvB,iBAAiB,EAAE,MAAM;gBALzB,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,MAAM,EAAE,EAC9B,YAAY,EAAE,MAAM,EAAE,EACtB,iBAAiB,EAAE,MAAM,EACzB,eAAe,EAAE,MAAM,EACvB,iBAAiB,EAAE,MAAM;IAGlC,MAAM,CAAC,UAAU,CACf,MAAM,EAAE;QACN,SAAS,EAAE,MAAM,CAAC;QAClB,oBAAoB,EAAE,MAAM,EAAE,CAAC;KAChC,GAAG,aAAa,GAChB,wBAAwB;IA0B3B,qBAAqB,IAAI,GAAG,CAAC,cAAc;IAI3C,sBAAsB,IAAI,GAAG,CAAC,cAAc;IAI5C,qBAAqB,IAAI,GAAG,CAAC,cAAc;IAgB3C,8BAA8B,IAAI,GAAG,CAAC,cAAc;IAIpD,oBAAoB,IAAI,UAAU;IAOlC,qBAAqB,IAAI,UAAU;IAInC,sBAAsB,IAAI,UAAU;CAGrC"}
@@ -1,4 +1,8 @@
1
1
  "use strict";
2
+ /**
3
+ * https://github.com/babylonlabs-io/babylon/tree/main/docs
4
+ * https://github.com/babylonlabs-io/babylon/blob/main/docs/staking-script.md
5
+ */
2
6
  Object.defineProperty(exports, "__esModule", { value: true });
3
7
  exports.BabylonDescriptorBuilder = void 0;
4
8
  exports.getUnspendableKey = getUnspendableKey;
@@ -29,6 +33,24 @@ class BabylonDescriptorBuilder {
29
33
  this.stakingTimeLock = stakingTimeLock;
30
34
  this.unbondingTimeLock = unbondingTimeLock;
31
35
  }
36
+ static fromParams(params) {
37
+ /*
38
+
39
+ const stakerKey = getECKey('staker');
40
+ const covenantThreshold = stakingParams.covenantQuorum;
41
+ const stakingTimelock = stakingParams.minStakingTimeBlocks;
42
+ const unbondingTimelock = stakingParams.unbondingTime;
43
+ const vendorBuilder = new vendor.StakingScriptData(
44
+ getXOnlyPubkey(stakerKey),
45
+ finalityProviderKeys.map(getXOnlyPubkey),
46
+ covenantKeys.map(getXOnlyPubkey),
47
+ covenantThreshold,
48
+ stakingTimelock,
49
+ unbondingTimelock
50
+ );
51
+ */
52
+ return new BabylonDescriptorBuilder(params.stakerKey, params.finalityProviderKeys, params.covenantNoCoordPks.map((k) => Buffer.from(k, 'hex')), params.covenantQuorum, params.minStakingTimeBlocks, params.unbondingTime);
53
+ }
32
54
  getTimelockMiniscript() {
33
55
  return { and_v: [pk(this.stakerKey), { older: this.stakingTimeLock }] };
34
56
  }
@@ -67,4 +89,4 @@ class BabylonDescriptorBuilder {
67
89
  }
68
90
  }
69
91
  exports.BabylonDescriptorBuilder = BabylonDescriptorBuilder;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL2Rlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsOENBR0M7QUFMRCw0REFBeUQ7QUFFekQsU0FBZ0IsaUJBQWlCO0lBQy9CLG9HQUFvRztJQUNwRyxPQUFPLGtFQUFrRSxDQUFDO0FBQzVFLENBQUM7QUFFRCxpREFBaUQ7QUFDakQsU0FBUyxFQUFFLENBQUMsQ0FBUztJQUNuQixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYztJQUNoQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLFNBQWlCLEVBQUUsSUFBYztJQUNsRCxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsQ0FBa0I7SUFDbEQsT0FBTyw0QkFBVSxDQUFDLFVBQVUsQ0FBQyxxQkFBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzdGLENBQUM7QUFFRCxNQUFhLHdCQUF3QjtJQUNuQyxZQUNTLFNBQWlCLEVBQ2pCLG9CQUE4QixFQUM5QixZQUFzQixFQUN0QixpQkFBeUIsRUFDekIsZUFBdUIsRUFDdkIsaUJBQXlCO1FBTHpCLGNBQVMsR0FBVCxTQUFTLENBQVE7UUFDakIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFVO1FBQzlCLGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQ3RCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBUTtRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBUTtRQUN2QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQVE7SUFDL0IsQ0FBQztJQUVKLHFCQUFxQjtRQUNuQixPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFRCxzQkFBc0I7UUFDcEIsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDNUcsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixPQUFPO1lBQ0wsS0FBSyxFQUFFO2dCQUNMO29CQUNFLEtBQUssRUFBRTt3QkFDTCxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzt3QkFDbEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDOzRCQUNwQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTs0QkFDMUQsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7cUJBQzdEO2lCQUNGO2dCQUNELEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO2FBQ2xFO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCw4QkFBOEI7UUFDNUIsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsT0FBTyx3QkFBd0IsQ0FBQztZQUM5QixJQUFJLENBQUMscUJBQXFCLEVBQUU7WUFDNUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztTQUM5RCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLE9BQU8sd0JBQXdCLENBQUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLE9BQU8sd0JBQXdCLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsRUFBRSxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDekcsQ0FBQztDQUNGO0FBcERELDREQW9EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaXB0b3IsIGFzdCB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5zcGVuZGFibGVLZXkoKTogc3RyaW5nIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2J0Yy1zdGFraW5nLXRzL2Jsb2IvdjAuNC4wLXJjLjIvc3JjL2NvbnN0YW50cy9pbnRlcm5hbFB1YmtleS50c1xuICByZXR1cm4gJzUwOTI5Yjc0YzFhMDQ5NTRiNzhiNGI2MDM1ZTk3YTVlMDc4YTVhMGYyOGVjOTZkNTQ3YmZlZTlhY2U4MDNhYzAnO1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb25zIGZvciBjcmVhdGluZyBtaW5pc2NyaXB0IG5vZGVzXG5mdW5jdGlvbiBwayhiOiBCdWZmZXIpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICByZXR1cm4geyAndjpwayc6IGIudG9TdHJpbmcoJ2hleCcpIH07XG59XG5cbmZ1bmN0aW9uIHNvcnRlZEtleXMoa2V5czogQnVmZmVyW10pOiBCdWZmZXJbXSB7XG4gIHJldHVybiBbLi4ua2V5c10uc29ydCgoYSwgYikgPT4gYS5jb21wYXJlKGIpKTtcbn1cblxuZnVuY3Rpb24gbXVsdGlBcmdzKHRocmVzaG9sZDogbnVtYmVyLCBrZXlzOiBCdWZmZXJbXSk6IFtudW1iZXIsIC4uLnN0cmluZ1tdXSB7XG4gIHJldHVybiBbdGhyZXNob2xkLCAuLi5zb3J0ZWRLZXlzKGtleXMpLm1hcCgoaykgPT4gay50b1N0cmluZygnaGV4JykpXTtcbn1cblxuZnVuY3Rpb24gdGFwcm9vdFNjcmlwdE9ubHlGcm9tQXN0KG46IGFzdC5UYXBUcmVlTm9kZSk6IERlc2NyaXB0b3Ige1xuICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHsgdHI6IFtnZXRVbnNwZW5kYWJsZUtleSgpLCBuXSB9KSwgJ2RlZmluaXRlJyk7XG59XG5cbmV4cG9ydCBjbGFzcyBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3Rha2VyS2V5OiBCdWZmZXIsXG4gICAgcHVibGljIGZpbmFsaXR5UHJvdmlkZXJLZXlzOiBCdWZmZXJbXSxcbiAgICBwdWJsaWMgY292ZW5hbnRLZXlzOiBCdWZmZXJbXSxcbiAgICBwdWJsaWMgY292ZW5hbnRUaHJlc2hvbGQ6IG51bWJlcixcbiAgICBwdWJsaWMgc3Rha2luZ1RpbWVMb2NrOiBudW1iZXIsXG4gICAgcHVibGljIHVuYm9uZGluZ1RpbWVMb2NrOiBudW1iZXJcbiAgKSB7fVxuXG4gIGdldFRpbWVsb2NrTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7IGFuZF92OiBbcGsodGhpcy5zdGFrZXJLZXkpLCB7IG9sZGVyOiB0aGlzLnN0YWtpbmdUaW1lTG9jayB9XSB9O1xuICB9XG5cbiAgZ2V0VW5ib25kaW5nTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7IGFuZF92OiBbcGsodGhpcy5zdGFrZXJLZXkpLCB7IG11bHRpX2E6IG11bHRpQXJncyh0aGlzLmNvdmVuYW50VGhyZXNob2xkLCB0aGlzLmNvdmVuYW50S2V5cykgfV0gfTtcbiAgfVxuXG4gIGdldFNsYXNoaW5nTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICBhbmRfdjogW1xuICAgICAgICB7XG4gICAgICAgICAgYW5kX3Y6IFtcbiAgICAgICAgICAgIHBrKHRoaXMuc3Rha2VyS2V5KSxcbiAgICAgICAgICAgIHRoaXMuZmluYWxpdHlQcm92aWRlcktleXMubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgID8geyAndjpwayc6IHRoaXMuZmluYWxpdHlQcm92aWRlcktleXNbMF0udG9TdHJpbmcoJ2hleCcpIH1cbiAgICAgICAgICAgICAgOiB7ICd2Om11bHRpX2EnOiBtdWx0aUFyZ3MoMSwgdGhpcy5maW5hbGl0eVByb3ZpZGVyS2V5cykgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB7IG11bHRpX2E6IG11bHRpQXJncyh0aGlzLmNvdmVuYW50VGhyZXNob2xkLCB0aGlzLmNvdmVuYW50S2V5cykgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIGdldFVuYm9uZGluZ1RpbWVsb2NrTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7IGFuZF92OiBbcGsodGhpcy5zdGFrZXJLZXkpLCB7IG9sZGVyOiB0aGlzLnVuYm9uZGluZ1RpbWVMb2NrIH1dIH07XG4gIH1cblxuICBnZXRTdGFraW5nRGVzY3JpcHRvcigpOiBEZXNjcmlwdG9yIHtcbiAgICByZXR1cm4gdGFwcm9vdFNjcmlwdE9ubHlGcm9tQXN0KFtcbiAgICAgIHRoaXMuZ2V0U2xhc2hpbmdNaW5pc2NyaXB0KCksXG4gICAgICBbdGhpcy5nZXRVbmJvbmRpbmdNaW5pc2NyaXB0KCksIHRoaXMuZ2V0VGltZWxvY2tNaW5pc2NyaXB0KCldLFxuICAgIF0pO1xuICB9XG5cbiAgZ2V0U2xhc2hpbmdEZXNjcmlwdG9yKCk6IERlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0YXByb290U2NyaXB0T25seUZyb21Bc3QodGhpcy5nZXRVbmJvbmRpbmdUaW1lbG9ja01pbmlzY3JpcHQoKSk7XG4gIH1cblxuICBnZXRVbmJvbmRpbmdEZXNjcmlwdG9yKCk6IERlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0YXByb290U2NyaXB0T25seUZyb21Bc3QoW3RoaXMuZ2V0U2xhc2hpbmdNaW5pc2NyaXB0KCksIHRoaXMuZ2V0VW5ib25kaW5nVGltZWxvY2tNaW5pc2NyaXB0KCldKTtcbiAgfVxufVxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL2Rlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBS0gsOENBR0M7QUFORCw0REFBeUQ7QUFHekQsU0FBZ0IsaUJBQWlCO0lBQy9CLG9HQUFvRztJQUNwRyxPQUFPLGtFQUFrRSxDQUFDO0FBQzVFLENBQUM7QUFFRCxpREFBaUQ7QUFDakQsU0FBUyxFQUFFLENBQUMsQ0FBUztJQUNuQixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYztJQUNoQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLFNBQWlCLEVBQUUsSUFBYztJQUNsRCxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsQ0FBa0I7SUFDbEQsT0FBTyw0QkFBVSxDQUFDLFVBQVUsQ0FBQyxxQkFBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzdGLENBQUM7QUFFRCxNQUFhLHdCQUF3QjtJQUNuQyxZQUNTLFNBQWlCLEVBQ2pCLG9CQUE4QixF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InNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2JhYnlsb24vdHJlZS9tYWluL2RvY3NcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9iYWJ5bG9uL2Jsb2IvbWFpbi9kb2NzL3N0YWtpbmctc2NyaXB0Lm1kXG4gKi9cblxuaW1wb3J0IHsgRGVzY3JpcHRvciwgYXN0IH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5pbXBvcnQgeyBTdGFraW5nUGFyYW1zIH0gZnJvbSAnQGJpdGdvL2JhYnlsb25sYWJzLWlvLWJ0Yy1zdGFraW5nLXRzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFVuc3BlbmRhYmxlS2V5KCk6IHN0cmluZyB7XG4gIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9idGMtc3Rha2luZy10cy9ibG9iL3YwLjQuMC1yYy4yL3NyYy9jb25zdGFudHMvaW50ZXJuYWxQdWJrZXkudHNcbiAgcmV0dXJuICc1MDkyOWI3NGMxYTA0OTU0Yjc4YjRiNjAzNWU5N2E1ZTA3OGE1YTBmMjhlYzk2ZDU0N2JmZWU5YWNlODAzYWMwJztcbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9ucyBmb3IgY3JlYXRpbmcgbWluaXNjcmlwdCBub2Rlc1xuZnVuY3Rpb24gcGsoYjogQnVmZmVyKTogYXN0Lk1pbmlzY3JpcHROb2RlIHtcbiAgcmV0dXJuIHsgJ3Y6cGsnOiBiLnRvU3RyaW5nKCdoZXgnKSB9O1xufVxuXG5mdW5jdGlvbiBzb3J0ZWRLZXlzKGtleXM6IEJ1ZmZlcltdKTogQnVmZmVyW10ge1xuICByZXR1cm4gWy4uLmtleXNdLnNvcnQoKGEsIGIpID0+IGEuY29tcGFyZShiKSk7XG59XG5cbmZ1bmN0aW9uIG11bHRpQXJncyh0aHJlc2hvbGQ6IG51bWJlciwga2V5czogQnVmZmVyW10pOiBbbnVtYmVyLCAuLi5zdHJpbmdbXV0ge1xuICByZXR1cm4gW3RocmVzaG9sZCwgLi4uc29ydGVkS2V5cyhrZXlzKS5tYXAoKGspID0+IGsudG9TdHJpbmcoJ2hleCcpKV07XG59XG5cbmZ1bmN0aW9uIHRhcHJvb3RTY3JpcHRPbmx5RnJvbUFzdChuOiBhc3QuVGFwVHJlZU5vZGUpOiBEZXNjcmlwdG9yIHtcbiAgcmV0dXJuIERlc2NyaXB0b3IuZnJvbVN0cmluZyhhc3QuZm9ybWF0Tm9kZSh7IHRyOiBbZ2V0VW5zcGVuZGFibGVLZXkoKSwgbl0gfSksICdkZWZpbml0ZScpO1xufVxuXG5leHBvcnQgY2xhc3MgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHN0YWtlcktleTogQnVmZmVyLFxuICAgIHB1YmxpYyBmaW5hbGl0eVByb3ZpZGVyS2V5czogQnVmZmVyW10sXG4gICAgcHVibGljIGNvdmVuYW50S2V5czogQnVmZmVyW10sXG4gICAgcHVibGljIGNvdmVuYW50VGhyZXNob2xkOiBudW1iZXIsXG4gICAgcHVibGljIHN0YWtpbmdUaW1lTG9jazogbnVtYmVyLFxuICAgIHB1YmxpYyB1bmJvbmRpbmdUaW1lTG9jazogbnVtYmVyXG4gICkge31cblxuICBzdGF0aWMgZnJvbVBhcmFtcyhcbiAgICBwYXJhbXM6IHtcbiAgICAgIHN0YWtlcktleTogQnVmZmVyO1xuICAgICAgZmluYWxpdHlQcm92aWRlcktleXM6IEJ1ZmZlcltdO1xuICAgIH0gJiBTdGFraW5nUGFyYW1zXG4gICk6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB7XG4gICAgLypcblxuICBjb25zdCBzdGFrZXJLZXkgPSBnZXRFQ0tleSgnc3Rha2VyJyk7XG4gIGNvbnN0IGNvdmVuYW50VGhyZXNob2xkID0gc3Rha2luZ1BhcmFtcy5jb3ZlbmFudFF1b3J1bTtcbiAgY29uc3Qgc3Rha2luZ1RpbWVsb2NrID0gc3Rha2luZ1BhcmFtcy5taW5TdGFraW5nVGltZUJsb2NrcztcbiAgY29uc3QgdW5ib25kaW5nVGltZWxvY2sgPSBzdGFraW5nUGFyYW1zLnVuYm9uZGluZ1RpbWU7XG4gIGNvbnN0IHZlbmRvckJ1aWxkZXIgPSBuZXcgdmVuZG9yLlN0YWtpbmdTY3JpcHREYXRhKFxuICAgIGdldFhPbmx5UHVia2V5KHN0YWtlcktleSksXG4gICAgZmluYWxpdHlQcm92aWRlcktleXMubWFwKGdldFhPbmx5UHVia2V5KSxcbiAgICBjb3ZlbmFudEtleXMubWFwKGdldFhPbmx5UHVia2V5KSxcbiAgICBjb3ZlbmFudFRocmVzaG9sZCxcbiAgICBzdGFraW5nVGltZWxvY2ssXG4gICAgdW5ib25kaW5nVGltZWxvY2tcbiAgKTtcbiAgICAgKi9cbiAgICByZXR1cm4gbmV3IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlcihcbiAgICAgIHBhcmFtcy5zdGFrZXJLZXksXG4gICAgICBwYXJhbXMuZmluYWxpdHlQcm92aWRlcktleXMsXG4gICAgICBwYXJhbXMuY292ZW5hbnROb0Nvb3JkUGtzLm1hcCgoaykgPT4gQnVmZmVyLmZyb20oaywgJ2hleCcpKSxcbiAgICAgIHBhcmFtcy5jb3ZlbmFudFF1b3J1bSxcbiAgICAgIHBhcmFtcy5taW5TdGFraW5nVGltZUJsb2NrcyxcbiAgICAgIHBhcmFtcy51bmJvbmRpbmdUaW1lXG4gICAgKTtcbiAgfVxuXG4gIGdldFRpbWVsb2NrTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7IGFuZF92OiBbcGsodGhpcy5zdGFrZXJLZXkpLCB7IG9sZGVyOiB0aGlzLnN0YWtpbmdUaW1lTG9jayB9XSB9O1xuICB9XG5cbiAgZ2V0VW5ib25kaW5nTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7IGFuZF92OiBbcGsodGhpcy5zdGFrZXJLZXkpLCB7IG11bHRpX2E6IG11bHRpQXJncyh0aGlzLmNvdmVuYW50VGhyZXNob2xkLCB0aGlzLmNvdmVuYW50S2V5cykgfV0gfTtcbiAgfVxuXG4gIGdldFNsYXNoaW5nTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICBhbmRfdjogW1xuICAgICAgICB7XG4gICAgICAgICAgYW5kX3Y6IFtcbiAgICAgICAgICAgIHBrKHRoaXMuc3Rha2VyS2V5KSxcbiAgICAgICAgICAgIHRoaXMuZmluYWxpdHlQcm92aWRlcktleXMubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgID8geyAndjpwayc6IHRoaXMuZmluYWxpdHlQcm92aWRlcktleXNbMF0udG9TdHJpbmcoJ2hleCcpIH1cbiAgICAgICAgICAgICAgOiB7ICd2Om11bHRpX2EnOiBtdWx0aUFyZ3MoMSwgdGhpcy5maW5hbGl0eVByb3ZpZGVyS2V5cykgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB7IG11bHRpX2E6IG11bHRpQXJncyh0aGlzLmNvdmVuYW50VGhyZXNob2xkLCB0aGlzLmNvdmVuYW50S2V5cykgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIGdldFVuYm9uZGluZ1RpbWVsb2NrTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7IGFuZF92OiBbcGsodGhpcy5zdGFrZXJLZXkpLCB7IG9sZGVyOiB0aGlzLnVuYm9uZGluZ1RpbWVMb2NrIH1dIH07XG4gIH1cblxuICBnZXRTdGFraW5nRGVzY3JpcHRvcigpOiBEZXNjcmlwdG9yIHtcbiAgICByZXR1cm4gdGFwcm9vdFNjcmlwdE9ubHlGcm9tQXN0KFtcbiAgICAgIHRoaXMuZ2V0U2xhc2hpbmdNaW5pc2NyaXB0KCksXG4gICAgICBbdGhpcy5nZXRVbmJvbmRpbmdNaW5pc2NyaXB0KCksIHRoaXMuZ2V0VGltZWxvY2tNaW5pc2NyaXB0KCldLFxuICAgIF0pO1xuICB9XG5cbiAgZ2V0U2xhc2hpbmdEZXNjcmlwdG9yKCk6IERlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0YXByb290U2NyaXB0T25seUZyb21Bc3QodGhpcy5nZXRVbmJvbmRpbmdUaW1lbG9ja01pbmlzY3JpcHQoKSk7XG4gIH1cblxuICBnZXRVbmJvbmRpbmdEZXNjcmlwdG9yKCk6IERlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0YXByb290U2NyaXB0T25seUZyb21Bc3QoW3RoaXMuZ2V0U2xhc2hpbmdNaW5pc2NyaXB0KCksIHRoaXMuZ2V0VW5ib25kaW5nVGltZWxvY2tNaW5pc2NyaXB0KCldKTtcbiAgfVxufVxuIl19
@@ -1,3 +1,5 @@
1
+ export * from './delegationMessage';
1
2
  export * from './descriptor';
2
- export * from './testnet';
3
+ export * from './stakingParams';
4
+ export * from './stakingManager';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/babylon/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/babylon/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
@@ -14,6 +14,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./delegationMessage"), exports);
17
18
  __exportStar(require("./descriptor"), exports);
18
- __exportStar(require("./testnet"), exports);
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0NBQTZCO0FBQzdCLDRDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL3Rlc3RuZXQnO1xuIl19
19
+ __exportStar(require("./stakingParams"), exports);
20
+ __exportStar(require("./stakingManager"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQW9DO0FBQ3BDLCtDQUE2QjtBQUM3QixrREFBZ0M7QUFDaEMsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZWxlZ2F0aW9uTWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFraW5nUGFyYW1zJztcbmV4cG9ydCAqIGZyb20gJy4vc3Rha2luZ01hbmFnZXInO1xuIl19
@@ -0,0 +1,3 @@
1
+ import { ECPairInterface } from '@bitgo/utxo-lib';
2
+ export declare function getXOnlyPubkey(key: ECPairInterface): Buffer;
3
+ //# sourceMappingURL=keyUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyUtils.d.ts","sourceRoot":"","sources":["../../../src/babylon/keyUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAE3D"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getXOnlyPubkey = getXOnlyPubkey;
4
+ function getXOnlyPubkey(key) {
5
+ return key.publicKey.subarray(1);
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5VXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9rZXlVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLHdDQUVDO0FBRkQsU0FBZ0IsY0FBYyxDQUFDLEdBQW9CO0lBQ2pELE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVDUGFpckludGVyZmFjZSB9IGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRYT25seVB1YmtleShrZXk6IEVDUGFpckludGVyZmFjZSk6IEJ1ZmZlciB7XG4gIHJldHVybiBrZXkucHVibGljS2V5LnN1YmFycmF5KDEpO1xufVxuIl19
@@ -0,0 +1 @@
1
+ []
@@ -0,0 +1,205 @@
1
+ [
2
+ {
3
+ "params": {
4
+ "covenant_pks": [
5
+ "49766ccd9e3cd94343e2040474a77fb37cdfd30530d05f9f1e96ae1e2102c86e",
6
+ "76d1ae01f8fb6bf30108731c884cddcf57ef6eef2d9d9559e130894e0e40c62c",
7
+ "17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
8
+ "113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
9
+ "79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
10
+ "3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
11
+ "d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
12
+ "40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
13
+ "f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
14
+ ],
15
+ "covenant_quorum": 6,
16
+ "min_staking_value_sat": "50000",
17
+ "max_staking_value_sat": "5000000",
18
+ "min_staking_time_blocks": 64000,
19
+ "max_staking_time_blocks": 64000,
20
+ "slashing_pk_script": "dqkUAQEBAQEBAQEBAQEBAQEBAQEBAQGIrA==",
21
+ "min_slashing_tx_fee_sat": "1000",
22
+ "slashing_rate": "0.100000000000000000",
23
+ "unbonding_time_blocks": 1008,
24
+ "unbonding_fee_sat": "2000",
25
+ "min_commission_rate": "0.030000000000000000",
26
+ "delegation_creation_base_gas_fee": "1000",
27
+ "allow_list_expiration_height": "26120",
28
+ "btc_activation_height": 197535
29
+ }
30
+ },
31
+ {
32
+ "params": {
33
+ "covenant_pks": [
34
+ "09585ab55a971a231c945790a0a81df754e5a07263a5c20829931cc24683bbb7",
35
+ "76d1ae01f8fb6bf30108731c884cddcf57ef6eef2d9d9559e130894e0e40c62c",
36
+ "17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
37
+ "113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
38
+ "79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
39
+ "3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
40
+ "d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
41
+ "40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
42
+ "f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
43
+ ],
44
+ "covenant_quorum": 6,
45
+ "min_staking_value_sat": "50000",
46
+ "max_staking_value_sat": "5000000",
47
+ "min_staking_time_blocks": 64000,
48
+ "max_staking_time_blocks": 64000,
49
+ "slashing_pk_script": "dqkUAQEBAQEBAQEBAQEBAQEBAQEBAQGIrA==",
50
+ "min_slashing_tx_fee_sat": "1000",
51
+ "slashing_rate": "0.100000000000000000",
52
+ "unbonding_time_blocks": 1008,
53
+ "unbonding_fee_sat": "10000",
54
+ "min_commission_rate": "0.030000000000000000",
55
+ "delegation_creation_base_gas_fee": "1000",
56
+ "allow_list_expiration_height": "26120",
57
+ "btc_activation_height": 198665
58
+ }
59
+ },
60
+ {
61
+ "params": {
62
+ "covenant_pks": [
63
+ "fa9d882d45f4060bdb8042183828cd87544f1ea997380e586cab77d5fd698737",
64
+ "0aee0509b16db71c999238a4827db945526859b13c95487ab46725357c9a9f25",
65
+ "17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
66
+ "113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
67
+ "79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
68
+ "3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
69
+ "d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
70
+ "40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
71
+ "f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
72
+ ],
73
+ "covenant_quorum": 6,
74
+ "min_staking_value_sat": "50000",
75
+ "max_staking_value_sat": "5000000",
76
+ "min_staking_time_blocks": 64000,
77
+ "max_staking_time_blocks": 64000,
78
+ "slashing_pk_script": "dqkUAQEBAQEBAQEBAQEBAQEBAQEBAQGIrA==",
79
+ "min_slashing_tx_fee_sat": "1000",
80
+ "slashing_rate": "0.100000000000000000",
81
+ "unbonding_time_blocks": 1008,
82
+ "unbonding_fee_sat": "10000",
83
+ "min_commission_rate": "0.030000000000000000",
84
+ "delegation_creation_base_gas_fee": "1000",
85
+ "allow_list_expiration_height": "26120",
86
+ "btc_activation_height": 200665
87
+ }
88
+ },
89
+ {
90
+ "params": {
91
+ "covenant_pks": [
92
+ "fa9d882d45f4060bdb8042183828cd87544f1ea997380e586cab77d5fd698737",
93
+ "0aee0509b16db71c999238a4827db945526859b13c95487ab46725357c9a9f25",
94
+ "17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
95
+ "113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
96
+ "79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
97
+ "3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
98
+ "d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
99
+ "40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
100
+ "f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
101
+ ],
102
+ "covenant_quorum": 6,
103
+ "min_staking_value_sat": "50000",
104
+ "max_staking_value_sat": "50000000",
105
+ "min_staking_time_blocks": 64000,
106
+ "max_staking_time_blocks": 64000,
107
+ "slashing_pk_script": "dqkUAQEBAQEBAQEBAQEBAQEBAQEBAQGIrA==",
108
+ "min_slashing_tx_fee_sat": "1000",
109
+ "slashing_rate": "0.100000000000000000",
110
+ "unbonding_time_blocks": 1008,
111
+ "unbonding_fee_sat": "5000",
112
+ "min_commission_rate": "0.030000000000000000",
113
+ "delegation_creation_base_gas_fee": "1000",
114
+ "allow_list_expiration_height": "26120",
115
+ "btc_activation_height": 215968
116
+ }
117
+ },
118
+ {
119
+ "params": {
120
+ "covenant_pks": [
121
+ "fa9d882d45f4060bdb8042183828cd87544f1ea997380e586cab77d5fd698737",
122
+ "0aee0509b16db71c999238a4827db945526859b13c95487ab46725357c9a9f25",
123
+ "17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
124
+ "113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
125
+ "79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
126
+ "3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
127
+ "d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
128
+ "40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
129
+ "f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
130
+ ],
131
+ "covenant_quorum": 6,
132
+ "min_staking_value_sat": "50000",
133
+ "max_staking_value_sat": "50000000",
134
+ "min_staking_time_blocks": 64000,
135
+ "max_staking_time_blocks": 64000,
136
+ "slashing_pk_script": "dqkUAQEBAQEBAQEBAQEBAQEBAQEBAQGIrA==",
137
+ "min_slashing_tx_fee_sat": "1000",
138
+ "slashing_rate": "0.100000000000000000",
139
+ "unbonding_time_blocks": 1008,
140
+ "unbonding_fee_sat": "5000",
141
+ "min_commission_rate": "0.030000000000000000",
142
+ "delegation_creation_base_gas_fee": "1000",
143
+ "allow_list_expiration_height": "26120",
144
+ "btc_activation_height": 220637
145
+ }
146
+ },
147
+ {
148
+ "params": {
149
+ "covenant_pks": [
150
+ "fa9d882d45f4060bdb8042183828cd87544f1ea997380e586cab77d5fd698737",
151
+ "0aee0509b16db71c999238a4827db945526859b13c95487ab46725357c9a9f25",
152
+ "17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
153
+ "113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
154
+ "79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
155
+ "3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
156
+ "d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
157
+ "40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
158
+ "f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
159
+ ],
160
+ "covenant_quorum": 6,
161
+ "min_staking_value_sat": "50000",
162
+ "max_staking_value_sat": "35000000000",
163
+ "min_staking_time_blocks": 10000,
164
+ "max_staking_time_blocks": 64000,
165
+ "slashing_pk_script": "ABRb4SYk0IorQkCV18ByIcM0UNFL8Q==",
166
+ "min_slashing_tx_fee_sat": "5000",
167
+ "slashing_rate": "0.050000000000000000",
168
+ "unbonding_time_blocks": 1008,
169
+ "unbonding_fee_sat": "2000",
170
+ "min_commission_rate": "0.030000000000000000",
171
+ "delegation_creation_base_gas_fee": "1095000",
172
+ "allow_list_expiration_height": "26124",
173
+ "btc_activation_height": 227174
174
+ }
175
+ },
176
+ {
177
+ "params": {
178
+ "covenant_pks": [
179
+ "fa9d882d45f4060bdb8042183828cd87544f1ea997380e586cab77d5fd698737",
180
+ "0aee0509b16db71c999238a4827db945526859b13c95487ab46725357c9a9f25",
181
+ "17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4",
182
+ "113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0",
183
+ "79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0",
184
+ "3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c",
185
+ "d21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36",
186
+ "40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df",
187
+ "f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e"
188
+ ],
189
+ "covenant_quorum": 6,
190
+ "min_staking_value_sat": "50000",
191
+ "max_staking_value_sat": "35000000000",
192
+ "min_staking_time_blocks": 10000,
193
+ "max_staking_time_blocks": 64000,
194
+ "slashing_pk_script": "ABRb4SYk0IorQkCV18ByIcM0UNFL8Q==",
195
+ "min_slashing_tx_fee_sat": "6000",
196
+ "slashing_rate": "0.050000000000000000",
197
+ "unbonding_time_blocks": 1008,
198
+ "unbonding_fee_sat": "2000",
199
+ "min_commission_rate": "0.030000000000000000",
200
+ "delegation_creation_base_gas_fee": "1095000",
201
+ "allow_list_expiration_height": "26124",
202
+ "btc_activation_height": 235952
203
+ }
204
+ }
205
+ ]
@@ -0,0 +1,6 @@
1
+ import * as bitcoinjslib from 'bitcoinjs-lib';
2
+ import * as utxolib from '@bitgo/utxo-lib';
3
+ import * as vendor from '@bitgo/babylonlabs-io-btc-staking-ts';
4
+ export declare const mockBabylonProvider: vendor.BabylonProvider;
5
+ export declare function createStakingManager(network: bitcoinjslib.Network | utxolib.Network, btcProvider: vendor.BtcProvider, stakingParams?: vendor.VersionedStakingParams[], babylonProvider?: vendor.BabylonProvider): vendor.BabylonBtcStakingManager;
6
+ //# sourceMappingURL=stakingManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingManager.d.ts","sourceRoot":"","sources":["../../../src/babylon/stakingManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,sCAAsC,CAAC;AAI/D,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,eAIxC,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAC/C,WAAW,EAAE,MAAM,CAAC,WAAW,EAC/B,aAAa,CAAC,EAAE,MAAM,CAAC,sBAAsB,EAAE,EAC/C,eAAe,yBAAsB,GACpC,MAAM,CAAC,wBAAwB,CAsBjC"}
@@ -0,0 +1,65 @@
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 stakingParams_1 = require("./stakingParams");
42
+ exports.mockBabylonProvider = {
43
+ signTransaction() {
44
+ throw new Error('Function not implemented.');
45
+ },
46
+ };
47
+ function createStakingManager(network, btcProvider, stakingParams, babylonProvider = exports.mockBabylonProvider) {
48
+ if (utxolib.isValidNetwork(network)) {
49
+ switch (network) {
50
+ case utxolib.networks.bitcoin:
51
+ network = bitcoinjslib.networks.bitcoin;
52
+ break;
53
+ case utxolib.networks.testnet:
54
+ case utxolib.networks.bitcoinTestnet4:
55
+ throw new Error('Unsupported bitcoin testnet network - only signet is supported');
56
+ case utxolib.networks.bitcoinPublicSignet:
57
+ network = bitcoinjslib.networks.testnet;
58
+ break;
59
+ default:
60
+ throw new Error('Unsupported network');
61
+ }
62
+ }
63
+ return new vendor.BabylonBtcStakingManager(network, stakingParams ?? (0, stakingParams_1.getStakingParams)(network), btcProvider, babylonProvider);
64
+ }
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ01hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9zdGFraW5nTWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFZQSxvREEyQkM7QUF2Q0QsNERBQThDO0FBQzlDLHlEQUEyQztBQUMzQyw2RUFBK0Q7QUFFL0QsbURBQW1EO0FBRXRDLFFBQUEsbUJBQW1CLEdBQTJCO0lBQ3pELGVBQWU7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNGLENBQUM7QUFFRixTQUFnQixvQkFBb0IsQ0FDbEMsT0FBK0MsRUFDL0MsV0FBK0IsRUFDL0IsYUFBK0MsRUFDL0MsZUFBZSxHQUFHLDJCQUFtQjtJQUVyQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNwQyxRQUFRLE9BQU8sRUFBRSxDQUFDO1lBQ2hCLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPO2dCQUMzQixPQUFPLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7Z0JBQ3hDLE1BQU07WUFDUixLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1lBQzlCLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlO2dCQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLGdFQUFnRSxDQUFDLENBQUM7WUFDcEYsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLG1CQUFtQjtnQkFDdkMsT0FBTyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO2dCQUN4QyxNQUFNO1lBQ1I7Z0JBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxJQUFJLE1BQU0sQ0FBQyx3QkFBd0IsQ0FDeEMsT0FBTyxFQUNQLGFBQWEsSUFBSSxJQUFBLGdDQUFnQixFQUFDLE9BQU8sQ0FBQyxFQUMxQyxXQUFXLEVBQ1gsZUFBZSxDQUNoQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJpdGNvaW5qc2xpYiBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCAqIGFzIHZlbmRvciBmcm9tICdAYml0Z28vYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuXG5pbXBvcnQgeyBnZXRTdGFraW5nUGFyYW1zIH0gZnJvbSAnLi9zdGFraW5nUGFyYW1zJztcblxuZXhwb3J0IGNvbnN0IG1vY2tCYWJ5bG9uUHJvdmlkZXI6IHZlbmRvci5CYWJ5bG9uUHJvdmlkZXIgPSB7XG4gIHNpZ25UcmFuc2FjdGlvbigpOiBQcm9taXNlPFVpbnQ4QXJyYXk+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0Z1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfSxcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTdGFraW5nTWFuYWdlcihcbiAgbmV0d29yazogYml0Y29pbmpzbGliLk5ldHdvcmsgfCB1dHhvbGliLk5ldHdvcmssXG4gIGJ0Y1Byb3ZpZGVyOiB2ZW5kb3IuQnRjUHJvdmlkZXIsXG4gIHN0YWtpbmdQYXJhbXM/OiB2ZW5kb3IuVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdLFxuICBiYWJ5bG9uUHJvdmlkZXIgPSBtb2NrQmFieWxvblByb3ZpZGVyXG4pOiB2ZW5kb3IuQmFieWxvbkJ0Y1N0YWtpbmdNYW5hZ2VyIHtcbiAgaWYgKHV0eG9saWIuaXNWYWxpZE5ldHdvcmsobmV0d29yaykpIHtcbiAgICBzd2l0Y2ggKG5ldHdvcmspIHtcbiAgICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luOlxuICAgICAgICBuZXR3b3JrID0gYml0Y29pbmpzbGliLm5ldHdvcmtzLmJpdGNvaW47XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLnRlc3RuZXQ6XG4gICAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuYml0Y29pblRlc3RuZXQ0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIGJpdGNvaW4gdGVzdG5ldCBuZXR3b3JrIC0gb25seSBzaWduZXQgaXMgc3VwcG9ydGVkJyk7XG4gICAgICBjYXNlIHV0eG9saWIubmV0d29ya3MuYml0Y29pblB1YmxpY1NpZ25ldDpcbiAgICAgICAgbmV0d29yayA9IGJpdGNvaW5qc2xpYi5uZXR3b3Jrcy50ZXN0bmV0O1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgbmV0d29yaycpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gbmV3IHZlbmRvci5CYWJ5bG9uQnRjU3Rha2luZ01hbmFnZXIoXG4gICAgbmV0d29yayxcbiAgICBzdGFraW5nUGFyYW1zID8/IGdldFN0YWtpbmdQYXJhbXMobmV0d29yayksXG4gICAgYnRjUHJvdmlkZXIsXG4gICAgYmFieWxvblByb3ZpZGVyXG4gICk7XG59XG4iXX0=
@@ -0,0 +1,38 @@
1
+ import * as t from 'io-ts';
2
+ import * as tt from 'io-ts-types';
3
+ import * as bitcoinjslib from 'bitcoinjs-lib';
4
+ import * as utxolib from '@bitgo/utxo-lib';
5
+ import { StakerInfo, StakingInputs, VersionedStakingParams } from '@bitgo/babylonlabs-io-btc-staking-ts';
6
+ import { BabylonDescriptorBuilder } from './descriptor';
7
+ declare const BabylonParamsJSON: t.TypeC<{
8
+ covenant_pks: t.ArrayC<t.StringC>;
9
+ covenant_quorum: t.NumberC;
10
+ min_staking_value_sat: tt.NumberFromStringC;
11
+ max_staking_value_sat: tt.NumberFromStringC;
12
+ min_staking_time_blocks: t.NumberC;
13
+ max_staking_time_blocks: t.NumberC;
14
+ slashing_pk_script: t.StringC;
15
+ min_slashing_tx_fee_sat: tt.NumberFromStringC;
16
+ slashing_rate: t.StringC;
17
+ unbonding_time_blocks: t.NumberC;
18
+ unbonding_fee_sat: tt.NumberFromStringC;
19
+ min_commission_rate: tt.NumberFromStringC;
20
+ delegation_creation_base_gas_fee: tt.NumberFromStringC;
21
+ allow_list_expiration_height: tt.NumberFromStringC;
22
+ btc_activation_height: t.NumberC;
23
+ }>;
24
+ type BabylonParamsJSON = t.TypeOf<typeof BabylonParamsJSON>;
25
+ export declare function toVersionedParams(ps: BabylonParamsJSON[]): VersionedStakingParams[];
26
+ type BabylonNetwork = 'mainnet' | 'testnet';
27
+ type BabylonNetworkLike = bitcoinjslib.Network | utxolib.Network | BabylonNetwork;
28
+ export declare const mainnetStakingParams: readonly VersionedStakingParams[];
29
+ export declare const testnetStakingParams: readonly VersionedStakingParams[];
30
+ export declare function getStakingParams(network: BabylonNetworkLike): VersionedStakingParams[];
31
+ export declare const testnetFinalityProvider0: Buffer<ArrayBuffer>;
32
+ export declare function getDescriptorBuilderForParams(userKey: utxolib.BIP32Interface | utxolib.ECPairInterface | Buffer, finalityProviderKeys: Buffer[], params: Pick<VersionedStakingParams, 'covenantNoCoordPks' | 'covenantQuorum' | 'minStakingTimeBlocks' | 'unbondingTime'>): BabylonDescriptorBuilder;
33
+ export declare function getDescriptorProviderForStakingParams(stakerBtcInfo: StakerInfo, stakingInput: StakingInputs, stakingParams: VersionedStakingParams): BabylonDescriptorBuilder;
34
+ export declare function getTestnetDescriptorBuilder(userKey: utxolib.BIP32Interface | utxolib.ECPairInterface | Buffer, { finalityProviderKeys, }?: {
35
+ finalityProviderKeys?: Buffer[];
36
+ }): BabylonDescriptorBuilder;
37
+ export {};
38
+ //# sourceMappingURL=stakingParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stakingParams.d.ts","sourceRoot":"","sources":["../../../src/babylon/stakingParams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,OAAO,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAGlC,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAEL,UAAU,EACV,aAAa,EACb,sBAAsB,EACvB,MAAM,sCAAsC,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAIxD,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;EAgBrB,CAAC;AAEH,KAAK,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,iBAAiB,EAAE,GAAG,sBAAsB,EAAE,CAkBnF;AAeD,KAAK,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAE5C,KAAK,kBAAkB,GAAG,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,cAAc,CAAC;AAmBlF,eAAO,MAAM,oBAAoB,EAAE,SAAS,sBAAsB,EAEjE,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,SAAS,sBAAsB,EAEjE,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG,sBAAsB,EAAE,CAStF;AAGD,eAAO,MAAM,wBAAwB,qBAGpC,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,MAAM,EAClE,oBAAoB,EAAE,MAAM,EAAE,EAC9B,MAAM,EAAE,IAAI,CACV,sBAAsB,EACtB,oBAAoB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,eAAe,CACnF,GACA,wBAAwB,CAY1B;AAED,wBAAgB,qCAAqC,CACnD,aAAa,EAAE,UAAU,EACzB,YAAY,EAAE,aAAa,EAC3B,aAAa,EAAE,sBAAsB,GACpC,wBAAwB,CAI1B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,MAAM,EAClE,EACE,oBAAiD,GAClD,GAAE;IACD,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,GACL,wBAAwB,CAM1B"}
@@ -0,0 +1,145 @@
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 = 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 bitcoinjslib = __importStar(require("bitcoinjs-lib"));
50
+ const utxolib = __importStar(require("@bitgo/utxo-lib"));
51
+ const babylonlabs_io_btc_staking_ts_1 = require("@bitgo/babylonlabs-io-btc-staking-ts");
52
+ const descriptor_1 = require("./descriptor");
53
+ const params_mainnet_json_1 = __importDefault(require("./params.mainnet.json"));
54
+ const params_testnet_json_1 = __importDefault(require("./params.testnet.json"));
55
+ const BabylonParamsJSON = t.type({
56
+ covenant_pks: t.array(t.string),
57
+ covenant_quorum: t.number,
58
+ min_staking_value_sat: tt.NumberFromString,
59
+ max_staking_value_sat: tt.NumberFromString,
60
+ min_staking_time_blocks: t.number,
61
+ max_staking_time_blocks: t.number,
62
+ slashing_pk_script: t.string,
63
+ min_slashing_tx_fee_sat: tt.NumberFromString,
64
+ slashing_rate: t.string,
65
+ unbonding_time_blocks: t.number,
66
+ unbonding_fee_sat: tt.NumberFromString,
67
+ min_commission_rate: tt.NumberFromString,
68
+ delegation_creation_base_gas_fee: tt.NumberFromString,
69
+ allow_list_expiration_height: tt.NumberFromString,
70
+ btc_activation_height: t.number,
71
+ });
72
+ function toVersionedParams(ps) {
73
+ return ps.map((p, version) => ({
74
+ version,
75
+ btcActivationHeight: p.btc_activation_height,
76
+ covenantNoCoordPks: p.covenant_pks,
77
+ covenantQuorum: p.covenant_quorum,
78
+ unbondingTime: p.unbonding_time_blocks,
79
+ unbondingFeeSat: p.unbonding_fee_sat,
80
+ maxStakingAmountSat: p.max_staking_value_sat,
81
+ minStakingAmountSat: p.min_staking_value_sat,
82
+ maxStakingTimeBlocks: p.max_staking_time_blocks,
83
+ minStakingTimeBlocks: p.min_staking_time_blocks,
84
+ slashing: {
85
+ slashingPkScriptHex: Buffer.from(p.slashing_pk_script, 'base64').toString('hex'),
86
+ slashingRate: parseFloat(p.slashing_rate),
87
+ minSlashingTxFeeSat: p.min_slashing_tx_fee_sat,
88
+ },
89
+ }));
90
+ }
91
+ function toVersionedParamsFromJson(jsonParams) {
92
+ return toVersionedParams(jsonParams.map((p) => {
93
+ const result = t.type({ params: BabylonParamsJSON }).decode(p);
94
+ if ((0, Either_1.isLeft)(result)) {
95
+ const msg = PathReporter_1.PathReporter.report(result).join('\n');
96
+ throw new Error(`Invalid testnet params: ${msg}`);
97
+ }
98
+ return result.right.params;
99
+ }));
100
+ }
101
+ function toBabylonNetwork(n) {
102
+ switch (n) {
103
+ case bitcoinjslib.networks.bitcoin:
104
+ case utxolib.networks.bitcoin:
105
+ return 'mainnet';
106
+ case bitcoinjslib.networks.testnet:
107
+ case utxolib.networks.testnet:
108
+ case utxolib.networks.bitcoinPublicSignet:
109
+ return 'testnet';
110
+ case 'mainnet':
111
+ case 'testnet':
112
+ return n;
113
+ default:
114
+ throw new Error('Unsupported network');
115
+ }
116
+ }
117
+ exports.mainnetStakingParams = Object.freeze(toVersionedParamsFromJson(params_mainnet_json_1.default));
118
+ exports.testnetStakingParams = Object.freeze(toVersionedParamsFromJson(params_testnet_json_1.default));
119
+ function getStakingParams(network) {
120
+ switch (toBabylonNetwork(network)) {
121
+ case 'mainnet':
122
+ return [...exports.mainnetStakingParams];
123
+ case 'testnet':
124
+ return [...exports.testnetStakingParams];
125
+ default:
126
+ throw new Error('Unsupported network');
127
+ }
128
+ }
129
+ // Source: https://btcstaking.testnet.babylonlabs.io/ "Babylon Foundation 0"
130
+ exports.testnetFinalityProvider0 = Buffer.from('d23c2c25e1fcf8fd1c21b9a402c19e2e309e531e45e92fb1e9805b6056b0cc76', 'hex');
131
+ function getDescriptorBuilderForParams(userKey, finalityProviderKeys, params) {
132
+ if (!Buffer.isBuffer(userKey)) {
133
+ userKey = userKey.publicKey;
134
+ }
135
+ return new descriptor_1.BabylonDescriptorBuilder(userKey, finalityProviderKeys, params.covenantNoCoordPks.map((pk) => Buffer.from(pk, 'hex')), params.covenantQuorum, params.minStakingTimeBlocks, params.unbondingTime);
136
+ }
137
+ function getDescriptorProviderForStakingParams(stakerBtcInfo, stakingInput, stakingParams) {
138
+ const userKey = Buffer.from(stakerBtcInfo.publicKeyNoCoordHex, 'hex');
139
+ const finalityProviderKey = Buffer.from(stakingInput.finalityProviderPkNoCoordHex, 'hex');
140
+ return getDescriptorBuilderForParams(userKey, [finalityProviderKey], stakingParams);
141
+ }
142
+ function getTestnetDescriptorBuilder(userKey, { finalityProviderKeys = [exports.testnetFinalityProvider0], } = {}) {
143
+ return getDescriptorBuilderForParams(userKey, finalityProviderKeys, (0, babylonlabs_io_btc_staking_ts_1.getBabylonParamByVersion)(5, getStakingParams('testnet')));
144
+ }
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1BhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL3N0YWtpbmdQYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUNBLDhDQWtCQztBQTRDRCw0Q0FTQztBQVFELHNFQW1CQztBQUVELHNGQVFDO0FBRUQsa0VBYUM7QUFoS0QseUNBQTJCO0FBQzNCLGdEQUFrQztBQUNsQyx5Q0FBc0M7QUFDdEMseURBQXNEO0FBQ3RELDREQUE4QztBQUM5Qyx5REFBMkM7QUFDM0Msd0ZBSzhDO0FBRTlDLDZDQUF3RDtBQUN4RCxnRkFBc0Q7QUFDdEQsZ0ZBQXNEO0FBRXRELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvQixZQUFZLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUN6QixxQkFBcUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQzFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0I7SUFDMUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDNUIsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUM1QyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDdkIscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDL0IsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUN0QyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQ3hDLGdDQUFnQyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0I7SUFDckQsNEJBQTRCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUNqRCxxQkFBcUIsRUFBRSxDQUFDLENBQUMsTUFBTTtDQUNoQyxDQUFDLENBQUM7QUFJSCxTQUFnQixpQkFBaUIsQ0FBQyxFQUF1QjtJQUN2RCxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzdCLE9BQU87UUFDUCxtQkFBbUIsRUFBRSxDQUFDLENBQUMscUJBQXFCO1FBQzVDLGtCQUFrQixFQUFFLENBQUMsQ0FBQyxZQUFZO1FBQ2xDLGNBQWMsRUFBRSxDQUFDLENBQUMsZUFBZTtRQUNqQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLHFCQUFxQjtRQUN0QyxlQUFlLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtRQUNwQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMscUJBQXFCO1FBQzVDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxxQkFBcUI7UUFDNUMsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QjtRQUMvQyxvQkFBb0IsRUFBRSxDQUFDLENBQUMsdUJBQXVCO1FBQy9DLFFBQVEsRUFBRTtZQUNSLG1CQUFtQixFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFDaEYsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDO1lBQ3pDLG1CQUFtQixFQUFFLENBQUMsQ0FBQyx1QkFBdUI7U0FDL0M7S0FDRixDQUFDLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLFVBQXFCO0lBQ3RELE9BQU8saUJBQWlCLENBQ3RCLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQXFCLEVBQUU7UUFDdEMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksSUFBQSxlQUFNLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNuQixNQUFNLEdBQUcsR0FBRywyQkFBWSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FBQywyQkFBMkIsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUM3QixDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQztBQU1ELFNBQVMsZ0JBQWdCLENBQUMsQ0FBcUI7SUFDN0MsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNWLEtBQUssWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDbkMsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU87WUFDM0IsT0FBTyxTQUFTLENBQUM7UUFDbkIsS0FBSyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNuQyxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzlCLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUI7WUFDdkMsT0FBTyxTQUFTLENBQUM7UUFDbkIsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFNBQVM7WUFDWixPQUFPLENBQUMsQ0FBQztRQUNYO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7QUFDSCxDQUFDO0FBRVksUUFBQSxvQkFBb0IsR0FBc0MsTUFBTSxDQUFDLE1BQU0sQ0FDbEYseUJBQXlCLENBQUMsNkJBQWlCLENBQUMsQ0FDN0MsQ0FBQztBQUVXLFFBQUEsb0JBQW9CLEdBQXNDLE1BQU0sQ0FBQyxNQUFNLENBQ2xGLHlCQUF5QixDQUFDLDZCQUFpQixDQUFDLENBQzdDLENBQUM7QUFFRixTQUFnQixnQkFBZ0IsQ0FBQyxPQUEyQjtJQUMxRCxRQUFRLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbEMsS0FBSyxTQUFTO1lBQ1osT0FBTyxDQUFDLEdBQUcsNEJBQW9CLENBQUMsQ0FBQztRQUNuQyxLQUFLLFNBQVM7WUFDWixPQUFPLENBQUMsR0FBRyw0QkFBb0IsQ0FBQyxDQUFDO1FBQ25DO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7QUFDSCxDQUFDO0FBRUQsNEVBQTRFO0FBQy9ELFFBQUEsd0JBQXdCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDakQsa0VBQWtFLEVBQ2xFLEtBQUssQ0FDTixDQUFDO0FBRUYsU0FBZ0IsNkJBQTZCLENBQzNDLE9BQWtFLEVBQ2xFLG9CQUE4QixFQUM5QixNQUdDO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUM5QixPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUM5QixDQUFDO0lBQ0QsT0FBTyxJQUFJLHFDQUF3QixDQUNqQyxPQUFPLEVBQ1Asb0JBQW9CLEVBQ3BCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQzdELE1BQU0sQ0FBQyxjQUFjLEVBQ3JCLE1BQU0sQ0FBQyxvQkFBb0IsRUFDM0IsTUFBTSxDQUFDLGFBQWEsQ0FDckIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixxQ0FBcUMsQ0FDbkQsYUFBeUIsRUFDekIsWUFBMkIsRUFDM0IsYUFBcUM7SUFFckMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEUsTUFBTSxtQkFBbUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMxRixPQUFPLDZCQUE2QixDQUFDLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVELFNBQWdCLDJCQUEyQixDQUN6QyxPQUFrRSxFQUNsRSxFQUNFLG9CQUFvQixHQUFHLENBQUMsZ0NBQXdCLENBQUMsTUFHL0MsRUFBRTtJQUVOLE9BQU8sNkJBQTZCLENBQ2xDLE9BQU8sRUFDUCxvQkFBb0IsRUFDcEIsSUFBQSx3REFBd0IsRUFBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDekQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCAqIGFzIHR0IGZyb20gJ2lvLXRzLXR5cGVzJztcbmltcG9ydCB7IGlzTGVmdCB9IGZyb20gJ2ZwLXRzL0VpdGhlcic7XG5pbXBvcnQgeyBQYXRoUmVwb3J0ZXIgfSBmcm9tICdpby10cy9saWIvUGF0aFJlcG9ydGVyJztcbmltcG9ydCAqIGFzIGJpdGNvaW5qc2xpYiBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvL3V0eG8tbGliJztcbmltcG9ydCB7XG4gIGdldEJhYnlsb25QYXJhbUJ5VmVyc2lvbixcbiAgU3Rha2VySW5mbyxcbiAgU3Rha2luZ0lucHV0cyxcbiAgVmVyc2lvbmVkU3Rha2luZ1BhcmFtcyxcbn0gZnJvbSAnQGJpdGdvL2JhYnlsb25sYWJzLWlvLWJ0Yy1zdGFraW5nLXRzJztcblxuaW1wb3J0IHsgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIH0gZnJvbSAnLi9kZXNjcmlwdG9yJztcbmltcG9ydCBqc29uTWFpbm5ldFBhcmFtcyBmcm9tICcuL3BhcmFtcy5tYWlubmV0Lmpzb24nO1xuaW1wb3J0IGpzb25UZXN0bmV0UGFyYW1zIGZyb20gJy4vcGFyYW1zLnRlc3RuZXQuanNvbic7XG5cbmNvbnN0IEJhYnlsb25QYXJhbXNKU09OID0gdC50eXBlKHtcbiAgY292ZW5hbnRfcGtzOiB0LmFycmF5KHQuc3RyaW5nKSxcbiAgY292ZW5hbnRfcXVvcnVtOiB0Lm51bWJlcixcbiAgbWluX3N0YWtpbmdfdmFsdWVfc2F0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBtYXhfc3Rha2luZ192YWx1ZV9zYXQ6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIG1pbl9zdGFraW5nX3RpbWVfYmxvY2tzOiB0Lm51bWJlcixcbiAgbWF4X3N0YWtpbmdfdGltZV9ibG9ja3M6IHQubnVtYmVyLFxuICBzbGFzaGluZ19wa19zY3JpcHQ6IHQuc3RyaW5nLFxuICBtaW5fc2xhc2hpbmdfdHhfZmVlX3NhdDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgc2xhc2hpbmdfcmF0ZTogdC5zdHJpbmcsXG4gIHVuYm9uZGluZ190aW1lX2Jsb2NrczogdC5udW1iZXIsXG4gIHVuYm9uZGluZ19mZWVfc2F0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBtaW5fY29tbWlzc2lvbl9yYXRlOiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBkZWxlZ2F0aW9uX2NyZWF0aW9uX2Jhc2VfZ2FzX2ZlZTogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgYWxsb3dfbGlzdF9leHBpcmF0aW9uX2hlaWdodDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgYnRjX2FjdGl2YXRpb25faGVpZ2h0OiB0Lm51bWJlcixcbn0pO1xuXG50eXBlIEJhYnlsb25QYXJhbXNKU09OID0gdC5UeXBlT2Y8dHlwZW9mIEJhYnlsb25QYXJhbXNKU09OPjtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvVmVyc2lvbmVkUGFyYW1zKHBzOiBCYWJ5bG9uUGFyYW1zSlNPTltdKTogVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdIHtcbiAgcmV0dXJuIHBzLm1hcCgocCwgdmVyc2lvbikgPT4gKHtcbiAgICB2ZXJzaW9uLFxuICAgIGJ0Y0FjdGl2YXRpb25IZWlnaHQ6IHAuYnRjX2FjdGl2YXRpb25faGVpZ2h0LFxuICAgIGNvdmVuYW50Tm9Db29yZFBrczogcC5jb3ZlbmFudF9wa3MsXG4gICAgY292ZW5hbnRRdW9ydW06IHAuY292ZW5hbnRfcXVvcnVtLFxuICAgIHVuYm9uZGluZ1RpbWU6IHAudW5ib25kaW5nX3RpbWVfYmxvY2tzLFxuICAgIHVuYm9uZGluZ0ZlZVNhdDogcC51bmJvbmRpbmdfZmVlX3NhdCxcbiAgICBtYXhTdGFraW5nQW1vdW50U2F0OiBwLm1heF9zdGFraW5nX3ZhbHVlX3NhdCxcbiAgICBtaW5TdGFraW5nQW1vdW50U2F0OiBwLm1pbl9zdGFraW5nX3ZhbHVlX3NhdCxcbiAgICBtYXhTdGFraW5nVGltZUJsb2NrczogcC5tYXhfc3Rha2luZ190aW1lX2Jsb2NrcyxcbiAgICBtaW5TdGFraW5nVGltZUJsb2NrczogcC5taW5fc3Rha2luZ190aW1lX2Jsb2NrcyxcbiAgICBzbGFzaGluZzoge1xuICAgICAgc2xhc2hpbmdQa1NjcmlwdEhleDogQnVmZmVyLmZyb20ocC5zbGFzaGluZ19wa19zY3JpcHQsICdiYXNlNjQnKS50b1N0cmluZygnaGV4JyksXG4gICAgICBzbGFzaGluZ1JhdGU6IHBhcnNlRmxvYXQocC5zbGFzaGluZ19yYXRlKSxcbiAgICAgIG1pblNsYXNoaW5nVHhGZWVTYXQ6IHAubWluX3NsYXNoaW5nX3R4X2ZlZV9zYXQsXG4gICAgfSxcbiAgfSkpO1xufVxuXG5mdW5jdGlvbiB0b1ZlcnNpb25lZFBhcmFtc0Zyb21Kc29uKGpzb25QYXJhbXM6IHVua25vd25bXSk6IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSB7XG4gIHJldHVybiB0b1ZlcnNpb25lZFBhcmFtcyhcbiAgICBqc29uUGFyYW1zLm1hcCgocCk6IEJhYnlsb25QYXJhbXNKU09OID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IHQudHlwZSh7IHBhcmFtczogQmFieWxvblBhcmFtc0pTT04gfSkuZGVjb2RlKHApO1xuICAgICAgaWYgKGlzTGVmdChyZXN1bHQpKSB7XG4gICAgICAgIGNvbnN0IG1zZyA9IFBhdGhSZXBvcnRlci5yZXBvcnQocmVzdWx0KS5qb2luKCdcXG4nKTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHRlc3RuZXQgcGFyYW1zOiAke21zZ31gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQucmlnaHQucGFyYW1zO1xuICAgIH0pXG4gICk7XG59XG5cbnR5cGUgQmFieWxvbk5ldHdvcmsgPSAnbWFpbm5ldCcgfCAndGVzdG5ldCc7XG5cbnR5cGUgQmFieWxvbk5ldHdvcmtMaWtlID0gYml0Y29pbmpzbGliLk5ldHdvcmsgfCB1dHhvbGliLk5ldHdvcmsgfCBCYWJ5bG9uTmV0d29yaztcblxuZnVuY3Rpb24gdG9CYWJ5bG9uTmV0d29yayhuOiBCYWJ5bG9uTmV0d29ya0xpa2UpOiBCYWJ5bG9uTmV0d29yayB7XG4gIHN3aXRjaCAobikge1xuICAgIGNhc2UgYml0Y29pbmpzbGliLm5ldHdvcmtzLmJpdGNvaW46XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW46XG4gICAgICByZXR1cm4gJ21haW5uZXQnO1xuICAgIGNhc2UgYml0Y29pbmpzbGliLm5ldHdvcmtzLnRlc3RuZXQ6XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLnRlc3RuZXQ6XG4gICAgY2FzZSB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW5QdWJsaWNTaWduZXQ6XG4gICAgICByZXR1cm4gJ3Rlc3RuZXQnO1xuICAgIGNhc2UgJ21haW5uZXQnOlxuICAgIGNhc2UgJ3Rlc3RuZXQnOlxuICAgICAgcmV0dXJuIG47XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgbmV0d29yaycpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBtYWlubmV0U3Rha2luZ1BhcmFtczogcmVhZG9ubHkgVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdID0gT2JqZWN0LmZyZWV6ZShcbiAgdG9WZXJzaW9uZWRQYXJhbXNGcm9tSnNvbihqc29uTWFpbm5ldFBhcmFtcylcbik7XG5cbmV4cG9ydCBjb25zdCB0ZXN0bmV0U3Rha2luZ1BhcmFtczogcmVhZG9ubHkgVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdID0gT2JqZWN0LmZyZWV6ZShcbiAgdG9WZXJzaW9uZWRQYXJhbXNGcm9tSnNvbihqc29uVGVzdG5ldFBhcmFtcylcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFraW5nUGFyYW1zKG5ldHdvcms6IEJhYnlsb25OZXR3b3JrTGlrZSk6IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSB7XG4gIHN3aXRjaCAodG9CYWJ5bG9uTmV0d29yayhuZXR3b3JrKSkge1xuICAgIGNhc2UgJ21haW5uZXQnOlxuICAgICAgcmV0dXJuIFsuLi5tYWlubmV0U3Rha2luZ1BhcmFtc107XG4gICAgY2FzZSAndGVzdG5ldCc6XG4gICAgICByZXR1cm4gWy4uLnRlc3RuZXRTdGFraW5nUGFyYW1zXTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBuZXR3b3JrJyk7XG4gIH1cbn1cblxuLy8gU291cmNlOiBodHRwczovL2J0Y3N0YWtpbmcudGVzdG5ldC5iYWJ5bG9ubGFicy5pby8gXCJCYWJ5bG9uIEZvdW5kYXRpb24gMFwiXG5leHBvcnQgY29uc3QgdGVzdG5ldEZpbmFsaXR5UHJvdmlkZXIwID0gQnVmZmVyLmZyb20oXG4gICdkMjNjMmMyNWUxZmNmOGZkMWMyMWI5YTQwMmMxOWUyZTMwOWU1MzFlNDVlOTJmYjFlOTgwNWI2MDU2YjBjYzc2JyxcbiAgJ2hleCdcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yQnVpbGRlckZvclBhcmFtcyhcbiAgdXNlcktleTogdXR4b2xpYi5CSVAzMkludGVyZmFjZSB8IHV0eG9saWIuRUNQYWlySW50ZXJmYWNlIHwgQnVmZmVyLFxuICBmaW5hbGl0eVByb3ZpZGVyS2V5czogQnVmZmVyW10sXG4gIHBhcmFtczogUGljazxcbiAgICBWZXJzaW9uZWRTdGFraW5nUGFyYW1zLFxuICAgICdjb3ZlbmFudE5vQ29vcmRQa3MnIHwgJ2NvdmVuYW50UXVvcnVtJyB8ICdtaW5TdGFraW5nVGltZUJsb2NrcycgfCAndW5ib25kaW5nVGltZSdcbiAgPlxuKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodXNlcktleSkpIHtcbiAgICB1c2VyS2V5ID0gdXNlcktleS5wdWJsaWNLZXk7XG4gIH1cbiAgcmV0dXJuIG5ldyBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIoXG4gICAgdXNlcktleSxcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cyxcbiAgICBwYXJhbXMuY292ZW5hbnROb0Nvb3JkUGtzLm1hcCgocGspID0+IEJ1ZmZlci5mcm9tKHBrLCAnaGV4JykpLFxuICAgIHBhcmFtcy5jb3ZlbmFudFF1b3J1bSxcbiAgICBwYXJhbXMubWluU3Rha2luZ1RpbWVCbG9ja3MsXG4gICAgcGFyYW1zLnVuYm9uZGluZ1RpbWVcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JQcm92aWRlckZvclN0YWtpbmdQYXJhbXMoXG4gIHN0YWtlckJ0Y0luZm86IFN0YWtlckluZm8sXG4gIHN0YWtpbmdJbnB1dDogU3Rha2luZ0lucHV0cyxcbiAgc3Rha2luZ1BhcmFtczogVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1xuKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgY29uc3QgdXNlcktleSA9IEJ1ZmZlci5mcm9tKHN0YWtlckJ0Y0luZm8ucHVibGljS2V5Tm9Db29yZEhleCwgJ2hleCcpO1xuICBjb25zdCBmaW5hbGl0eVByb3ZpZGVyS2V5ID0gQnVmZmVyLmZyb20oc3Rha2luZ0lucHV0LmZpbmFsaXR5UHJvdmlkZXJQa05vQ29vcmRIZXgsICdoZXgnKTtcbiAgcmV0dXJuIGdldERlc2NyaXB0b3JCdWlsZGVyRm9yUGFyYW1zKHVzZXJLZXksIFtmaW5hbGl0eVByb3ZpZGVyS2V5XSwgc3Rha2luZ1BhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXN0bmV0RGVzY3JpcHRvckJ1aWxkZXIoXG4gIHVzZXJLZXk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2UgfCB1dHhvbGliLkVDUGFpckludGVyZmFjZSB8IEJ1ZmZlcixcbiAge1xuICAgIGZpbmFsaXR5UHJvdmlkZXJLZXlzID0gW3Rlc3RuZXRGaW5hbGl0eVByb3ZpZGVyMF0sXG4gIH06IHtcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cz86IEJ1ZmZlcltdO1xuICB9ID0ge31cbik6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB7XG4gIHJldHVybiBnZXREZXNjcmlwdG9yQnVpbGRlckZvclBhcmFtcyhcbiAgICB1c2VyS2V5LFxuICAgIGZpbmFsaXR5UHJvdmlkZXJLZXlzLFxuICAgIGdldEJhYnlsb25QYXJhbUJ5VmVyc2lvbig1LCBnZXRTdGFraW5nUGFyYW1zKCd0ZXN0bmV0JykpXG4gICk7XG59XG4iXX0=
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@bitgo/utxo-staking",
3
- "version": "1.9.0",
3
+ "version": "1.11.0",
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 .",
@@ -39,14 +42,19 @@
39
42
  ]
40
43
  },
41
44
  "dependencies": {
45
+ "@babylonlabs-io/babylon-proto-ts": "1.0.0",
46
+ "@bitgo/babylonlabs-io-btc-staking-ts": "^0.5.0",
42
47
  "@bitgo/unspents": "^0.47.20",
43
48
  "@bitgo/utxo-core": "^1.5.0",
44
49
  "@bitgo/utxo-lib": "^11.2.4",
45
- "@bitgo/wasm-miniscript": "2.0.0-beta.7"
50
+ "@bitgo/wasm-miniscript": "2.0.0-beta.7",
51
+ "bitcoinjs-lib": "^6.1.7",
52
+ "fp-ts": "^2.16.2",
53
+ "io-ts": "npm:@bitgo-forks/io-ts@2.1.4",
54
+ "io-ts-types": "^0.5.19"
46
55
  },
47
56
  "devDependencies": {
48
- "bip174": "=2.1.1",
49
- "bitcoinjs-lib": "^6.1.7"
57
+ "yargs": "^17.7.2"
50
58
  },
51
- "gitHead": "1d3492d71714fd2b29297b0b5476126b485b927b"
59
+ "gitHead": "a580bc29181b873bf997d41303614023a686600d"
52
60
  }
package/.eslintignore DELETED
@@ -1,5 +0,0 @@
1
- node_modules
2
- .idea
3
- public
4
- dist
5
- test/unit/babylon/vendor/btc-staking-ts
package/.eslintrc.js DELETED
@@ -1,7 +0,0 @@
1
- module.exports = {
2
- extends: ['../../.eslintrc.json'],
3
- rules: {
4
- 'import/order': ['error', { 'newlines-between': 'always' }],
5
- 'import/no-internal-modules': 'off',
6
- },
7
- };
package/CHANGELOG.md DELETED
@@ -1,110 +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.9.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.8.0...@bitgo/utxo-staking@1.9.0) (2025-03-06)
7
-
8
- ### Features
9
-
10
- - **utxo-staking:** add normalize helper for test fixtures ([b2266d8](https://github.com/BitGo/BitGoJS/commit/b2266d8264b7579ebd505cb7c723389439f65849))
11
-
12
- # [1.8.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.6.0...@bitgo/utxo-staking@1.8.0) (2025-03-04)
13
-
14
- ### Bug Fixes
15
-
16
- - **utxo-staking:** avoid mutating input array in sortedKeys ([17f6e5d](https://github.com/BitGo/BitGoJS/commit/17f6e5de5f16d0356075816ba3f204b8612ce641))
17
-
18
- ### Features
19
-
20
- - **utxo-core:** simplify module exports ([ea7cd0f](https://github.com/BitGo/BitGoJS/commit/ea7cd0f90977894c25fc0734386b9e8d27465fd5))
21
- - **utxo-staking:** add single key finality provider script generation ([0fe5393](https://github.com/BitGo/BitGoJS/commit/0fe539359f01c204d34cfe86f208cdc2697bcb7d))
22
- - **utxo-staking:** exclude test fixtures from prettier formatting ([7cf7bdc](https://github.com/BitGo/BitGoJS/commit/7cf7bdcc57bc5ee09be387abcf5ae119889f44db))
23
- - **utxo-staking:** update CoreDAO output type to use utxo-core Output ([30902d6](https://github.com/BitGo/BitGoJS/commit/30902d6e152581651806a86aa3d1b2f56a1a9830))
24
-
25
- # [1.7.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.6.0...@bitgo/utxo-staking@1.7.0) (2025-02-26)
26
-
27
- ### Bug Fixes
28
-
29
- - **utxo-staking:** avoid mutating input array in sortedKeys ([17f6e5d](https://github.com/BitGo/BitGoJS/commit/17f6e5de5f16d0356075816ba3f204b8612ce641))
30
-
31
- ### Features
32
-
33
- - **utxo-staking:** add single key finality provider script generation ([0fe5393](https://github.com/BitGo/BitGoJS/commit/0fe539359f01c204d34cfe86f208cdc2697bcb7d))
34
- - **utxo-staking:** exclude test fixtures from prettier formatting ([7cf7bdc](https://github.com/BitGo/BitGoJS/commit/7cf7bdcc57bc5ee09be387abcf5ae119889f44db))
35
-
36
- ## [1.6.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.6.0...@bitgo/utxo-staking@1.6.1) (2025-02-20)
37
-
38
- **Note:** Version bump only for package @bitgo/utxo-staking
39
-
40
- # [1.6.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.5.0...@bitgo/utxo-staking@1.6.0) (2025-02-19)
41
-
42
- ### Features
43
-
44
- - **utxo-staking:** add testnet params and descriptor builder for Babylon ([b0764bb](https://github.com/BitGo/BitGoJS/commit/b0764bb644ad2313ac19ddd4210f340fbf9b60f1))
45
- - **utxo-staking:** add vendored btc-staking-ts 0.4.0-rc.2 ([607fd3e](https://github.com/BitGo/BitGoJS/commit/607fd3eaea6508668ae42dbe9c5d2444d12ec245))
46
- - **utxo-staking:** enable import ordering rule ([0f8b127](https://github.com/BitGo/BitGoJS/commit/0f8b1273a6e5683610a7131de828d6e21a5a4bc4))
47
- - **utxo-staking:** export babylon staking module ([4e86a2c](https://github.com/BitGo/BitGoJS/commit/4e86a2c06fe68a5592aa937399a0e5aa6648e24e))
48
- - **utxo-staking:** migrate test utils to utxo-core ([4395971](https://github.com/BitGo/BitGoJS/commit/4395971fcc21afaf55727f6badb26335c91cde19))
49
- - **utxo-staking:** simplify mocha config and test scripts ([44b3d7c](https://github.com/BitGo/BitGoJS/commit/44b3d7c0ae0cc1d0c4b49f5fcbeabc21cfb7effa))
50
- - **utxo-staking:** use miniscript AST for descriptor creation ([bc0fb09](https://github.com/BitGo/BitGoJS/commit/bc0fb096ce29dae1e6cde984f3d54f9a292d4996))
51
- - **utxo-staking:** use TapTreeNode type for Babylon descriptor ([79f9c5c](https://github.com/BitGo/BitGoJS/commit/79f9c5c8e8650b494ec1afa2fa215328d3d1facb))
52
-
53
- # [1.5.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.5...@bitgo/utxo-staking@1.5.0) (2024-12-17)
54
-
55
- ### Features
56
-
57
- - **utxo-staking:** add support for wsh script type ([c3632a4](https://github.com/BitGo/BitGoJS/commit/c3632a456a92953ee52340c79740bcd9e6f66215))
58
-
59
- # [1.4.0](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.5...@bitgo/utxo-staking@1.4.0) (2024-12-17)
60
-
61
- ### Features
62
-
63
- - **utxo-staking:** add support for wsh script type ([c3632a4](https://github.com/BitGo/BitGoJS/commit/c3632a456a92953ee52340c79740bcd9e6f66215))
64
-
65
- ## [1.3.5](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.4...@bitgo/utxo-staking@1.3.5) (2024-12-12)
66
-
67
- **Note:** Version bump only for package @bitgo/utxo-staking
68
-
69
- ## [1.3.4](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.3...@bitgo/utxo-staking@1.3.4) (2024-12-11)
70
-
71
- **Note:** Version bump only for package @bitgo/utxo-staking
72
-
73
- ## [1.3.3](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.2...@bitgo/utxo-staking@1.3.3) (2024-12-03)
74
-
75
- **Note:** Version bump only for package @bitgo/utxo-staking
76
-
77
- ## [1.3.2](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.1...@bitgo/utxo-staking@1.3.2) (2024-11-26)
78
-
79
- **Note:** Version bump only for package @bitgo/utxo-staking
80
-
81
- ## [1.3.1](https://github.com/BitGo/BitGoJS/compare/@bitgo/utxo-staking@1.3.0...@bitgo/utxo-staking@1.3.1) (2024-11-21)
82
-
83
- **Note:** Version bump only for package @bitgo/utxo-staking
84
-
85
- # 1.3.0 (2024-11-19)
86
-
87
- ### Features
88
-
89
- - **utxo-staking:** build staking transaction ([73b33bc](https://github.com/BitGo/BitGoJS/commit/73b33bc93e46934fe5e6002c52c0b1443a3d0d8d))
90
- - **utxo-staking:** create coredao staking outputs ([6b5ca4b](https://github.com/BitGo/BitGoJS/commit/6b5ca4b7c726fb6a4380526391416f6db356e0b7))
91
-
92
- # 1.2.0 (2024-11-14)
93
-
94
- ### Features
95
-
96
- - **utxo-staking:** build staking transaction ([73b33bc](https://github.com/BitGo/BitGoJS/commit/73b33bc93e46934fe5e6002c52c0b1443a3d0d8d))
97
- - **utxo-staking:** create coredao staking outputs ([6b5ca4b](https://github.com/BitGo/BitGoJS/commit/6b5ca4b7c726fb6a4380526391416f6db356e0b7))
98
-
99
- # 1.1.0 (2024-11-01)
100
-
101
- ### Bug Fixes
102
-
103
- - **utxo-coredao:** clarifications from the coredao team ([56157b3](https://github.com/BitGo/BitGoJS/commit/56157b34e6802895489928d8e7a87f8f5c8129ed))
104
- - **utxo-coredao:** fix json encoding to add newline ([bb5be2f](https://github.com/BitGo/BitGoJS/commit/bb5be2f91e0e7f1d59d94a1786fdd2cccc4ebad6))
105
-
106
- ### Features
107
-
108
- - **utxo-coredao:** descriptor for CoreDao ([791f9e4](https://github.com/BitGo/BitGoJS/commit/791f9e47033a8224759d98f0483f5b0bb9bbc524))
109
- - **utxo-coredao:** init repo and op-return ([60fa058](https://github.com/BitGo/BitGoJS/commit/60fa058f693cf722db8d5e7507539a5ec1c8b1a5))
110
- - **utxo-coredao:** parse and verify op-return ([32dc7c4](https://github.com/BitGo/BitGoJS/commit/32dc7c49f0ff5baeb0db4a20853f70745f71c02b))
@@ -1,24 +0,0 @@
1
- import { BIP32Interface } from '@bitgo/utxo-lib';
2
- import { BabylonDescriptorBuilder } from './descriptor';
3
- export declare const testnetStakingParams: {
4
- covenant_pks: string[];
5
- covenant_quorum: number;
6
- min_staking_value_sat: number;
7
- max_staking_value_sat: number;
8
- min_staking_time_blocks: number;
9
- max_staking_time_blocks: number;
10
- slashing_pk_script: string;
11
- min_slashing_tx_fee_sat: number;
12
- slashing_rate: string;
13
- unbonding_time_blocks: number;
14
- unbonding_fee_sat: number;
15
- min_commission_rate: string;
16
- delegation_creation_base_gas_fee: number;
17
- allow_list_expiration_height: number;
18
- btc_activation_height: number;
19
- };
20
- export declare const finalityBabylonProvider0: Buffer<ArrayBuffer>;
21
- export declare function getTestnetDescriptorBuilder(userKey: BIP32Interface, { finalityProviderKeys, }?: {
22
- finalityProviderKeys?: Buffer[];
23
- }): BabylonDescriptorBuilder;
24
- //# sourceMappingURL=testnet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testnet.d.ts","sourceRoot":"","sources":["../../../src/babylon/testnet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAGxD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;CA0BhC,CAAC;AAGF,eAAO,MAAM,wBAAwB,qBAGpC,CAAC;AAEF,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,cAAc,EACvB,EACE,oBAAiD,GAClD,GAAE;IACD,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,GACL,wBAAwB,CAS1B"}
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.finalityBabylonProvider0 = exports.testnetStakingParams = void 0;
4
- exports.getTestnetDescriptorBuilder = getTestnetDescriptorBuilder;
5
- const descriptor_1 = require("./descriptor");
6
- // Source: https://github.com/babylonlabs-io/babylon/blob/v1.99.0-snapshot.250211/app/upgrades/v1/testnet/btcstaking_params.go#L149-L159
7
- exports.testnetStakingParams = {
8
- covenant_pks: [
9
- 'fa9d882d45f4060bdb8042183828cd87544f1ea997380e586cab77d5fd698737',
10
- '0aee0509b16db71c999238a4827db945526859b13c95487ab46725357c9a9f25',
11
- '17921cf156ccb4e73d428f996ed11b245313e37e27c978ac4d2cc21eca4672e4',
12
- '113c3a32a9d320b72190a04a020a0db3976ef36972673258e9a38a364f3dc3b0',
13
- '79a71ffd71c503ef2e2f91bccfc8fcda7946f4653cef0d9f3dde20795ef3b9f0',
14
- '3bb93dfc8b61887d771f3630e9a63e97cbafcfcc78556a474df83a31a0ef899c',
15
- 'd21faf78c6751a0d38e6bd8028b907ff07e9a869a43fc837d6b3f8dff6119a36',
16
- '40afaf47c4ffa56de86410d8e47baa2bb6f04b604f4ea24323737ddc3fe092df',
17
- 'f5199efae3f28bb82476163a7e458c7ad445d9bffb0682d10d3bdb2cb41f8e8e',
18
- ],
19
- covenant_quorum: 6,
20
- min_staking_value_sat: 50000,
21
- max_staking_value_sat: 35000000000,
22
- min_staking_time_blocks: 10000,
23
- max_staking_time_blocks: 64000,
24
- slashing_pk_script: 'ABRb4SYk0IorQkCV18ByIcM0UNFL8Q==',
25
- min_slashing_tx_fee_sat: 5000,
26
- slashing_rate: '0.05',
27
- unbonding_time_blocks: 1008,
28
- unbonding_fee_sat: 2000,
29
- min_commission_rate: '0.03',
30
- delegation_creation_base_gas_fee: 1095000,
31
- allow_list_expiration_height: 26124,
32
- btc_activation_height: 227174,
33
- };
34
- // Source: https://btcstaking.testnet.babylonlabs.io/ "Babylon Foundation 0"
35
- exports.finalityBabylonProvider0 = Buffer.from('d23c2c25e1fcf8fd1c21b9a402c19e2e309e531e45e92fb1e9805b6056b0cc76', 'hex');
36
- function getTestnetDescriptorBuilder(userKey, { finalityProviderKeys = [exports.finalityBabylonProvider0], } = {}) {
37
- return new descriptor_1.BabylonDescriptorBuilder(userKey.publicKey, finalityProviderKeys, exports.testnetStakingParams.covenant_pks.map((pk) => Buffer.from(pk, 'hex')), exports.testnetStakingParams.covenant_quorum, exports.testnetStakingParams.min_staking_time_blocks, exports.testnetStakingParams.unbonding_time_blocks);
38
- }
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdG5ldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL3Rlc3RuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBdUNBLGtFQWdCQztBQXJERCw2Q0FBd0Q7QUFFeEQsd0lBQXdJO0FBQzNILFFBQUEsb0JBQW9CLEdBQUc7SUFDbEMsWUFBWSxFQUFFO1FBQ1osa0VBQWtFO1FBQ2xFLGtFQUFrRTtRQUNsRSxrRUFBa0U7UUFDbEUsa0VBQWtFO1FBQ2xFLGtFQUFrRTtRQUNsRSxrRUFBa0U7UUFDbEUsa0VBQWtFO1FBQ2xFLGtFQUFrRTtRQUNsRSxrRUFBa0U7S0FDbkU7SUFDRCxlQUFlLEVBQUUsQ0FBQztJQUNsQixxQkFBcUIsRUFBRSxLQUFLO0lBQzVCLHFCQUFxQixFQUFFLFdBQVc7SUFDbEMsdUJBQXVCLEVBQUUsS0FBSztJQUM5Qix1QkFBdUIsRUFBRSxLQUFLO0lBQzlCLGtCQUFrQixFQUFFLGtDQUFrQztJQUN0RCx1QkFBdUIsRUFBRSxJQUFJO0lBQzdCLGFBQWEsRUFBRSxNQUFNO0lBQ3JCLHFCQUFxQixFQUFFLElBQUk7SUFDM0IsaUJBQWlCLEVBQUUsSUFBSTtJQUN2QixtQkFBbUIsRUFBRSxNQUFNO0lBQzNCLGdDQUFnQyxFQUFFLE9BQU87SUFDekMsNEJBQTRCLEVBQUUsS0FBSztJQUNuQyxxQkFBcUIsRUFBRSxNQUFNO0NBQzlCLENBQUM7QUFFRiw0RUFBNEU7QUFDL0QsUUFBQSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUNqRCxrRUFBa0UsRUFDbEUsS0FBSyxDQUNOLENBQUM7QUFFRixTQUFnQiwyQkFBMkIsQ0FDekMsT0FBdUIsRUFDdkIsRUFDRSxvQkFBb0IsR0FBRyxDQUFDLGdDQUF3QixDQUFDLE1BRy9DLEVBQUU7SUFFTixPQUFPLElBQUkscUNBQXdCLENBQ2pDLE9BQU8sQ0FBQyxTQUFTLEVBQ2pCLG9CQUFvQixFQUNwQiw0QkFBb0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUNyRSw0QkFBb0IsQ0FBQyxlQUFlLEVBQ3BDLDRCQUFvQixDQUFDLHVCQUF1QixFQUM1Qyw0QkFBb0IsQ0FBQyxxQkFBcUIsQ0FDM0MsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbmltcG9ydCB7IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5cbi8vIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2JhYnlsb24vYmxvYi92MS45OS4wLXNuYXBzaG90LjI1MDIxMS9hcHAvdXBncmFkZXMvdjEvdGVzdG5ldC9idGNzdGFraW5nX3BhcmFtcy5nbyNMMTQ5LUwxNTlcbmV4cG9ydCBjb25zdCB0ZXN0bmV0U3Rha2luZ1BhcmFtcyA9IHtcbiAgY292ZW5hbnRfcGtzOiBbXG4gICAgJ2ZhOWQ4ODJkNDVmNDA2MGJkYjgwNDIxODM4MjhjZDg3NTQ0ZjFlYTk5NzM4MGU1ODZjYWI3N2Q1ZmQ2OTg3MzcnLFxuICAgICcwYWVlMDUwOWIxNmRiNzFjOTk5MjM4YTQ4MjdkYjk0NTUyNjg1OWIxM2M5NTQ4N2FiNDY3MjUzNTdjOWE5ZjI1JyxcbiAgICAnMTc5MjFjZjE1NmNjYjRlNzNkNDI4Zjk5NmVkMTFiMjQ1MzEzZTM3ZTI3Yzk3OGFjNGQyY2MyMWVjYTQ2NzJlNCcsXG4gICAgJzExM2MzYTMyYTlkMzIwYjcyMTkwYTA0YTAyMGEwZGIzOTc2ZWYzNjk3MjY3MzI1OGU5YTM4YTM2NGYzZGMzYjAnLFxuICAgICc3OWE3MWZmZDcxYzUwM2VmMmUyZjkxYmNjZmM4ZmNkYTc5NDZmNDY1M2NlZjBkOWYzZGRlMjA3OTVlZjNiOWYwJyxcbiAgICAnM2JiOTNkZmM4YjYxODg3ZDc3MWYzNjMwZTlhNjNlOTdjYmFmY2ZjYzc4NTU2YTQ3NGRmODNhMzFhMGVmODk5YycsXG4gICAgJ2QyMWZhZjc4YzY3NTFhMGQzOGU2YmQ4MDI4YjkwN2ZmMDdlOWE4NjlhNDNmYzgzN2Q2YjNmOGRmZjYxMTlhMzYnLFxuICAgICc0MGFmYWY0N2M0ZmZhNTZkZTg2NDEwZDhlNDdiYWEyYmI2ZjA0YjYwNGY0ZWEyNDMyMzczN2RkYzNmZTA5MmRmJyxcbiAgICAnZjUxOTllZmFlM2YyOGJiODI0NzYxNjNhN2U0NThjN2FkNDQ1ZDliZmZiMDY4MmQxMGQzYmRiMmNiNDFmOGU4ZScsXG4gIF0sXG4gIGNvdmVuYW50X3F1b3J1bTogNixcbiAgbWluX3N0YWtpbmdfdmFsdWVfc2F0OiA1MDAwMCxcbiAgbWF4X3N0YWtpbmdfdmFsdWVfc2F0OiAzNTAwMDAwMDAwMCxcbiAgbWluX3N0YWtpbmdfdGltZV9ibG9ja3M6IDEwMDAwLFxuICBtYXhfc3Rha2luZ190aW1lX2Jsb2NrczogNjQwMDAsXG4gIHNsYXNoaW5nX3BrX3NjcmlwdDogJ0FCUmI0U1lrMElvclFrQ1YxOEJ5SWNNMFVORkw4UT09JyxcbiAgbWluX3NsYXNoaW5nX3R4X2ZlZV9zYXQ6IDUwMDAsXG4gIHNsYXNoaW5nX3JhdGU6ICcwLjA1JyxcbiAgdW5ib25kaW5nX3RpbWVfYmxvY2tzOiAxMDA4LFxuICB1bmJvbmRpbmdfZmVlX3NhdDogMjAwMCxcbiAgbWluX2NvbW1pc3Npb25fcmF0ZTogJzAuMDMnLFxuICBkZWxlZ2F0aW9uX2NyZWF0aW9uX2Jhc2VfZ2FzX2ZlZTogMTA5NTAwMCxcbiAgYWxsb3dfbGlzdF9leHBpcmF0aW9uX2hlaWdodDogMjYxMjQsXG4gIGJ0Y19hY3RpdmF0aW9uX2hlaWdodDogMjI3MTc0LFxufTtcblxuLy8gU291cmNlOiBodHRwczovL2J0Y3N0YWtpbmcudGVzdG5ldC5iYWJ5bG9ubGFicy5pby8gXCJCYWJ5bG9uIEZvdW5kYXRpb24gMFwiXG5leHBvcnQgY29uc3QgZmluYWxpdHlCYWJ5bG9uUHJvdmlkZXIwID0gQnVmZmVyLmZyb20oXG4gICdkMjNjMmMyNWUxZmNmOGZkMWMyMWI5YTQwMmMxOWUyZTMwOWU1MzFlNDVlOTJmYjFlOTgwNWI2MDU2YjBjYzc2JyxcbiAgJ2hleCdcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXN0bmV0RGVzY3JpcHRvckJ1aWxkZXIoXG4gIHVzZXJLZXk6IEJJUDMySW50ZXJmYWNlLFxuICB7XG4gICAgZmluYWxpdHlQcm92aWRlcktleXMgPSBbZmluYWxpdHlCYWJ5bG9uUHJvdmlkZXIwXSxcbiAgfToge1xuICAgIGZpbmFsaXR5UHJvdmlkZXJLZXlzPzogQnVmZmVyW107XG4gIH0gPSB7fVxuKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgcmV0dXJuIG5ldyBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIoXG4gICAgdXNlcktleS5wdWJsaWNLZXksXG4gICAgZmluYWxpdHlQcm92aWRlcktleXMsXG4gICAgdGVzdG5ldFN0YWtpbmdQYXJhbXMuY292ZW5hbnRfcGtzLm1hcCgocGspID0+IEJ1ZmZlci5mcm9tKHBrLCAnaGV4JykpLFxuICAgIHRlc3RuZXRTdGFraW5nUGFyYW1zLmNvdmVuYW50X3F1b3J1bSxcbiAgICB0ZXN0bmV0U3Rha2luZ1BhcmFtcy5taW5fc3Rha2luZ190aW1lX2Jsb2NrcyxcbiAgICB0ZXN0bmV0U3Rha2luZ1BhcmFtcy51bmJvbmRpbmdfdGltZV9ibG9ja3NcbiAgKTtcbn1cbiJdfQ==