@bitgo-beta/utxo-staking 1.1.0-alpha.63 → 1.1.0-alpha.64

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.
@@ -4,7 +4,6 @@ import * as bitcoinjslib from 'bitcoinjs-lib';
4
4
  import * as utxolib from '@bitgo-beta/utxo-lib';
5
5
  import { Descriptor } from '@bitgo/wasm-miniscript';
6
6
  import { BabylonDescriptorBuilder } from './descriptor';
7
- import { BabylonNetworkLike } from './network';
8
7
  export type ValueWithTypeUrl<T> = {
9
8
  typeUrl: string;
10
9
  value: T;
@@ -17,15 +16,7 @@ type Result = {
17
16
  unsignedDelegationMsg: ValueWithTypeUrl<babylonProtobuf.btcstakingtx.MsgCreateBTCDelegation>;
18
17
  stakingTx: bitcoinjslib.Transaction;
19
18
  };
20
- /**
21
- * @param stakingKey - this is the single-sig key that is used for co-signing the staking output
22
- * @param changeAddress - this is unrelated to the staking key and is used for the change output
23
- */
24
- export declare function toStakerInfo(stakingKey: utxolib.ECPairInterface | Buffer | string, changeAddress: string): vendor.StakerInfo;
25
- export declare function createStaking(network: BabylonNetworkLike, blockHeight: number, stakerBtcInfo: vendor.StakerInfo, stakingInput: vendor.StakingInputs, versionedParams?: vendor.VersionedStakingParams[]): vendor.Staking;
26
- type TransactionLike = bitcoinjslib.Psbt | bitcoinjslib.Transaction | utxolib.Transaction | utxolib.bitgo.UtxoTransaction<bigint | number> | utxolib.Psbt | utxolib.bitgo.UtxoPsbt;
27
- export declare function toStakingTransaction(tx: TransactionLike): bitcoinjslib.Transaction;
28
- export declare function createDelegationMessageWithTransaction(manager: vendor.BabylonBtcStakingManager, staking: vendor.Staking, stakingAmountSat: number, transaction: TransactionLike, babylonAddress: string): Promise<ValueWithTypeUrl<babylonProtobuf.btcstakingtx.MsgCreateBTCDelegation>>;
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>;
29
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>;
30
21
  export {};
31
22
  //# sourceMappingURL=delegationMessage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"delegationMessage.d.ts","sourceRoot":"","sources":["../../../src/babylon/delegationMessage.ts"],"names":[],"mappings":"AAKA,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;AAIpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAsB,MAAM,WAAW,CAAC;AAEnE,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;AAEF;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,UAAU,EAAE,OAAO,CAAC,eAAe,GAAG,MAAM,GAAG,MAAM,EACrD,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,UAAU,CAWnB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,CAAC,UAAU,EAChC,YAAY,EAAE,MAAM,CAAC,aAAa,EAClC,eAAe,GAAE,MAAM,CAAC,sBAAsB,EAA8B,GAC3E,MAAM,CAAC,OAAO,CAehB;AAED,KAAK,eAAe,GAChB,YAAY,CAAC,IAAI,GACjB,YAAY,CAAC,WAAW,GACxB,OAAO,CAAC,WAAW,GACnB,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,GAC9C,OAAO,CAAC,IAAI,GACZ,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC;AAe3B,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,eAAe,GAAG,YAAY,CAAC,WAAW,CAKlF;AAQD,wBAAsB,sCAAsC,CAC1D,OAAO,EAAE,MAAM,CAAC,wBAAwB,EACxC,OAAO,EAAE,MAAM,CAAC,OAAO,EACvB,gBAAgB,EAAE,MAAM,EACxB,WAAW,EAAE,eAAe,EAC5B,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,YAAY,CAAC,sBAAsB,CAAC,CAAC,CAiBhF;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,CAgBjB"}
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"}
@@ -38,23 +38,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
39
  exports.getSignedPsbt = getSignedPsbt;
40
40
  exports.getBtcProviderForECKey = getBtcProviderForECKey;
41
- exports.toStakerInfo = toStakerInfo;
42
- exports.createStaking = createStaking;
43
- exports.toStakingTransaction = toStakingTransaction;
44
- exports.createDelegationMessageWithTransaction = createDelegationMessageWithTransaction;
41
+ exports.createUnsignedPreStakeRegistrationBabylonTransaction = createUnsignedPreStakeRegistrationBabylonTransaction;
45
42
  exports.createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider = createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider;
46
- /**
47
- * https://github.com/babylonlabs-io/babylon/blob/v1.99.0-snapshot.250211/x/btcstaking/types/validate_parsed_message.go
48
- */
49
43
  const assert_1 = __importDefault(require("assert"));
50
44
  const vendor = __importStar(require("@bitgo-beta/babylonlabs-io-btc-staking-ts"));
51
45
  const bitcoinjslib = __importStar(require("bitcoinjs-lib"));
52
- const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
53
- const utxo_core_1 = require("@bitgo-beta/utxo-core");
54
46
  const descriptor_1 = require("@bitgo-beta/utxo-core/descriptor");
55
47
  const stakingManager_1 = require("./stakingManager");
56
48
  const stakingParams_1 = require("./stakingParams");
57
- const network_1 = require("./network");
58
49
  function getSignedPsbt(psbt, descriptor, signers, { finalize = false }) {
59
50
  const wrappedPsbt = (0, descriptor_1.toWrappedPsbt)(psbt.toBuffer());
60
51
  const signedInputs = psbt.data.inputs.flatMap((input, i) => {
@@ -105,72 +96,36 @@ function getBtcProviderForECKey(descriptorBuilder, stakerKey) {
105
96
  },
106
97
  };
107
98
  }
108
- /**
109
- * @param stakingKey - this is the single-sig key that is used for co-signing the staking output
110
- * @param changeAddress - this is unrelated to the staking key and is used for the change output
111
- */
112
- function toStakerInfo(stakingKey, changeAddress) {
113
- if (typeof stakingKey === 'object' && 'publicKey' in stakingKey) {
114
- stakingKey = stakingKey.publicKey;
115
- }
116
- if (typeof stakingKey === 'string') {
117
- stakingKey = Buffer.from(stakingKey, 'hex');
118
- }
119
- return {
120
- publicKeyNoCoordHex: (0, utxo_core_1.toXOnlyPublicKey)(stakingKey).toString('hex'),
121
- address: changeAddress,
122
- };
123
- }
124
- function createStaking(network, blockHeight, stakerBtcInfo, stakingInput, versionedParams = (0, stakingParams_1.getStakingParams)(network)) {
125
- if (blockHeight === 0) {
126
- throw new Error('Babylon BTC tip height cannot be 0');
127
- }
128
- // Get the Babylon params based on the BTC tip height from Babylon chain
129
- const params = vendor.getBabylonParamByBtcHeight(blockHeight, versionedParams);
130
- return new vendor.Staking((0, network_1.toBitcoinJsNetwork)(network), stakerBtcInfo, params, stakingInput.finalityProviderPkNoCoordHex, stakingInput.stakingTimelock);
131
- }
132
- function toStakingTransactionFromPsbt(psbt) {
133
- if (!(psbt instanceof utxolib.bitgo.UtxoPsbt)) {
134
- psbt = utxolib.bitgo.createPsbtFromBuffer(psbt.toBuffer(), utxolib.networks.bitcoin);
135
- }
136
- if (psbt instanceof utxolib.bitgo.UtxoPsbt) {
137
- // only utxolib.bitgo.UtxoPsbt has the getUnsignedTx method
138
- return bitcoinjslib.Transaction.fromHex(psbt.getUnsignedTx().toHex());
139
- }
140
- throw new Error('illegal state');
141
- }
142
- function toStakingTransaction(tx) {
143
- if (tx instanceof bitcoinjslib.Psbt || tx instanceof utxolib.Psbt) {
144
- return toStakingTransactionFromPsbt(tx);
145
- }
146
- return bitcoinjslib.Transaction.fromHex(tx.toHex());
147
- }
148
99
  /*
149
100
  * This is mostly lifted from
150
101
  * https://github.com/babylonlabs-io/btc-staking-ts/blob/v0.4.0-rc.2/src/staking/manager.ts#L100-L172
151
102
  *
152
103
  * The difference is that here we are returning an _unsigned_ delegation message.
153
104
  */
154
- async function createDelegationMessageWithTransaction(manager, staking, stakingAmountSat, transaction, babylonAddress) {
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
+ }
155
112
  if (!vendor.isValidBabylonAddress(babylonAddress)) {
156
113
  throw new Error('Invalid Babylon address');
157
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);
158
120
  // Create delegation message without including inclusion proof
159
- return manager.createBtcDelegationMsg(staking, {
160
- stakingTimelock: staking.stakingTimelock,
161
- finalityProviderPkNoCoordHex: staking.finalityProviderPkNoCoordHex,
162
- stakingAmountSat,
163
- }, toStakingTransaction(transaction), babylonAddress, staking.stakerInfo, staking.params);
121
+ const msg = await manager.createBtcDelegationMsg(staking, stakingInput, transaction, babylonAddress, stakerBtcInfo, params);
122
+ return {
123
+ unsignedDelegationMsg: msg,
124
+ stakingTx: transaction,
125
+ };
164
126
  }
165
127
  async function createUnsignedPreStakeRegistrationBabylonTransactionWithBtcProvider(btcProvider, network, stakerBtcInfo, stakingInput, babylonBtcTipHeight, inputUTXOs, feeRateSatB, babylonAddress, stakingParams = (0, stakingParams_1.getStakingParams)(network)) {
166
- if (inputUTXOs.length === 0) {
167
- throw new Error('No input UTXOs provided');
168
- }
169
128
  const manager = (0, stakingManager_1.createStakingManager)(network, btcProvider, stakingParams);
170
- const staking = createStaking(network, babylonBtcTipHeight, stakerBtcInfo, stakingInput, stakingParams);
171
- // Create unsigned staking transaction
172
- const { transaction } = staking.createStakingTransaction(stakingInput.stakingAmountSat, inputUTXOs, feeRateSatB);
173
- const unsignedDelegationMsg = await createDelegationMessageWithTransaction(manager, staking, stakingInput.stakingAmountSat, transaction, babylonAddress);
174
- return { unsignedDelegationMsg, stakingTx: transaction };
129
+ return await createUnsignedPreStakeRegistrationBabylonTransaction(manager, stakingParams, network, stakerBtcInfo, stakingInput, babylonBtcTipHeight, inputUTXOs, feeRateSatB, babylonAddress);
175
130
  }
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvbk1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9kZWxlZ2F0aW9uTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQSxzQ0F3QkM7QUFFRCx3REFxQ0M7QUFXRCxvQ0FjQztBQUVELHNDQXFCQztBQXVCRCxvREFLQztBQVFELHdGQXVCQztBQUVELGtKQTBCQztBQTFORDs7R0FFRztBQUNILG9EQUE0QjtBQUU1QixrRkFBb0U7QUFFcEUsNERBQThDO0FBQzlDLDhEQUFnRDtBQUVoRCxxREFBeUQ7QUFDekQsaUVBQWlFO0FBR2pFLHFEQUF3RDtBQUN4RCxtREFBbUQ7QUFDbkQsdUNBQW1FO0FBSW5FLFNBQWdCLGFBQWEsQ0FDM0IsSUFBdUIsRUFDdkIsVUFBc0IsRUFDdEIsT0FBa0MsRUFDbEMsRUFBRSxRQUFRLEdBQUcsS0FBSyxFQUFFO0lBRXBCLE1BQU0sV0FBVyxHQUFHLElBQUEsMEJBQWEsRUFBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNuRCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDekQsSUFBQSxnQkFBTSxFQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQixJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUM1RSxXQUFXLENBQUMseUJBQXlCLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFB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QUEsZ0NBQWdCLEVBQUMsT0FBTyxDQUFDO0lBRTFFLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLElBQUEscUNBQW9CLEVBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUMxRSxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDeEcsc0NBQXNDO0lBQ3RDLE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsd0JBQXdCLENBQUMsWUFBWSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNqSCxNQUFNLHFCQUFxQixHQUFHLE1BQU0sc0NBQXNDLENBQ3hFLE9BQU8sRUFDUCxPQUFPLEVBQ1AsWUFBWSxDQUFDLGdCQUFnQixFQUM3QixXQUFXLEVBQ1gsY0FBYyxDQUNmLENBQUM7SUFDRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9iYWJ5bG9uL2Jsb2IvdjEuOTkuMC1zbmFwc2hvdC4yNTAyMTEveC9idGNzdGFraW5nL3R5cGVzL3ZhbGlkYXRlX3BhcnNlZF9tZXNzYWdlLmdvXG4gKi9cbmltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdmVuZG9yIGZyb20gJ0BiaXRnby1iZXRhL2JhYnlsb25sYWJzLWlvLWJ0Yy1zdGFraW5nLXRzJztcbmltcG9ydCAqIGFzIGJhYnlsb25Qcm90b2J1ZiBmcm9tICdAYmFieWxvbmxhYnMtaW8vYmFieWxvbi1wcm90by10cyc7XG5pbXBvcnQgKiBhcyBiaXRjb2luanNsaWIgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCB7IHRvWE9ubHlQdWJsaWNLZXkgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWNvcmUnO1xuaW1wb3J0IHsgdG9XcmFwcGVkUHNidCB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tY29yZS9kZXNjcmlwdG9yJztcblxuaW1wb3J0IHsgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIH0gZnJvbSAnLi9kZXNjcmlwdG9yJztcbmltcG9ydCB7IGNyZWF0ZVN0YWtpbmdNYW5hZ2VyIH0gZnJvbSAnLi9zdGFraW5nTWFuYWdlcic7XG5pbXBvcnQgeyBnZXRTdGFraW5nUGFyYW1zIH0gZnJvbSAnLi9zdGFraW5nUGFyYW1zJztcbmltcG9ydCB7IEJhYnlsb25OZXR3b3JrTGlrZSwgdG9CaXRjb2luSnNOZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3JrJztcblxuZXhwb3J0IHR5cGUgVmFsdWVXaXRoVHlwZVVybDxUPiA9IHsgdHlwZVVybDogc3RyaW5nOyB2YWx1ZTogVCB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2lnbmVkUHNidChcbiAgcHNidDogYml0Y29pbmpzbGliLlBzYnQsXG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gIHNpZ25lcnM6IHV0eG9saWIuRUNQYWlySW50ZXJmYWNlW10sXG4gIHsgZmluYWxpemUgPSBmYWxzZSB9XG4pOiBiaXRjb2luanNsaWIuUHNidCB7XG4gIGNvbnN0IHdyYXBwZWRQc2J0ID0gdG9XcmFwcGVkUHNidChwc2J0LnRvQnVmZmVyKCkpO1xuICBjb25zdCBzaWduZWRJbnB1dHMgPSBwc2J0LmRhdGEuaW5wdXRzLmZsYXRNYXAoKGlucHV0LCBpKSA9PiB7XG4gICAgYXNzZXJ0KGlucHV0LndpdG5lc3NVdHhvKTtcbiAgICBpZiAoQnVmZmVyLmZyb20oZGVzY3JpcHRvci5zY3JpcHRQdWJrZXkoKSkuZXF1YWxzKGlucHV0LndpdG5lc3NVdHhvLnNjcmlwdCkpIHtcbiAgICAgIHdyYXBwZWRQc2J0LnVwZGF0ZUlucHV0V2l0aERlc2NyaXB0b3IoaSwgZGVzY3JpcHRvcik7XG4gICAgICBjb25zdCBzaWduUmVzdWx0cyA9IHNpZ25lcnMubWFwKChzaWduZXIpID0+IHtcbiAgICAgICAgYXNzZXJ0KHNpZ25lci5wcml2YXRlS2V5KTtcbiAgICAgICAgcmV0dXJuIHdyYXBwZWRQc2J0LnNpZ25XaXRoUHJ2KHNpZ25lci5wcml2YXRlS2V5KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIFtbaSwgc2lnblJlc3VsdHNdXTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9KTtcbiAgYXNzZXJ0KHNpZ25lZElucHV0cy5sZW5ndGggPiAwKTtcbiAgaWYgKGZpbmFsaXplKSB7XG4gICAgd3JhcHBlZFBzYnQuZmluYWxpemUoKTtcbiAgfVxuICByZXR1cm4gYml0Y29pbmpzbGliLlBzYnQuZnJvbUJ1ZmZlcihCdWZmZXIuZnJvbSh3cmFwcGVkUHNidC5zZXJpYWxpemUoKSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QnRjUHJvdmlkZXJGb3JFQ0tleShcbiAgZGVzY3JpcHRvckJ1aWxkZXI6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlcixcbiAgc3Rha2VyS2V5OiB1dHhvbGliLkVDUGFpckludGVyZmFjZVxuKTogdmVuZG9yLkJ0Y1Byb3ZpZGVyIHtcbiAgZnVuY3Rpb24gc2lnbldpdGhEZXNjcmlwdG9yKFxuICAgIHBzYnQ6IGJpdGNvaW5qc2xpYi5Qc2J0LFxuICAgIGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gICAga2V5OiB1dHhvbGliLkVDUGFpckludGVyZmFjZVxuICApOiBiaXRjb2luanNsaWIuUHNidCB7XG4gICAgcHNidCA9IGdldFNpZ25lZFBzYnQocHNidCwgZGVzY3JpcHRvciwgW2tleV0sIHsgZmluYWxpemU6IGZhbHNlIH0pO1xuICAgIC8vIEJVRzogd2UgbmVlZCB0byBibGluZGx5IGZpbmFsaXplIGhlcmUgZXZlbiB0aG91Z2ggd2UgaGF2ZSBub3QgZnVsbHkgc2lnbmVkXG4gICAgcHNidC5maW5hbGl6ZUFsbElucHV0cygpO1xuICAgIHJldHVybiBwc2J0O1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBhc3luYyBzaWduTWVzc2FnZShzaWduaW5nU3RlcDogdmVuZG9yLlNpZ25pbmdTdGVwLCBtZXNzYWdlOiBzdHJpbmcsIHR5cGU6ICdlY2RzYScpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgYXNzZXJ0KHR5cGUgPT09ICdlY2RzYScpO1xuICAgICAgc3dpdGNoIChzaWduaW5nU3RlcCkge1xuICAgICAgICBjYXNlICdwcm9vZi1vZi1wb3NzZXNzaW9uJzpcbiAgICAgICAgICByZXR1cm4gc3Rha2VyS2V5LnNpZ24oQnVmZmVyLmZyb20obWVzc2FnZSwgJ2hleCcpKS50b1N0cmluZygnaGV4Jyk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHNpZ25pbmcgc3RlcDogJHtzaWduaW5nU3RlcH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIGFzeW5jIHNpZ25Qc2J0KHNpZ25pbmdTdGVwOiB2ZW5kb3IuU2lnbmluZ1N0ZXAsIHBzYnRIZXg6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICBjb25zdCBwc2J0ID0gYml0Y29pbmpzbGliLlBzYnQuZnJvbUhleChwc2J0SGV4KTtcbiAgICAgIHN3aXRjaCAoc2lnbmluZ1N0ZXApIHtcbiAgICAgICAgY2FzZSAnc3Rha2luZy1zbGFzaGluZyc6XG4gICAgICAgICAgcmV0dXJuIHNpZ25XaXRoRGVzY3JpcHRvcihwc2J0LCBkZXNjcmlwdG9yQnVpbGRlci5nZXRTdGFraW5nRGVzY3JpcHRvcigpLCBzdGFrZXJLZXkpLnRvSGV4KCk7XG4gICAgICAgIGNhc2UgJ3VuYm9uZGluZy1zbGFzaGluZyc6XG4gICAgICAgICAgcmV0dXJuIHNpZ25XaXRoRGVzY3JpcHRvcihwc2J0LCBkZXNjcmlwdG9yQnVpbGRlci5nZXRVbmJvbmRpbmdEZXNjcmlwdG9yKCksIHN0YWtlcktleSkudG9IZXgoKTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHVuZXhwZWN0ZWQgc2lnbmluZyBzdGVwOiAke3NpZ25pbmdTdGVwfWApO1xuICAgICAgfVxuICAgIH0sXG4gIH07XG59XG5cbnR5cGUgUmVzdWx0ID0ge1xuICB1bnNpZ25lZERlbGVnYXRpb25Nc2c6IFZhbHVlV2l0aFR5cGVVcmw8YmFieWxvblByb3RvYnVmLmJ0Y3N0YWtpbmd0eC5Nc2dDcmVhdGVCVENEZWxlZ2F0aW9uPjtcbiAgc3Rha2luZ1R4OiBiaXRjb2luanNsaWIuVHJhbnNhY3Rpb247XG59O1xuXG4vKipcbiAqIEBwYXJhbSBzdGFraW5nS2V5IC0gdGhpcyBpcyB0aGUgc2luZ2xlLXNpZyBrZXkgdGhhdCBpcyB1c2VkIGZvciBjby1zaWduaW5nIHRoZSBzdGFraW5nIG91dHB1dFxuICogQHBhcmFtIGNoYW5nZUFkZHJlc3MgLSB0aGlzIGlzIHVucmVsYXRlZCB0byB0aGUgc3Rha2luZyBrZXkgYW5kIGlzIHVzZWQgZm9yIHRoZSBjaGFuZ2Ugb3V0cHV0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0b1N0YWtlckluZm8oXG4gIHN0YWtpbmdLZXk6IHV0eG9saWIuRUNQYWlySW50ZXJmYWNlIHwgQnVmZmVyIHwgc3RyaW5nLFxuICBjaGFuZ2VBZGRyZXNzOiBzdHJpbmdcbik6IHZlbmRvci5TdGFrZXJJbmZvIHtcbiAgaWYgKHR5cGVvZiBzdGFraW5nS2V5ID09PSAnb2JqZWN0JyAmJiAncHVibGljS2V5JyBpbiBzdGFraW5nS2V5KSB7XG4gICAgc3Rha2luZ0tleSA9IHN0YWtpbmdLZXkucHVibGljS2V5O1xuICB9XG4gIGlmICh0eXBlb2Ygc3Rha2luZ0tleSA9PT0gJ3N0cmluZycpIHtcbiAgICBzdGFraW5nS2V5ID0gQnVmZmVyLmZyb20oc3Rha2luZ0tleSwgJ2hleCcpO1xuICB9XG4gIHJldHVybiB7XG4gICAgcHVibGljS2V5Tm9Db29yZEhleDogdG9YT25seVB1YmxpY0tleShzdGFraW5nS2V5KS50b1N0cmluZygnaGV4JyksXG4gICAgYWRkcmVzczogY2hhbmdlQWRkcmVzcyxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVN0YWtpbmcoXG4gIG5ldHdvcms6IEJhYnlsb25OZXR3b3JrTGlrZSxcbiAgYmxvY2tIZWlnaHQ6IG51bWJlcixcbiAgc3Rha2VyQnRjSW5mbzogdmVuZG9yLlN0YWtlckluZm8sXG4gIHN0YWtpbmdJbnB1dDogdmVuZG9yLlN0YWtpbmdJbnB1dHMsXG4gIHZlcnNpb25lZFBhcmFtczogdmVuZG9yLlZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IGdldFN0YWtpbmdQYXJhbXMobmV0d29yaylcbik6IHZlbmRvci5TdGFraW5nIHtcbiAgaWYgKGJsb2NrSGVpZ2h0ID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCYWJ5bG9uIEJUQyB0aXAgaGVpZ2h0IGNhbm5vdCBiZSAwJyk7XG4gIH1cblxuICAvLyBHZXQgdGhlIEJhYnlsb24gcGFyYW1zIGJhc2VkIG9uIHRoZSBCVEMgdGlwIGhlaWdodCBmcm9tIEJhYnlsb24gY2hhaW5cbiAgY29uc3QgcGFyYW1zID0gdmVuZG9yLmdldEJhYnlsb25QYXJhbUJ5QnRjSGVpZ2h0KGJsb2NrSGVpZ2h0LCB2ZXJzaW9uZWRQYXJhbXMpO1xuXG4gIHJldHVybiBuZXcgdmVuZG9yLlN0YWtpbmcoXG4gICAgdG9CaXRjb2luSnNOZXR3b3JrKG5ldHdvcmspLFxuICAgIHN0YWtlckJ0Y0luZm8sXG4gICAgcGFyYW1zLFxuICAgIHN0YWtpbmdJbnB1dC5maW5hbGl0eVByb3ZpZGVyUGtOb0Nvb3JkSGV4LFxuICAgIHN0YWtpbmdJbnB1dC5zdGFraW5nVGltZWxvY2tcbiAgKTtcbn1cblxudHlwZSBUcmFuc2FjdGlvbkxpa2UgPVxuICB8IGJpdGNvaW5qc2xpYi5Qc2J0XG4gIHwgYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uXG4gIHwgdXR4b2xpYi5UcmFuc2FjdGlvblxuICB8IHV0eG9saWIuYml0Z28uVXR4b1RyYW5zYWN0aW9uPGJpZ2ludCB8IG51bWJlcj5cbiAgfCB1dHhvbGliLlBzYnRcbiAgfCB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0O1xuXG5mdW5jdGlvbiB0b1N0YWtpbmdUcmFuc2FjdGlvbkZyb21Qc2J0KFxuICBwc2J0OiBiaXRjb2luanNsaWIuUHNidCB8IHV0eG9saWIuUHNidCB8IHV0eG9saWIuYml0Z28uVXR4b1BzYnRcbik6IGJpdGNvaW5qc2xpYi5UcmFuc2FjdGlvbiB7XG4gIGlmICghKHBzYnQgaW5zdGFuY2VvZiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0KSkge1xuICAgIHBzYnQgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGcm9tQnVmZmVyKHBzYnQudG9CdWZmZXIoKSwgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luKTtcbiAgfVxuICBpZiAocHNidCBpbnN0YW5jZW9mIHV0eG9saWIuYml0Z28uVXR4b1BzYnQpIHtcbiAgICAvLyBvbmx5IHV0eG9saWIuYml0Z28uVXR4b1BzYnQgaGFzIHRoZSBnZXRVbnNpZ25lZFR4IG1ldGhvZFxuICAgIHJldHVybiBiaXRjb2luanNsaWIuVHJhbnNhY3Rpb24uZnJvbUhleChwc2J0LmdldFVuc2lnbmVkVHgoKS50b0hleCgpKTtcbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ2lsbGVnYWwgc3RhdGUnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvU3Rha2luZ1RyYW5zYWN0aW9uKHR4OiBUcmFuc2FjdGlvbkxpa2UpOiBiaXRjb2luanNsaWIuVHJhbnNhY3Rpb24ge1xuICBpZiAodHggaW5zdGFuY2VvZiBiaXRjb2luanNsaWIuUHNidCB8fCB0eCBpbnN0YW5jZW9mIHV0eG9saWIuUHNidCkge1xuICAgIHJldHVybiB0b1N0YWtpbmdUcmFuc2FjdGlvbkZyb21Qc2J0KHR4KTtcbiAgfVxuICByZXR1cm4gYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uLmZyb21IZXgodHgudG9IZXgoKSk7XG59XG5cbi8qXG4gKiBUaGlzIGlzIG1vc3RseSBsaWZ0ZWQgZnJvbVxuICogaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2J0Yy1zdGFraW5nLXRzL2Jsb2IvdjAuNC4wLXJjLjIvc3JjL3N0YWtpbmcvbWFuYWdlci50cyNMMTAwLUwxNzJcbiAqXG4gKiBUaGUgZGlmZmVyZW5jZSBpcyB0aGF0IGhlcmUgd2UgYXJlIHJldHVybmluZyBhbiBfdW5zaWduZWRfIGRlbGVnYXRpb24gbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZURlbGVnYXRpb25NZXNzYWdlV2l0aFRyYW5zYWN0aW9uKFxuICBtYW5hZ2VyOiB2ZW5kb3IuQmFieWxvbkJ0Y1N0YWtpbmdNYW5hZ2VyLFxuICBzdGFraW5nOiB2ZW5kb3IuU3Rha2luZyxcbiAgc3Rha2luZ0Ftb3VudFNhdDogbnVtYmVyLFxuICB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25MaWtlLFxuICBiYWJ5bG9uQWRkcmVzczogc3RyaW5nXG4pOiBQcm9taXNlPFZhbHVlV2l0aFR5cGVVcmw8YmFieWxvblByb3RvYnVmLmJ0Y3N0YWtpbmd0eC5Nc2dDcmVhdGVCVENEZWxlZ2F0aW9uPj4ge1xuICBpZiAoIXZlbmRvci5pc1ZhbGlkQmFieWxvbkFkZHJlc3MoYmFieWxvbkFkZHJlc3MpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIEJhYnlsb24gYWRkcmVzcycpO1xuICB9XG4gIC8vIENyZWF0ZSBkZWxlZ2F0aW9uIG1lc3NhZ2Ugd2l0aG91dCBpbmNsdWRpbmcgaW5jbHVzaW9uIHByb29mXG4gIHJldHVybiBtYW5hZ2VyLmNyZWF0ZUJ0Y0RlbGVnYXRpb25Nc2coXG4gICAgc3Rha2luZyxcbiAgICB7XG4gICAgICBzdGFraW5nVGltZWxvY2s6IHN0YWtpbmcuc3Rha2luZ1RpbWVsb2NrLFxuICAgICAgZmluYWxpdHlQcm92aWRlclBrTm9Db29yZEhleDogc3Rha2luZy5maW5hbGl0eVByb3ZpZGVyUGtOb0Nvb3JkSGV4LFxuICAgICAgc3Rha2luZ0Ftb3VudFNhdCxcbiAgICB9LFxuICAgIHRvU3Rha2luZ1RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uKSxcbiAgICBiYWJ5bG9uQWRkcmVzcyxcbiAgICBzdGFraW5nLnN0YWtlckluZm8sXG4gICAgc3Rha2luZy5wYXJhbXNcbiAgKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVVuc2lnbmVkUHJlU3Rha2VSZWdpc3RyYXRpb25CYWJ5bG9uVHJhbnNhY3Rpb25XaXRoQnRjUHJvdmlkZXIoXG4gIGJ0Y1Byb3ZpZGVyOiB2ZW5kb3IuQnRjUHJvdmlkZXIsXG4gIG5ldHdvcms6IGJpdGNvaW5qc2xpYi5OZXR3b3JrLFxuICBzdGFrZXJCdGNJbmZvOiB2ZW5kb3IuU3Rha2VySW5mbyxcbiAgc3Rha2luZ0lucHV0OiB2ZW5kb3IuU3Rha2luZ0lucHV0cyxcbiAgYmFieWxvbkJ0Y1RpcEhlaWdodDogbnVtYmVyLFxuICBpbnB1dFVUWE9zOiB2ZW5kb3IuVVRYT1tdLFxuICBmZWVSYXRlU2F0QjogbnVtYmVyLFxuICBiYWJ5bG9uQWRkcmVzczogc3RyaW5nLFxuICBzdGFraW5nUGFyYW1zOiB2ZW5kb3IuVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdID0gZ2V0U3Rha2luZ1BhcmFtcyhuZXR3b3JrKVxuKTogUHJvbWlzZTxSZXN1bHQ+IHtcbiAgaWYgKGlucHV0VVRYT3MubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbnB1dCBVVFhPcyBwcm92aWRlZCcpO1xuICB9XG4gIGNvbnN0IG1hbmFnZXIgPSBjcmVhdGVTdGFraW5nTWFuYWdlcihuZXR3b3JrLCBidGNQcm92aWRlciwgc3Rha2luZ1BhcmFtcyk7XG4gIGNvbnN0IHN0YWtpbmcgPSBjcmVhdGVTdGFraW5nKG5ldHdvcmssIGJhYnlsb25CdGNUaXBIZWlnaHQsIHN0YWtlckJ0Y0luZm8sIHN0YWtpbmdJbnB1dCwgc3Rha2luZ1BhcmFtcyk7XG4gIC8vIENyZWF0ZSB1bnNpZ25lZCBzdGFraW5nIHRyYW5zYWN0aW9uXG4gIGNvbnN0IHsgdHJhbnNhY3Rpb24gfSA9IHN0YWtpbmcuY3JlYXRlU3Rha2luZ1RyYW5zYWN0aW9uKHN0YWtpbmdJbnB1dC5zdGFraW5nQW1vdW50U2F0LCBpbnB1dFVUWE9zLCBmZWVSYXRlU2F0Qik7XG4gIGNvbnN0IHVuc2lnbmVkRGVsZWdhdGlvbk1zZyA9IGF3YWl0IGNyZWF0ZURlbGVnYXRpb25NZXNzYWdlV2l0aFRyYW5zYWN0aW9uKFxuICAgIG1hbmFnZXIsXG4gICAgc3Rha2luZyxcbiAgICBzdGFraW5nSW5wdXQuc3Rha2luZ0Ftb3VudFNhdCxcbiAgICB0cmFuc2FjdGlvbixcbiAgICBiYWJ5bG9uQWRkcmVzc1xuICApO1xuICByZXR1cm4geyB1bnNpZ25lZERlbGVnYXRpb25Nc2csIHN0YWtpbmdUeDogdHJhbnNhY3Rpb24gfTtcbn1cbiJdfQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsZWdhdGlvbk1lc3NhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9kZWxlZ2F0aW9uTWVzc2FnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWVBLHNDQXdCQztBQUVELHdEQXFDQztBQWFELG9IQWdEQztBQUVELGtKQXVCQztBQXBLRCxvREFBNEI7QUFFNUIsa0ZBQW9FO0FBRXBFLDREQUE4QztBQUc5QyxpRUFBaUU7QUFHakUscURBQXdEO0FBQ3hELG1EQUFtRDtBQUluRCxTQUFnQixhQUFhLENBQzNCLElBQXVCLEVBQ3ZCLFVBQXNCLEVBQ3RCLE9BQWtDLEVBQ2xDLEVBQUUsUUFBUSxHQUFHLEtBQUssRUFBRTtJQUVwQixNQUFNLFdBQVcsR0FBRyxJQUFBLDBCQUFhLEVBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDbkQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFO1FBQ3pELElBQUEsZ0JBQU0sRUFBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDMUIsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDNUUsV0FBVyxDQUFDLHlCQUF5QixDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNyRCxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3pDLElBQUEsZ0JBQU0sRUFBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFCLE9BQU8sV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFN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RUFDUCxhQUFhLEVBQ2IsWUFBWSxFQUNaLG1CQUFtQixFQUNuQixVQUFVLEVBQ1YsV0FBVyxFQUNYLGNBQWMsQ0FDZixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcblxuaW1wb3J0ICogYXMgdmVuZG9yIGZyb20gJ0BiaXRnby1iZXRhL2JhYnlsb25sYWJzLWlvLWJ0Yy1zdGFraW5nLXRzJztcbmltcG9ydCAqIGFzIGJhYnlsb25Qcm90b2J1ZiBmcm9tICdAYmFieWxvbmxhYnMtaW8vYmFieWxvbi1wcm90by10cyc7XG5pbXBvcnQgKiBhcyBiaXRjb2luanNsaWIgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcbmltcG9ydCB7IHRvV3JhcHBlZFBzYnQgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWNvcmUvZGVzY3JpcHRvcic7XG5cbmltcG9ydCB7IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5pbXBvcnQgeyBjcmVhdGVTdGFraW5nTWFuYWdlciB9IGZyb20gJy4vc3Rha2luZ01hbmFnZXInO1xuaW1wb3J0IHsgZ2V0U3Rha2luZ1BhcmFtcyB9IGZyb20gJy4vc3Rha2luZ1BhcmFtcyc7XG5cbmV4cG9ydCB0eXBlIFZhbHVlV2l0aFR5cGVVcmw8VD4gPSB7IHR5cGVVcmw6IHN0cmluZzsgdmFsdWU6IFQgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpZ25lZFBzYnQoXG4gIHBzYnQ6IGJpdGNvaW5qc2xpYi5Qc2J0LFxuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICBzaWduZXJzOiB1dHhvbGliLkVDUGFpckludGVyZmFjZVtdLFxuICB7IGZpbmFsaXplID0gZmFsc2UgfVxuKTogYml0Y29pbmpzbGliLlBzYnQge1xuICBjb25zdCB3cmFwcGVkUHNidCA9IHRvV3JhcHBlZFBzYnQocHNidC50b0J1ZmZlcigpKTtcbiAgY29uc3Qgc2lnbmVkSW5wdXRzID0gcHNidC5kYXRhLmlucHV0cy5mbGF0TWFwKChpbnB1dCwgaSkgPT4ge1xuICAgIGFzc2VydChpbnB1dC53aXRuZXNzVXR4byk7XG4gICAgaWYgKEJ1ZmZlci5mcm9tKGRlc2NyaXB0b3Iuc2NyaXB0UHVia2V5KCkpLmVxdWFscyhpbnB1dC53aXRuZXNzVXR4by5zY3JpcHQpKSB7XG4gICAgICB3cmFwcGVkUHNidC51cGRhdGVJbnB1dFdpdGhEZXNjcmlwdG9yKGksIGRlc2NyaXB0b3IpO1xuICAgICAgY29uc3Qgc2lnblJlc3VsdHMgPSBzaWduZXJzLm1hcCgoc2lnbmVyKSA9PiB7XG4gICAgICAgIGFzc2VydChzaWduZXIucHJpdmF0ZUtleSk7XG4gICAgICAgIHJldHVybiB3cmFwcGVkUHNidC5zaWduV2l0aFBydihzaWduZXIucHJpdmF0ZUtleSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBbW2ksIHNpZ25SZXN1bHRzXV07XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfSk7XG4gIGFzc2VydChzaWduZWRJbnB1dHMubGVuZ3RoID4gMCk7XG4gIGlmIChmaW5hbGl6ZSkge1xuICAgIHdyYXBwZWRQc2J0LmZpbmFsaXplKCk7XG4gIH1cbiAgcmV0dXJuIGJpdGNvaW5qc2xpYi5Qc2J0LmZyb21CdWZmZXIoQnVmZmVyLmZyb20od3JhcHBlZFBzYnQuc2VyaWFsaXplKCkpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJ0Y1Byb3ZpZGVyRm9yRUNLZXkoXG4gIGRlc2NyaXB0b3JCdWlsZGVyOiBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIsXG4gIHN0YWtlcktleTogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2Vcbik6IHZlbmRvci5CdGNQcm92aWRlciB7XG4gIGZ1bmN0aW9uIHNpZ25XaXRoRGVzY3JpcHRvcihcbiAgICBwc2J0OiBiaXRjb2luanNsaWIuUHNidCxcbiAgICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLFxuICAgIGtleTogdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2VcbiAgKTogYml0Y29pbmpzbGliLlBzYnQge1xuICAgIHBzYnQgPSBnZXRTaWduZWRQc2J0KHBzYnQsIGRlc2NyaXB0b3IsIFtrZXldLCB7IGZpbmFsaXplOiBmYWxzZSB9KTtcbiAgICAvLyBCVUc6IHdlIG5lZWQgdG8gYmxpbmRseSBmaW5hbGl6ZSBoZXJlIGV2ZW4gdGhvdWdoIHdlIGhhdmUgbm90IGZ1bGx5IHNpZ25lZFxuICAgIHBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICByZXR1cm4gcHNidDtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgYXN5bmMgc2lnbk1lc3NhZ2Uoc2lnbmluZ1N0ZXA6IHZlbmRvci5TaWduaW5nU3RlcCwgbWVzc2FnZTogc3RyaW5nLCB0eXBlOiAnZWNkc2EnKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIGFzc2VydCh0eXBlID09PSAnZWNkc2EnKTtcbiAgICAgIHN3aXRjaCAoc2lnbmluZ1N0ZXApIHtcbiAgICAgICAgY2FzZSAncHJvb2Ytb2YtcG9zc2Vzc2lvbic6XG4gICAgICAgICAgcmV0dXJuIHN0YWtlcktleS5zaWduKEJ1ZmZlci5mcm9tKG1lc3NhZ2UsICdoZXgnKSkudG9TdHJpbmcoJ2hleCcpO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgdW5leHBlY3RlZCBzaWduaW5nIHN0ZXA6ICR7c2lnbmluZ1N0ZXB9YCk7XG4gICAgICB9XG4gICAgfSxcbiAgICBhc3luYyBzaWduUHNidChzaWduaW5nU3RlcDogdmVuZG9yLlNpZ25pbmdTdGVwLCBwc2J0SGV4OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgY29uc3QgcHNidCA9IGJpdGNvaW5qc2xpYi5Qc2J0LmZyb21IZXgocHNidEhleCk7XG4gICAgICBzd2l0Y2ggKHNpZ25pbmdTdGVwKSB7XG4gICAgICAgIGNhc2UgJ3N0YWtpbmctc2xhc2hpbmcnOlxuICAgICAgICAgIHJldHVybiBzaWduV2l0aERlc2NyaXB0b3IocHNidCwgZGVzY3JpcHRvckJ1aWxkZXIuZ2V0U3Rha2luZ0Rlc2NyaXB0b3IoKSwgc3Rha2VyS2V5KS50b0hleCgpO1xuICAgICAgICBjYXNlICd1bmJvbmRpbmctc2xhc2hpbmcnOlxuICAgICAgICAgIHJldHVybiBzaWduV2l0aERlc2NyaXB0b3IocHNidCwgZGVzY3JpcHRvckJ1aWxkZXIuZ2V0VW5ib25kaW5nRGVzY3JpcHRvcigpLCBzdGFrZXJLZXkpLnRvSGV4KCk7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmV4cGVjdGVkIHNpZ25pbmcgc3RlcDogJHtzaWduaW5nU3RlcH1gKTtcbiAgICAgIH1cbiAgICB9LFxuICB9O1xufVxuXG50eXBlIFJlc3VsdCA9IHtcbiAgdW5zaWduZWREZWxlZ2F0aW9uTXNnOiBWYWx1ZVdpdGhUeXBlVXJsPGJhYnlsb25Qcm90b2J1Zi5idGNzdGFraW5ndHguTXNnQ3JlYXRlQlRDRGVsZWdhdGlvbj47XG4gIHN0YWtpbmdUeDogYml0Y29pbmpzbGliLlRyYW5zYWN0aW9uO1xufTtcblxuLypcbiAqIFRoaXMgaXMgbW9zdGx5IGxpZnRlZCBmcm9tXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmFieWxvbmxhYnMtaW8vYnRjLXN0YWtpbmctdHMvYmxvYi92MC40LjAtcmMuMi9zcmMvc3Rha2luZy9tYW5hZ2VyLnRzI0wxMDAtTDE3MlxuICpcbiAqIFRoZSBkaWZmZXJlbmNlIGlzIHRoYXQgaGVyZSB3ZSBhcmUgcmV0dXJuaW5nIGFuIF91bnNpZ25lZF8gZGVsZWdhdGlvbiBtZXNzYWdlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVW5zaWduZWRQcmVTdGFrZVJlZ2lzdHJhdGlvbkJhYnlsb25UcmFuc2FjdGlvbihcbiAgbWFuYWdlcjogdmVuZG9yLkJhYnlsb25CdGNTdGFraW5nTWFuYWdlcixcbiAgc3Rha2luZ1BhcmFtczogdmVuZG9yLlZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSxcbiAgbmV0d29yazogYml0Y29pbmpzbGliLk5ldHdvcmssXG4gIHN0YWtlckJ0Y0luZm86IHZlbmRvci5TdGFrZXJJbmZvLFxuICBzdGFraW5nSW5wdXQ6IHZlbmRvci5TdGFraW5nSW5wdXRzLFxuICBiYWJ5bG9uQnRjVGlwSGVpZ2h0OiBudW1iZXIsXG4gIGlucHV0VVRYT3M6IHZlbmRvci5VVFhPW10sXG4gIGZlZVJhdGVTYXRCOiBudW1iZXIsXG4gIGJhYnlsb25BZGRyZXNzOiBzdHJpbmdcbik6IFByb21pc2U8UmVzdWx0PiB7XG4gIGlmIChiYWJ5bG9uQnRjVGlwSGVpZ2h0ID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdCYWJ5bG9uIEJUQyB0aXAgaGVpZ2h0IGNhbm5vdCBiZSAwJyk7XG4gIH1cbiAgaWYgKGlucHV0VVRYT3MubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbnB1dCBVVFhPcyBwcm92aWRlZCcpO1xuICB9XG4gIGlmICghdmVuZG9yLmlzVmFsaWRCYWJ5bG9uQWRkcmVzcyhiYWJ5bG9uQWRkcmVzcykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgQmFieWxvbiBhZGRyZXNzJyk7XG4gIH1cblxuICAvLyBHZXQgdGhlIEJhYnlsb24gcGFyYW1zIGJhc2VkIG9uIHRoZSBCVEMgdGlwIGhlaWdodCBmcm9tIEJhYnlsb24gY2hhaW5cbiAgY29uc3QgcGFyYW1zID0gdmVuZG9yLmdldEJhYnlsb25QYXJhbUJ5QnRjSGVpZ2h0KGJhYnlsb25CdGNUaXBIZWlnaHQsIHN0YWtpbmdQYXJhbXMpO1xuXG4gIGNvbnN0IHN0YWtpbmcgPSBuZXcgdmVuZG9yLlN0YWtpbmcoXG4gICAgbmV0d29yayxcbiAgICBzdGFrZXJCdGNJbmZvLFxuICAgIHBhcmFtcyxcbiAgICBzdGFraW5nSW5wdXQuZmluYWxpdHlQcm92aWRlclBrTm9Db29yZEhleCxcbiAgICBzdGFraW5nSW5wdXQuc3Rha2luZ1RpbWVsb2NrXG4gICk7XG5cbiAgLy8gQ3JlYXRlIHVuc2lnbmVkIHN0YWtpbmcgdHJhbnNhY3Rpb25cbiAgY29uc3QgeyB0cmFuc2FjdGlvbiB9ID0gc3Rha2luZy5jcmVhdGVTdGFraW5nVHJhbnNhY3Rpb24oc3Rha2luZ0lucHV0LnN0YWtpbmdBbW91bnRTYXQsIGlucHV0VVRYT3MsIGZlZVJhdGVTYXRCKTtcblxuICAvLyBDcmVhdGUgZGVsZWdhdGlvbiBtZXNzYWdlIHdpdGhvdXQgaW5jbHVkaW5nIGluY2x1c2lvbiBwcm9vZlxuICBjb25zdCBtc2cgPSBhd2FpdCBtYW5hZ2VyLmNyZWF0ZUJ0Y0RlbGVnYXRpb25Nc2coXG4gICAgc3Rha2luZyxcbiAgICBzdGFraW5nSW5wdXQsXG4gICAgdHJhbnNhY3Rpb24sXG4gICAgYmFieWxvbkFkZHJlc3MsXG4gICAgc3Rha2VyQnRjSW5mbyxcbiAgICBwYXJhbXNcbiAgKTtcbiAgcmV0dXJuIHtcbiAgICB1bnNpZ25lZERlbGVnYXRpb25Nc2c6IG1zZyxcbiAgICBzdGFraW5nVHg6IHRyYW5zYWN0aW9uLFxuICB9O1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlVW5zaWduZWRQcmVTdGFrZVJlZ2lzdHJhdGlvbkJhYnlsb25UcmFuc2FjdGlvbldpdGhCdGNQcm92aWRlcihcbiAgYnRjUHJvdmlkZXI6IHZlbmRvci5CdGNQcm92aWRlcixcbiAgbmV0d29yazogYml0Y29pbmpzbGliLk5ldHdvcmssXG4gIHN0YWtlckJ0Y0luZm86IHZlbmRvci5TdGFrZXJJbmZvLFxuICBzdGFraW5nSW5wdXQ6IHZlbmRvci5TdGFraW5nSW5wdXRzLFxuICBiYWJ5bG9uQnRjVGlwSGVpZ2h0OiBudW1iZXIsXG4gIGlucHV0VVRYT3M6IHZlbmRvci5VVFhPW10sXG4gIGZlZVJhdGVTYXRCOiBudW1iZXIsXG4gIGJhYnlsb25BZGRyZXNzOiBzdHJpbmcsXG4gIHN0YWtpbmdQYXJhbXM6IHZlbmRvci5WZXJzaW9uZWRTdGFraW5nUGFyYW1zW10gPSBnZXRTdGFraW5nUGFyYW1zKG5ldHdvcmspXG4pOiBQcm9taXNlPFJlc3VsdD4ge1xuICBjb25zdCBtYW5hZ2VyID0gY3JlYXRlU3Rha2luZ01hbmFnZXIobmV0d29yaywgYnRjUHJvdmlkZXIsIHN0YWtpbmdQYXJhbXMpO1xuICByZXR1cm4gYXdhaXQgY3JlYXRlVW5zaWduZWRQcmVTdGFrZVJlZ2lzdHJhdGlvbkJhYnlsb25UcmFuc2FjdGlvbihcbiAgICBtYW5hZ2VyLFxuICAgIHN0YWtpbmdQYXJhbXMsXG4gICAgbmV0d29yayxcbiAgICBzdGFrZXJCdGNJbmZvLFxuICAgIHN0YWtpbmdJbnB1dCxcbiAgICBiYWJ5bG9uQnRjVGlwSGVpZ2h0LFxuICAgIGlucHV0VVRYT3MsXG4gICAgZmVlUmF0ZVNhdEIsXG4gICAgYmFieWxvbkFkZHJlc3NcbiAgKTtcbn1cbiJdfQ==
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * https://github.com/babylonlabs-io/babylon/tree/main/docs
3
3
  * https://github.com/babylonlabs-io/babylon/blob/main/docs/staking-script.md
4
- * https://github.com/babylonlabs-io/babylon/blob/v1.99.0-snapshot.250211/btcstaking/staking.go
5
4
  */
6
5
  import { Descriptor, ast } from '@bitgo/wasm-miniscript';
7
6
  import { StakingParams } from '@bitgo-beta/babylonlabs-io-btc-staking-ts';
@@ -1 +1 @@
1
- {"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/babylon/descriptor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;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;IAW3B,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,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"}
@@ -2,7 +2,6 @@
2
2
  /**
3
3
  * https://github.com/babylonlabs-io/babylon/tree/main/docs
4
4
  * https://github.com/babylonlabs-io/babylon/blob/main/docs/staking-script.md
5
- * https://github.com/babylonlabs-io/babylon/blob/v1.99.0-snapshot.250211/btcstaking/staking.go
6
5
  */
7
6
  Object.defineProperty(exports, "__esModule", { value: true });
8
7
  exports.BabylonDescriptorBuilder = void 0;
@@ -35,6 +34,21 @@ class BabylonDescriptorBuilder {
35
34
  this.unbondingTimeLock = unbondingTimeLock;
36
35
  }
37
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
+ */
38
52
  return new BabylonDescriptorBuilder(params.stakerKey, params.finalityProviderKeys, params.covenantNoCoordPks.map((k) => Buffer.from(k, 'hex')), params.covenantQuorum, params.minStakingTimeBlocks, params.unbondingTime);
39
53
  }
