@bitgo-beta/utxo-staking 1.1.0-alpha.6 → 1.1.0-alpha.61
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.
- package/dist/src/babylon/delegationMessage.d.ts +22 -0
- package/dist/src/babylon/delegationMessage.d.ts.map +1 -0
- package/dist/src/babylon/delegationMessage.js +131 -0
- package/dist/src/babylon/descriptor.d.ts +28 -0
- package/dist/src/babylon/descriptor.d.ts.map +1 -0
- package/dist/src/babylon/descriptor.js +92 -0
- package/dist/src/babylon/index.d.ts +5 -0
- package/dist/src/babylon/index.d.ts.map +1 -0
- package/dist/src/babylon/index.js +21 -0
- package/dist/src/babylon/keyUtils.d.ts +3 -0
- package/dist/src/babylon/keyUtils.d.ts.map +1 -0
- package/dist/src/babylon/keyUtils.js +7 -0
- package/dist/src/babylon/params.mainnet.json +1 -0
- package/dist/src/babylon/params.testnet.json +205 -0
- package/dist/src/babylon/stakingManager.d.ts +6 -0
- package/dist/src/babylon/stakingManager.d.ts.map +1 -0
- package/dist/src/babylon/stakingManager.js +65 -0
- package/dist/src/babylon/stakingParams.d.ts +38 -0
- package/dist/src/babylon/stakingParams.d.ts.map +1 -0
- package/dist/src/babylon/stakingParams.js +145 -0
- package/dist/src/coreDao/descriptor.d.ts +4 -4
- package/dist/src/coreDao/descriptor.d.ts.map +1 -1
- package/dist/src/coreDao/descriptor.js +12 -5
- package/dist/src/coreDao/opReturn.d.ts +5 -5
- package/dist/src/coreDao/opReturn.d.ts.map +1 -1
- package/dist/src/coreDao/opReturn.js +19 -11
- package/dist/src/coreDao/transaction.d.ts +15 -8
- package/dist/src/coreDao/transaction.d.ts.map +1 -1
- package/dist/src/coreDao/transaction.js +13 -6
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +26 -3
- package/dist/src/transaction.d.ts +0 -2
- package/dist/src/transaction.d.ts.map +1 -1
- package/dist/src/transaction.js +36 -4
- package/package.json +19 -7
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -35
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as vendor from '@bitgo-beta/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-beta/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,2CAA2C,CAAC;AACpE,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAChD,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-beta/babylonlabs-io-btc-staking-ts"));
|
|
45
|
+
const bitcoinjslib = __importStar(require("bitcoinjs-lib"));
|
|
46
|
+
const descriptor_1 = require("@bitgo-beta/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvbk1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9kZWxlZ2F0aW9uTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLHNDQXdCQztBQUVELHdEQXFDQztBQWFELG9IQWdEQztBQUVELGtKQXVCQztBQXBLRCxvREFBNEI7QUFFNUIsa0ZBQW9FO0FBRXBFLDREQUE4QztBQUc5QyxpRUFBaUU7QUFHakUscURBQXdEO0FBQ3hELG1EQUFtRDtBQUluRCxTQUFnQixhQUFhLENBQzNCLElBQXVCLEVBQ3ZCLFVBQXNCLEVBQ3RCLE9BQWtDLEVBQ2xDLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRTtJQUVwQixNQUFNLFdBQVcsR0FBRyxJQUFBLDBCQUFhLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3pELElBQUEsZ0JBQU0sRUFBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDNUUsV0FBVyxDQUFDLHlCQUF5QixDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNyRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pDLElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFN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RUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsV0FBVyxFQUNYLGNBQWMsQ0FDZixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdmVuZG9yIGZyb20gJ0BiaXRnby1iZXRhL2JhYnlsb25sYWJzLWlvLWJ0Yy1zdGFraW5nLXRzJztcbmltcG9ydCAqIGFzIGJhYnlsb25Qcm90b2J1ZiBmcm9tICdAYmFieWxvbmxhYnMtaW8vYmFieWxvbi1wcm90by10cyc7XG5pbXBvcnQgKiBhcyBiaXRjb2luanNsaWIgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCB7IHRvV3JhcHBlZFBzYnQgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWNvcmUvZGVzY3JpcHRvcic7XG5cbmltcG9ydCB7IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBjcmVhdGVTdGFraW5nTWFuYWdlciB9IGZyb20gJy4vc3Rha2luZ01hbmFnZXInO1xuaW1wb3J0IHsgZ2V0U3Rha2luZ1BhcmFtcyB9IGZyb20gJy4vc3Rha2luZ1BhcmFtcyc7XG5cbmV4cG9ydCB0eXBlIFZhbHVlV2l0aFR5cGVVcmw8VD4gPSB7IHR5cGVVcmw6IHN0cmluZzsgdmFsdWU6IFQgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ25lZFBzYnQoXG4gIHBzYnQ6IGJpdGNvaW5qc2xpYi5Qc2J0LFxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICBzaWduZXJzOiB1dHhvbGliLkVDUGFpckludGVyZmFjZVtdLFxuICB7IGZpbmFsaXplID0gZmFsc2UgfVxuKTogYml0Y29pbmpzbGliLlBzYnQge1xuICBjb25zdCB3cmFwcGVkUHNidCA9IHRvV3JhcHBlZFBzYnQocHNidC50b0J1ZmZlcigpKTtcbiAgY29uc3Qgc2lnbmVkSW5wdXRzID0gcHNidC5kYXRhLmlucHV0cy5mbGF0TWFwKChpbnB1dCwgaSkgPT4ge1xuICAgIGFzc2VydChpbnB1dC53aXRuZXNzVXR4byk7XG4gICAgaWYgKEJ1ZmZlci5mcm9tKGRlc2NyaXB0b3Iuc2NyaXB0UHVia2V5KCkpLmVxdWFscyhpbnB1dC53aXRuZXNzVXR4by5zY3JpcHQpKSB7XG4gICAgICB3cmFwcGVkUHNidC51cGRhdGVJbnB1dFdpdGhEZXNjcmlwdG9yKGksIGRlc2NyaXB0b3IpO1xuICAgICAgY29uc3Qgc2lnblJlc3VsdHMgPSBzaWduZXJzLm1hcCgoc2lnbmVyKSA9PiB7XG4gICAgICAgIGFzc2VydChzaWduZXIucHJpdmF0ZUtleSk7XG4gICAgICAgIHJldHVybiB3cmFwcGVkUHNidC5zaWduV2l0aFBydihzaWduZXIucHJpdmF0ZUtleSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBbW2ksIHNpZ25SZXN1bHRzXV07XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfSk7XG4gIGFzc2VydChzaWduZWRJbnB1dHMubGVuZ3RoID4gMCk7XG4gIGlmIChmaW5hbGl6ZSkge1xuICAgIHdyYXBwZWRQc2J0LmZpbmFsaXplKCk7XG4gIH1cbiAgcmV0dXJuIGJpdGNvaW5qc2xpYi5Qc2J0LmZyb21CdWZmZXIoQnVmZmVyLmZyb20od3JhcHBlZFBzYnQuc2VyaWFsaXplKCkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJ0Y1Byb3ZpZGVyRm9yRUNLZXkoXG4gIGRlc2NyaXB0b3JCdWlsZGVyOiBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIsXG4gIHN0YWtlcktleTogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2Vcbik6IHZlbmRvci5CdGNQcm92aWRlciB7XG4gIGZ1bmN0aW9uIHNpZ25XaXRoRGVzY3JpcHRvcihcbiAgICBwc2J0OiBiaXRjb2luanNsaWIuUHNidCxcbiAgICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICAgIGtleTogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2VcbiAgKTogYml0Y29pbmpzbGliLlBzYnQge1xuICAgIHBzYnQgPSBnZXRTaWduZWRQc2J0KHBzYnQsIGRlc2NyaXB0b3IsIFtrZXldLCB7IGZpbmFsaXplOiBmYWxzZSB9KTtcbiAgICAvLyBCVUc6IHdlIG5lZWQgdG8gYmxpbmRseSBmaW5hbGl6ZSBoZXJlIGV2ZW4gdGhvdWdoIHdlIGhhdmUgbm90IGZ1bGx5IHNpZ25lZFxuICAgIHBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICByZXR1cm4gcHNidDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYXN5bmMgc2lnbk1lc3NhZ2Uoc2lnbmluZ1N0ZXA6IHZlbmRvci5TaWduaW5nU3RlcCwgbWVzc2FnZTogc3RyaW5nLCB0eXBlOiAnZWNkc2EnKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIGFzc2VydCh0eXBlID09PSAnZWNkc2EnKTtcbiAgICAgIHN3aXRjaCAoc2lnbmluZ1N0ZXApIHtcbiAgICAgICAgY2FzZSAncHJvb2Ytb2YtcG9zc2Vzc2lvbic6XG4gICAgICAgICAgcmV0dXJuIHN0YWtlcktleS5zaWduKEJ1ZmZlci5mcm9tKG1lc3NhZ2UsICdoZXgnKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBzaWduaW5nIHN0ZXA6ICR7c2lnbmluZ1N0ZXB9YCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBhc3luYyBzaWduUHNidChzaWduaW5nU3RlcDogdmVuZG9yLlNpZ25pbmdTdGVwLCBwc2J0SGV4OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgY29uc3QgcHNidCA9IGJpdGNvaW5qc2xpYi5Qc2J0LmZyb21IZXgocHNidEhleCk7XG4gICAgICBzd2l0Y2ggKHNpZ25pbmdTdGVwKSB7XG4gICAgICAgIGNhc2UgJ3N0YWtpbmctc2xhc2hpbmcnOlxuICAgICAgICAgIHJldHVybiBzaWduV2l0aERlc2NyaXB0b3IocHNidCwgZGVzY3JpcHRvckJ1aWxkZXIuZ2V0U3Rha2luZ0Rlc2NyaXB0b3IoKSwgc3Rha2VyS2V5KS50b0hleCgpO1xuICAgICAgICBjYXNlICd1bmJvbmRpbmctc2xhc2hpbmcnOlxuICAgICAgICAgIHJldHVybiBzaWduV2l0aERlc2NyaXB0b3IocHNidCwgZGVzY3JpcHRvckJ1aWxkZXIuZ2V0VW5ib25kaW5nRGVzY3JpcHRvcigpLCBzdGFrZXJLZXkpLnRvSGV4KCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHNpZ25pbmcgc3RlcDogJHtzaWduaW5nU3RlcH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxuXG50eXBlIFJlc3VsdCA9IHtcbiAgdW5zaWduZWREZWxlZ2F0aW9uTXNnOiBWYWx1ZVdpdGhUeXBlVXJsPGJhYnlsb25Qcm90b2J1Zi5idGNzdGFraW5ndHguTXNnQ3JlYXRlQlRDRGVsZWdhdGlvbj47XG4gIHN0YWtpbmdUeDogYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uO1xufTtcblxuLypcbiAqIFRoaXMgaXMgbW9zdGx5IGxpZnRlZCBmcm9tXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmFieWxvbmxhYnMtaW8vYnRjLXN0YWtpbmctdHMvYmxvYi92MC40LjAtcmMuMi9zcmMvc3Rha2luZy9tYW5hZ2VyLnRzI0wxMDAtTDE3MlxuICpcbiAqIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgaGVyZSB3ZSBhcmUgcmV0dXJuaW5nIGFuIF91bnNpZ25lZF8gZGVsZWdhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVW5zaWduZWRQcmVTdGFrZVJlZ2lzdHJhdGlvbkJhYnlsb25UcmFuc2FjdGlvbihcbiAgbWFuYWdlcjogdmVuZG9yLkJhYnlsb25CdGNTdGFraW5nTWFuYWdlcixcbiAgc3Rha2luZ1BhcmFtczogdmVuZG9yLlZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSxcbiAgbmV0d29yazogYml0Y29pbmpzbGliLk5ldHdvcmssXG4gIHN0YWtlckJ0Y0luZm86IHZlbmRvci5TdGFrZXJJbmZvLFxuICBzdGFraW5nSW5wdXQ6IHZlbmRvci5TdGFraW5nSW5wdXRzLFxuICBiYWJ5bG9uQnRjVGlwSGVpZ2h0OiBudW1iZXIsXG4gIGlucHV0VVRYT3M6IHZlbmRvci5VVFhPW10sXG4gIGZlZVJhdGVTYXRCOiBudW1iZXIsXG4gIGJhYnlsb25BZGRyZXNzOiBzdHJpbmdcbik6IFByb21pc2U8UmVzdWx0PiB7XG4gIGlmIChiYWJ5bG9uQnRjVGlwSGVpZ2h0ID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCYWJ5bG9uIEJUQyB0aXAgaGVpZ2h0IGNhbm5vdCBiZSAwJyk7XG4gIH1cbiAgaWYgKGlucHV0VVRYT3MubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbnB1dCBVVFhPcyBwcm92aWRlZCcpO1xuICB9XG4gIGlmICghdmVuZG9yLmlzVmFsaWRCYWJ5bG9uQWRkcmVzcyhiYWJ5bG9uQWRkcmVzcykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQmFieWxvbiBhZGRyZXNzJyk7XG4gIH1cblxuICAvLyBHZXQgdGhlIEJhYnlsb24gcGFyYW1zIGJhc2VkIG9uIHRoZSBCVEMgdGlwIGhlaWdodCBmcm9tIEJhYnlsb24gY2hhaW5cbiAgY29uc3QgcGFyYW1zID0gdmVuZG9yLmdldEJhYnlsb25QYXJhbUJ5QnRjSGVpZ2h0KGJhYnlsb25CdGNUaXBIZWlnaHQsIHN0YWtpbmdQYXJhbXMpO1xuXG4gIGNvbnN0IHN0YWtpbmcgPSBuZXcgdmVuZG9yLlN0YWtpbmcoXG4gICAgbmV0d29yayxcbiAgICBzdGFrZXJCdGNJbmZvLFxuICAgIHBhcmFtcyxcbiAgICBzdGFraW5nSW5wdXQuZmluYWxpdHlQcm92aWRlclBrTm9Db29yZEhleCxcbiAgICBzdGFraW5nSW5wdXQuc3Rha2luZ1RpbWVsb2NrXG4gICk7XG5cbiAgLy8gQ3JlYXRlIHVuc2lnbmVkIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgY29uc3QgeyB0cmFuc2FjdGlvbiB9ID0gc3Rha2luZy5jcmVhdGVTdGFraW5nVHJhbnNhY3Rpb24oc3Rha2luZ0lucHV0LnN0YWtpbmdBbW91bnRTYXQsIGlucHV0VVRYT3MsIGZlZVJhdGVTYXRCKTtcblxuICAvLyBDcmVhdGUgZGVsZWdhdGlvbiBtZXNzYWdlIHdpdGhvdXQgaW5jbHVkaW5nIGluY2x1c2lvbiBwcm9vZlxuICBjb25zdCBtc2cgPSBhd2FpdCBtYW5hZ2VyLmNyZWF0ZUJ0Y0RlbGVnYXRpb25Nc2coXG4gICAgc3Rha2luZyxcbiAgICBzdGFraW5nSW5wdXQsXG4gICAgdHJhbnNhY3Rpb24sXG4gICAgYmFieWxvbkFkZHJlc3MsXG4gICAgc3Rha2VyQnRjSW5mbyxcbiAgICBwYXJhbXNcbiAgKTtcbiAgcmV0dXJuIHtcbiAgICB1bnNpZ25lZERlbGVnYXRpb25Nc2c6IG1zZyxcbiAgICBzdGFraW5nVHg6IHRyYW5zYWN0aW9uLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVW5zaWduZWRQcmVTdGFrZVJlZ2lzdHJhdGlvbkJhYnlsb25UcmFuc2FjdGlvbldpdGhCdGNQcm92aWRlcihcbiAgYnRjUHJvdmlkZXI6IHZlbmRvci5CdGNQcm92aWRlcixcbiAgbmV0d29yazogYml0Y29pbmpzbGliLk5ldHdvcmssXG4gIHN0YWtlckJ0Y0luZm86IHZlbmRvci5TdGFrZXJJbmZvLFxuICBzdGFraW5nSW5wdXQ6IHZlbmRvci5TdGFraW5nSW5wdXRzLFxuICBiYWJ5bG9uQnRjVGlwSGVpZ2h0OiBudW1iZXIsXG4gIGlucHV0VVRYT3M6IHZlbmRvci5VVFhPW10sXG4gIGZlZVJhdGVTYXRCOiBudW1iZXIsXG4gIGJhYnlsb25BZGRyZXNzOiBzdHJpbmcsXG4gIHN0YWtpbmdQYXJhbXM6IHZlbmRvci5WZXJzaW9uZWRTdGFraW5nUGFyYW1zW10gPSBnZXRTdGFraW5nUGFyYW1zKG5ldHdvcmspXG4pOiBQcm9taXNlPFJlc3VsdD4ge1xuICBjb25zdCBtYW5hZ2VyID0gY3JlYXRlU3Rha2luZ01hbmFnZXIobmV0d29yaywgYnRjUHJvdmlkZXIsIHN0YWtpbmdQYXJhbXMpO1xuICByZXR1cm4gYXdhaXQgY3JlYXRlVW5zaWduZWRQcmVTdGFrZVJlZ2lzdHJhdGlvbkJhYnlsb25UcmFuc2FjdGlvbihcbiAgICBtYW5hZ2VyLFxuICAgIHN0YWtpbmdQYXJhbXMsXG4gICAgbmV0d29yayxcbiAgICBzdGFrZXJCdGNJbmZvLFxuICAgIHN0YWtpbmdJbnB1dCxcbiAgICBiYWJ5bG9uQnRjVGlwSGVpZ2h0LFxuICAgIGlucHV0VVRYT3MsXG4gICAgZmVlUmF0ZVNhdEIsXG4gICAgYmFieWxvbkFkZHJlc3NcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
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
|
+
*/
|
|
5
|
+
import { Descriptor, ast } from '@bitgo/wasm-miniscript';
|
|
6
|
+
import { StakingParams } from '@bitgo-beta/babylonlabs-io-btc-staking-ts';
|
|
7
|
+
export declare function getUnspendableKey(): string;
|
|
8
|
+
export declare class BabylonDescriptorBuilder {
|
|
9
|
+
stakerKey: Buffer;
|
|
10
|
+
finalityProviderKeys: Buffer[];
|
|
11
|
+
covenantKeys: Buffer[];
|
|
12
|
+
covenantThreshold: number;
|
|
13
|
+
stakingTimeLock: number;
|
|
14
|
+
unbondingTimeLock: number;
|
|
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;
|
|
20
|
+
getTimelockMiniscript(): ast.MiniscriptNode;
|
|
21
|
+
getUnbondingMiniscript(): ast.MiniscriptNode;
|
|
22
|
+
getSlashingMiniscript(): ast.MiniscriptNode;
|
|
23
|
+
getUnbondingTimelockMiniscript(): ast.MiniscriptNode;
|
|
24
|
+
getStakingDescriptor(): Descriptor;
|
|
25
|
+
getSlashingDescriptor(): Descriptor;
|
|
26
|
+
getUnbondingDescriptor(): Descriptor;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=descriptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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,2CAA2C,CAAC;AAE1E,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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
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
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.BabylonDescriptorBuilder = void 0;
|
|
8
|
+
exports.getUnspendableKey = getUnspendableKey;
|
|
9
|
+
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
10
|
+
function getUnspendableKey() {
|
|
11
|
+
// https://github.com/babylonlabs-io/btc-staking-ts/blob/v0.4.0-rc.2/src/constants/internalPubkey.ts
|
|
12
|
+
return '50929b74c1a04954b78b4b6035e97a5e078a5a0f28ec96d547bfee9ace803ac0';
|
|
13
|
+
}
|
|
14
|
+
// Helper functions for creating miniscript nodes
|
|
15
|
+
function pk(b) {
|
|
16
|
+
return { 'v:pk': b.toString('hex') };
|
|
17
|
+
}
|
|
18
|
+
function sortedKeys(keys) {
|
|
19
|
+
return [...keys].sort((a, b) => a.compare(b));
|
|
20
|
+
}
|
|
21
|
+
function multiArgs(threshold, keys) {
|
|
22
|
+
return [threshold, ...sortedKeys(keys).map((k) => k.toString('hex'))];
|
|
23
|
+
}
|
|
24
|
+
function taprootScriptOnlyFromAst(n) {
|
|
25
|
+
return wasm_miniscript_1.Descriptor.fromString(wasm_miniscript_1.ast.formatNode({ tr: [getUnspendableKey(), n] }), 'definite');
|
|
26
|
+
}
|
|
27
|
+
class BabylonDescriptorBuilder {
|
|
28
|
+
constructor(stakerKey, finalityProviderKeys, covenantKeys, covenantThreshold, stakingTimeLock, unbondingTimeLock) {
|
|
29
|
+
this.stakerKey = stakerKey;
|
|
30
|
+
this.finalityProviderKeys = finalityProviderKeys;
|
|
31
|
+
this.covenantKeys = covenantKeys;
|
|
32
|
+
this.covenantThreshold = covenantThreshold;
|
|
33
|
+
this.stakingTimeLock = stakingTimeLock;
|
|
34
|
+
this.unbondingTimeLock = unbondingTimeLock;
|
|
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
|
+
}
|
|
54
|
+
getTimelockMiniscript() {
|
|
55
|
+
return { and_v: [pk(this.stakerKey), { older: this.stakingTimeLock }] };
|
|
56
|
+
}
|
|
57
|
+
getUnbondingMiniscript() {
|
|
58
|
+
return { and_v: [pk(this.stakerKey), { multi_a: multiArgs(this.covenantThreshold, this.covenantKeys) }] };
|
|
59
|
+
}
|
|
60
|
+
getSlashingMiniscript() {
|
|
61
|
+
return {
|
|
62
|
+
and_v: [
|
|
63
|
+
{
|
|
64
|
+
and_v: [
|
|
65
|
+
pk(this.stakerKey),
|
|
66
|
+
this.finalityProviderKeys.length === 1
|
|
67
|
+
? { 'v:pk': this.finalityProviderKeys[0].toString('hex') }
|
|
68
|
+
: { 'v:multi_a': multiArgs(1, this.finalityProviderKeys) },
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
{ multi_a: multiArgs(this.covenantThreshold, this.covenantKeys) },
|
|
72
|
+
],
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
getUnbondingTimelockMiniscript() {
|
|
76
|
+
return { and_v: [pk(this.stakerKey), { older: this.unbondingTimeLock }] };
|
|
77
|
+
}
|
|
78
|
+
getStakingDescriptor() {
|
|
79
|
+
return taprootScriptOnlyFromAst([
|
|
80
|
+
this.getSlashingMiniscript(),
|
|
81
|
+
[this.getUnbondingMiniscript(), this.getTimelockMiniscript()],
|
|
82
|
+
]);
|
|
83
|
+
}
|
|
84
|
+
getSlashingDescriptor() {
|
|
85
|
+
return taprootScriptOnlyFromAst(this.getUnbondingTimelockMiniscript());
|
|
86
|
+
}
|
|
87
|
+
getUnbondingDescriptor() {
|
|
88
|
+
return taprootScriptOnlyFromAst([this.getSlashingMiniscript(), this.getUnbondingTimelockMiniscript()]);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.BabylonDescriptorBuilder = BabylonDescriptorBuilder;
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL2Rlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBS0gsOENBR0M7QUFORCw0REFBeUQ7QUFHekQsU0FBZ0IsaUJBQWlCO0lBQy9CLG9HQUFvRztJQUNwRyxPQUFPLGtFQUFrRSxDQUFDO0FBQzVFLENBQUM7QUFFRCxpREFBaUQ7QUFDakQsU0FBUyxFQUFFLENBQUMsQ0FBUztJQUNuQixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYztJQUNoQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLFNBQWlCLEVBQUUsSUFBYztJQUNsRCxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsQ0FBa0I7SUFDbEQsT0FBTyw0QkFBVSxDQUFDLFVBQVUsQ0FBQyxxQkFBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzdGLENBQUM7QUFFRCxNQUFhLHdCQUF3QjtJQUNuQyxZQUNTLFNBQWlCLEVBQ2pCLG9CQUE4QixF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InNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2JhYnlsb24vdHJlZS9tYWluL2RvY3NcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9iYWJ5bG9uL2Jsb2IvbWFpbi9kb2NzL3N0YWtpbmctc2NyaXB0Lm1kXG4gKi9cblxuaW1wb3J0IHsgRGVzY3JpcHRvciwgYXN0IH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5pbXBvcnQgeyBTdGFraW5nUGFyYW1zIH0gZnJvbSAnQGJpdGdvLWJldGEvYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5zcGVuZGFibGVLZXkoKTogc3RyaW5nIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2J0Yy1zdGFraW5nLXRzL2Jsb2IvdjAuNC4wLXJjLjIvc3JjL2NvbnN0YW50cy9pbnRlcm5hbFB1YmtleS50c1xuICByZXR1cm4gJzUwOTI5Yjc0YzFhMDQ5NTRiNzhiNGI2MDM1ZTk3YTVlMDc4YTVhMGYyOGVjOTZkNTQ3YmZlZTlhY2U4MDNhYzAnO1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb25zIGZvciBjcmVhdGluZyBtaW5pc2NyaXB0IG5vZGVzXG5mdW5jdGlvbiBwayhiOiBCdWZmZXIpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICByZXR1cm4geyAndjpwayc6IGIudG9TdHJpbmcoJ2hleCcpIH07XG59XG5cbmZ1bmN0aW9uIHNvcnRlZEtleXMoa2V5czogQnVmZmVyW10pOiBCdWZmZXJbXSB7XG4gIHJldHVybiBbLi4ua2V5c10uc29ydCgoYSwgYikgPT4gYS5jb21wYXJlKGIpKTtcbn1cblxuZnVuY3Rpb24gbXVsdGlBcmdzKHRocmVzaG9sZDogbnVtYmVyLCBrZXlzOiBCdWZmZXJbXSk6IFtudW1iZXIsIC4uLnN0cmluZ1tdXSB7XG4gIHJldHVybiBbdGhyZXNob2xkLCAuLi5zb3J0ZWRLZXlzKGtleXMpLm1hcCgoaykgPT4gay50b1N0cmluZygnaGV4JykpXTtcbn1cblxuZnVuY3Rpb24gdGFwcm9vdFNjcmlwdE9ubHlGcm9tQXN0KG46IGFzdC5UYXBUcmVlTm9kZSk6IERlc2NyaXB0b3Ige1xuICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHsgdHI6IFtnZXRVbnNwZW5kYWJsZUtleSgpLCBuXSB9KSwgJ2RlZmluaXRlJyk7XG59XG5cbmV4cG9ydCBjbGFzcyBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3Rha2VyS2V5OiBCdWZmZXIsXG4gICAgcHVibGljIGZpbmFsaXR5UHJvdmlkZXJLZXlzOiBCdWZmZXJbXSxcbiAgICBwdWJsaWMgY292ZW5hbnRLZXlzOiBCdWZmZXJbXSxcbiAgICBwdWJsaWMgY292ZW5hbnRUaHJlc2hvbGQ6IG51bWJlcixcbiAgICBwdWJsaWMgc3Rha2luZ1RpbWVMb2NrOiBudW1iZXIsXG4gICAgcHVibGljIHVuYm9uZGluZ1RpbWVMb2NrOiBudW1iZXJcbiAgKSB7fVxuXG4gIHN0YXRpYyBmcm9tUGFyYW1zKFxuICAgIHBhcmFtczoge1xuICAgICAgc3Rha2VyS2V5OiBCdWZmZXI7XG4gICAgICBmaW5hbGl0eVByb3ZpZGVyS2V5czogQnVmZmVyW107XG4gICAgfSAmIFN0YWtpbmdQYXJhbXNcbiAgKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgICAvKlxuXG4gIGNvbnN0IHN0YWtlcktleSA9IGdldEVDS2V5KCdzdGFrZXInKTtcbiAgY29uc3QgY292ZW5hbnRUaHJlc2hvbGQgPSBzdGFraW5nUGFyYW1zLmNvdmVuYW50UXVvcnVtO1xuICBjb25zdCBzdGFraW5nVGltZWxvY2sgPSBzdGFraW5nUGFyYW1zLm1pblN0YWtpbmdUaW1lQmxvY2tzO1xuICBjb25zdCB1bmJvbmRpbmdUaW1lbG9jayA9IHN0YWtpbmdQYXJhbXMudW5ib25kaW5nVGltZTtcbiAgY29uc3QgdmVuZG9yQnVpbGRlciA9IG5ldyB2ZW5kb3IuU3Rha2luZ1NjcmlwdERhdGEoXG4gICAgZ2V0WE9ubHlQdWJrZXkoc3Rha2VyS2V5KSxcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cy5tYXAoZ2V0WE9ubHlQdWJrZXkpLFxuICAgIGNvdmVuYW50S2V5cy5tYXAoZ2V0WE9ubHlQdWJrZXkpLFxuICAgIGNvdmVuYW50VGhyZXNob2xkLFxuICAgIHN0YWtpbmdUaW1lbG9jayxcbiAgICB1bmJvbmRpbmdUaW1lbG9ja1xuICApO1xuICAgICAqL1xuICAgIHJldHVybiBuZXcgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyKFxuICAgICAgcGFyYW1zLnN0YWtlcktleSxcbiAgICAgIHBhcmFtcy5maW5hbGl0eVByb3ZpZGVyS2V5cyxcbiAgICAgIHBhcmFtcy5jb3ZlbmFudE5vQ29vcmRQa3MubWFwKChrKSA9PiBCdWZmZXIuZnJvbShrLCAnaGV4JykpLFxuICAgICAgcGFyYW1zLmNvdmVuYW50UXVvcnVtLFxuICAgICAgcGFyYW1zLm1pblN0YWtpbmdUaW1lQmxvY2tzLFxuICAgICAgcGFyYW1zLnVuYm9uZGluZ1RpbWVcbiAgICApO1xuICB9XG5cbiAgZ2V0VGltZWxvY2tNaW5pc2NyaXB0KCk6IGFzdC5NaW5pc2NyaXB0Tm9kZSB7XG4gICAgcmV0dXJuIHsgYW5kX3Y6IFtwayh0aGlzLnN0YWtlcktleSksIHsgb2xkZXI6IHRoaXMuc3Rha2luZ1RpbWVMb2NrIH1dIH07XG4gIH1cblxuICBnZXRVbmJvbmRpbmdNaW5pc2NyaXB0KCk6IGFzdC5NaW5pc2NyaXB0Tm9kZSB7XG4gICAgcmV0dXJuIHsgYW5kX3Y6IFtwayh0aGlzLnN0YWtlcktleSksIHsgbXVsdGlfYTogbXVsdGlBcmdzKHRoaXMuY292ZW5hbnRUaHJlc2hvbGQsIHRoaXMuY292ZW5hbnRLZXlzKSB9XSB9O1xuICB9XG5cbiAgZ2V0U2xhc2hpbmdNaW5pc2NyaXB0KCk6IGFzdC5NaW5pc2NyaXB0Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFuZF92OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhbmRfdjogW1xuICAgICAgICAgICAgcGsodGhpcy5zdGFrZXJLZXkpLFxuICAgICAgICAgICAgdGhpcy5maW5hbGl0eVByb3ZpZGVyS2V5cy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgPyB7ICd2OnBrJzogdGhpcy5maW5hbGl0eVByb3ZpZGVyS2V5c1swXS50b1N0cmluZygnaGV4JykgfVxuICAgICAgICAgICAgICA6IHsgJ3Y6bXVsdGlfYSc6IG11bHRpQXJncygxLCB0aGlzLmZpbmFsaXR5UHJvdmlkZXJLZXlzKSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgbXVsdGlfYTogbXVsdGlBcmdzKHRoaXMuY292ZW5hbnRUaHJlc2hvbGQsIHRoaXMuY292ZW5hbnRLZXlzKSB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0VW5ib25kaW5nVGltZWxvY2tNaW5pc2NyaXB0KCk6IGFzdC5NaW5pc2NyaXB0Tm9kZSB7XG4gICAgcmV0dXJuIHsgYW5kX3Y6IFtwayh0aGlzLnN0YWtlcktleSksIHsgb2xkZXI6IHRoaXMudW5ib25kaW5nVGltZUxvY2sgfV0gfTtcbiAgfVxuXG4gIGdldFN0YWtpbmdEZXNjcmlwdG9yKCk6IERlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0YXByb290U2NyaXB0T25seUZyb21Bc3QoW1xuICAgICAgdGhpcy5nZXRTbGFzaGluZ01pbmlzY3JpcHQoKSxcbiAgICAgIFt0aGlzLmdldFVuYm9uZGluZ01pbmlzY3JpcHQoKSwgdGhpcy5nZXRUaW1lbG9ja01pbmlzY3JpcHQoKV0sXG4gICAgXSk7XG4gIH1cblxuICBnZXRTbGFzaGluZ0Rlc2NyaXB0b3IoKTogRGVzY3JpcHRvciB7XG4gICAgcmV0dXJuIHRhcHJvb3RTY3JpcHRPbmx5RnJvbUFzdCh0aGlzLmdldFVuYm9uZGluZ1RpbWVsb2NrTWluaXNjcmlwdCgpKTtcbiAgfVxuXG4gIGdldFVuYm9uZGluZ0Rlc2NyaXB0b3IoKTogRGVzY3JpcHRvciB7XG4gICAgcmV0dXJuIHRhcHJvb3RTY3JpcHRPbmx5RnJvbUFzdChbdGhpcy5nZXRTbGFzaGluZ01pbmlzY3JpcHQoKSwgdGhpcy5nZXRVbmJvbmRpbmdUaW1lbG9ja01pbmlzY3JpcHQoKV0pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./delegationMessage"), exports);
|
|
18
|
+
__exportStar(require("./descriptor"), exports);
|
|
19
|
+
__exportStar(require("./stakingParams"), exports);
|
|
20
|
+
__exportStar(require("./stakingManager"), exports);
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQW9DO0FBQ3BDLCtDQUE2QjtBQUM3QixrREFBZ0M7QUFDaEMsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZWxlZ2F0aW9uTWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFraW5nUGFyYW1zJztcbmV4cG9ydCAqIGZyb20gJy4vc3Rha2luZ01hbmFnZXInO1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyUtils.d.ts","sourceRoot":"","sources":["../../../src/babylon/keyUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5VXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9rZXlVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLHdDQUVDO0FBRkQsU0FBZ0IsY0FBYyxDQUFDLEdBQW9CO0lBQ2pELE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVDUGFpckludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFhPbmx5UHVia2V5KGtleTogRUNQYWlySW50ZXJmYWNlKTogQnVmZmVyIHtcbiAgcmV0dXJuIGtleS5wdWJsaWNLZXkuc3ViYXJyYXkoMSk7XG59XG4iXX0=
|
|
@@ -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-beta/utxo-lib';
|
|
3
|
+
import * as vendor from '@bitgo-beta/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,sBAAsB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,2CAA2C,CAAC;AAIpE,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"}
|