40
54
  getTimelockMiniscript() {
@@ -75,4 +89,4 @@ class BabylonDescriptorBuilder {
75
89
  }
76
90
  }
77
91
  exports.BabylonDescriptorBuilder = BabylonDescriptorBuilder;
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL2Rlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0dBSUc7OztBQUtILDhDQUdDO0FBTkQsNERBQXlEO0FBR3pELFNBQWdCLGlCQUFpQjtJQUMvQixvR0FBb0c7SUFDcEcsT0FBTyxrRUFBa0UsQ0FBQztBQUM1RSxDQUFDO0FBRUQsaURBQWlEO0FBQ2pELFNBQVMsRUFBRSxDQUFDLENBQVM7SUFDbkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBQWM7SUFDaEMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxTQUFpQixFQUFFLElBQWM7SUFDbEQsT0FBTyxDQUFDLFNBQVMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLENBQWtCO0lBQ2xELE9BQU8sNEJBQVUsQ0FBQyxVQUFVLENBQUMscUJBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUM3RixDQUFDO0FBRUQsTUFBYSx3QkFBd0I7SUFDbkMsWUFDUyxTQUFpQixFQUNqQixvQkFBOEIs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XG4gKiBodHRwczovL2dpdGh1Yi5jb20vYmFieWxvbmxhYnMtaW8vYmFieWxvbi90cmVlL21haW4vZG9jc1xuICogaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2JhYnlsb24vYmxvYi9tYWluL2RvY3Mvc3Rha2luZy1zY3JpcHQubWRcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9iYWJ5bG9uL2Jsb2IvdjEuOTkuMC1zbmFwc2hvdC4yNTAyMTEvYnRjc3Rha2luZy9zdGFraW5nLmdvXG4gKi9cblxuaW1wb3J0IHsgRGVzY3JpcHRvciwgYXN0IH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5pbXBvcnQgeyBTdGFraW5nUGFyYW1zIH0gZnJvbSAnQGJpdGdvLWJldGEvYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5zcGVuZGFibGVLZXkoKTogc3RyaW5nIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2J0Yy1zdGFraW5nLXRzL2Jsb2IvdjAuNC4wLXJjLjIvc3JjL2NvbnN0YW50cy9pbnRlcm5hbFB1YmtleS50c1xuICByZXR1cm4gJzUwOTI5Yjc0YzFhMDQ5NTRiNzhiNGI2MDM1ZTk3YTVlMDc4YTVhMGYyOGVjOTZkNTQ3YmZlZTlhY2U4MDNhYzAnO1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb25zIGZvciBjcmVhdGluZyBtaW5pc2NyaXB0IG5vZGVzXG5mdW5jdGlvbiBwayhiOiBCdWZmZXIpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICByZXR1cm4geyAndjpwayc6IGIudG9TdHJpbmcoJ2hleCcpIH07XG59XG5cbmZ1bmN0aW9uIHNvcnRlZEtleXMoa2V5czogQnVmZmVyW10pOiBCdWZmZXJbXSB7XG4gIHJldHVybiBbLi4ua2V5c10uc29ydCgoYSwgYikgPT4gYS5jb21wYXJlKGIpKTtcbn1cblxuZnVuY3Rpb24gbXVsdGlBcmdzKHRocmVzaG9sZDogbnVtYmVyLCBrZXlzOiBCdWZmZXJbXSk6IFtudW1iZXIsIC4uLnN0cmluZ1tdXSB7XG4gIHJldHVybiBbdGhyZXNob2xkLCAuLi5zb3J0ZWRLZXlzKGtleXMpLm1hcCgoaykgPT4gay50b1N0cmluZygnaGV4JykpXTtcbn1cblxuZnVuY3Rpb24gdGFwcm9vdFNjcmlwdE9ubHlGcm9tQXN0KG46IGFzdC5UYXBUcmVlTm9kZSk6IERlc2NyaXB0b3Ige1xuICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHsgdHI6IFtnZXRVbnNwZW5kYWJsZUtleSgpLCBuXSB9KSwgJ2RlZmluaXRlJyk7XG59XG5cbmV4cG9ydCBjbGFzcyBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3Rha2VyS2V5OiBCdWZmZXIsXG4gICAgcHVibGljIGZpbmFsaXR5UHJvdmlkZXJLZXlzOiBCdWZmZXJbXSxcbiAgICBwdWJsaWMgY292ZW5hbnRLZXlzOiBCdWZmZXJbXSxcbiAgICBwdWJsaWMgY292ZW5hbnRUaHJlc2hvbGQ6IG51bWJlcixcbiAgICBwdWJsaWMgc3Rha2luZ1RpbWVMb2NrOiBudW1iZXIsXG4gICAgcHVibGljIHVuYm9uZGluZ1RpbWVMb2NrOiBudW1iZXJcbiAgKSB7fVxuXG4gIHN0YXRpYyBmcm9tUGFyYW1zKFxuICAgIHBhcmFtczoge1xuICAgICAgc3Rha2VyS2V5OiBCdWZmZXI7XG4gICAgICBmaW5hbGl0eVByb3ZpZGVyS2V5czogQnVmZmVyW107XG4gICAgfSAmIFN0YWtpbmdQYXJhbXNcbiAgKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgICByZXR1cm4gbmV3IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlcihcbiAgICAgIHBhcmFtcy5zdGFrZXJLZXksXG4gICAgICBwYXJhbXMuZmluYWxpdHlQcm92aWRlcktleXMsXG4gICAgICBwYXJhbXMuY292ZW5hbnROb0Nvb3JkUGtzLm1hcCgoaykgPT4gQnVmZmVyLmZyb20oaywgJ2hleCcpKSxcbiAgICAgIHBhcmFtcy5jb3ZlbmFudFF1b3J1bSxcbiAgICAgIHBhcmFtcy5taW5TdGFraW5nVGltZUJsb2NrcyxcbiAgICAgIHBhcmFtcy51bmJvbmRpbmdUaW1lXG4gICAgKTtcbiAgfVxuXG4gIGdldFRpbWVsb2NrTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7IGFuZF92OiBbcGsodGhpcy5zdGFrZXJLZXkpLCB7IG9sZGVyOiB0aGlzLnN0YWtpbmdUaW1lTG9jayB9XSB9O1xuICB9XG5cbiAgZ2V0VW5ib25kaW5nTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7IGFuZF92OiBbcGsodGhpcy5zdGFrZXJLZXkpLCB7IG11bHRpX2E6IG11bHRpQXJncyh0aGlzLmNvdmVuYW50VGhyZXNob2xkLCB0aGlzLmNvdmVuYW50S2V5cykgfV0gfTtcbiAgfVxuXG4gIGdldFNsYXNoaW5nTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7XG4gICAgICBhbmRfdjogW1xuICAgICAgICB7XG4gICAgICAgICAgYW5kX3Y6IFtcbiAgICAgICAgICAgIHBrKHRoaXMuc3Rha2VyS2V5KSxcbiAgICAgICAgICAgIHRoaXMuZmluYWxpdHlQcm92aWRlcktleXMubGVuZ3RoID09PSAxXG4gICAgICAgICAgICAgID8geyAndjpwayc6IHRoaXMuZmluYWxpdHlQcm92aWRlcktleXNbMF0udG9TdHJpbmcoJ2hleCcpIH1cbiAgICAgICAgICAgICAgOiB7ICd2Om11bHRpX2EnOiBtdWx0aUFyZ3MoMSwgdGhpcy5maW5hbGl0eVByb3ZpZGVyS2V5cykgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICB7IG11bHRpX2E6IG11bHRpQXJncyh0aGlzLmNvdmVuYW50VGhyZXNob2xkLCB0aGlzLmNvdmVuYW50S2V5cykgfSxcbiAgICAgIF0sXG4gICAgfTtcbiAgfVxuXG4gIGdldFVuYm9uZGluZ1RpbWVsb2NrTWluaXNjcmlwdCgpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICAgIHJldHVybiB7IGFuZF92OiBbcGsodGhpcy5zdGFrZXJLZXkpLCB7IG9sZGVyOiB0aGlzLnVuYm9uZGluZ1RpbWVMb2NrIH1dIH07XG4gIH1cblxuICBnZXRTdGFraW5nRGVzY3JpcHRvcigpOiBEZXNjcmlwdG9yIHtcbiAgICByZXR1cm4gdGFwcm9vdFNjcmlwdE9ubHlGcm9tQXN0KFtcbiAgICAgIHRoaXMuZ2V0U2xhc2hpbmdNaW5pc2NyaXB0KCksXG4gICAgICBbdGhpcy5nZXRVbmJvbmRpbmdNaW5pc2NyaXB0KCksIHRoaXMuZ2V0VGltZWxvY2tNaW5pc2NyaXB0KCldLFxuICAgIF0pO1xuICB9XG5cbiAgZ2V0U2xhc2hpbmdEZXNjcmlwdG9yKCk6IERlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0YXByb290U2NyaXB0T25seUZyb21Bc3QodGhpcy5nZXRVbmJvbmRpbmdUaW1lbG9ja01pbmlzY3JpcHQoKSk7XG4gIH1cblxuICBnZXRVbmJvbmRpbmdEZXNjcmlwdG9yKCk6IERlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0YXByb290U2NyaXB0T25seUZyb21Bc3QoW3RoaXMuZ2V0U2xhc2hpbmdNaW5pc2NyaXB0KCksIHRoaXMuZ2V0VW5ib25kaW5nVGltZWxvY2tNaW5pc2NyaXB0KCldKTtcbiAgfVxufVxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL2Rlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBS0gsOENBR0M7QUFORCw0REFBeUQ7QUFHekQsU0FBZ0IsaUJBQWlCO0lBQy9CLG9HQUFvRztJQUNwRyxPQUFPLGtFQUFrRSxDQUFDO0FBQzVFLENBQUM7QUFFRCxpREFBaUQ7QUFDakQsU0FBUyxFQUFFLENBQUMsQ0FBUztJQUNuQixPQUFPLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztBQUN2QyxDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYztJQUNoQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFNBQVMsU0FBUyxDQUFDLFNBQWlCLEVBQUUsSUFBYztJQUNsRCxPQUFPLENBQUMsU0FBUyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDeEUsQ0FBQztBQUVELFNBQVMsd0JBQXdCLENBQUMsQ0FBa0I7SUFDbEQsT0FBTyw0QkFBVSxDQUFDLFVBQVUsQ0FBQyxxQkFBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzdGLENBQUM7QUFFRCxNQUFhLHdCQUF3QjtJQUNuQyxZQUNTLFNBQWlCLEVBQ2pCLG9CQUE4QixF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InNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2JhYnlsb24vdHJlZS9tYWluL2RvY3NcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJ5bG9ubGFicy1pby9iYWJ5bG9uL2Jsb2IvbWFpbi9kb2NzL3N0YWtpbmctc2NyaXB0Lm1kXG4gKi9cblxuaW1wb3J0IHsgRGVzY3JpcHRvciwgYXN0IH0gZnJvbSAnQGJpdGdvL3dhc20tbWluaXNjcmlwdCc7XG5pbXBvcnQgeyBTdGFraW5nUGFyYW1zIH0gZnJvbSAnQGJpdGdvLWJldGEvYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VW5zcGVuZGFibGVLZXkoKTogc3RyaW5nIHtcbiAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2J0Yy1zdGFraW5nLXRzL2Jsb2IvdjAuNC4wLXJjLjIvc3JjL2NvbnN0YW50cy9pbnRlcm5hbFB1YmtleS50c1xuICByZXR1cm4gJzUwOTI5Yjc0YzFhMDQ5NTRiNzhiNGI2MDM1ZTk3YTVlMDc4YTVhMGYyOGVjOTZkNTQ3YmZlZTlhY2U4MDNhYzAnO1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb25zIGZvciBjcmVhdGluZyBtaW5pc2NyaXB0IG5vZGVzXG5mdW5jdGlvbiBwayhiOiBCdWZmZXIpOiBhc3QuTWluaXNjcmlwdE5vZGUge1xuICByZXR1cm4geyAndjpwayc6IGIudG9TdHJpbmcoJ2hleCcpIH07XG59XG5cbmZ1bmN0aW9uIHNvcnRlZEtleXMoa2V5czogQnVmZmVyW10pOiBCdWZmZXJbXSB7XG4gIHJldHVybiBbLi4ua2V5c10uc29ydCgoYSwgYikgPT4gYS5jb21wYXJlKGIpKTtcbn1cblxuZnVuY3Rpb24gbXVsdGlBcmdzKHRocmVzaG9sZDogbnVtYmVyLCBrZXlzOiBCdWZmZXJbXSk6IFtudW1iZXIsIC4uLnN0cmluZ1tdXSB7XG4gIHJldHVybiBbdGhyZXNob2xkLCAuLi5zb3J0ZWRLZXlzKGtleXMpLm1hcCgoaykgPT4gay50b1N0cmluZygnaGV4JykpXTtcbn1cblxuZnVuY3Rpb24gdGFwcm9vdFNjcmlwdE9ubHlGcm9tQXN0KG46IGFzdC5UYXBUcmVlTm9kZSk6IERlc2NyaXB0b3Ige1xuICByZXR1cm4gRGVzY3JpcHRvci5mcm9tU3RyaW5nKGFzdC5mb3JtYXROb2RlKHsgdHI6IFtnZXRVbnNwZW5kYWJsZUtleSgpLCBuXSB9KSwgJ2RlZmluaXRlJyk7XG59XG5cbmV4cG9ydCBjbGFzcyBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3Rha2VyS2V5OiBCdWZmZXIsXG4gICAgcHVibGljIGZpbmFsaXR5UHJvdmlkZXJLZXlzOiBCdWZmZXJbXSxcbiAgICBwdWJsaWMgY292ZW5hbnRLZXlzOiBCdWZmZXJbXSxcbiAgICBwdWJsaWMgY292ZW5hbnRUaHJlc2hvbGQ6IG51bWJlcixcbiAgICBwdWJsaWMgc3Rha2luZ1RpbWVMb2NrOiBudW1iZXIsXG4gICAgcHVibGljIHVuYm9uZGluZ1RpbWVMb2NrOiBudW1iZXJcbiAgKSB7fVxuXG4gIHN0YXRpYyBmcm9tUGFyYW1zKFxuICAgIHBhcmFtczoge1xuICAgICAgc3Rha2VyS2V5OiBCdWZmZXI7XG4gICAgICBmaW5hbGl0eVByb3ZpZGVyS2V5czogQnVmZmVyW107XG4gICAgfSAmIFN0YWtpbmdQYXJhbXNcbiAgKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgICAvKlxuXG4gIGNvbnN0IHN0YWtlcktleSA9IGdldEVDS2V5KCdzdGFrZXInKTtcbiAgY29uc3QgY292ZW5hbnRUaHJlc2hvbGQgPSBzdGFraW5nUGFyYW1zLmNvdmVuYW50UXVvcnVtO1xuICBjb25zdCBzdGFraW5nVGltZWxvY2sgPSBzdGFraW5nUGFyYW1zLm1pblN0YWtpbmdUaW1lQmxvY2tzO1xuICBjb25zdCB1bmJvbmRpbmdUaW1lbG9jayA9IHN0YWtpbmdQYXJhbXMudW5ib25kaW5nVGltZTtcbiAgY29uc3QgdmVuZG9yQnVpbGRlciA9IG5ldyB2ZW5kb3IuU3Rha2luZ1NjcmlwdERhdGEoXG4gICAgZ2V0WE9ubHlQdWJrZXkoc3Rha2VyS2V5KSxcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cy5tYXAoZ2V0WE9ubHlQdWJrZXkpLFxuICAgIGNvdmVuYW50S2V5cy5tYXAoZ2V0WE9ubHlQdWJrZXkpLFxuICAgIGNvdmVuYW50VGhyZXNob2xkLFxuICAgIHN0YWtpbmdUaW1lbG9jayxcbiAgICB1bmJvbmRpbmdUaW1lbG9ja1xuICApO1xuICAgICAqL1xuICAgIHJldHVybiBuZXcgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyKFxuICAgICAgcGFyYW1zLnN0YWtlcktleSxcbiAgICAgIHBhcmFtcy5maW5hbGl0eVByb3ZpZGVyS2V5cyxcbiAgICAgIHBhcmFtcy5jb3ZlbmFudE5vQ29vcmRQa3MubWFwKChrKSA9PiBCdWZmZXIuZnJvbShrLCAnaGV4JykpLFxuICAgICAgcGFyYW1zLmNvdmVuYW50UXVvcnVtLFxuICAgICAgcGFyYW1zLm1pblN0YWtpbmdUaW1lQmxvY2tzLFxuICAgICAgcGFyYW1zLnVuYm9uZGluZ1RpbWVcbiAgICApO1xuICB9XG5cbiAgZ2V0VGltZWxvY2tNaW5pc2NyaXB0KCk6IGFzdC5NaW5pc2NyaXB0Tm9kZSB7XG4gICAgcmV0dXJuIHsgYW5kX3Y6IFtwayh0aGlzLnN0YWtlcktleSksIHsgb2xkZXI6IHRoaXMuc3Rha2luZ1RpbWVMb2NrIH1dIH07XG4gIH1cblxuICBnZXRVbmJvbmRpbmdNaW5pc2NyaXB0KCk6IGFzdC5NaW5pc2NyaXB0Tm9kZSB7XG4gICAgcmV0dXJuIHsgYW5kX3Y6IFtwayh0aGlzLnN0YWtlcktleSksIHsgbXVsdGlfYTogbXVsdGlBcmdzKHRoaXMuY292ZW5hbnRUaHJlc2hvbGQsIHRoaXMuY292ZW5hbnRLZXlzKSB9XSB9O1xuICB9XG5cbiAgZ2V0U2xhc2hpbmdNaW5pc2NyaXB0KCk6IGFzdC5NaW5pc2NyaXB0Tm9kZSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFuZF92OiBbXG4gICAgICAgIHtcbiAgICAgICAgICBhbmRfdjogW1xuICAgICAgICAgICAgcGsodGhpcy5zdGFrZXJLZXkpLFxuICAgICAgICAgICAgdGhpcy5maW5hbGl0eVByb3ZpZGVyS2V5cy5sZW5ndGggPT09IDFcbiAgICAgICAgICAgICAgPyB7ICd2OnBrJzogdGhpcy5maW5hbGl0eVByb3ZpZGVyS2V5c1swXS50b1N0cmluZygnaGV4JykgfVxuICAgICAgICAgICAgICA6IHsgJ3Y6bXVsdGlfYSc6IG11bHRpQXJncygxLCB0aGlzLmZpbmFsaXR5UHJvdmlkZXJLZXlzKSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgbXVsdGlfYTogbXVsdGlBcmdzKHRoaXMuY292ZW5hbnRUaHJlc2hvbGQsIHRoaXMuY292ZW5hbnRLZXlzKSB9LFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgZ2V0VW5ib25kaW5nVGltZWxvY2tNaW5pc2NyaXB0KCk6IGFzdC5NaW5pc2NyaXB0Tm9kZSB7XG4gICAgcmV0dXJuIHsgYW5kX3Y6IFtwayh0aGlzLnN0YWtlcktleSksIHsgb2xkZXI6IHRoaXMudW5ib25kaW5nVGltZUxvY2sgfV0gfTtcbiAgfVxuXG4gIGdldFN0YWtpbmdEZXNjcmlwdG9yKCk6IERlc2NyaXB0b3Ige1xuICAgIHJldHVybiB0YXByb290U2NyaXB0T25seUZyb21Bc3QoW1xuICAgICAgdGhpcy5nZXRTbGFzaGluZ01pbmlzY3JpcHQoKSxcbiAgICAgIFt0aGlzLmdldFVuYm9uZGluZ01pbmlzY3JpcHQoKSwgdGhpcy5nZXRUaW1lbG9ja01pbmlzY3JpcHQoKV0sXG4gICAgXSk7XG4gIH1cblxuICBnZXRTbGFzaGluZ0Rlc2NyaXB0b3IoKTogRGVzY3JpcHRvciB7XG4gICAgcmV0dXJuIHRhcHJvb3RTY3JpcHRPbmx5RnJvbUFzdCh0aGlzLmdldFVuYm9uZGluZ1RpbWVsb2NrTWluaXNjcmlwdCgpKTtcbiAgfVxuXG4gIGdldFVuYm9uZGluZ0Rlc2NyaXB0b3IoKTogRGVzY3JpcHRvciB7XG4gICAgcmV0dXJuIHRhcHJvb3RTY3JpcHRPbmx5RnJvbUFzdChbdGhpcy5nZXRTbGFzaGluZ01pbmlzY3JpcHQoKSwgdGhpcy5nZXRVbmJvbmRpbmdUaW1lbG9ja01pbmlzY3JpcHQoKV0pO1xuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/babylon/index.ts"],"names":[],"mappings":"AAOA,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,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"}
@@ -10,39 +10,12 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
10
10
  if (k2 === undefined) k2 = k;
11
11
  o[k2] = m[k];
12
12
  }));
13
- var __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
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
15
  };
38
16
  Object.defineProperty(exports, "__esModule", { value: true });
39
- const babylonlabs_io_btc_staking_ts_1 = require("@bitgo-beta/babylonlabs-io-btc-staking-ts");
40
- const bitcoinjslib = __importStar(require("bitcoinjs-lib"));
41
- const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
42
- (0, babylonlabs_io_btc_staking_ts_1.initBTCCurve)();
43
- bitcoinjslib.initEccLib(utxolib.ecc);
44
17
  __exportStar(require("./delegationMessage"), exports);
45
18
  __exportStar(require("./descriptor"), exports);
46
19
  __exportStar(require("./stakingParams"), exports);
47
20
  __exportStar(require("./stakingManager"), exports);
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZGQUF5RTtBQUN6RSw0REFBOEM7QUFDOUMsOERBQWdEO0FBRWhELElBQUEsNENBQVksR0FBRSxDQUFDO0FBQ2YsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFckMsc0RBQW9DO0FBQ3BDLCtDQUE2QjtBQUM3QixrREFBZ0M7QUFDaEMsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5pdEJUQ0N1cnZlIH0gZnJvbSAnQGJpdGdvLWJldGEvYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuaW1wb3J0ICogYXMgYml0Y29pbmpzbGliIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbmluaXRCVENDdXJ2ZSgpO1xuYml0Y29pbmpzbGliLmluaXRFY2NMaWIodXR4b2xpYi5lY2MpO1xuXG5leHBvcnQgKiBmcm9tICcuL2RlbGVnYXRpb25NZXNzYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL3N0YWtpbmdQYXJhbXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFraW5nTWFuYWdlcic7XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYmFieWxvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsc0RBQW9DO0FBQ3BDLCtDQUE2QjtBQUM3QixrREFBZ0M7QUFDaEMsbURBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZWxlZ2F0aW9uTWVzc2FnZSc7XG5leHBvcnQgKiBmcm9tICcuL2Rlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFraW5nUGFyYW1zJztcbmV4cG9ydCAqIGZyb20gJy4vc3Rha2luZ01hbmFnZXInO1xuIl19
@@ -0,0 +1,3 @@
1
+ import { ECPairInterface } from '@bitgo-beta/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,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=
@@ -1,10 +1,9 @@
1
1
  import * as t from 'io-ts';
2
2
  import * as tt from 'io-ts-types';
3
+ import * as bitcoinjslib from 'bitcoinjs-lib';
3
4
  import * as utxolib from '@bitgo-beta/utxo-lib';
4
- import { StakerInfo, StakingInputs, StakingParams, VersionedStakingParams } from '@bitgo-beta/babylonlabs-io-btc-staking-ts';
5
- export { getBabylonParamByVersion, getBabylonParamByBtcHeight } from '@bitgo-beta/babylonlabs-io-btc-staking-ts';
5
+ import { StakerInfo, StakingInputs, VersionedStakingParams } from '@bitgo-beta/babylonlabs-io-btc-staking-ts';
6
6
  import { BabylonDescriptorBuilder } from './descriptor';
7
- import { BabylonNetworkLike } from './network';
8
7
  declare const BabylonParamsJSON: t.TypeC<{
9
8
  covenant_pks: t.ArrayC<t.StringC>;
10
9
  covenant_quorum: t.NumberC;
@@ -24,16 +23,16 @@ declare const BabylonParamsJSON: t.TypeC<{
24
23
  }>;
25
24
  type BabylonParamsJSON = t.TypeOf<typeof BabylonParamsJSON>;
26
25
  export declare function toVersionedParams(ps: BabylonParamsJSON[]): VersionedStakingParams[];
26
+ type BabylonNetwork = 'mainnet' | 'testnet';
27
+ type BabylonNetworkLike = bitcoinjslib.Network | utxolib.Network | BabylonNetwork;
27
28
  export declare const mainnetStakingParams: readonly VersionedStakingParams[];
28
29
  export declare const testnetStakingParams: readonly VersionedStakingParams[];
29
30
  export declare function getStakingParams(network: BabylonNetworkLike): VersionedStakingParams[];
30
31
  export declare const testnetFinalityProvider0: Buffer<ArrayBuffer>;
31
- type DescriptorStakingParams = Pick<StakingParams, 'covenantNoCoordPks' | 'covenantQuorum' | 'minStakingTimeBlocks' | 'unbondingTime'>;
32
- export declare function getDescriptorBuilderForParams(userKey: utxolib.BIP32Interface | utxolib.ECPairInterface | Buffer, finalityProviderKeys: Buffer[], stakingTimelock: number, params: DescriptorStakingParams): BabylonDescriptorBuilder;
33
- export declare function getDescriptorProviderForStakingParams(stakerBtcInfo: Pick<StakerInfo, 'publicKeyNoCoordHex'>, stakingInput: StakingInputs, stakingParams: DescriptorStakingParams): BabylonDescriptorBuilder;
34
- export declare function getTestnetDescriptorBuilder(userKey: utxolib.BIP32Interface | utxolib.ECPairInterface | Buffer, { finalityProviderKeys, params, stakingTimelock, }?: {
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
35
  finalityProviderKeys?: Buffer[];
36
- params?: StakingParams;
37
- stakingTimelock?: number;
38
36
  }): BabylonDescriptorBuilder;
37
+ export {};
39
38
  //# sourceMappingURL=stakingParams.d.ts.map
@@ -1 +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,OAAO,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAEL,UAAU,EACV,aAAa,EACb,aAAa,EACb,sBAAsB,EACvB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAEjH,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,EAAE,kBAAkB,EAAoB,MAAM,WAAW,CAAC;AAEjE,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,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,KAAK,uBAAuB,GAAG,IAAI,CACjC,aAAa,EACb,oBAAoB,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,eAAe,CACnF,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,MAAM,EAClE,oBAAoB,EAAE,MAAM,EAAE,EAC9B,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,uBAAuB,GAC9B,wBAAwB,CAY1B;AAED,wBAAgB,qCAAqC,CACnD,aAAa,EAAE,IAAI,CAAC,UAAU,EAAE,qBAAqB,CAAC,EACtD,YAAY,EAAE,aAAa,EAC3B,aAAa,EAAE,uBAAuB,GACrC,wBAAwB,CAI1B;AAED,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,eAAe,GAAG,MAAM,EAClE,EACE,oBAAiD,EACjD,MAAiE,EACjE,eAA6C,GAC9C,GAAE;IACD,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CACrB,GACL,wBAAwB,CAE1B"}
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,sBAAsB,CAAC;AAChD,OAAO,EAEL,UAAU,EACV,aAAa,EACb,sBAAsB,EACvB,MAAM,2CAA2C,CAAC;AAEnD,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"}
@@ -36,7 +36,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.testnetFinalityProvider0 = exports.testnetStakingParams = exports.mainnetStakingParams = exports.getBabylonParamByBtcHeight = exports.getBabylonParamByVersion = void 0;
39
+ exports.testnetFinalityProvider0 = exports.testnetStakingParams = exports.mainnetStakingParams = void 0;
40
40
  exports.toVersionedParams = toVersionedParams;
41
41
  exports.getStakingParams = getStakingParams;
42
42
  exports.getDescriptorBuilderForParams = getDescriptorBuilderForParams;
@@ -46,14 +46,12 @@ const t = __importStar(require("io-ts"));
46
46
  const tt = __importStar(require("io-ts-types"));
47
47
  const Either_1 = require("fp-ts/Either");
48
48
  const PathReporter_1 = require("io-ts/lib/PathReporter");
49
+ const bitcoinjslib = __importStar(require("bitcoinjs-lib"));
50
+ const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
49
51
  const babylonlabs_io_btc_staking_ts_1 = require("@bitgo-beta/babylonlabs-io-btc-staking-ts");
50
- var babylonlabs_io_btc_staking_ts_2 = require("@bitgo-beta/babylonlabs-io-btc-staking-ts");
51
- Object.defineProperty(exports, "getBabylonParamByVersion", { enumerable: true, get: function () { return babylonlabs_io_btc_staking_ts_2.getBabylonParamByVersion; } });
52
- Object.defineProperty(exports, "getBabylonParamByBtcHeight", { enumerable: true, get: function () { return babylonlabs_io_btc_staking_ts_2.getBabylonParamByBtcHeight; } });
53
52
  const descriptor_1 = require("./descriptor");
54
53
  const params_mainnet_json_1 = __importDefault(require("./params.mainnet.json"));
55
54
  const params_testnet_json_1 = __importDefault(require("./params.testnet.json"));
56
- const network_1 = require("./network");
57
55
  const BabylonParamsJSON = t.type({
58
56
  covenant_pks: t.array(t.string),
59
57
  covenant_quorum: t.number,
@@ -100,10 +98,26 @@ function toVersionedParamsFromJson(jsonParams) {
100
98
  return result.right.params;
101
99
  }));
102
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
+ }
103
117
  exports.mainnetStakingParams = Object.freeze(toVersionedParamsFromJson(params_mainnet_json_1.default));
104
118
  exports.testnetStakingParams = Object.freeze(toVersionedParamsFromJson(params_testnet_json_1.default));
105
119
  function getStakingParams(network) {
106
- switch ((0, network_1.toBabylonNetwork)(network)) {
120
+ switch (toBabylonNetwork(network)) {
107
121
  case 'mainnet':
108
122
  return [...exports.mainnetStakingParams];
109
123
  case 'testnet':
@@ -114,18 +128,18 @@ function getStakingParams(network) {
114
128
  }
115
129
  // Source: https://btcstaking.testnet.babylonlabs.io/ "Babylon Foundation 0"
116
130
  exports.testnetFinalityProvider0 = Buffer.from('d23c2c25e1fcf8fd1c21b9a402c19e2e309e531e45e92fb1e9805b6056b0cc76', 'hex');
117
- function getDescriptorBuilderForParams(userKey, finalityProviderKeys, stakingTimelock, params) {
131
+ function getDescriptorBuilderForParams(userKey, finalityProviderKeys, params) {
118
132
  if (!Buffer.isBuffer(userKey)) {
119
133
  userKey = userKey.publicKey;
120
134
  }
121
- return new descriptor_1.BabylonDescriptorBuilder(userKey, finalityProviderKeys, params.covenantNoCoordPks.map((pk) => Buffer.from(pk, 'hex')), params.covenantQuorum, stakingTimelock, params.unbondingTime);
135
+ return new descriptor_1.BabylonDescriptorBuilder(userKey, finalityProviderKeys, params.covenantNoCoordPks.map((pk) => Buffer.from(pk, 'hex')), params.covenantQuorum, params.minStakingTimeBlocks, params.unbondingTime);
122
136
  }
123
137
  function getDescriptorProviderForStakingParams(stakerBtcInfo, stakingInput, stakingParams) {
124
138
  const userKey = Buffer.from(stakerBtcInfo.publicKeyNoCoordHex, 'hex');
125
139
  const finalityProviderKey = Buffer.from(stakingInput.finalityProviderPkNoCoordHex, 'hex');
126
- return getDescriptorBuilderForParams(userKey, [finalityProviderKey], stakingInput.stakingTimelock, stakingParams);
140
+ return getDescriptorBuilderForParams(userKey, [finalityProviderKey], stakingParams);
127
141
  }
128
- function getTestnetDescriptorBuilder(userKey, { finalityProviderKeys = [exports.testnetFinalityProvider0], params = (0, babylonlabs_io_btc_staking_ts_1.getBabylonParamByVersion)(5, getStakingParams('testnet')), stakingTimelock = params.minStakingTimeBlocks, } = {}) {
129
- return getDescriptorBuilderForParams(userKey, finalityProviderKeys, stakingTimelock, params);
142
+ function getTestnetDescriptorBuilder(userKey, { finalityProviderKeys = [exports.testnetFinalityProvider0], } = {}) {
143
+ return getDescriptorBuilderForParams(userKey, finalityProviderKeys, (0, babylonlabs_io_btc_staking_ts_1.getBabylonParamByVersion)(5, getStakingParams('testnet')));
130
144
  }
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1BhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL3N0YWtpbmdQYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUNBLDhDQWtCQztBQXVCRCw0Q0FTQztBQWFELHNFQWlCQztBQUVELHNGQVFDO0FBRUQsa0VBYUM7QUFoSkQseUNBQTJCO0FBQzNCLGdEQUFrQztBQUNsQyx5Q0FBc0M7QUFDdEMseURBQXNEO0FBRXRELDZGQU1tRDtBQUNuRCwyRkFBaUg7QUFBeEcseUlBQUEsd0JBQXdCLE9BQUE7QUFBRSwySUFBQSwwQkFBMEIsT0FBQTtBQUU3RCw2Q0FBd0Q7QUFDeEQsZ0ZBQXNEO0FBQ3RELGdGQUFzRDtBQUN0RCx1Q0FBaUU7QUFFakUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQy9CLFlBQVksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsZUFBZSxFQUFFLENBQUMsQ0FBQyxNQUFNO0lBQ3pCLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0I7SUFDMUMscUJBQXFCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUMxQyx1QkFBdUIsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNqQyx1QkFBdUIsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUNqQyxrQkFBa0IsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUM1Qix1QkFBdUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQzVDLGFBQWEsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUN2QixxQkFBcUIsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUMvQixpQkFBaUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQ3RDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0I7SUFDeEMsZ0NBQWdDLEVBQUUsRUFBRSxDQUFD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cm9tICdpby10cyc7XG5pbXBvcnQgKiBhcyB0dCBmcm9tICdpby10cy10eXBlcyc7XG5pbXBvcnQgeyBpc0xlZnQgfSBmcm9tICdmcC10cy9FaXRoZXInO1xuaW1wb3J0IHsgUGF0aFJlcG9ydGVyIH0gZnJvbSAnaW8tdHMvbGliL1BhdGhSZXBvcnRlcic7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7XG4gIGdldEJhYnlsb25QYXJhbUJ5VmVyc2lvbixcbiAgU3Rha2VySW5mbyxcbiAgU3Rha2luZ0lucHV0cyxcbiAgU3Rha2luZ1BhcmFtcyxcbiAgVmVyc2lvbmVkU3Rha2luZ1BhcmFtcyxcbn0gZnJvbSAnQGJpdGdvLWJldGEvYmFieWxvbmxhYnMtaW8tYnRjLXN0YWtpbmctdHMnO1xuZXhwb3J0IHsgZ2V0QmFieWxvblBhcmFtQnlWZXJzaW9uLCBnZXRCYWJ5bG9uUGFyYW1CeUJ0Y0hlaWdodCB9IGZyb20gJ0BiaXRnby1iZXRhL2JhYnlsb25sYWJzLWlvLWJ0Yy1zdGFraW5nLXRzJztcblxuaW1wb3J0IHsgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIH0gZnJvbSAnLi9kZXNjcmlwdG9yJztcbmltcG9ydCBqc29uTWFpbm5ldFBhcmFtcyBmcm9tICcuL3BhcmFtcy5tYWlubmV0Lmpzb24nO1xuaW1wb3J0IGpzb25UZXN0bmV0UGFyYW1zIGZyb20gJy4vcGFyYW1zLnRlc3RuZXQuanNvbic7XG5pbXBvcnQgeyBCYWJ5bG9uTmV0d29ya0xpa2UsIHRvQmFieWxvbk5ldHdvcmsgfSBmcm9tICcuL25ldHdvcmsnO1xuXG5jb25zdCBCYWJ5bG9uUGFyYW1zSlNPTiA9IHQudHlwZSh7XG4gIGNvdmVuYW50X3BrczogdC5hcnJheSh0LnN0cmluZyksXG4gIGNvdmVuYW50X3F1b3J1bTogdC5udW1iZXIsXG4gIG1pbl9zdGFraW5nX3ZhbHVlX3NhdDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgbWF4X3N0YWtpbmdfdmFsdWVfc2F0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBtaW5fc3Rha2luZ190aW1lX2Jsb2NrczogdC5udW1iZXIsXG4gIG1heF9zdGFraW5nX3RpbWVfYmxvY2tzOiB0Lm51bWJlcixcbiAgc2xhc2hpbmdfcGtfc2NyaXB0OiB0LnN0cmluZyxcbiAgbWluX3NsYXNoaW5nX3R4X2ZlZV9zYXQ6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIHNsYXNoaW5nX3JhdGU6IHQuc3RyaW5nLFxuICB1bmJvbmRpbmdfdGltZV9ibG9ja3M6IHQubnVtYmVyLFxuICB1bmJvbmRpbmdfZmVlX3NhdDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgbWluX2NvbW1pc3Npb25fcmF0ZTogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgZGVsZWdhdGlvbl9jcmVhdGlvbl9iYXNlX2dhc19mZWU6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIGFsbG93X2xpc3RfZXhwaXJhdGlvbl9oZWlnaHQ6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIGJ0Y19hY3RpdmF0aW9uX2hlaWdodDogdC5udW1iZXIsXG59KTtcblxudHlwZSBCYWJ5bG9uUGFyYW1zSlNPTiA9IHQuVHlwZU9mPHR5cGVvZiBCYWJ5bG9uUGFyYW1zSlNPTj47XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1ZlcnNpb25lZFBhcmFtcyhwczogQmFieWxvblBhcmFtc0pTT05bXSk6IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSB7XG4gIHJldHVybiBwcy5tYXAoKHAsIHZlcnNpb24pID0+ICh7XG4gICAgdmVyc2lvbixcbiAgICBidGNBY3RpdmF0aW9uSGVpZ2h0OiBwLmJ0Y19hY3RpdmF0aW9uX2hlaWdodCxcbiAgICBjb3ZlbmFudE5vQ29vcmRQa3M6IHAuY292ZW5hbnRfcGtzLFxuICAgIGNvdmVuYW50UXVvcnVtOiBwLmNvdmVuYW50X3F1b3J1bSxcbiAgICB1bmJvbmRpbmdUaW1lOiBwLnVuYm9uZGluZ190aW1lX2Jsb2NrcyxcbiAgICB1bmJvbmRpbmdGZWVTYXQ6IHAudW5ib25kaW5nX2ZlZV9zYXQsXG4gICAgbWF4U3Rha2luZ0Ftb3VudFNhdDogcC5tYXhfc3Rha2luZ192YWx1ZV9zYXQsXG4gICAgbWluU3Rha2luZ0Ftb3VudFNhdDogcC5taW5fc3Rha2luZ192YWx1ZV9zYXQsXG4gICAgbWF4U3Rha2luZ1RpbWVCbG9ja3M6IHAubWF4X3N0YWtpbmdfdGltZV9ibG9ja3MsXG4gICAgbWluU3Rha2luZ1RpbWVCbG9ja3M6IHAubWluX3N0YWtpbmdfdGltZV9ibG9ja3MsXG4gICAgc2xhc2hpbmc6IHtcbiAgICAgIHNsYXNoaW5nUGtTY3JpcHRIZXg6IEJ1ZmZlci5mcm9tKHAuc2xhc2hpbmdfcGtfc2NyaXB0LCAnYmFzZTY0JykudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgc2xhc2hpbmdSYXRlOiBwYXJzZUZsb2F0KHAuc2xhc2hpbmdfcmF0ZSksXG4gICAgICBtaW5TbGFzaGluZ1R4RmVlU2F0OiBwLm1pbl9zbGFzaGluZ190eF9mZWVfc2F0LFxuICAgIH0sXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gdG9WZXJzaW9uZWRQYXJhbXNGcm9tSnNvbihqc29uUGFyYW1zOiB1bmtub3duW10pOiBWZXJzaW9uZWRTdGFraW5nUGFyYW1zW10ge1xuICByZXR1cm4gdG9WZXJzaW9uZWRQYXJhbXMoXG4gICAganNvblBhcmFtcy5tYXAoKHApOiBCYWJ5bG9uUGFyYW1zSlNPTiA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0LnR5cGUoeyBwYXJhbXM6IEJhYnlsb25QYXJhbXNKU09OIH0pLmRlY29kZShwKTtcbiAgICAgIGlmIChpc0xlZnQocmVzdWx0KSkge1xuICAgICAgICBjb25zdCBtc2cgPSBQYXRoUmVwb3J0ZXIucmVwb3J0KHJlc3VsdCkuam9pbignXFxuJyk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0ZXN0bmV0IHBhcmFtczogJHttc2d9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0LnJpZ2h0LnBhcmFtcztcbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgY29uc3QgbWFpbm5ldFN0YWtpbmdQYXJhbXM6IHJlYWRvbmx5IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IE9iamVjdC5mcmVlemUoXG4gIHRvVmVyc2lvbmVkUGFyYW1zRnJvbUpzb24oanNvbk1haW5uZXRQYXJhbXMpXG4pO1xuXG5leHBvcnQgY29uc3QgdGVzdG5ldFN0YWtpbmdQYXJhbXM6IHJlYWRvbmx5IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IE9iamVjdC5mcmVlemUoXG4gIHRvVmVyc2lvbmVkUGFyYW1zRnJvbUpzb24oanNvblRlc3RuZXRQYXJhbXMpXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3Rha2luZ1BhcmFtcyhuZXR3b3JrOiBCYWJ5bG9uTmV0d29ya0xpa2UpOiBWZXJzaW9uZWRTdGFraW5nUGFyYW1zW10ge1xuICBzd2l0Y2ggKHRvQmFieWxvbk5ldHdvcmsobmV0d29yaykpIHtcbiAgICBjYXNlICdtYWlubmV0JzpcbiAgICAgIHJldHVybiBbLi4ubWFpbm5ldFN0YWtpbmdQYXJhbXNdO1xuICAgIGNhc2UgJ3Rlc3RuZXQnOlxuICAgICAgcmV0dXJuIFsuLi50ZXN0bmV0U3Rha2luZ1BhcmFtc107XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgbmV0d29yaycpO1xuICB9XG59XG5cbi8vIFNvdXJjZTogaHR0cHM6Ly9idGNzdGFraW5nLnRlc3RuZXQuYmFieWxvbmxhYnMuaW8vIFwiQmFieWxvbiBGb3VuZGF0aW9uIDBcIlxuZXhwb3J0IGNvbnN0IHRlc3RuZXRGaW5hbGl0eVByb3ZpZGVyMCA9IEJ1ZmZlci5mcm9tKFxuICAnZDIzYzJjMjVlMWZjZjhmZDFjMjFiOWE0MDJjMTllMmUzMDllNTMxZTQ1ZTkyZmIxZTk4MDViNjA1NmIwY2M3NicsXG4gICdoZXgnXG4pO1xuXG50eXBlIERlc2NyaXB0b3JTdGFraW5nUGFyYW1zID0gUGljazxcbiAgU3Rha2luZ1BhcmFtcyxcbiAgJ2NvdmVuYW50Tm9Db29yZFBrcycgfCAnY292ZW5hbnRRdW9ydW0nIHwgJ21pblN0YWtpbmdUaW1lQmxvY2tzJyB8ICd1bmJvbmRpbmdUaW1lJ1xuPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JCdWlsZGVyRm9yUGFyYW1zKFxuICB1c2VyS2V5OiB1dHhvbGliLkJJUDMySW50ZXJmYWNlIHwgdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2UgfCBCdWZmZXIsXG4gIGZpbmFsaXR5UHJvdmlkZXJLZXlzOiBCdWZmZXJbXSxcbiAgc3Rha2luZ1RpbWVsb2NrOiBudW1iZXIsXG4gIHBhcmFtczogRGVzY3JpcHRvclN0YWtpbmdQYXJhbXNcbik6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHVzZXJLZXkpKSB7XG4gICAgdXNlcktleSA9IHVzZXJLZXkucHVibGljS2V5O1xuICB9XG4gIHJldHVybiBuZXcgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyKFxuICAgIHVzZXJLZXksXG4gICAgZmluYWxpdHlQcm92aWRlcktleXMsXG4gICAgcGFyYW1zLmNvdmVuYW50Tm9Db29yZFBrcy5tYXAoKHBrKSA9PiBCdWZmZXIuZnJvbShwaywgJ2hleCcpKSxcbiAgICBwYXJhbXMuY292ZW5hbnRRdW9ydW0sXG4gICAgc3Rha2luZ1RpbWVsb2NrLFxuICAgIHBhcmFtcy51bmJvbmRpbmdUaW1lXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yUHJvdmlkZXJGb3JTdGFraW5nUGFyYW1zKFxuICBzdGFrZXJCdGNJbmZvOiBQaWNrPFN0YWtlckluZm8sICdwdWJsaWNLZXlOb0Nvb3JkSGV4Jz4sXG4gIHN0YWtpbmdJbnB1dDogU3Rha2luZ0lucHV0cyxcbiAgc3Rha2luZ1BhcmFtczogRGVzY3JpcHRvclN0YWtpbmdQYXJhbXNcbik6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB7XG4gIGNvbnN0IHVzZXJLZXkgPSBCdWZmZXIuZnJvbShzdGFrZXJCdGNJbmZvLnB1YmxpY0tleU5vQ29vcmRIZXgsICdoZXgnKTtcbiAgY29uc3QgZmluYWxpdHlQcm92aWRlcktleSA9IEJ1ZmZlci5mcm9tKHN0YWtpbmdJbnB1dC5maW5hbGl0eVByb3ZpZGVyUGtOb0Nvb3JkSGV4LCAnaGV4Jyk7XG4gIHJldHVybiBnZXREZXNjcmlwdG9yQnVpbGRlckZvclBhcmFtcyh1c2VyS2V5LCBbZmluYWxpdHlQcm92aWRlcktleV0sIHN0YWtpbmdJbnB1dC5zdGFraW5nVGltZWxvY2ssIHN0YWtpbmdQYXJhbXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVzdG5ldERlc2NyaXB0b3JCdWlsZGVyKFxuICB1c2VyS2V5OiB1dHhvbGliLkJJUDMySW50ZXJmYWNlIHwgdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2UgfCBCdWZmZXIsXG4gIHtcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cyA9IFt0ZXN0bmV0RmluYWxpdHlQcm92aWRlcjBdLFxuICAgIHBhcmFtcyA9IGdldEJhYnlsb25QYXJhbUJ5VmVyc2lvbig1LCBnZXRTdGFraW5nUGFyYW1zKCd0ZXN0bmV0JykpLFxuICAgIHN0YWtpbmdUaW1lbG9jayA9IHBhcmFtcy5taW5TdGFraW5nVGltZUJsb2NrcyxcbiAgfToge1xuICAgIGZpbmFsaXR5UHJvdmlkZXJLZXlzPzogQnVmZmVyW107XG4gICAgcGFyYW1zPzogU3Rha2luZ1BhcmFtcztcbiAgICBzdGFraW5nVGltZWxvY2s/OiBudW1iZXI7XG4gIH0gPSB7fVxuKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgcmV0dXJuIGdldERlc2NyaXB0b3JCdWlsZGVyRm9yUGFyYW1zKHVzZXJLZXksIGZpbmFsaXR5UHJvdmlkZXJLZXlzLCBzdGFraW5nVGltZWxvY2ssIHBhcmFtcyk7XG59XG4iXX0=
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1BhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL3N0YWtpbmdQYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUNBLDhDQWtCQztBQTRDRCw0Q0FTQztBQVFELHNFQW1CQztBQUVELHNGQVFDO0FBRUQsa0VBYUM7QUFoS0QseUNBQTJCO0FBQzNCLGdEQUFrQztBQUNsQyx5Q0FBc0M7QUFDdEMseURBQXNEO0FBQ3RELDREQUE4QztBQUM5Qyw4REFBZ0Q7QUFDaEQsNkZBS21EO0FBRW5ELDZDQUF3RDtBQUN4RCxnRkFBc0Q7QUFDdEQsZ0ZBQXNEO0FBRXRELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvQixZQUFZLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUN6QixxQkFBcUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQzFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0I7SUFDMUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDNUIsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUM1QyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDdkIscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDL0IsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUN0QyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQ3hDLGdDQUFnQyxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0I7SUFDckQsNEJBQTRCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUNq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LG1CQUFtQixDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDdEYsQ0FBQztBQUVELFNBQWdCLDJCQUEyQixDQUN6QyxPQUFrRSxFQUNsRSxFQUNFLG9CQUFvQixHQUFHLENBQUMsZ0NBQXdCLENBQUMsTUFHL0MsRUFBRTtJQUVOLE9BQU8sNkJBQTZCLENBQ2xDLE9BQU8sRUFDUCxvQkFBb0IsRUFDcEIsSUFBQSx3REFBd0IsRUFBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FDekQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB0IGZyb20gJ2lvLXRzJztcbmltcG9ydCAqIGFzIHR0IGZyb20gJ2lvLXRzLXR5cGVzJztcbmltcG9ydCB7IGlzTGVmdCB9IGZyb20gJ2ZwLXRzL0VpdGhlcic7XG5pbXBvcnQgeyBQYXRoUmVwb3J0ZXIgfSBmcm9tICdpby10cy9saWIvUGF0aFJlcG9ydGVyJztcbmltcG9ydCAqIGFzIGJpdGNvaW5qc2xpYiBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuaW1wb3J0IHtcbiAgZ2V0QmFieWxvblBhcmFtQnlWZXJzaW9uLFxuICBTdGFrZXJJbmZvLFxuICBTdGFraW5nSW5wdXRzLFxuICBWZXJzaW9uZWRTdGFraW5nUGFyYW1zLFxufSBmcm9tICdAYml0Z28tYmV0YS9iYWJ5bG9ubGFicy1pby1idGMtc3Rha2luZy10cyc7XG5cbmltcG9ydCB7IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5pbXBvcnQganNvbk1haW5uZXRQYXJhbXMgZnJvbSAnLi9wYXJhbXMubWFpbm5ldC5qc29uJztcbmltcG9ydCBqc29uVGVzdG5ldFBhcmFtcyBmcm9tICcuL3BhcmFtcy50ZXN0bmV0Lmpzb24nO1xuXG5jb25zdCBCYWJ5bG9uUGFyYW1zSlNPTiA9IHQudHlwZSh7XG4gIGNvdmVuYW50X3BrczogdC5hcnJheSh0LnN0cmluZyksXG4gIGNvdmVuYW50X3F1b3J1bTogdC5udW1iZXIsXG4gIG1pbl9zdGFraW5nX3ZhbHVlX3NhdDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgbWF4X3N0YWtpbmdfdmFsdWVfc2F0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBtaW5fc3Rha2luZ190aW1lX2Jsb2NrczogdC5udW1iZXIsXG4gIG1heF9zdGFraW5nX3RpbWVfYmxvY2tzOiB0Lm51bWJlcixcbiAgc2xhc2hpbmdfcGtfc2NyaXB0OiB0LnN0cmluZyxcbiAgbWluX3NsYXNoaW5nX3R4X2ZlZV9zYXQ6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIHNsYXNoaW5nX3JhdGU6IHQuc3RyaW5nLFxuICB1bmJvbmRpbmdfdGltZV9ibG9ja3M6IHQubnVtYmVyLFxuICB1bmJvbmRpbmdfZmVlX3NhdDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgbWluX2NvbW1pc3Npb25fcmF0ZTogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgZGVsZWdhdGlvbl9jcmVhdGlvbl9iYXNlX2dhc19mZWU6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIGFsbG93X2xpc3RfZXhwaXJhdGlvbl9oZWlnaHQ6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIGJ0Y19hY3RpdmF0aW9uX2hlaWdodDogdC5udW1iZXIsXG59KTtcblxudHlwZSBCYWJ5bG9uUGFyYW1zSlNPTiA9IHQuVHlwZU9mPHR5cGVvZiBCYWJ5bG9uUGFyYW1zSlNPTj47XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1ZlcnNpb25lZFBhcmFtcyhwczogQmFieWxvblBhcmFtc0pTT05bXSk6IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSB7XG4gIHJldHVybiBwcy5tYXAoKHAsIHZlcnNpb24pID0+ICh7XG4gICAgdmVyc2lvbixcbiAgICBidGNBY3RpdmF0aW9uSGVpZ2h0OiBwLmJ0Y19hY3RpdmF0aW9uX2hlaWdodCxcbiAgICBjb3ZlbmFudE5vQ29vcmRQa3M6IHAuY292ZW5hbnRfcGtzLFxuICAgIGNvdmVuYW50UXVvcnVtOiBwLmNvdmVuYW50X3F1b3J1bSxcbiAgICB1bmJvbmRpbmdUaW1lOiBwLnVuYm9uZGluZ190aW1lX2Jsb2NrcyxcbiAgICB1bmJvbmRpbmdGZWVTYXQ6IHAudW5ib25kaW5nX2ZlZV9zYXQsXG4gICAgbWF4U3Rha2luZ0Ftb3VudFNhdDogcC5tYXhfc3Rha2luZ192YWx1ZV9zYXQsXG4gICAgbWluU3Rha2luZ0Ftb3VudFNhdDogcC5taW5fc3Rha2luZ192YWx1ZV9zYXQsXG4gICAgbWF4U3Rha2luZ1RpbWVCbG9ja3M6IHAubWF4X3N0YWtpbmdfdGltZV9ibG9ja3MsXG4gICAgbWluU3Rha2luZ1RpbWVCbG9ja3M6IHAubWluX3N0YWtpbmdfdGltZV9ibG9ja3MsXG4gICAgc2xhc2hpbmc6IHtcbiAgICAgIHNsYXNoaW5nUGtTY3JpcHRIZXg6IEJ1ZmZlci5mcm9tKHAuc2xhc2hpbmdfcGtfc2NyaXB0LCAnYmFzZTY0JykudG9TdHJpbmcoJ2hleCcpLFxuICAgICAgc2xhc2hpbmdSYXRlOiBwYXJzZUZsb2F0KHAuc2xhc2hpbmdfcmF0ZSksXG4gICAgICBtaW5TbGFzaGluZ1R4RmVlU2F0OiBwLm1pbl9zbGFzaGluZ190eF9mZWVfc2F0LFxuICAgIH0sXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gdG9WZXJzaW9uZWRQYXJhbXNGcm9tSnNvbihqc29uUGFyYW1zOiB1bmtub3duW10pOiBWZXJzaW9uZWRTdGFraW5nUGFyYW1zW10ge1xuICByZXR1cm4gdG9WZXJzaW9uZWRQYXJhbXMoXG4gICAganNvblBhcmFtcy5tYXAoKHApOiBCYWJ5bG9uUGFyYW1zSlNPTiA9PiB7XG4gICAgICBjb25zdCByZXN1bHQgPSB0LnR5cGUoeyBwYXJhbXM6IEJhYnlsb25QYXJhbXNKU09OIH0pLmRlY29kZShwKTtcbiAgICAgIGlmIChpc0xlZnQocmVzdWx0KSkge1xuICAgICAgICBjb25zdCBtc2cgPSBQYXRoUmVwb3J0ZXIucmVwb3J0KHJlc3VsdCkuam9pbignXFxuJyk7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCB0ZXN0bmV0IHBhcmFtczogJHttc2d9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0LnJpZ2h0LnBhcmFtcztcbiAgICB9KVxuICApO1xufVxuXG50eXBlIEJhYnlsb25OZXR3b3JrID0gJ21haW5uZXQnIHwgJ3Rlc3RuZXQnO1xuXG50eXBlIEJhYnlsb25OZXR3b3JrTGlrZSA9IGJpdGNvaW5qc2xpYi5OZXR3b3JrIHwgdXR4b2xpYi5OZXR3b3JrIHwgQmFieWxvbk5ldHdvcms7XG5cbmZ1bmN0aW9uIHRvQmFieWxvbk5ldHdvcmsobjogQmFieWxvbk5ldHdvcmtMaWtlKTogQmFieWxvbk5ldHdvcmsge1xuICBzd2l0Y2ggKG4pIHtcbiAgICBjYXNlIGJpdGNvaW5qc2xpYi5uZXR3b3Jrcy5iaXRjb2luOlxuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luOlxuICAgICAgcmV0dXJuICdtYWlubmV0JztcbiAgICBjYXNlIGJpdGNvaW5qc2xpYi5uZXR3b3Jrcy50ZXN0bmV0OlxuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy50ZXN0bmV0OlxuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luUHVibGljU2lnbmV0OlxuICAgICAgcmV0dXJuICd0ZXN0bmV0JztcbiAgICBjYXNlICdtYWlubmV0JzpcbiAgICBjYXNlICd0ZXN0bmV0JzpcbiAgICAgIHJldHVybiBuO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIG5ldHdvcmsnKTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbWFpbm5ldFN0YWtpbmdQYXJhbXM6IHJlYWRvbmx5IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IE9iamVjdC5mcmVlemUoXG4gIHRvVmVyc2lvbmVkUGFyYW1zRnJvbUpzb24oanNvbk1haW5uZXRQYXJhbXMpXG4pO1xuXG5leHBvcnQgY29uc3QgdGVzdG5ldFN0YWtpbmdQYXJhbXM6IHJlYWRvbmx5IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSA9IE9iamVjdC5mcmVlemUoXG4gIHRvVmVyc2lvbmVkUGFyYW1zRnJvbUpzb24oanNvblRlc3RuZXRQYXJhbXMpXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3Rha2luZ1BhcmFtcyhuZXR3b3JrOiBCYWJ5bG9uTmV0d29ya0xpa2UpOiBWZXJzaW9uZWRTdGFraW5nUGFyYW1zW10ge1xuICBzd2l0Y2ggKHRvQmFieWxvbk5ldHdvcmsobmV0d29yaykpIHtcbiAgICBjYXNlICdtYWlubmV0JzpcbiAgICAgIHJldHVybiBbLi4ubWFpbm5ldFN0YWtpbmdQYXJhbXNdO1xuICAgIGNhc2UgJ3Rlc3RuZXQnOlxuICAgICAgcmV0dXJuIFsuLi50ZXN0bmV0U3Rha2luZ1BhcmFtc107XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgbmV0d29yaycpO1xuICB9XG59XG5cbi8vIFNvdXJjZTogaHR0cHM6Ly9idGNzdGFraW5nLnRlc3RuZXQuYmFieWxvbmxhYnMuaW8vIFwiQmFieWxvbiBGb3VuZGF0aW9uIDBcIlxuZXhwb3J0IGNvbnN0IHRlc3RuZXRGaW5hbGl0eVByb3ZpZGVyMCA9IEJ1ZmZlci5mcm9tKFxuICAnZDIzYzJjMjVlMWZjZjhmZDFjMjFiOWE0MDJjMTllMmUzMDllNTMxZTQ1ZTkyZmIxZTk4MDViNjA1NmIwY2M3NicsXG4gICdoZXgnXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckJ1aWxkZXJGb3JQYXJhbXMoXG4gIHVzZXJLZXk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2UgfCB1dHhvbGliLkVDUGFpckludGVyZmFjZSB8IEJ1ZmZlcixcbiAgZmluYWxpdHlQcm92aWRlcktleXM6IEJ1ZmZlcltdLFxuICBwYXJhbXM6IFBpY2s8XG4gICAgVmVyc2lvbmVkU3Rha2luZ1BhcmFtcyxcbiAgICAnY292ZW5hbnROb0Nvb3JkUGtzJyB8ICdjb3ZlbmFudFF1b3J1bScgfCAnbWluU3Rha2luZ1RpbWVCbG9ja3MnIHwgJ3VuYm9uZGluZ1RpbWUnXG4gID5cbik6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB7XG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHVzZXJLZXkpKSB7XG4gICAgdXNlcktleSA9IHVzZXJLZXkucHVibGljS2V5O1xuICB9XG4gIHJldHVybiBuZXcgQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyKFxuICAgIHVzZXJLZXksXG4gICAgZmluYWxpdHlQcm92aWRlcktleXMsXG4gICAgcGFyYW1zLmNvdmVuYW50Tm9Db29yZFBrcy5tYXAoKHBrKSA9PiBCdWZmZXIuZnJvbShwaywgJ2hleCcpKSxcbiAgICBwYXJhbXMuY292ZW5hbnRRdW9ydW0sXG4gICAgcGFyYW1zLm1pblN0YWtpbmdUaW1lQmxvY2tzLFxuICAgIHBhcmFtcy51bmJvbmRpbmdUaW1lXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZXNjcmlwdG9yUHJvdmlkZXJGb3JTdGFraW5nUGFyYW1zKFxuICBzdGFrZXJCdGNJbmZvOiBTdGFrZXJJbmZvLFxuICBzdGFraW5nSW5wdXQ6IFN0YWtpbmdJbnB1dHMsXG4gIHN0YWtpbmdQYXJhbXM6IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNcbik6IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB7XG4gIGNvbnN0IHVzZXJLZXkgPSBCdWZmZXIuZnJvbShzdGFrZXJCdGNJbmZvLnB1YmxpY0tleU5vQ29vcmRIZXgsICdoZXgnKTtcbiAgY29uc3QgZmluYWxpdHlQcm92aWRlcktleSA9IEJ1ZmZlci5mcm9tKHN0YWtpbmdJbnB1dC5maW5hbGl0eVByb3ZpZGVyUGtOb0Nvb3JkSGV4LCAnaGV4Jyk7XG4gIHJldHVybiBnZXREZXNjcmlwdG9yQnVpbGRlckZvclBhcmFtcyh1c2VyS2V5LCBbZmluYWxpdHlQcm92aWRlcktleV0sIHN0YWtpbmdQYXJhbXMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVzdG5ldERlc2NyaXB0b3JCdWlsZGVyKFxuICB1c2VyS2V5OiB1dHhvbGliLkJJUDMySW50ZXJmYWNlIHwgdXR4b2xpYi5FQ1BhaXJJbnRlcmZhY2UgfCBCdWZmZXIsXG4gIHtcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cyA9IFt0ZXN0bmV0RmluYWxpdHlQcm92aWRlcjBdLFxuICB9OiB7XG4gICAgZmluYWxpdHlQcm92aWRlcktleXM/OiBCdWZmZXJbXTtcbiAgfSA9IHt9XG4pOiBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIge1xuICByZXR1cm4gZ2V0RGVzY3JpcHRvckJ1aWxkZXJGb3JQYXJhbXMoXG4gICAgdXNlcktleSxcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cyxcbiAgICBnZXRCYWJ5bG9uUGFyYW1CeVZlcnNpb24oNSwgZ2V0U3Rha2luZ1BhcmFtcygndGVzdG5ldCcpKVxuICApO1xufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAMhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,cAAc,EACd,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,kBAAkB,EAClB,UAAsB,GACvB,EAAE;IACD,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;IAChD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,iBAAiB,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CA0DzB"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAGhD;;;;;;;;;;;;GAYG;AACH,wBAAgB,2BAA2B,CAAC,EAC1C,cAAc,EACd,QAAQ,EACR,OAAO,EACP,iBAAiB,EACjB,YAAY,EACZ,OAAO,EACP,kBAAkB,EAClB,UAAsB,GACvB,EAAE;IACD,cAAc,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;IAChD,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;IACJ,iBAAiB,EAAE;QACjB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;QAC/B,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CA0DzB"}
@@ -36,8 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.buildFixedWalletStakingPsbt = buildFixedWalletStakingPsbt;
37
37
  const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
38
38
  const unspents_1 = require("@bitgo-beta/unspents");
39
- const bitcoinjslib = __importStar(require("bitcoinjs-lib"));
40
- bitcoinjslib.initEccLib(utxolib.ecc);
41
39
  /**
42
40
  * Build a staking transaction for a wallet that assumes 2-of-3 multisig for the inputs
43
41
  *
@@ -86,4 +84,4 @@ function buildFixedWalletStakingPsbt({ rootWalletKeys, unspents, outputs, change
86
84
  }
87
85
  return psbt;
88
86
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsa0VBbUZDO0FBdEdELDhEQUFnRDtBQUNoRCxtREFBa0Q7QUFDbEQsNERBQThDO0FBRTlDLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXJDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLDJCQUEyQixDQUFDLEVBQzFDLGNBQWMsRUFDZCxRQUFRLEVBQ1IsT0FBTyxFQUNQLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osT0FBTyxFQUNQLGtCQUFrQixFQUNsQixVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQWlCdkI7SUFDQyxJQUFJLFlBQVksR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FDckUsY0FBYyxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQ2xHLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQ3pELE9BQU8sQ0FDUixDQUFDLFlBQVksQ0FBQztJQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3RyxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdELE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUVuRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEYsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBGLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7UUFDbkYsa0JBQWtCLEVBQUUsSUFBSTtRQUN4QixrQkFBa0I7S0FDbkIsQ0FBQyxDQUNILENBQUM7SUFDRixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFcEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDbkIsQ0FBQyxxQkFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdkIsSUFBSSxDQUFDLHFCQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDckQsUUFBUSxFQUFFO1FBQ1gsWUFBWSxDQUFDO1FBQ2IsSUFBSSxDQUNQLENBQUM7SUFFRixNQUFNLFlBQVksR0FBRyxXQUFXLEdBQUcsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEUsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FDYixnQkFBZ0IsV0FBVyxDQUFDLFFBQVEsRUFBRSxvQ0FBb0MsWUFBWSxrQkFBa0IsR0FBRyxFQUFFLENBQzlHLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxZQUFZLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FDakMsSUFBSSxFQUNKLGNBQWMsRUFDZCxpQkFBaUIsQ0FBQyxLQUFLLEVBQ3ZCLGlCQUFpQixDQUFDLEtBQUssRUFDdkIsWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBEaW1lbnNpb25zIH0gZnJvbSAnQGJpdGdvLWJldGEvdW5zcGVudHMnO1xuaW1wb3J0ICogYXMgYml0Y29pbmpzbGliIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5iaXRjb2luanNsaWIuaW5pdEVjY0xpYih1dHhvbGliLmVjYyk7XG5cbi8qKlxuICogQnVpbGQgYSBzdGFraW5nIHRyYW5zYWN0aW9uIGZvciBhIHdhbGxldCB0aGF0IGFzc3VtZXMgMi1vZi0zIG11bHRpc2lnIGZvciB0aGUgaW5wdXRzXG4gKlxuICogR2l2ZW4gdGhlIGlucHV0cyBhbmQgdGhlIHN0YWtpbmcgb3V0cHV0cywgd2Ugd2lsbCBjcmVhdGUgdGhlIFBTQlQgd2l0aCB0aGUgZGVzaXJlZCBmZWUgcmF0ZS5cbiAqIFdlIGFsd2F5cyBhZGQgdGhlIGNoYW5nZSBhZGRyZXNzIGFzIHRoZSBsYXN0IG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXNcbiAqIEBwYXJhbSB1bnNwZW50c1xuICogQHBhcmFtIGNyZWF0ZVN0YWtpbmdPdXRwdXRzXG4gKiBAcGFyYW0gY2hhbmdlQWRkcmVzc0luZm9cbiAqIEBwYXJhbSBmZWVSYXRlU2F0S0JcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZpeGVkV2FsbGV0U3Rha2luZ1BzYnQoe1xuICByb290V2FsbGV0S2V5cyxcbiAgdW5zcGVudHMsXG4gIG91dHB1dHMsXG4gIGNoYW5nZUFkZHJlc3NJbmZvLFxuICBmZWVSYXRlU2F0S0IsXG4gIG5ldHdvcmssXG4gIHNraXBOb25XaXRuZXNzVXR4byxcbiAgZHVzdEFtb3VudCA9IEJpZ0ludCgwKSxcbn06IHtcbiAgcm9vdFdhbGxldEtleXM6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXM7XG4gIHVuc3BlbnRzOiB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnQ8YmlnaW50PltdO1xuICBvdXRwdXRzOiB7XG4gICAgc2NyaXB0OiBCdWZmZXI7XG4gICAgdmFsdWU6IGJpZ2ludDtcbiAgfVtdO1xuICBjaGFuZ2VBZGRyZXNzSW5mbzoge1xuICAgIGNoYWluOiB1dHhvbGliLmJpdGdvLkNoYWluQ29kZTtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgfTtcbiAgZmVlUmF0ZVNhdEtCOiBudW1iZXI7XG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yaztcbiAgc2tpcE5vbldpdG5lc3NVdHhvPzogYm9vbGVhbjtcbiAgZHVzdEFtb3VudD86IGJpZ2ludDtcbn0pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgaWYgKGZlZVJhdGVTYXRLQiA8IDEwMDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZlZSByYXRlIG11c3QgYmUgYXQgbGVhc3QgMSBzYXQvdmJ5dGUnKTtcbiAgfVxuICBpZiAodW5zcGVudHMubGVuZ3RoID09PSAwIHx8IG91dHB1dHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGlucHV0IGFuZCBvbmUgb3V0cHV0Jyk7XG4gIH1cblxuICAvLyBDaGVjayB0aGUgY2hhbmdlIGFkZHJlc3MgaW5mb1xuICBjb25zdCBjaGFuZ2VTY3JpcHQgPSB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhcbiAgICByb290V2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYW5nZUFkZHJlc3NJbmZvLmNoYWluLCBjaGFuZ2VBZGRyZXNzSW5mby5pbmRleCkucHVibGljS2V5cyxcbiAgICB1dHhvbGliLmJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihjaGFuZ2VBZGRyZXNzSW5mby5jaGFpbiksXG4gICAgbmV0d29ya1xuICApLnNjcmlwdFB1YktleTtcbiAgaWYgKCFjaGFuZ2VTY3JpcHQuZXF1YWxzKHV0eG9saWIuYWRkcmVzc0Zvcm1hdC50b091dHB1dFNjcmlwdFRyeUZvcm1hdHMoY2hhbmdlQWRkcmVzc0luZm8uYWRkcmVzcywgbmV0d29yaykpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDaGFuZ2UgYWRkcmVzcyBpbmZvIGRvZXMgbm90IG1hdGNoIHRoZSBkZXJpdmVkIGNoYW5nZSBzY3JpcHQnKTtcbiAgfVxuXG4gIGNvbnN0IHBzYnQgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yayB9KTtcbiAgdXR4b2xpYi5iaXRnby5hZGRYcHVic1RvUHNidChwc2J0LCByb290V2FsbGV0S2V5cyk7XG5cbiAgY29uc3QgaW5wdXRBbW91bnQgPSB1bnNwZW50cy5yZWR1Y2UoKHN1bSwgdW5zcGVudCkgPT4gc3VtICsgdW5zcGVudC52YWx1ZSwgQmlnSW50KDApKTtcbiAgY29uc3Qgb3V0cHV0QW1vdW50ID0gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBvdXRwdXQudmFsdWUsIEJpZ0ludCgwKSk7XG5cbiAgdW5zcGVudHMuZm9yRWFjaCgodW5zcGVudCkgPT5cbiAgICB1dHhvbGliLmJpdGdvLmFkZFdhbGxldFVuc3BlbnRUb1BzYnQocHNidCwgdW5zcGVudCwgcm9vdFdhbGxldEtleXMsICd1c2VyJywgJ2JpdGdvJywge1xuICAgICAgaXNSZXBsYWNlYWJsZUJ5RmVlOiB0cnVlLFxuICAgICAgc2tpcE5vbldpdG5lc3NVdHhvLFxuICAgIH0pXG4gICk7XG4gIG91dHB1dHMuZm9yRWFjaCgob3V0cHV0KSA9PiBwc2J0LmFkZE91dHB1dChvdXRwdXQpKTtcblxuICBjb25zdCBmZWUgPSBNYXRoLmNlaWwoXG4gICAgKERpbWVuc2lvbnMuZnJvbVBzYnQocHNidClcbiAgICAgIC5wbHVzKERpbWVuc2lvbnMuZnJvbU91dHB1dCh7IHNjcmlwdDogY2hhbmdlU2NyaXB0IH0pKVxuICAgICAgLmdldFZTaXplKCkgKlxuICAgICAgZmVlUmF0ZVNhdEtCKSAvXG4gICAgICAxMDAwXG4gICk7XG5cbiAgY29uc3QgY2hhbmdlQW1vdW50ID0gaW5wdXRBbW91bnQgLSAob3V0cHV0QW1vdW50ICsgQmlnSW50KGZlZSkpO1xuICBpZiAoY2hhbmdlQW1vdW50IDwgQmlnSW50KDApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYElucHV0IGFtb3VudCAke2lucHV0QW1vdW50LnRvU3RyaW5nKCl9IGNhbm5vdCBjb3ZlciB0aGUgc3Rha2luZyBhbW91bnQgJHtvdXRwdXRBbW91bnR9IGFuZCAgdGhlIGZlZTogJHtmZWV9YFxuICAgICk7XG4gIH1cblxuICBpZiAoY2hhbmdlQW1vdW50ID4gZHVzdEFtb3VudCkge1xuICAgIHV0eG9saWIuYml0Z28uYWRkV2FsbGV0T3V0cHV0VG9Qc2J0KFxuICAgICAgcHNidCxcbiAgICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgICAgY2hhbmdlQWRkcmVzc0luZm8uY2hhaW4sXG4gICAgICBjaGFuZ2VBZGRyZXNzSW5mby5pbmRleCxcbiAgICAgIGNoYW5nZUFtb3VudFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gcHNidDtcbn1cbiJdfQ==
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFnQkEsa0VBbUZDO0FBbkdELDhEQUFnRDtBQUNoRCxtREFBa0Q7QUFFbEQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsRUFDMUMsY0FBYyxFQUNkLFFBQVEsRUFDUixPQUFPLEVBQ1AsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixPQUFPLEVBQ1Asa0JBQWtCLEVBQ2xCLFVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBaUJ2QjtJQUNDLElBQUksWUFBWSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ0QsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsZ0NBQWdDO0lBQ2hDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUNyRSxjQUFjLENBQUMsc0JBQXNCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFVBQVUsRUFDbEcsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsRUFDekQsT0FBTyxDQUNSLENBQUMsWUFBWSxDQUFDO0lBQ2YsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdHLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELENBQUMsQ0FBQztJQUNsRixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDN0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBRW5ELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0RixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFcEYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQzNCLE9BQU8sQ0FBQyxLQUFLLENBQUMsc0JBQXNCLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRTtRQUNuRixrQkFBa0IsRUFBRSxJQUFJO1FBQ3hCLGtCQUFrQjtLQUNuQixDQUFDLENBQ0gsQ0FBQztJQUNGLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUVwRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUNuQixDQUFDLHFCQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQztTQUN2QixJQUFJLENBQUMscUJBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztTQUNyRCxRQUFRLEVBQUU7UUFDWCxZQUFZLENBQUM7UUFDYixJQUFJLENBQ1AsQ0FBQztJQUVGLE1BQU0sWUFBWSxHQUFHLFdBQVcsR0FBRyxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksS0FBSyxDQUNiLGdCQUFnQixXQUFXLENBQUMsUUFBUSxFQUFFLG9DQUFvQyxZQUFZLGtCQUFrQixHQUFHLEVBQUUsQ0FDOUcsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFlBQVksR0FBRyxVQUFVLEVBQUUsQ0FBQztRQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUNqQyxJQUFJLEVBQ0osY0FBYyxFQUNkLGlCQUFpQixDQUFDLEtBQUssRUFDdkIsaUJBQWlCLENBQUMsS0FBSyxFQUN2QixZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IERpbWVuc2lvbnMgfSBmcm9tICdAYml0Z28tYmV0YS91bnNwZW50cyc7XG5cbi8qKlxuICogQnVpbGQgYSBzdGFraW5nIHRyYW5zYWN0aW9uIGZvciBhIHdhbGxldCB0aGF0IGFzc3VtZXMgMi1vZi0zIG11bHRpc2lnIGZvciB0aGUgaW5wdXRzXG4gKlxuICogR2l2ZW4gdGhlIGlucHV0cyBhbmQgdGhlIHN0YWtpbmcgb3V0cHV0cywgd2Ugd2lsbCBjcmVhdGUgdGhlIFBTQlQgd2l0aCB0aGUgZGVzaXJlZCBmZWUgcmF0ZS5cbiAqIFdlIGFsd2F5cyBhZGQgdGhlIGNoYW5nZSBhZGRyZXNzIGFzIHRoZSBsYXN0IG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXNcbiAqIEBwYXJhbSB1bnNwZW50c1xuICogQHBhcmFtIGNyZWF0ZVN0YWtpbmdPdXRwdXRzXG4gKiBAcGFyYW0gY2hhbmdlQWRkcmVzc0luZm9cbiAqIEBwYXJhbSBmZWVSYXRlU2F0S0JcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZpeGVkV2FsbGV0U3Rha2luZ1BzYnQoe1xuICByb290V2FsbGV0S2V5cyxcbiAgdW5zcGVudHMsXG4gIG91dHB1dHMsXG4gIGNoYW5nZUFkZHJlc3NJbmZvLFxuICBmZWVSYXRlU2F0S0IsXG4gIG5ldHdvcmssXG4gIHNraXBOb25XaXRuZXNzVXR4byxcbiAgZHVzdEFtb3VudCA9IEJpZ0ludCgwKSxcbn06IHtcbiAgcm9vdFdhbGxldEtleXM6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXM7XG4gIHVuc3BlbnRzOiB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnQ8YmlnaW50PltdO1xuICBvdXRwdXRzOiB7XG4gICAgc2NyaXB0OiBCdWZmZXI7XG4gICAgdmFsdWU6IGJpZ2ludDtcbiAgfVtdO1xuICBjaGFuZ2VBZGRyZXNzSW5mbzoge1xuICAgIGNoYWluOiB1dHhvbGliLmJpdGdvLkNoYWluQ29kZTtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgfTtcbiAgZmVlUmF0ZVNhdEtCOiBudW1iZXI7XG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yaztcbiAgc2tpcE5vbldpdG5lc3NVdHhvPzogYm9vbGVhbjtcbiAgZHVzdEFtb3VudD86IGJpZ2ludDtcbn0pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgaWYgKGZlZVJhdGVTYXRLQiA8IDEwMDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZlZSByYXRlIG11c3QgYmUgYXQgbGVhc3QgMSBzYXQvdmJ5dGUnKTtcbiAgfVxuICBpZiAodW5zcGVudHMubGVuZ3RoID09PSAwIHx8IG91dHB1dHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGlucHV0IGFuZCBvbmUgb3V0cHV0Jyk7XG4gIH1cblxuICAvLyBDaGVjayB0aGUgY2hhbmdlIGFkZHJlc3MgaW5mb1xuICBjb25zdCBjaGFuZ2VTY3JpcHQgPSB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhcbiAgICByb290V2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYW5nZUFkZHJlc3NJbmZvLmNoYWluLCBjaGFuZ2VBZGRyZXNzSW5mby5pbmRleCkucHVibGljS2V5cyxcbiAgICB1dHhvbGliLmJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihjaGFuZ2VBZGRyZXNzSW5mby5jaGFpbiksXG4gICAgbmV0d29ya1xuICApLnNjcmlwdFB1YktleTtcbiAgaWYgKCFjaGFuZ2VTY3JpcHQuZXF1YWxzKHV0eG9saWIuYWRkcmVzc0Zvcm1hdC50b091dHB1dFNjcmlwdFRyeUZvcm1hdHMoY2hhbmdlQWRkcmVzc0luZm8uYWRkcmVzcywgbmV0d29yaykpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDaGFuZ2UgYWRkcmVzcyBpbmZvIGRvZXMgbm90IG1hdGNoIHRoZSBkZXJpdmVkIGNoYW5nZSBzY3JpcHQnKTtcbiAgfVxuXG4gIGNvbnN0IHBzYnQgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yayB9KTtcbiAgdXR4b2xpYi5iaXRnby5hZGRYcHVic1RvUHNidChwc2J0LCByb290V2FsbGV0S2V5cyk7XG5cbiAgY29uc3QgaW5wdXRBbW91bnQgPSB1bnNwZW50cy5yZWR1Y2UoKHN1bSwgdW5zcGVudCkgPT4gc3VtICsgdW5zcGVudC52YWx1ZSwgQmlnSW50KDApKTtcbiAgY29uc3Qgb3V0cHV0QW1vdW50ID0gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBvdXRwdXQudmFsdWUsIEJpZ0ludCgwKSk7XG5cbiAgdW5zcGVudHMuZm9yRWFjaCgodW5zcGVudCkgPT5cbiAgICB1dHhvbGliLmJpdGdvLmFkZFdhbGxldFVuc3BlbnRUb1BzYnQocHNidCwgdW5zcGVudCwgcm9vdFdhbGxldEtleXMsICd1c2VyJywgJ2JpdGdvJywge1xuICAgICAgaXNSZXBsYWNlYWJsZUJ5RmVlOiB0cnVlLFxuICAgICAgc2tpcE5vbldpdG5lc3NVdHhvLFxuICAgIH0pXG4gICk7XG4gIG91dHB1dHMuZm9yRWFjaCgob3V0cHV0KSA9PiBwc2J0LmFkZE91dHB1dChvdXRwdXQpKTtcblxuICBjb25zdCBmZWUgPSBNYXRoLmNlaWwoXG4gICAgKERpbWVuc2lvbnMuZnJvbVBzYnQocHNidClcbiAgICAgIC5wbHVzKERpbWVuc2lvbnMuZnJvbU91dHB1dCh7IHNjcmlwdDogY2hhbmdlU2NyaXB0IH0pKVxuICAgICAgLmdldFZTaXplKCkgKlxuICAgICAgZmVlUmF0ZVNhdEtCKSAvXG4gICAgICAxMDAwXG4gICk7XG5cbiAgY29uc3QgY2hhbmdlQW1vdW50ID0gaW5wdXRBbW91bnQgLSAob3V0cHV0QW1vdW50ICsgQmlnSW50KGZlZSkpO1xuICBpZiAoY2hhbmdlQW1vdW50IDwgQmlnSW50KDApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYElucHV0IGFtb3VudCAke2lucHV0QW1vdW50LnRvU3RyaW5nKCl9IGNhbm5vdCBjb3ZlciB0aGUgc3Rha2luZyBhbW91bnQgJHtvdXRwdXRBbW91bnR9IGFuZCAgdGhlIGZlZTogJHtmZWV9YFxuICAgICk7XG4gIH1cblxuICBpZiAoY2hhbmdlQW1vdW50ID4gZHVzdEFtb3VudCkge1xuICAgIHV0eG9saWIuYml0Z28uYWRkV2FsbGV0T3V0cHV0VG9Qc2J0KFxuICAgICAgcHNidCxcbiAgICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgICAgY2hhbmdlQWRkcmVzc0luZm8uY2hhaW4sXG4gICAgICBjaGFuZ2VBZGRyZXNzSW5mby5pbmRleCxcbiAgICAgIGNoYW5nZUFtb3VudFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gcHNidDtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bitgo-beta/utxo-staking",
3
- "version": "1.1.0-alpha.63",
3
+ "version": "1.1.0-alpha.64",
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",
@@ -43,10 +43,10 @@
43
43
  },
44
44
  "dependencies": {
45
45
  "@babylonlabs-io/babylon-proto-ts": "1.0.0",
46
- "@bitgo-beta/babylonlabs-io-btc-staking-ts": "0.4.0-alpha.10",
47
- "@bitgo-beta/unspents": "0.11.3-alpha.294",
48
- "@bitgo-beta/utxo-core": "1.0.1-alpha.24",
49
- "@bitgo-beta/utxo-lib": "4.0.1-alpha.294",
46
+ "@bitgo-beta/babylonlabs-io-btc-staking-ts": "0.4.0-alpha.11",
47
+ "@bitgo-beta/unspents": "0.11.3-alpha.295",
48
+ "@bitgo-beta/utxo-core": "1.0.1-alpha.25",
49
+ "@bitgo-beta/utxo-lib": "4.0.1-alpha.295",
50
50
  "@bitgo/wasm-miniscript": "2.0.0-beta.7",
51
51
  "bitcoinjs-lib": "^6.1.7",
52
52
  "fp-ts": "^2.16.2",
@@ -56,5 +56,5 @@
56
56
  "devDependencies": {
57
57
  "yargs": "^17.7.2"
58
58
  },
59
- "gitHead": "a43c5ac3abe8f38c50911d2fa1eaa2f027c194fa"
59
+ "gitHead": "221555d025ed16b3f7d63db8db39cb2c53df312c"
60
60
  }
@@ -1,7 +0,0 @@
1
- import * as bitcoinjslib from 'bitcoinjs-lib';
2
- import * as utxolib from '@bitgo-beta/utxo-lib';
3
- export type BabylonNetwork = 'mainnet' | 'testnet';
4
- export type BabylonNetworkLike = bitcoinjslib.Network | utxolib.Network | BabylonNetwork;
5
- export declare function toBabylonNetwork(n: BabylonNetworkLike): BabylonNetwork;
6
- export declare function toBitcoinJsNetwork(n: BabylonNetworkLike): bitcoinjslib.Network;
7
- //# sourceMappingURL=network.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../src/babylon/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,CAAC;AAEnD,MAAM,MAAM,kBAAkB,GAAG,YAAY,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,cAAc,CAAC;AAEzF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,kBAAkB,GAAG,cAAc,CAetE;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,kBAAkB,GAAG,YAAY,CAAC,OAAO,CAS9E"}
@@ -1,66 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.toBabylonNetwork = toBabylonNetwork;
37
- exports.toBitcoinJsNetwork = toBitcoinJsNetwork;
38
- const bitcoinjslib = __importStar(require("bitcoinjs-lib"));
39
- const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
40
- function toBabylonNetwork(n) {
41
- switch (n) {
42
- case bitcoinjslib.networks.bitcoin:
43
- case utxolib.networks.bitcoin:
44
- return 'mainnet';
45
- case bitcoinjslib.networks.testnet:
46
- case utxolib.networks.testnet:
47
- case utxolib.networks.bitcoinPublicSignet:
48
- return 'testnet';
49
- case 'mainnet':
50
- case 'testnet':
51
- return n;
52
- default:
53
- throw new Error('Unsupported network');
54
- }
55
- }
56
- function toBitcoinJsNetwork(n) {
57
- switch (toBabylonNetwork(n)) {
58
- case 'mainnet':
59
- return bitcoinjslib.networks.bitcoin;
60
- case 'testnet':
61
- return bitcoinjslib.networks.testnet;
62
- default:
63
- throw new Error('Unsupported network');
64
- }
65
- }
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV0d29yay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL25ldHdvcmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPQSw0Q0FlQztBQUVELGdEQVNDO0FBakNELDREQUE4QztBQUM5Qyw4REFBZ0Q7QUFNaEQsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBcUI7SUFDcEQsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNWLEtBQUssWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDbkMsS0FBSyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU87WUFDM0IsT0FBTyxTQUFTLENBQUM7UUFDbkIsS0FBSyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUNuQyxLQUFLLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQzlCLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUI7WUFDdkMsT0FBTyxTQUFTLENBQUM7UUFDbkIsS0FBSyxTQUFTLENBQUM7UUFDZixLQUFLLFNBQVM7WUFDWixPQUFPLENBQUMsQ0FBQztRQUNYO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzNDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsQ0FBcUI7SUFDdEQsUUFBUSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVCLEtBQUssU0FBUztZQUNaLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDdkMsS0FBSyxTQUFTO1lBQ1osT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztRQUN2QztZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUMzQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGJpdGNvaW5qc2xpYiBmcm9tICdiaXRjb2luanMtbGliJztcbmltcG9ydCAqIGFzIHV0eG9saWIgZnJvbSAnQGJpdGdvLWJldGEvdXR4by1saWInO1xuXG5leHBvcnQgdHlwZSBCYWJ5bG9uTmV0d29yayA9ICdtYWlubmV0JyB8ICd0ZXN0bmV0JztcblxuZXhwb3J0IHR5cGUgQmFieWxvbk5ldHdvcmtMaWtlID0gYml0Y29pbmpzbGliLk5ldHdvcmsgfCB1dHhvbGliLk5ldHdvcmsgfCBCYWJ5bG9uTmV0d29yaztcblxuZXhwb3J0IGZ1bmN0aW9uIHRvQmFieWxvbk5ldHdvcmsobjogQmFieWxvbk5ldHdvcmtMaWtlKTogQmFieWxvbk5ldHdvcmsge1xuICBzd2l0Y2ggKG4pIHtcbiAgICBjYXNlIGJpdGNvaW5qc2xpYi5uZXR3b3Jrcy5iaXRjb2luOlxuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luOlxuICAgICAgcmV0dXJuICdtYWlubmV0JztcbiAgICBjYXNlIGJpdGNvaW5qc2xpYi5uZXR3b3Jrcy50ZXN0bmV0OlxuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy50ZXN0bmV0OlxuICAgIGNhc2UgdXR4b2xpYi5uZXR3b3Jrcy5iaXRjb2luUHVibGljU2lnbmV0OlxuICAgICAgcmV0dXJuICd0ZXN0bmV0JztcbiAgICBjYXNlICdtYWlubmV0JzpcbiAgICBjYXNlICd0ZXN0bmV0JzpcbiAgICAgIHJldHVybiBuO1xuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vuc3VwcG9ydGVkIG5ldHdvcmsnKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9CaXRjb2luSnNOZXR3b3JrKG46IEJhYnlsb25OZXR3b3JrTGlrZSk6IGJpdGNvaW5qc2xpYi5OZXR3b3JrIHtcbiAgc3dpdGNoICh0b0JhYnlsb25OZXR3b3JrKG4pKSB7XG4gICAgY2FzZSAnbWFpbm5ldCc6XG4gICAgICByZXR1cm4gYml0Y29pbmpzbGliLm5ldHdvcmtzLmJpdGNvaW47XG4gICAgY2FzZSAndGVzdG5ldCc6XG4gICAgICByZXR1cm4gYml0Y29pbmpzbGliLm5ldHdvcmtzLnRlc3RuZXQ7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5zdXBwb3J0ZWQgbmV0d29yaycpO1xuICB9XG59XG4iXX0=