@bitgo-beta/utxo-staking 1.1.1-beta.43 → 1.1.1-beta.430
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/babylon/delegationMessage.d.ts +38 -0
- package/dist/src/babylon/delegationMessage.d.ts.map +1 -0
- package/dist/src/babylon/delegationMessage.js +261 -0
- package/dist/src/babylon/descriptor.d.ts +29 -0
- package/dist/src/babylon/descriptor.d.ts.map +1 -0
- package/dist/src/babylon/descriptor.js +78 -0
- package/dist/src/babylon/index.d.ts +5 -0
- package/dist/src/babylon/index.d.ts.map +1 -0
- package/dist/src/babylon/index.js +48 -0
- package/dist/src/babylon/network.d.ts +7 -0
- package/dist/src/babylon/network.d.ts.map +1 -0
- package/dist/src/babylon/network.js +66 -0
- package/dist/src/babylon/params.mainnet.json +152 -0
- package/dist/src/babylon/params.testnet.json +212 -0
- package/dist/src/babylon/stakingManager.d.ts +6 -0
- package/dist/src/babylon/stakingManager.d.ts.map +1 -0
- package/dist/src/babylon/stakingManager.js +116 -0
- package/dist/src/babylon/stakingParams.d.ts +40 -0
- package/dist/src/babylon/stakingParams.d.ts.map +1 -0
- package/dist/src/babylon/stakingParams.js +132 -0
- package/dist/src/coreDao/descriptor.d.ts +4 -2
- package/dist/src/coreDao/descriptor.d.ts.map +1 -1
- package/dist/src/coreDao/descriptor.js +11 -3
- package/dist/src/coreDao/opReturn.d.ts +1 -0
- package/dist/src/coreDao/opReturn.d.ts.map +1 -1
- package/dist/src/coreDao/opReturn.js +5 -2
- package/dist/src/coreDao/transaction.d.ts +15 -6
- package/dist/src/coreDao/transaction.d.ts.map +1 -1
- package/dist/src/coreDao/transaction.js +12 -4
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +26 -3
- package/dist/src/transaction.d.ts.map +1 -1
- package/dist/src/transaction.js +37 -2
- package/package.json +21 -8
- package/.eslintignore +0 -5
- package/.mocharc.yml +0 -8
- package/CHANGELOG.md +0 -43
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.testnetFinalityProvider0 = exports.testnetStakingParams = exports.mainnetStakingParams = exports.getBabylonParamByBtcHeight = exports.getBabylonParamByVersion = void 0;
|
|
40
|
+
exports.toVersionedParams = toVersionedParams;
|
|
41
|
+
exports.getStakingParams = getStakingParams;
|
|
42
|
+
exports.getDescriptorBuilderForParams = getDescriptorBuilderForParams;
|
|
43
|
+
exports.getDescriptorProviderForStakingParams = getDescriptorProviderForStakingParams;
|
|
44
|
+
exports.getTestnetDescriptorBuilder = getTestnetDescriptorBuilder;
|
|
45
|
+
const t = __importStar(require("io-ts"));
|
|
46
|
+
const tt = __importStar(require("io-ts-types"));
|
|
47
|
+
const Either_1 = require("fp-ts/Either");
|
|
48
|
+
const PathReporter_1 = require("io-ts/lib/PathReporter");
|
|
49
|
+
const babylonlabs_io_btc_staking_ts_1 = require("@bitgo-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
|
+
const descriptor_1 = require("./descriptor");
|
|
54
|
+
const params_mainnet_json_1 = __importDefault(require("./params.mainnet.json"));
|
|
55
|
+
const params_testnet_json_1 = __importDefault(require("./params.testnet.json"));
|
|
56
|
+
const network_1 = require("./network");
|
|
57
|
+
/** @see https://docs.babylonlabs.io/api/babylon-gRPC/params/ */
|
|
58
|
+
const BabylonParamsJSON = t.type({
|
|
59
|
+
covenant_pks: t.array(t.string),
|
|
60
|
+
covenant_quorum: t.number,
|
|
61
|
+
min_staking_value_sat: tt.NumberFromString,
|
|
62
|
+
max_staking_value_sat: tt.NumberFromString,
|
|
63
|
+
min_staking_time_blocks: t.number,
|
|
64
|
+
max_staking_time_blocks: t.number,
|
|
65
|
+
slashing_pk_script: t.string,
|
|
66
|
+
min_slashing_tx_fee_sat: tt.NumberFromString,
|
|
67
|
+
slashing_rate: t.string,
|
|
68
|
+
unbonding_time_blocks: t.number,
|
|
69
|
+
unbonding_fee_sat: tt.NumberFromString,
|
|
70
|
+
min_commission_rate: tt.NumberFromString,
|
|
71
|
+
delegation_creation_base_gas_fee: tt.NumberFromString,
|
|
72
|
+
allow_list_expiration_height: tt.NumberFromString,
|
|
73
|
+
btc_activation_height: t.number,
|
|
74
|
+
});
|
|
75
|
+
function toVersionedParams(ps) {
|
|
76
|
+
return ps.map((p, version) => ({
|
|
77
|
+
version,
|
|
78
|
+
btcActivationHeight: p.btc_activation_height,
|
|
79
|
+
covenantNoCoordPks: p.covenant_pks,
|
|
80
|
+
covenantQuorum: p.covenant_quorum,
|
|
81
|
+
unbondingTime: p.unbonding_time_blocks,
|
|
82
|
+
unbondingFeeSat: p.unbonding_fee_sat,
|
|
83
|
+
maxStakingAmountSat: p.max_staking_value_sat,
|
|
84
|
+
minStakingAmountSat: p.min_staking_value_sat,
|
|
85
|
+
maxStakingTimeBlocks: p.max_staking_time_blocks,
|
|
86
|
+
minStakingTimeBlocks: p.min_staking_time_blocks,
|
|
87
|
+
slashing: {
|
|
88
|
+
slashingPkScriptHex: Buffer.from(p.slashing_pk_script, 'base64').toString('hex'),
|
|
89
|
+
slashingRate: parseFloat(p.slashing_rate),
|
|
90
|
+
minSlashingTxFeeSat: p.min_slashing_tx_fee_sat,
|
|
91
|
+
},
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
function toVersionedParamsFromJson(jsonParams) {
|
|
95
|
+
return toVersionedParams(jsonParams.map((p) => {
|
|
96
|
+
const result = t.type({ params: BabylonParamsJSON }).decode(p);
|
|
97
|
+
if ((0, Either_1.isLeft)(result)) {
|
|
98
|
+
const msg = PathReporter_1.PathReporter.report(result).join('\n');
|
|
99
|
+
throw new Error(`Invalid params: ${msg}`);
|
|
100
|
+
}
|
|
101
|
+
return result.right.params;
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
exports.mainnetStakingParams = Object.freeze(toVersionedParamsFromJson(params_mainnet_json_1.default));
|
|
105
|
+
exports.testnetStakingParams = Object.freeze(toVersionedParamsFromJson(params_testnet_json_1.default));
|
|
106
|
+
function getStakingParams(network) {
|
|
107
|
+
switch ((0, network_1.toBabylonNetwork)(network)) {
|
|
108
|
+
case 'mainnet':
|
|
109
|
+
return [...exports.mainnetStakingParams];
|
|
110
|
+
case 'testnet':
|
|
111
|
+
return [...exports.testnetStakingParams];
|
|
112
|
+
default:
|
|
113
|
+
throw new Error('Unsupported network');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Source: https://btcstaking.testnet.babylonlabs.io/ "Babylon Foundation 0"
|
|
117
|
+
exports.testnetFinalityProvider0 = Buffer.from('d23c2c25e1fcf8fd1c21b9a402c19e2e309e531e45e92fb1e9805b6056b0cc76', 'hex');
|
|
118
|
+
function getDescriptorBuilderForParams(userKey, finalityProviderKeys, stakingTimelock, params) {
|
|
119
|
+
if (!Buffer.isBuffer(userKey)) {
|
|
120
|
+
userKey = userKey.publicKey;
|
|
121
|
+
}
|
|
122
|
+
return new descriptor_1.BabylonDescriptorBuilder(userKey, finalityProviderKeys, params.covenantNoCoordPks.map((pk) => Buffer.from(pk, 'hex')), params.covenantQuorum, stakingTimelock, params.unbondingTime);
|
|
123
|
+
}
|
|
124
|
+
function getDescriptorProviderForStakingParams(stakerBtcInfo, stakingInput, stakingParams) {
|
|
125
|
+
const userKey = Buffer.from(stakerBtcInfo.publicKeyNoCoordHex, 'hex');
|
|
126
|
+
const finalityProviderKey = Buffer.from(stakingInput.finalityProviderPkNoCoordHex, 'hex');
|
|
127
|
+
return getDescriptorBuilderForParams(userKey, [finalityProviderKey], stakingInput.stakingTimelock, stakingParams);
|
|
128
|
+
}
|
|
129
|
+
function getTestnetDescriptorBuilder(userKey, { finalityProviderKeys = [exports.testnetFinalityProvider0], params = (0, babylonlabs_io_btc_staking_ts_1.getBabylonParamByVersion)(5, getStakingParams('testnet')), stakingTimelock = params.minStakingTimeBlocks, } = {}) {
|
|
130
|
+
return getDescriptorBuilderForParams(userKey, finalityProviderKeys, stakingTimelock, params);
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rha2luZ1BhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWJ5bG9uL3N0YWtpbmdQYXJhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBd0NBLDhDQWtCQztBQXVCRCw0Q0FTQztBQWFELHNFQWlCQztBQUVELHNGQVFDO0FBRUQsa0VBYUM7QUFqSkQseUNBQTJCO0FBQzNCLGdEQUFrQztBQUNsQyx5Q0FBc0M7QUFDdEMseURBQXNEO0FBRXRELDZGQU1tRDtBQUNuRCwyRkFBaUg7QUFBeEcseUlBQUEsd0JBQXdCLE9BQUE7QUFBRSwySUFBQSwwQkFBMEIsT0FBQTtBQUU3RCw2Q0FBd0Q7QUFDeEQsZ0ZBQXNEO0FBQ3RELGdGQUFzRDtBQUN0RCx1Q0FBaUU7QUFFakUsZ0VBQWdFO0FBQ2hFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUMvQixZQUFZLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLGVBQWUsRUFBRSxDQUFDLENBQUMsTUFBTTtJQUN6QixxQkFBcUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQzFDLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxnQkFBZ0I7SUFDMUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDakMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDNUIsdUJBQXVCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUM1QyxhQUFhLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDdkIscUJBQXFCLEVBQUUsQ0FBQyxDQUFDLE1BQU07SUFDL0IsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLGdCQUFnQjtJQUN0QyxtQkFBbUIsRUFBRSxFQUFFLENBQUMsZ0JBQWdCO0lBQ3hDLGdDQUFnQyxF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cG9ydCAqIGFzIHQgZnJvbSAnaW8tdHMnO1xuaW1wb3J0ICogYXMgdHQgZnJvbSAnaW8tdHMtdHlwZXMnO1xuaW1wb3J0IHsgaXNMZWZ0IH0gZnJvbSAnZnAtdHMvRWl0aGVyJztcbmltcG9ydCB7IFBhdGhSZXBvcnRlciB9IGZyb20gJ2lvLXRzL2xpYi9QYXRoUmVwb3J0ZXInO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQge1xuICBnZXRCYWJ5bG9uUGFyYW1CeVZlcnNpb24sXG4gIFN0YWtlckluZm8sXG4gIFN0YWtpbmdJbnB1dHMsXG4gIFN0YWtpbmdQYXJhbXMsXG4gIFZlcnNpb25lZFN0YWtpbmdQYXJhbXMsXG59IGZyb20gJ0BiaXRnby1iZXRhL2JhYnlsb25sYWJzLWlvLWJ0Yy1zdGFraW5nLXRzJztcbmV4cG9ydCB7IGdldEJhYnlsb25QYXJhbUJ5VmVyc2lvbiwgZ2V0QmFieWxvblBhcmFtQnlCdGNIZWlnaHQgfSBmcm9tICdAYml0Z28tYmV0YS9iYWJ5bG9ubGFicy1pby1idGMtc3Rha2luZy10cyc7XG5cbmltcG9ydCB7IEJhYnlsb25EZXNjcmlwdG9yQnVpbGRlciB9IGZyb20gJy4vZGVzY3JpcHRvcic7XG5pbXBvcnQganNvbk1haW5uZXRQYXJhbXMgZnJvbSAnLi9wYXJhbXMubWFpbm5ldC5qc29uJztcbmltcG9ydCBqc29uVGVzdG5ldFBhcmFtcyBmcm9tICcuL3BhcmFtcy50ZXN0bmV0Lmpzb24nO1xuaW1wb3J0IHsgQmFieWxvbk5ldHdvcmtMaWtlLCB0b0JhYnlsb25OZXR3b3JrIH0gZnJvbSAnLi9uZXR3b3JrJztcblxuLyoqIEBzZWUgaHR0cHM6Ly9kb2NzLmJhYnlsb25sYWJzLmlvL2FwaS9iYWJ5bG9uLWdSUEMvcGFyYW1zLyAqL1xuY29uc3QgQmFieWxvblBhcmFtc0pTT04gPSB0LnR5cGUoe1xuICBjb3ZlbmFudF9wa3M6IHQuYXJyYXkodC5zdHJpbmcpLFxuICBjb3ZlbmFudF9xdW9ydW06IHQubnVtYmVyLFxuICBtaW5fc3Rha2luZ192YWx1ZV9zYXQ6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIG1heF9zdGFraW5nX3ZhbHVlX3NhdDogdHQuTnVtYmVyRnJvbVN0cmluZyxcbiAgbWluX3N0YWtpbmdfdGltZV9ibG9ja3M6IHQubnVtYmVyLFxuICBtYXhfc3Rha2luZ190aW1lX2Jsb2NrczogdC5udW1iZXIsXG4gIHNsYXNoaW5nX3BrX3NjcmlwdDogdC5zdHJpbmcsXG4gIG1pbl9zbGFzaGluZ190eF9mZWVfc2F0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBzbGFzaGluZ19yYXRlOiB0LnN0cmluZyxcbiAgdW5ib25kaW5nX3RpbWVfYmxvY2tzOiB0Lm51bWJlcixcbiAgdW5ib25kaW5nX2ZlZV9zYXQ6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIG1pbl9jb21taXNzaW9uX3JhdGU6IHR0Lk51bWJlckZyb21TdHJpbmcsXG4gIGRlbGVnYXRpb25fY3JlYXRpb25fYmFzZV9nYXNfZmVlOiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBhbGxvd19saXN0X2V4cGlyYXRpb25faGVpZ2h0OiB0dC5OdW1iZXJGcm9tU3RyaW5nLFxuICBidGNfYWN0aXZhdGlvbl9oZWlnaHQ6IHQubnVtYmVyLFxufSk7XG5cbnR5cGUgQmFieWxvblBhcmFtc0pTT04gPSB0LlR5cGVPZjx0eXBlb2YgQmFieWxvblBhcmFtc0pTT04+O1xuXG5leHBvcnQgZnVuY3Rpb24gdG9WZXJzaW9uZWRQYXJhbXMocHM6IEJhYnlsb25QYXJhbXNKU09OW10pOiBWZXJzaW9uZWRTdGFraW5nUGFyYW1zW10ge1xuICByZXR1cm4gcHMubWFwKChwLCB2ZXJzaW9uKSA9PiAoe1xuICAgIHZlcnNpb24sXG4gICAgYnRjQWN0aXZhdGlvbkhlaWdodDogcC5idGNfYWN0aXZhdGlvbl9oZWlnaHQsXG4gICAgY292ZW5hbnROb0Nvb3JkUGtzOiBwLmNvdmVuYW50X3BrcyxcbiAgICBjb3ZlbmFudFF1b3J1bTogcC5jb3ZlbmFudF9xdW9ydW0sXG4gICAgdW5ib25kaW5nVGltZTogcC51bmJvbmRpbmdfdGltZV9ibG9ja3MsXG4gICAgdW5ib25kaW5nRmVlU2F0OiBwLnVuYm9uZGluZ19mZWVfc2F0LFxuICAgIG1heFN0YWtpbmdBbW91bnRTYXQ6IHAubWF4X3N0YWtpbmdfdmFsdWVfc2F0LFxuICAgIG1pblN0YWtpbmdBbW91bnRTYXQ6IHAubWluX3N0YWtpbmdfdmFsdWVfc2F0LFxuICAgIG1heFN0YWtpbmdUaW1lQmxvY2tzOiBwLm1heF9zdGFraW5nX3RpbWVfYmxvY2tzLFxuICAgIG1pblN0YWtpbmdUaW1lQmxvY2tzOiBwLm1pbl9zdGFraW5nX3RpbWVfYmxvY2tzLFxuICAgIHNsYXNoaW5nOiB7XG4gICAgICBzbGFzaGluZ1BrU2NyaXB0SGV4OiBCdWZmZXIuZnJvbShwLnNsYXNoaW5nX3BrX3NjcmlwdCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCdoZXgnKSxcbiAgICAgIHNsYXNoaW5nUmF0ZTogcGFyc2VGbG9hdChwLnNsYXNoaW5nX3JhdGUpLFxuICAgICAgbWluU2xhc2hpbmdUeEZlZVNhdDogcC5taW5fc2xhc2hpbmdfdHhfZmVlX3NhdCxcbiAgICB9LFxuICB9KSk7XG59XG5cbmZ1bmN0aW9uIHRvVmVyc2lvbmVkUGFyYW1zRnJvbUpzb24oanNvblBhcmFtczogdW5rbm93bltdKTogVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdIHtcbiAgcmV0dXJuIHRvVmVyc2lvbmVkUGFyYW1zKFxuICAgIGpzb25QYXJhbXMubWFwKChwKTogQmFieWxvblBhcmFtc0pTT04gPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdC50eXBlKHsgcGFyYW1zOiBCYWJ5bG9uUGFyYW1zSlNPTiB9KS5kZWNvZGUocCk7XG4gICAgICBpZiAoaXNMZWZ0KHJlc3VsdCkpIHtcbiAgICAgICAgY29uc3QgbXNnID0gUGF0aFJlcG9ydGVyLnJlcG9ydChyZXN1bHQpLmpvaW4oJ1xcbicpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgcGFyYW1zOiAke21zZ31gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXN1bHQucmlnaHQucGFyYW1zO1xuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBjb25zdCBtYWlubmV0U3Rha2luZ1BhcmFtczogcmVhZG9ubHkgVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdID0gT2JqZWN0LmZyZWV6ZShcbiAgdG9WZXJzaW9uZWRQYXJhbXNGcm9tSnNvbihqc29uTWFpbm5ldFBhcmFtcylcbik7XG5cbmV4cG9ydCBjb25zdCB0ZXN0bmV0U3Rha2luZ1BhcmFtczogcmVhZG9ubHkgVmVyc2lvbmVkU3Rha2luZ1BhcmFtc1tdID0gT2JqZWN0LmZyZWV6ZShcbiAgdG9WZXJzaW9uZWRQYXJhbXNGcm9tSnNvbihqc29uVGVzdG5ldFBhcmFtcylcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFraW5nUGFyYW1zKG5ldHdvcms6IEJhYnlsb25OZXR3b3JrTGlrZSk6IFZlcnNpb25lZFN0YWtpbmdQYXJhbXNbXSB7XG4gIHN3aXRjaCAodG9CYWJ5bG9uTmV0d29yayhuZXR3b3JrKSkge1xuICAgIGNhc2UgJ21haW5uZXQnOlxuICAgICAgcmV0dXJuIFsuLi5tYWlubmV0U3Rha2luZ1BhcmFtc107XG4gICAgY2FzZSAndGVzdG5ldCc6XG4gICAgICByZXR1cm4gWy4uLnRlc3RuZXRTdGFraW5nUGFyYW1zXTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbnN1cHBvcnRlZCBuZXR3b3JrJyk7XG4gIH1cbn1cblxuLy8gU291cmNlOiBodHRwczovL2J0Y3N0YWtpbmcudGVzdG5ldC5iYWJ5bG9ubGFicy5pby8gXCJCYWJ5bG9uIEZvdW5kYXRpb24gMFwiXG5leHBvcnQgY29uc3QgdGVzdG5ldEZpbmFsaXR5UHJvdmlkZXIwID0gQnVmZmVyLmZyb20oXG4gICdkMjNjMmMyNWUxZmNmOGZkMWMyMWI5YTQwMmMxOWUyZTMwOWU1MzFlNDVlOTJmYjFlOTgwNWI2MDU2YjBjYzc2JyxcbiAgJ2hleCdcbik7XG5cbnR5cGUgRGVzY3JpcHRvclN0YWtpbmdQYXJhbXMgPSBQaWNrPFxuICBTdGFraW5nUGFyYW1zLFxuICAnY292ZW5hbnROb0Nvb3JkUGtzJyB8ICdjb3ZlbmFudFF1b3J1bScgfCAnbWluU3Rha2luZ1RpbWVCbG9ja3MnIHwgJ3VuYm9uZGluZ1RpbWUnXG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVzY3JpcHRvckJ1aWxkZXJGb3JQYXJhbXMoXG4gIHVzZXJLZXk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2UgfCB1dHhvbGliLkVDUGFpckludGVyZmFjZSB8IEJ1ZmZlcixcbiAgZmluYWxpdHlQcm92aWRlcktleXM6IEJ1ZmZlcltdLFxuICBzdGFraW5nVGltZWxvY2s6IG51bWJlcixcbiAgcGFyYW1zOiBEZXNjcmlwdG9yU3Rha2luZ1BhcmFtc1xuKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgaWYgKCFCdWZmZXIuaXNCdWZmZXIodXNlcktleSkpIHtcbiAgICB1c2VyS2V5ID0gdXNlcktleS5wdWJsaWNLZXk7XG4gIH1cbiAgcmV0dXJuIG5ldyBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIoXG4gICAgdXNlcktleSxcbiAgICBmaW5hbGl0eVByb3ZpZGVyS2V5cyxcbiAgICBwYXJhbXMuY292ZW5hbnROb0Nvb3JkUGtzLm1hcCgocGspID0+IEJ1ZmZlci5mcm9tKHBrLCAnaGV4JykpLFxuICAgIHBhcmFtcy5jb3ZlbmFudFF1b3J1bSxcbiAgICBzdGFraW5nVGltZWxvY2ssXG4gICAgcGFyYW1zLnVuYm9uZGluZ1RpbWVcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlc2NyaXB0b3JQcm92aWRlckZvclN0YWtpbmdQYXJhbXMoXG4gIHN0YWtlckJ0Y0luZm86IFBpY2s8U3Rha2VySW5mbywgJ3B1YmxpY0tleU5vQ29vcmRIZXgnPixcbiAgc3Rha2luZ0lucHV0OiBTdGFraW5nSW5wdXRzLFxuICBzdGFraW5nUGFyYW1zOiBEZXNjcmlwdG9yU3Rha2luZ1BhcmFtc1xuKTogQmFieWxvbkRlc2NyaXB0b3JCdWlsZGVyIHtcbiAgY29uc3QgdXNlcktleSA9IEJ1ZmZlci5mcm9tKHN0YWtlckJ0Y0luZm8ucHVibGljS2V5Tm9Db29yZEhleCwgJ2hleCcpO1xuICBjb25zdCBmaW5hbGl0eVByb3ZpZGVyS2V5ID0gQnVmZmVyLmZyb20oc3Rha2luZ0lucHV0LmZpbmFsaXR5UHJvdmlkZXJQa05vQ29vcmRIZXgsICdoZXgnKTtcbiAgcmV0dXJuIGdldERlc2NyaXB0b3JCdWlsZGVyRm9yUGFyYW1zKHVzZXJLZXksIFtmaW5hbGl0eVByb3ZpZGVyS2V5XSwgc3Rha2luZ0lucHV0LnN0YWtpbmdUaW1lbG9jaywgc3Rha2luZ1BhcmFtcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXN0bmV0RGVzY3JpcHRvckJ1aWxkZXIoXG4gIHVzZXJLZXk6IHV0eG9saWIuQklQMzJJbnRlcmZhY2UgfCB1dHhvbGliLkVDUGFpckludGVyZmFjZSB8IEJ1ZmZlcixcbiAge1xuICAgIGZpbmFsaXR5UHJvdmlkZXJLZXlzID0gW3Rlc3RuZXRGaW5hbGl0eVByb3ZpZGVyMF0sXG4gICAgcGFyYW1zID0gZ2V0QmFieWxvblBhcmFtQnlWZXJzaW9uKDUsIGdldFN0YWtpbmdQYXJhbXMoJ3Rlc3RuZXQnKSksXG4gICAgc3Rha2luZ1RpbWVsb2NrID0gcGFyYW1zLm1pblN0YWtpbmdUaW1lQmxvY2tzLFxuICB9OiB7XG4gICAgZmluYWxpdHlQcm92aWRlcktleXM/OiBCdWZmZXJbXTtcbiAgICBwYXJhbXM/OiBTdGFraW5nUGFyYW1zO1xuICAgIHN0YWtpbmdUaW1lbG9jaz86IG51bWJlcjtcbiAgfSA9IHt9XG4pOiBCYWJ5bG9uRGVzY3JpcHRvckJ1aWxkZXIge1xuICByZXR1cm4gZ2V0RGVzY3JpcHRvckJ1aWxkZXJGb3JQYXJhbXModXNlcktleSwgZmluYWxpdHlQcm92aWRlcktleXMsIHN0YWtpbmdUaW1lbG9jaywgcGFyYW1zKTtcbn1cbiJdfQ==
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { BIP32Interface } from '@bitgo-beta/utxo-lib';
|
|
2
2
|
/**
|
|
3
|
-
* Script type for a descriptor.
|
|
3
|
+
* Script type for a descriptor.
|
|
4
|
+
*
|
|
5
|
+
* See https://docs.coredao.org/docs/Learn/products/btc-staking/design#p2shp2wsh-output
|
|
4
6
|
*/
|
|
5
|
-
export type ScriptType = 'sh' | 'sh-wsh';
|
|
7
|
+
export type ScriptType = 'sh' | 'sh-wsh' | 'wsh';
|
|
6
8
|
/**
|
|
7
9
|
* Create a multi-sig descriptor to produce a coredao staking address
|
|
8
10
|
* @param scriptType segwit or legacy
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/coreDao/descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../../src/coreDao/descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;AASjD;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,MAAM,EAChB,CAAC,EAAE,MAAM,EACT,WAAW,EAAE,CAAC,cAAc,GAAG,MAAM,CAAC,EAAE,EACxC,QAAQ,UAAO,GACd,MAAM,CAmBR"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createMultiSigDescriptor = createMultiSigDescriptor;
|
|
4
|
+
const wasm_miniscript_1 = require("@bitgo/wasm-miniscript");
|
|
4
5
|
function asDescriptorKey(key, neutered) {
|
|
5
6
|
if (Buffer.isBuffer(key)) {
|
|
6
7
|
return key.toString('hex');
|
|
@@ -24,7 +25,14 @@ function createMultiSigDescriptor(scriptType, locktime, m, orderedKeys, neutered
|
|
|
24
25
|
throw new Error(`locktime (${locktime}) must be greater than 0`);
|
|
25
26
|
}
|
|
26
27
|
const keys = orderedKeys.map((key) => asDescriptorKey(key, neutered));
|
|
27
|
-
const inner =
|
|
28
|
-
|
|
28
|
+
const inner = { and_v: [{ 'r:after': locktime }, { multi: [m, ...keys] }] };
|
|
29
|
+
switch (scriptType) {
|
|
30
|
+
case 'sh':
|
|
31
|
+
return wasm_miniscript_1.ast.formatNode({ sh: inner });
|
|
32
|
+
case 'sh-wsh':
|
|
33
|
+
return wasm_miniscript_1.ast.formatNode({ sh: { wsh: inner } });
|
|
34
|
+
case 'wsh':
|
|
35
|
+
return wasm_miniscript_1.ast.formatNode({ wsh: inner });
|
|
36
|
+
}
|
|
29
37
|
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzY3JpcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb3JlRGFvL2Rlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEwQkEsNERBeUJDO0FBbERELDREQUE2QztBQVM3QyxTQUFTLGVBQWUsQ0FBQyxHQUE0QixFQUFFLFFBQWlCO0lBQ3RFLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUM7QUFDN0QsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0Isd0JBQXdCLENBQ3RDLFVBQXNCLEVBQ3RCLFFBQWdCLEVBQ2hCLENBQVMsRUFDVCxXQUF3QyxFQUN4QyxRQUFRLEdBQUcsSUFBSTtJQUVmLElBQUksQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ2IsTUFBTSxDQUFDLHVEQUF1RCxXQUFXLENBQUMsTUFBTSxzQkFBc0IsQ0FDdkcsQ0FBQztJQUNKLENBQUM7SUFDRCxJQUFJLFFBQVEsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsUUFBUSwwQkFBMEIsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdEUsTUFBTSxLQUFLLEdBQXVCLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztJQUNoRyxRQUFRLFVBQVUsRUFBRSxDQUFDO1FBQ25CLEtBQUssSUFBSTtZQUNQLE9BQU8scUJBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUN2QyxLQUFLLFFBQVE7WUFDWCxPQUFPLHFCQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNoRCxLQUFLLEtBQUs7WUFDUixPQUFPLHFCQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby1iZXRhL3V0eG8tbGliJztcbmltcG9ydCB7IGFzdCB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuXG4vKipcbiAqIFNjcmlwdCB0eXBlIGZvciBhIGRlc2NyaXB0b3IuXG4gKlxuICogU2VlIGh0dHBzOi8vZG9jcy5jb3JlZGFvLm9yZy9kb2NzL0xlYXJuL3Byb2R1Y3RzL2J0Yy1zdGFraW5nL2Rlc2lnbiNwMnNocDJ3c2gtb3V0cHV0XG4gKi9cbmV4cG9ydCB0eXBlIFNjcmlwdFR5cGUgPSAnc2gnIHwgJ3NoLXdzaCcgfCAnd3NoJztcblxuZnVuY3Rpb24gYXNEZXNjcmlwdG9yS2V5KGtleTogQklQMzJJbnRlcmZhY2UgfCBCdWZmZXIsIG5ldXRlcmVkOiBib29sZWFuKTogc3RyaW5nIHtcbiAgaWYgKEJ1ZmZlci5pc0J1ZmZlcihrZXkpKSB7XG4gICAgcmV0dXJuIGtleS50b1N0cmluZygnaGV4Jyk7XG4gIH1cbiAgcmV0dXJuIChuZXV0ZXJlZCA/IGtleS5uZXV0ZXJlZCgpIDoga2V5KS50b0Jhc2U1OCgpICsgJy8qJztcbn1cblxuLyoqXG4gKiBDcmVhdGUgYSBtdWx0aS1zaWcgZGVzY3JpcHRvciB0byBwcm9kdWNlIGEgY29yZWRhbyBzdGFraW5nIGFkZHJlc3NcbiAqIEBwYXJhbSBzY3JpcHRUeXBlIHNlZ3dpdCBvciBsZWdhY3lcbiAqIEBwYXJhbSBsb2NrdGltZSBsb2NrdGltZSBmb3IgQ0xUVlxuICogQHBhcmFtIG0gVG90YWwgbnVtYmVyIG9mIGtleXMgcmVxdWlyZWQgdG8gdW5sb2NrXG4gKiBAcGFyYW0gb3JkZXJlZEtleXMgSWYgQmlwMzJJbnRlcmZhY2VzLCB0aGVzZSBhcmUgeHBydnMgb3IgeHB1YnMgYW5kIGFyZSBkZXJpdmFibGUuXG4gKiAgICAgICAgICAgICAgICAgICAgSWYgdGhleSBhcmUgYnVmZmVycywgdGhlbiB0aGV5IGFyZSBwdWIvcHJ2IGtleXMgYW5kIGFyZSBub3QgZGVyaXZhYmxlLlxuICogQHBhcmFtIG5ldXRlcmVkIElmIHRydWUsIG5ldXRlciB0aGUga2V5cy4gRGVmYXVsdCB0byB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNdWx0aVNpZ0Rlc2NyaXB0b3IoXG4gIHNjcmlwdFR5cGU6IFNjcmlwdFR5cGUsXG4gIGxvY2t0aW1lOiBudW1iZXIsXG4gIG06IG51bWJlcixcbiAgb3JkZXJlZEtleXM6IChCSVAzMkludGVyZmFjZSB8IEJ1ZmZlcilbXSxcbiAgbmV1dGVyZWQgPSB0cnVlXG4pOiBzdHJpbmcge1xuICBpZiAobSA+IG9yZGVyZWRLZXlzLmxlbmd0aCB8fCBtIDwgMSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBtICgke219KSBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGtleXMgKCR7b3JkZXJlZEtleXMubGVuZ3RofSkgYW5kIGdyZWF0ZXIgdGhhbiAwYFxuICAgICk7XG4gIH1cbiAgaWYgKGxvY2t0aW1lIDw9IDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYGxvY2t0aW1lICgke2xvY2t0aW1lfSkgbXVzdCBiZSBncmVhdGVyIHRoYW4gMGApO1xuICB9XG4gIGNvbnN0IGtleXMgPSBvcmRlcmVkS2V5cy5tYXAoKGtleSkgPT4gYXNEZXNjcmlwdG9yS2V5KGtleSwgbmV1dGVyZWQpKTtcbiAgY29uc3QgaW5uZXI6IGFzdC5NaW5pc2NyaXB0Tm9kZSA9IHsgYW5kX3Y6IFt7ICdyOmFmdGVyJzogbG9ja3RpbWUgfSwgeyBtdWx0aTogW20sIC4uLmtleXNdIH1dIH07XG4gIHN3aXRjaCAoc2NyaXB0VHlwZSkge1xuICAgIGNhc2UgJ3NoJzpcbiAgICAgIHJldHVybiBhc3QuZm9ybWF0Tm9kZSh7IHNoOiBpbm5lciB9KTtcbiAgICBjYXNlICdzaC13c2gnOlxuICAgICAgcmV0dXJuIGFzdC5mb3JtYXROb2RlKHsgc2g6IHsgd3NoOiBpbm5lciB9IH0pO1xuICAgIGNhc2UgJ3dzaCc6XG4gICAgICByZXR1cm4gYXN0LmZvcm1hdE5vZGUoeyB3c2g6IGlubmVyIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const CORE_DAO_DEVNET_CHAIN_ID: Buffer<ArrayBuffer>;
|
|
2
|
+
export declare const CORE_DAO_TESTNET2_CHAIN_ID: Buffer<ArrayBuffer>;
|
|
2
3
|
export declare const CORE_DAO_TESTNET_CHAIN_ID: Buffer<ArrayBuffer>;
|
|
3
4
|
export declare const CORE_DAO_MAINNET_CHAIN_ID: Buffer<ArrayBuffer>;
|
|
4
5
|
export declare const CORE_DAO_SATOSHI_PLUS_IDENTIFIER: Buffer<ArrayBuffer>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opReturn.d.ts","sourceRoot":"","sources":["../../../src/coreDao/opReturn.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,qBAA6B,CAAC;AACnE,eAAO,MAAM,yBAAyB,qBAA6B,CAAC;AACpE,eAAO,MAAM,yBAAyB,qBAA6B,CAAC;AACpE,eAAO,MAAM,gCAAgC,qBAAiC,CAAC;AAI/E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE5F;;;;;;;;;;;GAWG;AACH,wBAAgB,iCAAiC,CAAC,EAChD,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,GAAG,EACH,GAAG,IAAI,EACR,EAAE,cAAc,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"opReturn.d.ts","sourceRoot":"","sources":["../../../src/coreDao/opReturn.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,wBAAwB,qBAA6B,CAAC;AACnE,eAAO,MAAM,0BAA0B,qBAA6B,CAAC;AACrE,eAAO,MAAM,yBAAyB,qBAA6B,CAAC;AACpE,eAAO,MAAM,yBAAyB,qBAA6B,CAAC;AACpE,eAAO,MAAM,gCAAgC,qBAAiC,CAAC;AAI/E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,KAAK,UAAU,GAAG;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE5F;;;;;;;;;;;GAWG;AACH,wBAAgB,iCAAiC,CAAC,EAChD,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,GAAG,EACH,GAAG,IAAI,EACR,EAAE,cAAc,GAAG,MAAM,CAuFzB;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAkE/E;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAUvD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CORE_DAO_SATOSHI_PLUS_IDENTIFIER = exports.CORE_DAO_MAINNET_CHAIN_ID = exports.CORE_DAO_TESTNET_CHAIN_ID = exports.CORE_DAO_DEVNET_CHAIN_ID = void 0;
|
|
3
|
+
exports.CORE_DAO_SATOSHI_PLUS_IDENTIFIER = exports.CORE_DAO_MAINNET_CHAIN_ID = exports.CORE_DAO_TESTNET_CHAIN_ID = exports.CORE_DAO_TESTNET2_CHAIN_ID = exports.CORE_DAO_DEVNET_CHAIN_ID = void 0;
|
|
4
4
|
exports.encodeTimelock = encodeTimelock;
|
|
5
5
|
exports.decodeTimelock = decodeTimelock;
|
|
6
6
|
exports.createCoreDaoOpReturnOutputScript = createCoreDaoOpReturnOutputScript;
|
|
@@ -9,6 +9,7 @@ exports.toString = toString;
|
|
|
9
9
|
const utxo_lib_1 = require("@bitgo-beta/utxo-lib");
|
|
10
10
|
// Source: https://docs.coredao.org/docs/Learn/products/btc-staking/design
|
|
11
11
|
exports.CORE_DAO_DEVNET_CHAIN_ID = Buffer.from('0458', 'hex');
|
|
12
|
+
exports.CORE_DAO_TESTNET2_CHAIN_ID = Buffer.from('045a', 'hex');
|
|
12
13
|
exports.CORE_DAO_TESTNET_CHAIN_ID = Buffer.from('045b', 'hex');
|
|
13
14
|
exports.CORE_DAO_MAINNET_CHAIN_ID = Buffer.from('045c', 'hex');
|
|
14
15
|
exports.CORE_DAO_SATOSHI_PLUS_IDENTIFIER = Buffer.from('5341542b', 'hex');
|
|
@@ -65,6 +66,7 @@ function createCoreDaoOpReturnOutputScript({ version, chainId, delegator, valida
|
|
|
65
66
|
}
|
|
66
67
|
const versionBuffer = Buffer.alloc(1, version);
|
|
67
68
|
if (!(chainId.equals(exports.CORE_DAO_TESTNET_CHAIN_ID) ||
|
|
69
|
+
chainId.equals(exports.CORE_DAO_TESTNET2_CHAIN_ID) ||
|
|
68
70
|
chainId.equals(exports.CORE_DAO_MAINNET_CHAIN_ID) ||
|
|
69
71
|
chainId.equals(exports.CORE_DAO_DEVNET_CHAIN_ID))) {
|
|
70
72
|
throw new Error('Invalid chain ID');
|
|
@@ -144,6 +146,7 @@ function parseCoreDaoOpReturnOutputScript(script) {
|
|
|
144
146
|
const chainId = Buffer.from(dataBuffer.subarray(offset, offset + 2));
|
|
145
147
|
if (!(chainId.equals(exports.CORE_DAO_DEVNET_CHAIN_ID) ||
|
|
146
148
|
chainId.equals(exports.CORE_DAO_TESTNET_CHAIN_ID) ||
|
|
149
|
+
chainId.equals(exports.CORE_DAO_TESTNET2_CHAIN_ID) ||
|
|
147
150
|
chainId.equals(exports.CORE_DAO_MAINNET_CHAIN_ID))) {
|
|
148
151
|
throw new Error(`Invalid ChainID: ${chainId.toString('hex')}. Must be either 0x0458 (devnet), 0x045b (testnet), or 0x045c (mainnet).`);
|
|
149
152
|
}
|
|
@@ -177,4 +180,4 @@ function toString(params) {
|
|
|
177
180
|
...('timelock' in params ? { timelock: params.timelock } : {}),
|
|
178
181
|
});
|
|
179
182
|
}
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BSZXR1cm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZURhby9vcFJldHVybi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFVQSx3Q0FJQztBQUVELHdDQUtDO0FBd0JELDhFQTZGQztBQU9ELDRFQWlFQztBQUVELDRCQVVDO0FBOU5ELG1EQUEwRDtBQUUxRCwwRUFBMEU7QUFDN0QsUUFBQSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN0RCxRQUFBLHlCQUF5QixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3ZELFFBQUEseUJBQXlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkQsUUFBQSxnQ0FBZ0MsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMvRSwyR0FBMkc7QUFDM0csTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztBQUV0RCxTQUFnQixjQUFjLENBQUMsUUFBZ0I7SUFDN0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzdCLE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxNQUFjO0lBQzNDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO0FBQy9CLENBQUM7QUFZRDs7Ozs7Ozs7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QUFDO0tBQy9ELENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXltZW50cywgbmV0d29ya3MgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbi8vIFNvdXJjZTogaHR0cHM6Ly9kb2NzLmNvcmVkYW8ub3JnL2RvY3MvTGVhcm4vcHJvZHVjdHMvYnRjLXN0YWtpbmcvZGVzaWduXG5leHBvcnQgY29uc3QgQ09SRV9EQU9fREVWTkVUX0NIQUlOX0lEID0gQnVmZmVyLmZyb20oJzA0NTgnLCAnaGV4Jyk7XG5leHBvcnQgY29uc3QgQ09SRV9EQU9fVEVTVE5FVF9DSEFJTl9JRCA9IEJ1ZmZlci5mcm9tKCcwNDViJywgJ2hleCcpO1xuZXhwb3J0IGNvbnN0IENPUkVfREFPX01BSU5ORVRfQ0hBSU5fSUQgPSBCdWZmZXIuZnJvbSgnMDQ1YycsICdoZXgnKTtcbmV4cG9ydCBjb25zdCBDT1JFX0RBT19TQVRPU0hJX1BMVVNfSURFTlRJRklFUiA9IEJ1ZmZlci5mcm9tKCc1MzQxNTQyYicsICdoZXgnKTtcbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpdGNvaW4vYmxvYi81OTYxYjIzODk4ZWU3YzBhZjI2MjZjNDZkNWQ3MGU4MDEzNjU3OGQzL3NyYy9zY3JpcHQvc2NyaXB0LmgjTDQ3XG5jb25zdCBPUF9SRVRVUk5fSURFTlRJRklFUiA9IEJ1ZmZlci5mcm9tKCc2YScsICdoZXgnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGVuY29kZVRpbWVsb2NrKHRpbWVsb2NrOiBudW1iZXIpOiBCdWZmZXIge1xuICBjb25zdCBidWZmID0gQnVmZmVyLmFsbG9jKDQpO1xuICBidWZmLndyaXRlVUludDMyTEUodGltZWxvY2spO1xuICByZXR1cm4gYnVmZjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZVRpbWVsb2NrKGJ1ZmZlcjogQnVmZmVyKTogbnVtYmVyIHtcbiAgaWYgKGJ1ZmZlci5sZW5ndGggIT09IDQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdGltZWxvY2sgYnVmZmVyIGxlbmd0aCcpO1xuICB9XG4gIHJldHVybiBidWZmZXIucmVhZFVJbnQzMkxFKCk7XG59XG5cbnR5cGUgQmFzZVBhcmFtcyA9IHtcbiAgdmVyc2lvbjogbnVtYmVyO1xuICBjaGFpbklkOiBCdWZmZXI7XG4gIGRlbGVnYXRvcjogQnVmZmVyO1xuICB2YWxpZGF0b3I6IEJ1ZmZlcjtcbiAgZmVlOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBPcFJldHVyblBhcmFtcyA9IEJhc2VQYXJhbXMgJiAoeyByZWRlZW1TY3JpcHQ6IEJ1ZmZlciB9IHwgeyB0aW1lbG9jazogbnVtYmVyIH0pO1xuXG4vKipcbiAqIENyZWF0ZSBhIENvcmVEQU8gT1BfUkVUVVJOIG91dHB1dCBzY3JpcHRcbiAqXG4gKiBAcGFyYW0gdmVyc2lvbiBWZXJzaW9uIG9mIHRoZSBPUF9SRVRVUk5cbiAqIEBwYXJhbSBjaGFpbklkIENoYWluIElEXG4gKiBAcGFyYW0gZGVsZWdhdG9yIERlbGVnYXRvciBhZGRyZXNzXG4gKiBAcGFyYW0gdmFsaWRhdG9yIFZhbGlkYXRvciBhZGRyZXNzXG4gKiBAcGFyYW0gZmVlIEZlZSBmb3IgcmVsYXllclxuICogQHBhcmFtIHJlZGVlbVNjcmlwdCBSZWRlZW0gc2NyaXB0IG9mIHRoZSBzdGFraW5nIG91dHB1dFxuICogQHBhcmFtIHRpbWVsb2NrIFRpbWVsb2NrIGZvciB0aGUgc3Rha2luZyBvdXRwdXRcbiAqIEByZXR1cm5zIEJ1ZmZlciBPUF9SRVRVUk4gYnVmZmVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDb3JlRGFvT3BSZXR1cm5PdXRwdXRTY3JpcHQoe1xuICB2ZXJzaW9uLFxuICBjaGFpbklkLFxuICBkZWxlZ2F0b3IsXG4gIHZhbGlkYXRvcixcbiAgZmVlLFxuICAuLi5yZXN0XG59OiBPcFJldHVyblBhcmFtcyk6IEJ1ZmZlciB7XG4gIC8qKlxuICAgKiBBcyBvZiB2MiwgdGhpcyBpcyB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBPUF9SRVRVUk46XG4gICAqIFNvdXJjZTogaHR0cHM6Ly9kb2NzLmNvcmVkYW8ub3JnL2RvY3MvTGVhcm4vcHJvZHVjdHMvYnRjLXN0YWtpbmcvZGVzaWduI29wX3JldHVybi1vdXRwdXRcbiAgICpcbiAgICogVGhlIE9QX1JFVFVSTiBvdXRwdXQgc2hvdWxkIGNvbnRhaW4gYWxsIHN0YWtpbmcgaW5mb3JtYXRpb24gaW4gb3JkZXIsIGFuZCBiZSBjb21wb3NlZCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAgICpcbiAgICogU2F0b3NoaSBQbHVzIElkZW50aWZpZXI6IChTQVQrKSA0IGJ5dGVzXG4gICAqIFZlcnNpb246ICgweDAxKSAxIGJ5dGVcbiAgICogQ2hhaW4gSUQ6ICgweDA0NWIgKDExMTUpIGZvciBDb3JlIFRlc3RuZXQgYW5kIDB4MDQ1YyAoMTExNikgZm9yIENvcmUgTWFpbm5ldCkgMiBieXRlc1xuICAgKiBEZWxlZ2F0b3I6IFRoZSBDb3JlIGFkZHJlc3MgdG8gcmVjZWl2ZSByZXdhcmRzLCAyMCBieXRlc1xuICAgKiBWYWxpZGF0b3I6IFRoZSBDb3JlIHZhbGlkYXRvciBhZGRyZXNzIHRvIHN0YWtlIHRvLCAyMCBieXRlc1xuICAgKiBGZWU6IEZlZSBmb3IgcmVsYXllciwgMSBieXRlLCByYW5nZSBbMCwyNTVdLCBtZWFzdXJlZCBpbiBDT1JFXG4gICAqIChPcHRpb25hbCkgUmVkZWVtU2NyaXB0XG4gICAqIChPcHRpb25hbCkgVGltZWxvY2s6IDQgYnl0ZXNcbiAgICpcbiAgICogRWl0aGVyIFJlZGVlbVNjcmlwdCBvciBUaW1lbG9jayBtdXN0IGJlIGF2YWlsYWJsZSwgdGhlIHB1cnBvc2UgaXMgdG8gYWxsb3cgcmVsYXllciB0b1xuICAgKiBvYnRhaW4gdGhlIFJlZGVlbVNjcmlwdCBhbmQgc3VibWl0IHRyYW5zYWN0aW9ucyBvbiBDb3JlLiBJZiBhIFJlZGVlbVNjcmlwdCBpcyBwcm92aWRlZCxcbiAgICogcmVsYXllciB3aWxsIHVzZSBpdCBkaXJlY3RseS4gT3RoZXJ3aXNlLCByZWxheWVyIHdpbGwgY29uc3RydWN0IHRoZSByZWRlZW0gc2NyaXB0IGJhc2VkXG4gICAqIG9uIHRoZSB0aW1lbG9jayBhbmQgdGhlIGluZm9ybWF0aW9uIGluIHRoZSB0cmFuc2FjdGlvbiBpbnB1dHMuXG4gICAqXG4gICAqIE5vdGUgdGhhdCBhbnkgbGVuZ3RoID4gODAgYnl0ZXMgd29udCBiZSByZWxheWVkIGJ5IG5vZGVzIGFuZCB0aGVyZWZvcmUgd2Ugd2lsbCB0aHJvdyBhbiBlcnJvci5cbiAgICovXG4gIGlmICh2ZXJzaW9uIDwgMCB8fCB2ZXJzaW9uID4gMjU1KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZlcnNpb24gLSBvdXQgb2YgcmFuZ2UnKTtcbiAgfVxuICBjb25zdCB2ZXJzaW9uQnVmZmVyID0gQnVmZmVyLmFsbG9jKDEsIHZlcnNpb24pO1xuXG4gIGlmIChcbiAgICAhKFxuICAgICAgY2hhaW5JZC5lcXVhbHMoQ09SRV9EQU9fVEVTVE5FVF9DSEFJTl9JRCkgfHxcbiAgICAgIGNoYWluSWQuZXF1YWxzKENPUkVfREFPX01BSU5ORVRfQ0hBSU5fSUQpIHx8XG4gICAgICBjaGFpbklkLmVxdWFscyhDT1JFX0RBT19ERVZORVRfQ0hBSU5fSUQpXG4gICAgKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY2hhaW4gSUQnKTtcbiAgfVxuXG4gIGlmIChkZWxlZ2F0b3IubGVuZ3RoICE9PSAyMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkZWxlZ2F0b3IgYWRkcmVzcycpO1xuICB9XG5cbiAgaWYgKHZhbGlkYXRvci5sZW5ndGggIT09IDIwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHZhbGlkYXRvciBhZGRyZXNzJyk7XG4gIH1cblxuICBpZiAoZmVlIDwgMCB8fCBmZWUgPiAyNTUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZmVlIC0gb3V0IG9mIHJhbmdlJyk7XG4gIH1cbiAgY29uc3QgZmVlQnVmZmVyID0gQnVmZmVyLmFsbG9jKDEsIGZlZSk7XG5cbiAgaWYgKGZlZUJ1ZmZlci5sZW5ndGggIT09IDEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZmVlJyk7XG4gIH1cblxuICBjb25zdCByZWRlZW1TY3JpcHRCdWZmZXIgPSAncmVkZWVtU2NyaXB0JyBpbiByZXN0ID8gcmVzdC5yZWRlZW1TY3JpcHQgOiBCdWZmZXIuZnJvbShbXSk7XG4gIGlmICgndGltZWxvY2snIGluIHJlc3QgJiYgKHJlc3QudGltZWxvY2sgPCAwIHx8IHJlc3QudGltZWxvY2sgPiA0Mjk0OTY3Mjk1KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0aW1lbG9jayAtIG91dCBvZiByYW5nZScpO1xuICB9XG5cbiAgLy8gZW5jb2RlIHRoZSBudW1iZXIgaW50byBhIDQtYnl0ZSBidWZmZXJcbiAgLy8gaWYgdGltZWxvY2sgaXMgcHJvdmlkZWQsIHdyaXRlIGl0IGludG8gMzItYml0IGxpdHRsZS1lbmRpYW5cbiAgY29uc3QgdGltZWxvY2tCdWZmZXIgPSAndGltZWxvY2snIGluIHJlc3QgPyBlbmNvZGVUaW1lbG9jayhyZXN0LnRpbWVsb2NrKSA6IEJ1ZmZlci5mcm9tKFtdKTtcbiAgY29uc3QgZGF0YSA9IEJ1ZmZlci5jb25jYXQoW1xuICAgIENPUkVfREFPX1NBVE9TSElfUExVU19JREVOVElGSUVSLFxuICAgIHZlcnNpb25CdWZmZXIsXG4gICAgY2hhaW5JZCxcbiAgICBkZWxlZ2F0b3IsXG4gICAgdmFsaWRhdG9yLFxuICAgIGZlZUJ1ZmZlcixcbiAgICByZWRlZW1TY3JpcHRCdWZmZXIsXG4gICAgdGltZWxvY2tCdWZmZXIsXG4gIF0pO1xuICBpZiAoZGF0YS5sZW5ndGggPiA4MCkge1xuICAgIHRocm93IG5ldyBFcnJvcignT1BfUkVUVVJOIG91dHB1dHMgY2Fubm90IGhhdmUgYSBsZW5ndGggbGFyZ2VyIHRoYW4gODAgYnl0ZXMnKTtcbiAgfVxuXG4gIGNvbnN0IHBheW1lbnQgPSBwYXltZW50cy5lbWJlZCh7XG4gICAgZGF0YTogW2RhdGFdLFxuICAgIG5ldHdvcms6IGNoYWluSWQuZXF1YWxzKENPUkVfREFPX0RFVk5FVF9DSEFJTl9JRCkgPyBuZXR3b3Jrcy50ZXN0bmV0IDogbmV0d29ya3MuYml0Y29pbixcbiAgfSk7XG4gIGlmICghcGF5bWVudC5vdXRwdXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBjcmVhdGUgT1BfUkVUVVJOIG91dHB1dCcpO1xuICB9XG5cbiAgcmV0dXJuIHBheW1lbnQub3V0cHV0O1xufVxuXG4vKipcbiAqIFBhcnNlIGEgQ29yZURBTyBPUF9SRVRVUk4gb3V0cHV0IHNjcmlwdCBpbnRvIHRoZSBjb25zdGl0dWVudCBwYXJ0c1xuICogQHBhcmFtIHNjcmlwdFxuICogQHJldHVybnMgT3BSZXR1cm5QYXJhbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29yZURhb09wUmV0dXJuT3V0cHV0U2NyaXB0KHNjcmlwdDogQnVmZmVyKTogT3BSZXR1cm5QYXJhbXMge1xuICBpZiAoIXNjcmlwdC5zdWJhcnJheSgwLCAxKS5lcXVhbHMoT1BfUkVUVVJOX0lERU5USUZJRVIpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdGaXJzdCBieXRlIG11c3QgYmUgYW4gT1BfUkVUVVJOJyk7XG4gIH1cblxuICBjb25zdCBwYXltZW50ID0gcGF5bWVudHMuZW1iZWQoe1xuICAgIG91dHB1dDogc2NyaXB0LFxuICB9KTtcbiAgY29uc3QgZGF0YSA9IHBheW1lbnQuZGF0YTtcbiAgaWYgKCFkYXRhIHx8IGRhdGEubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIE9QX1JFVFVSTiBvdXRwdXQnKTtcbiAgfVxuICBjb25zdCBkYXRhQnVmZmVyID0gZGF0YVswXTtcbiAgaWYgKGRhdGFCdWZmZXIubGVuZ3RoID4gODApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE9QX1JFVFVSTiBvdXRwdXRzIGNhbm5vdCBoYXZlIGEgbGVuZ3RoIGxhcmdlciB0aGFuIDgwIGJ5dGVzYCk7XG4gIH1cbiAgbGV0IG9mZnNldCA9IDA7XG5cbiAgLy8gRGVjb2RlIHNhdG9zaGkrIGlkZW50aWZpZXJcbiAgaWYgKCFkYXRhQnVmZmVyLnN1YmFycmF5KG9mZnNldCwgb2Zmc2V0ICsgNCkuZXF1YWxzKENPUkVfREFPX1NBVE9TSElfUExVU19JREVOVElGSUVSKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBzYXRvc2hpKyBpZGVudGlmaWVyJyk7XG4gIH1cbiAgb2Zmc2V0ICs9IDQ7XG5cbiAgLy8gRGVjb2RlIHZlcnNpb25cbiAgY29uc3QgdmVyc2lvbiA9IGRhdGFCdWZmZXJbb2Zmc2V0XTtcbiAgb2Zmc2V0ICs9IDE7XG5cbiAgLy8gRGVjb2RlIGNoYWluSWRcbiAgY29uc3QgY2hhaW5JZCA9IEJ1ZmZlci5mcm9tKGRhdGFCdWZmZXIuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyAyKSk7XG4gIGlmIChcbiAgICAhKFxuICAgICAgY2hhaW5JZC5lcXVhbHMoQ09SRV9EQU9fREVWTkVUX0NIQUlOX0lEKSB8fFxuICAgICAgY2hhaW5JZC5lcXVhbHMoQ09SRV9EQU9fVEVTVE5FVF9DSEFJTl9JRCkgfHxcbiAgICAgIGNoYWluSWQuZXF1YWxzKENPUkVfREFPX01BSU5ORVRfQ0hBSU5fSUQpXG4gICAgKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCBDaGFpbklEOiAke2NoYWluSWQudG9TdHJpbmcoXG4gICAgICAgICdoZXgnXG4gICAgICApfS4gTXVzdCBiZSBlaXRoZXIgMHgwNDU4IChkZXZuZXQpLCAweDA0NWIgKHRlc3RuZXQpLCBvciAweDA0NWMgKG1haW5uZXQpLmBcbiAgICApO1xuICB9XG4gIG9mZnNldCArPSAyO1xuXG4gIC8vIERlY29kZSBkZWxlZ2F0b3JcbiAgY29uc3QgZGVsZWdhdG9yID0gQnVmZmVyLmZyb20oZGF0YUJ1ZmZlci5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIDIwKSk7XG4gIG9mZnNldCArPSAyMDtcblxuICAvLyBEZWNvZGUgdmFsaWRhdG9yXG4gIGNvbnN0IHZhbGlkYXRvciA9IEJ1ZmZlci5mcm9tKGRhdGFCdWZmZXIuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyAyMCkpO1xuICBvZmZzZXQgKz0gMjA7XG5cbiAgLy8gRGVjb2RlIGZlZVxuICBjb25zdCBmZWUgPSBkYXRhQnVmZmVyW29mZnNldF07XG4gIG9mZnNldCArPSAxO1xuXG4gIGNvbnN0IGJhc2VQYXJhbXMgPSB7IHZlcnNpb24sIGNoYWluSWQsIGRlbGVnYXRvciwgdmFsaWRhdG9yLCBmZWUgfTtcblxuICAvLyBEZWNvZGUgcmVkZWVtU2NyaXB0IG9yIHRpbWVsb2NrXG4gIGlmIChvZmZzZXQgPT09IGRhdGFCdWZmZXIubGVuZ3RoIC0gNCkge1xuICAgIHJldHVybiB7IC4uLmJhc2VQYXJhbXMsIHRpbWVsb2NrOiBkZWNvZGVUaW1lbG9jayhkYXRhQnVmZmVyLnN1YmFycmF5KG9mZnNldCkpIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgLi4uYmFzZVBhcmFtcywgcmVkZWVtU2NyaXB0OiBCdWZmZXIuZnJvbShkYXRhQnVmZmVyLnN1YmFycmF5KG9mZnNldCkpIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvU3RyaW5nKHBhcmFtczogT3BSZXR1cm5QYXJhbXMpOiBzdHJpbmcge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xuICAgIHZlcnNpb246IHBhcmFtcy52ZXJzaW9uLFxuICAgIGNoYWluSWQ6IHBhcmFtcy5jaGFpbklkLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBkZWxlZ2F0b3I6IHBhcmFtcy5kZWxlZ2F0b3IudG9TdHJpbmcoJ2hleCcpLFxuICAgIHZhbGlkYXRvcjogcGFyYW1zLnZhbGlkYXRvci50b1N0cmluZygnaGV4JyksXG4gICAgZmVlOiBwYXJhbXMuZmVlLFxuICAgIC4uLigncmVkZWVtU2NyaXB0JyBpbiBwYXJhbXMgPyB7IHJlZGVlbVNjcmlwdDogcGFyYW1zLnJlZGVlbVNjcmlwdC50b1N0cmluZygnaGV4JykgfSA6IHt9KSxcbiAgICAuLi4oJ3RpbWVsb2NrJyBpbiBwYXJhbXMgPyB7IHRpbWVsb2NrOiBwYXJhbXMudGltZWxvY2sgfSA6IHt9KSxcbiAgfSk7XG59XG4iXX0=
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3BSZXR1cm4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZURhby9vcFJldHVybi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFXQSx3Q0FJQztBQUVELHdDQUtDO0FBd0JELDhFQThGQztBQU9ELDRFQWtFQztBQUVELDRCQVVDO0FBak9ELG1EQUEwRDtBQUUxRCwwRUFBMEU7QUFDN0QsUUFBQSx3QkFBd0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN0RCxRQUFBLDBCQUEwQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3hELFFBQUEseUJBQXlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdkQsUUFBQSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2RCxRQUFBLGdDQUFnQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQy9FLDJHQUEyRztBQUMzRyxNQUFNLG9CQUFvQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRXRELFNBQWdCLGNBQWMsQ0FBQyxRQUFnQjtJQUM3QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLE1BQWM7SUFDM0MsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztJ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QyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUYsR0FBRyxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQy9ELENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXltZW50cywgbmV0d29ya3MgfSBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5cbi8vIFNvdXJjZTogaHR0cHM6Ly9kb2NzLmNvcmVkYW8ub3JnL2RvY3MvTGVhcm4vcHJvZHVjdHMvYnRjLXN0YWtpbmcvZGVzaWduXG5leHBvcnQgY29uc3QgQ09SRV9EQU9fREVWTkVUX0NIQUlOX0lEID0gQnVmZmVyLmZyb20oJzA0NTgnLCAnaGV4Jyk7XG5leHBvcnQgY29uc3QgQ09SRV9EQU9fVEVTVE5FVDJfQ0hBSU5fSUQgPSBCdWZmZXIuZnJvbSgnMDQ1YScsICdoZXgnKTtcbmV4cG9ydCBjb25zdCBDT1JFX0RBT19URVNUTkVUX0NIQUlOX0lEID0gQnVmZmVyLmZyb20oJzA0NWInLCAnaGV4Jyk7XG5leHBvcnQgY29uc3QgQ09SRV9EQU9fTUFJTk5FVF9DSEFJTl9JRCA9IEJ1ZmZlci5mcm9tKCcwNDVjJywgJ2hleCcpO1xuZXhwb3J0IGNvbnN0IENPUkVfREFPX1NBVE9TSElfUExVU19JREVOVElGSUVSID0gQnVmZmVyLmZyb20oJzUzNDE1NDJiJywgJ2hleCcpO1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW4vYml0Y29pbi9ibG9iLzU5NjFiMjM4OThlZTdjMGFmMjYyNmM0NmQ1ZDcwZTgwMTM2NTc4ZDMvc3JjL3NjcmlwdC9zY3JpcHQuaCNMNDdcbmNvbnN0IE9QX1JFVFVSTl9JREVOVElGSUVSID0gQnVmZmVyLmZyb20oJzZhJywgJ2hleCcpO1xuXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlVGltZWxvY2sodGltZWxvY2s6IG51bWJlcik6IEJ1ZmZlciB7XG4gIGNvbnN0IGJ1ZmYgPSBCdWZmZXIuYWxsb2MoNCk7XG4gIGJ1ZmYud3JpdGVVSW50MzJMRSh0aW1lbG9jayk7XG4gIHJldHVybiBidWZmO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlVGltZWxvY2soYnVmZmVyOiBCdWZmZXIpOiBudW1iZXIge1xuICBpZiAoYnVmZmVyLmxlbmd0aCAhPT0gNCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB0aW1lbG9jayBidWZmZXIgbGVuZ3RoJyk7XG4gIH1cbiAgcmV0dXJuIGJ1ZmZlci5yZWFkVUludDMyTEUoKTtcbn1cblxudHlwZSBCYXNlUGFyYW1zID0ge1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGNoYWluSWQ6IEJ1ZmZlcjtcbiAgZGVsZWdhdG9yOiBCdWZmZXI7XG4gIHZhbGlkYXRvcjogQnVmZmVyO1xuICBmZWU6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIE9wUmV0dXJuUGFyYW1zID0gQmFzZVBhcmFtcyAmICh7IHJlZGVlbVNjcmlwdDogQnVmZmVyIH0gfCB7IHRpbWVsb2NrOiBudW1iZXIgfSk7XG5cbi8qKlxuICogQ3JlYXRlIGEgQ29yZURBTyBPUF9SRVRVUk4gb3V0cHV0IHNjcmlwdFxuICpcbiAqIEBwYXJhbSB2ZXJzaW9uIFZlcnNpb24gb2YgdGhlIE9QX1JFVFVSTlxuICogQHBhcmFtIGNoYWluSWQgQ2hhaW4gSURcbiAqIEBwYXJhbSBkZWxlZ2F0b3IgRGVsZWdhdG9yIGFkZHJlc3NcbiAqIEBwYXJhbSB2YWxpZGF0b3IgVmFsaWRhdG9yIGFkZHJlc3NcbiAqIEBwYXJhbSBmZWUgRmVlIGZvciByZWxheWVyXG4gKiBAcGFyYW0gcmVkZWVtU2NyaXB0IFJlZGVlbSBzY3JpcHQgb2YgdGhlIHN0YWtpbmcgb3V0cHV0XG4gKiBAcGFyYW0gdGltZWxvY2sgVGltZWxvY2sgZm9yIHRoZSBzdGFraW5nIG91dHB1dFxuICogQHJldHVybnMgQnVmZmVyIE9QX1JFVFVSTiBidWZmZXJcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvcmVEYW9PcFJldHVybk91dHB1dFNjcmlwdCh7XG4gIHZlcnNpb24sXG4gIGNoYWluSWQsXG4gIGRlbGVnYXRvcixcbiAgdmFsaWRhdG9yLFxuICBmZWUsXG4gIC4uLnJlc3Rcbn06IE9wUmV0dXJuUGFyYW1zKTogQnVmZmVyIHtcbiAgLyoqXG4gICAqIEFzIG9mIHYyLCB0aGlzIGlzIHRoZSBjb25zdHJ1Y3Rpb24gb2YgdGhlIE9QX1JFVFVSTjpcbiAgICogU291cmNlOiBodHRwczovL2RvY3MuY29yZWRhby5vcmcvZG9jcy9MZWFybi9wcm9kdWN0cy9idGMtc3Rha2luZy9kZXNpZ24jb3BfcmV0dXJuLW91dHB1dFxuICAgKlxuICAgKiBUaGUgT1BfUkVUVVJOIG91dHB1dCBzaG91bGQgY29udGFpbiBhbGwgc3Rha2luZyBpbmZvcm1hdGlvbiBpbiBvcmRlciwgYW5kIGJlIGNvbXBvc2VkIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OlxuICAgKlxuICAgKiBTYXRvc2hpIFBsdXMgSWRlbnRpZmllcjogKFNBVCspIDQgYnl0ZXNcbiAgICogVmVyc2lvbjogKDB4MDEpIDEgYnl0ZVxuICAgKiBDaGFpbiBJRDogKDB4MDQ1YiAoMTExNSkgZm9yIENvcmUgVGVzdG5ldCBhbmQgMHgwNDVjICgxMTE2KSBmb3IgQ29yZSBNYWlubmV0KSAyIGJ5dGVzXG4gICAqIERlbGVnYXRvcjogVGhlIENvcmUgYWRkcmVzcyB0byByZWNlaXZlIHJld2FyZHMsIDIwIGJ5dGVzXG4gICAqIFZhbGlkYXRvcjogVGhlIENvcmUgdmFsaWRhdG9yIGFkZHJlc3MgdG8gc3Rha2UgdG8sIDIwIGJ5dGVzXG4gICAqIEZlZTogRmVlIGZvciByZWxheWVyLCAxIGJ5dGUsIHJhbmdlIFswLDI1NV0sIG1lYXN1cmVkIGluIENPUkVcbiAgICogKE9wdGlvbmFsKSBSZWRlZW1TY3JpcHRcbiAgICogKE9wdGlvbmFsKSBUaW1lbG9jazogNCBieXRlc1xuICAgKlxuICAgKiBFaXRoZXIgUmVkZWVtU2NyaXB0IG9yIFRpbWVsb2NrIG11c3QgYmUgYXZhaWxhYmxlLCB0aGUgcHVycG9zZSBpcyB0byBhbGxvdyByZWxheWVyIHRvXG4gICAqIG9idGFpbiB0aGUgUmVkZWVtU2NyaXB0IGFuZCBzdWJtaXQgdHJhbnNhY3Rpb25zIG9uIENvcmUuIElmIGEgUmVkZWVtU2NyaXB0IGlzIHByb3ZpZGVkLFxuICAgKiByZWxheWVyIHdpbGwgdXNlIGl0IGRpcmVjdGx5LiBPdGhlcndpc2UsIHJlbGF5ZXIgd2lsbCBjb25zdHJ1Y3QgdGhlIHJlZGVlbSBzY3JpcHQgYmFzZWRcbiAgICogb24gdGhlIHRpbWVsb2NrIGFuZCB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIHRyYW5zYWN0aW9uIGlucHV0cy5cbiAgICpcbiAgICogTm90ZSB0aGF0IGFueSBsZW5ndGggPiA4MCBieXRlcyB3b250IGJlIHJlbGF5ZWQgYnkgbm9kZXMgYW5kIHRoZXJlZm9yZSB3ZSB3aWxsIHRocm93IGFuIGVycm9yLlxuICAgKi9cbiAgaWYgKHZlcnNpb24gPCAwIHx8IHZlcnNpb24gPiAyNTUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdmVyc2lvbiAtIG91dCBvZiByYW5nZScpO1xuICB9XG4gIGNvbnN0IHZlcnNpb25CdWZmZXIgPSBCdWZmZXIuYWxsb2MoMSwgdmVyc2lvbik7XG5cbiAgaWYgKFxuICAgICEoXG4gICAgICBjaGFpbklkLmVxdWFscyhDT1JFX0RBT19URVNUTkVUX0NIQUlOX0lEKSB8fFxuICAgICAgY2hhaW5JZC5lcXVhbHMoQ09SRV9EQU9fVEVTVE5FVDJfQ0hBSU5fSUQpIHx8XG4gICAgICBjaGFpbklkLmVxdWFscyhDT1JFX0RBT19NQUlOTkVUX0NIQUlOX0lEKSB8fFxuICAgICAgY2hhaW5JZC5lcXVhbHMoQ09SRV9EQU9fREVWTkVUX0NIQUlOX0lEKVxuICAgIClcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGNoYWluIElEJyk7XG4gIH1cblxuICBpZiAoZGVsZWdhdG9yLmxlbmd0aCAhPT0gMjApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgZGVsZWdhdG9yIGFkZHJlc3MnKTtcbiAgfVxuXG4gIGlmICh2YWxpZGF0b3IubGVuZ3RoICE9PSAyMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCB2YWxpZGF0b3IgYWRkcmVzcycpO1xuICB9XG5cbiAgaWYgKGZlZSA8IDAgfHwgZmVlID4gMjU1KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGZlZSAtIG91dCBvZiByYW5nZScpO1xuICB9XG4gIGNvbnN0IGZlZUJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygxLCBmZWUpO1xuXG4gIGlmIChmZWVCdWZmZXIubGVuZ3RoICE9PSAxKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGZlZScpO1xuICB9XG5cbiAgY29uc3QgcmVkZWVtU2NyaXB0QnVmZmVyID0gJ3JlZGVlbVNjcmlwdCcgaW4gcmVzdCA/IHJlc3QucmVkZWVtU2NyaXB0IDogQnVmZmVyLmZyb20oW10pO1xuICBpZiAoJ3RpbWVsb2NrJyBpbiByZXN0ICYmIChyZXN0LnRpbWVsb2NrIDwgMCB8fCByZXN0LnRpbWVsb2NrID4gNDI5NDk2NzI5NSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgdGltZWxvY2sgLSBvdXQgb2YgcmFuZ2UnKTtcbiAgfVxuXG4gIC8vIGVuY29kZSB0aGUgbnVtYmVyIGludG8gYSA0LWJ5dGUgYnVmZmVyXG4gIC8vIGlmIHRpbWVsb2NrIGlzIHByb3ZpZGVkLCB3cml0ZSBpdCBpbnRvIDMyLWJpdCBsaXR0bGUtZW5kaWFuXG4gIGNvbnN0IHRpbWVsb2NrQnVmZmVyID0gJ3RpbWVsb2NrJyBpbiByZXN0ID8gZW5jb2RlVGltZWxvY2socmVzdC50aW1lbG9jaykgOiBCdWZmZXIuZnJvbShbXSk7XG4gIGNvbnN0IGRhdGEgPSBCdWZmZXIuY29uY2F0KFtcbiAgICBDT1JFX0RBT19TQVRPU0hJX1BMVVNfSURFTlRJRklFUixcbiAgICB2ZXJzaW9uQnVmZmVyLFxuICAgIGNoYWluSWQsXG4gICAgZGVsZWdhdG9yLFxuICAgIHZhbGlkYXRvcixcbiAgICBmZWVCdWZmZXIsXG4gICAgcmVkZWVtU2NyaXB0QnVmZmVyLFxuICAgIHRpbWVsb2NrQnVmZmVyLFxuICBdKTtcbiAgaWYgKGRhdGEubGVuZ3RoID4gODApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ09QX1JFVFVSTiBvdXRwdXRzIGNhbm5vdCBoYXZlIGEgbGVuZ3RoIGxhcmdlciB0aGFuIDgwIGJ5dGVzJyk7XG4gIH1cblxuICBjb25zdCBwYXltZW50ID0gcGF5bWVudHMuZW1iZWQoe1xuICAgIGRhdGE6IFtkYXRhXSxcbiAgICBuZXR3b3JrOiBjaGFpbklkLmVxdWFscyhDT1JFX0RBT19ERVZORVRfQ0hBSU5fSUQpID8gbmV0d29ya3MudGVzdG5ldCA6IG5ldHdvcmtzLmJpdGNvaW4sXG4gIH0pO1xuICBpZiAoIXBheW1lbnQub3V0cHV0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gY3JlYXRlIE9QX1JFVFVSTiBvdXRwdXQnKTtcbiAgfVxuXG4gIHJldHVybiBwYXltZW50Lm91dHB1dDtcbn1cblxuLyoqXG4gKiBQYXJzZSBhIENvcmVEQU8gT1BfUkVUVVJOIG91dHB1dCBzY3JpcHQgaW50byB0aGUgY29uc3RpdHVlbnQgcGFydHNcbiAqIEBwYXJhbSBzY3JpcHRcbiAqIEByZXR1cm5zIE9wUmV0dXJuUGFyYW1zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNvcmVEYW9PcFJldHVybk91dHB1dFNjcmlwdChzY3JpcHQ6IEJ1ZmZlcik6IE9wUmV0dXJuUGFyYW1zIHtcbiAgaWYgKCFzY3JpcHQuc3ViYXJyYXkoMCwgMSkuZXF1YWxzKE9QX1JFVFVSTl9JREVOVElGSUVSKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignRmlyc3QgYnl0ZSBtdXN0IGJlIGFuIE9QX1JFVFVSTicpO1xuICB9XG5cbiAgY29uc3QgcGF5bWVudCA9IHBheW1lbnRzLmVtYmVkKHtcbiAgICBvdXRwdXQ6IHNjcmlwdCxcbiAgfSk7XG4gIGNvbnN0IGRhdGEgPSBwYXltZW50LmRhdGE7XG4gIGlmICghZGF0YSB8fCBkYXRhLmxlbmd0aCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBPUF9SRVRVUk4gb3V0cHV0Jyk7XG4gIH1cbiAgY29uc3QgZGF0YUJ1ZmZlciA9IGRhdGFbMF07XG4gIGlmIChkYXRhQnVmZmVyLmxlbmd0aCA+IDgwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBPUF9SRVRVUk4gb3V0cHV0cyBjYW5ub3QgaGF2ZSBhIGxlbmd0aCBsYXJnZXIgdGhhbiA4MCBieXRlc2ApO1xuICB9XG4gIGxldCBvZmZzZXQgPSAwO1xuXG4gIC8vIERlY29kZSBzYXRvc2hpKyBpZGVudGlmaWVyXG4gIGlmICghZGF0YUJ1ZmZlci5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIDQpLmVxdWFscyhDT1JFX0RBT19TQVRPU0hJX1BMVVNfSURFTlRJRklFUikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgc2F0b3NoaSsgaWRlbnRpZmllcicpO1xuICB9XG4gIG9mZnNldCArPSA0O1xuXG4gIC8vIERlY29kZSB2ZXJzaW9uXG4gIGNvbnN0IHZlcnNpb24gPSBkYXRhQnVmZmVyW29mZnNldF07XG4gIG9mZnNldCArPSAxO1xuXG4gIC8vIERlY29kZSBjaGFpbklkXG4gIGNvbnN0IGNoYWluSWQgPSBCdWZmZXIuZnJvbShkYXRhQnVmZmVyLnN1YmFycmF5KG9mZnNldCwgb2Zmc2V0ICsgMikpO1xuICBpZiAoXG4gICAgIShcbiAgICAgIGNoYWluSWQuZXF1YWxzKENPUkVfREFPX0RFVk5FVF9DSEFJTl9JRCkgfHxcbiAgICAgIGNoYWluSWQuZXF1YWxzKENPUkVfREFPX1RFU1RORVRfQ0hBSU5fSUQpIHx8XG4gICAgICBjaGFpbklkLmVxdWFscyhDT1JFX0RBT19URVNUTkVUMl9DSEFJTl9JRCkgfHxcbiAgICAgIGNoYWluSWQuZXF1YWxzKENPUkVfREFPX01BSU5ORVRfQ0hBSU5fSUQpXG4gICAgKVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgSW52YWxpZCBDaGFpbklEOiAke2NoYWluSWQudG9TdHJpbmcoXG4gICAgICAgICdoZXgnXG4gICAgICApfS4gTXVzdCBiZSBlaXRoZXIgMHgwNDU4IChkZXZuZXQpLCAweDA0NWIgKHRlc3RuZXQpLCBvciAweDA0NWMgKG1haW5uZXQpLmBcbiAgICApO1xuICB9XG4gIG9mZnNldCArPSAyO1xuXG4gIC8vIERlY29kZSBkZWxlZ2F0b3JcbiAgY29uc3QgZGVsZWdhdG9yID0gQnVmZmVyLmZyb20oZGF0YUJ1ZmZlci5zdWJhcnJheShvZmZzZXQsIG9mZnNldCArIDIwKSk7XG4gIG9mZnNldCArPSAyMDtcblxuICAvLyBEZWNvZGUgdmFsaWRhdG9yXG4gIGNvbnN0IHZhbGlkYXRvciA9IEJ1ZmZlci5mcm9tKGRhdGFCdWZmZXIuc3ViYXJyYXkob2Zmc2V0LCBvZmZzZXQgKyAyMCkpO1xuICBvZmZzZXQgKz0gMjA7XG5cbiAgLy8gRGVjb2RlIGZlZVxuICBjb25zdCBmZWUgPSBkYXRhQnVmZmVyW29mZnNldF07XG4gIG9mZnNldCArPSAxO1xuXG4gIGNvbnN0IGJhc2VQYXJhbXMgPSB7IHZlcnNpb24sIGNoYWluSWQsIGRlbGVnYXRvciwgdmFsaWRhdG9yLCBmZWUgfTtcblxuICAvLyBEZWNvZGUgcmVkZWVtU2NyaXB0IG9yIHRpbWVsb2NrXG4gIGlmIChvZmZzZXQgPT09IGRhdGFCdWZmZXIubGVuZ3RoIC0gNCkge1xuICAgIHJldHVybiB7IC4uLmJhc2VQYXJhbXMsIHRpbWVsb2NrOiBkZWNvZGVUaW1lbG9jayhkYXRhQnVmZmVyLnN1YmFycmF5KG9mZnNldCkpIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgLi4uYmFzZVBhcmFtcywgcmVkZWVtU2NyaXB0OiBCdWZmZXIuZnJvbShkYXRhQnVmZmVyLnN1YmFycmF5KG9mZnNldCkpIH07XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvU3RyaW5nKHBhcmFtczogT3BSZXR1cm5QYXJhbXMpOiBzdHJpbmcge1xuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xuICAgIHZlcnNpb246IHBhcmFtcy52ZXJzaW9uLFxuICAgIGNoYWluSWQ6IHBhcmFtcy5jaGFpbklkLnRvU3RyaW5nKCdoZXgnKSxcbiAgICBkZWxlZ2F0b3I6IHBhcmFtcy5kZWxlZ2F0b3IudG9TdHJpbmcoJ2hleCcpLFxuICAgIHZhbGlkYXRvcjogcGFyYW1zLnZhbGlkYXRvci50b1N0cmluZygnaGV4JyksXG4gICAgZmVlOiBwYXJhbXMuZmVlLFxuICAgIC4uLigncmVkZWVtU2NyaXB0JyBpbiBwYXJhbXMgPyB7IHJlZGVlbVNjcmlwdDogcGFyYW1zLnJlZGVlbVNjcmlwdC50b1N0cmluZygnaGV4JykgfSA6IHt9KSxcbiAgICAuLi4oJ3RpbWVsb2NrJyBpbiBwYXJhbXMgPyB7IHRpbWVsb2NrOiBwYXJhbXMudGltZWxvY2sgfSA6IHt9KSxcbiAgfSk7XG59XG4iXX0=
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
+
import { Output } from '@bitgo-beta/utxo-core';
|
|
1
2
|
import { Descriptor } from '@bitgo/wasm-miniscript';
|
|
2
3
|
import { OpReturnParams } from './opReturn';
|
|
4
|
+
type StakingParams = {
|
|
5
|
+
amount: bigint;
|
|
6
|
+
descriptor: Descriptor;
|
|
7
|
+
index?: number;
|
|
8
|
+
};
|
|
3
9
|
/**
|
|
4
10
|
* Create the staking outputs for a CoreDAO staking transaction. This is the ordering
|
|
5
11
|
* in which to add into the transaction.
|
|
@@ -8,12 +14,15 @@ import { OpReturnParams } from './opReturn';
|
|
|
8
14
|
* If stakingParams.index is provided, then this is assumed to be a `derivable` descriptor.
|
|
9
15
|
* @param opReturnParams to create the OP_RETURN output
|
|
10
16
|
*/
|
|
11
|
-
export declare function
|
|
12
|
-
|
|
13
|
-
descriptor: Descriptor;
|
|
14
|
-
index?: number;
|
|
15
|
-
}, opReturnParams: OpReturnParams): {
|
|
17
|
+
export declare function createStakingOutputsCore(stakingParams: StakingParams, opReturnParams: OpReturnParams): Output<bigint>[];
|
|
18
|
+
type LegacyOutput = {
|
|
16
19
|
script: Buffer;
|
|
17
20
|
amount: bigint;
|
|
18
|
-
}
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* @see createStakingOutputsCore
|
|
24
|
+
* @deprecated - use createStakingOutputsCore instead
|
|
25
|
+
*/
|
|
26
|
+
export declare function createStakingOutputs(stakingParams: StakingParams, opReturnParams: OpReturnParams): LegacyOutput[];
|
|
27
|
+
export {};
|
|
19
28
|
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/coreDao/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAqC,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/E
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../src/coreDao/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAqC,cAAc,EAAE,MAAM,YAAY,CAAC;AAE/E,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,cAAc,GAC7B,MAAM,CAAC,MAAM,CAAC,EAAE,CAgBlB;AAED,KAAK,YAAY,GAAG;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,GAAG,YAAY,EAAE,CAEjH"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createStakingOutputsCore = createStakingOutputsCore;
|
|
3
4
|
exports.createStakingOutputs = createStakingOutputs;
|
|
4
5
|
const opReturn_1 = require("./opReturn");
|
|
5
6
|
/**
|
|
@@ -10,7 +11,7 @@ const opReturn_1 = require("./opReturn");
|
|
|
10
11
|
* If stakingParams.index is provided, then this is assumed to be a `derivable` descriptor.
|
|
11
12
|
* @param opReturnParams to create the OP_RETURN output
|
|
12
13
|
*/
|
|
13
|
-
function
|
|
14
|
+
function createStakingOutputsCore(stakingParams, opReturnParams) {
|
|
14
15
|
if (stakingParams.descriptor.hasWildcard() && stakingParams.index === undefined) {
|
|
15
16
|
throw new Error('Cannot create staking outputs with a wildcard descriptor and no derivation index');
|
|
16
17
|
}
|
|
@@ -19,8 +20,15 @@ function createStakingOutputs(stakingParams, opReturnParams) {
|
|
|
19
20
|
: stakingParams.descriptor.atDerivationIndex(stakingParams.index).scriptPubkey());
|
|
20
21
|
const opReturnScript = (0, opReturn_1.createCoreDaoOpReturnOutputScript)(opReturnParams);
|
|
21
22
|
return [
|
|
22
|
-
{ script: outputScript,
|
|
23
|
-
{ script: opReturnScript,
|
|
23
|
+
{ script: outputScript, value: stakingParams.amount },
|
|
24
|
+
{ script: opReturnScript, value: BigInt(0) },
|
|
24
25
|
];
|
|
25
26
|
}
|
|
26
|
-
|
|
27
|
+
/**
|
|
28
|
+
* @see createStakingOutputsCore
|
|
29
|
+
* @deprecated - use createStakingOutputsCore instead
|
|
30
|
+
*/
|
|
31
|
+
function createStakingOutputs(stakingParams, opReturnParams) {
|
|
32
|
+
return createStakingOutputsCore(stakingParams, opReturnParams).map(({ value, ...o }) => ({ ...o, amount: value }));
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29yZURhby90cmFuc2FjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW1CQSw0REFtQkM7QUFXRCxvREFFQztBQWhERCx5Q0FBK0U7QUFRL0U7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLHdCQUF3QixDQUN0QyxhQUE0QixFQUM1QixjQUE4QjtJQUU5QixJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLElBQUksYUFBYSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNoRixNQUFNLElBQUksS0FBSyxDQUFDLGtGQUFrRixDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQzlCLGFBQWEsQ0FBQyxLQUFLLEtBQUssU0FBUztRQUMvQixDQUFDLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEVBQUU7UUFDekMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUNuRixDQUFDO0lBQ0YsTUFBTSxjQUFjLEdBQUcsSUFBQSw0Q0FBaUMsRUFBQyxjQUFjLENBQUMsQ0FBQztJQUV6RSxPQUFPO1FBQ0wsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFO1FBQ3JELEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFO0tBQzdDLENBQUM7QUFDSixDQUFDO0FBT0Q7OztHQUdHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsYUFBNEIsRUFBRSxjQUE4QjtJQUMvRixPQUFPLHdCQUF3QixDQUFDLGFBQWEsRUFBRSxjQUFjLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNySCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3V0cHV0IH0gZnJvbSAnQGJpdGdvLWJldGEvdXR4by1jb3JlJztcbmltcG9ydCB7IERlc2NyaXB0b3IgfSBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcblxuaW1wb3J0IHsgY3JlYXRlQ29yZURhb09wUmV0dXJuT3V0cHV0U2NyaXB0LCBPcFJldHVyblBhcmFtcyB9IGZyb20gJy4vb3BSZXR1cm4nO1xuXG50eXBlIFN0YWtpbmdQYXJhbXMgPSB7XG4gIGFtb3VudDogYmlnaW50O1xuICBkZXNjcmlwdG9yOiBEZXNjcmlwdG9yO1xuICBpbmRleD86IG51bWJlcjtcbn07XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBzdGFraW5nIG91dHB1dHMgZm9yIGEgQ29yZURBTyBzdGFraW5nIHRyYW5zYWN0aW9uLiBUaGlzIGlzIHRoZSBvcmRlcmluZ1xuICogaW4gd2hpY2ggdG8gYWRkIGludG8gdGhlIHRyYW5zYWN0aW9uLlxuICogQHBhcmFtIHN0YWtpbmdQYXJhbXMgaG93IHRvIGNyZWF0ZSB0aGUgdGltZWxvY2tlZCBzdGFrZSBvdXRwdXRcbiAqIEBwYXJhbSBzdGFraW5nUGFyYW1zLmRlc2NyaXB0b3IgaWYgc3Rha2luZ1BhcmFtcy5pbmRleCBpcyBub3QgcHJvdmlkZWQsIHRoZW4gdGhpcyBpcyBhc3N1bWVkIHRvIGJlIGEgYGRlZmluaXRlYCBkZXNjcmlwdG9yLlxuICogSWYgc3Rha2luZ1BhcmFtcy5pbmRleCBpcyBwcm92aWRlZCwgdGhlbiB0aGlzIGlzIGFzc3VtZWQgdG8gYmUgYSBgZGVyaXZhYmxlYCBkZXNjcmlwdG9yLlxuICogQHBhcmFtIG9wUmV0dXJuUGFyYW1zIHRvIGNyZWF0ZSB0aGUgT1BfUkVUVVJOIG91dHB1dFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3Rha2luZ091dHB1dHNDb3JlKFxuICBzdGFraW5nUGFyYW1zOiBTdGFraW5nUGFyYW1zLFxuICBvcFJldHVyblBhcmFtczogT3BSZXR1cm5QYXJhbXNcbik6IE91dHB1dDxiaWdpbnQ+W10ge1xuICBpZiAoc3Rha2luZ1BhcmFtcy5kZXNjcmlwdG9yLmhhc1dpbGRjYXJkKCkgJiYgc3Rha2luZ1BhcmFtcy5pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY3JlYXRlIHN0YWtpbmcgb3V0cHV0cyB3aXRoIGEgd2lsZGNhcmQgZGVzY3JpcHRvciBhbmQgbm8gZGVyaXZhdGlvbiBpbmRleCcpO1xuICB9XG5cbiAgY29uc3Qgb3V0cHV0U2NyaXB0ID0gQnVmZmVyLmZyb20oXG4gICAgc3Rha2luZ1BhcmFtcy5pbmRleCA9PT0gdW5kZWZpbmVkXG4gICAgICA/IHN0YWtpbmdQYXJhbXMuZGVzY3JpcHRvci5zY3JpcHRQdWJrZXkoKVxuICAgICAgOiBzdGFraW5nUGFyYW1zLmRlc2NyaXB0b3IuYXREZXJpdmF0aW9uSW5kZXgoc3Rha2luZ1BhcmFtcy5pbmRleCkuc2NyaXB0UHVia2V5KClcbiAgKTtcbiAgY29uc3Qgb3BSZXR1cm5TY3JpcHQgPSBjcmVhdGVDb3JlRGFvT3BSZXR1cm5PdXRwdXRTY3JpcHQob3BSZXR1cm5QYXJhbXMpO1xuXG4gIHJldHVybiBbXG4gICAgeyBzY3JpcHQ6IG91dHB1dFNjcmlwdCwgdmFsdWU6IHN0YWtpbmdQYXJhbXMuYW1vdW50IH0sXG4gICAgeyBzY3JpcHQ6IG9wUmV0dXJuU2NyaXB0LCB2YWx1ZTogQmlnSW50KDApIH0sXG4gIF07XG59XG5cbnR5cGUgTGVnYWN5T3V0cHV0ID0ge1xuICBzY3JpcHQ6IEJ1ZmZlcjtcbiAgYW1vdW50OiBiaWdpbnQ7XG59O1xuXG4vKipcbiAqIEBzZWUgY3JlYXRlU3Rha2luZ091dHB1dHNDb3JlXG4gKiBAZGVwcmVjYXRlZCAtIHVzZSBjcmVhdGVTdGFraW5nT3V0cHV0c0NvcmUgaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU3Rha2luZ091dHB1dHMoc3Rha2luZ1BhcmFtczogU3Rha2luZ1BhcmFtcywgb3BSZXR1cm5QYXJhbXM6IE9wUmV0dXJuUGFyYW1zKTogTGVnYWN5T3V0cHV0W10ge1xuICByZXR1cm4gY3JlYXRlU3Rha2luZ091dHB1dHNDb3JlKHN0YWtpbmdQYXJhbXMsIG9wUmV0dXJuUGFyYW1zKS5tYXAoKHsgdmFsdWUsIC4uLm8gfSkgPT4gKHsgLi4ubywgYW1vdW50OiB2YWx1ZSB9KSk7XG59XG4iXX0=
|
package/dist/src/index.d.ts
CHANGED
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,cAAc,eAAe,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -10,11 +10,34 @@ 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
|
+
})();
|
|
13
35
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
36
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
37
|
};
|
|
16
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.coreDao = void 0;
|
|
18
|
-
exports.coreDao = require("./coreDao");
|
|
39
|
+
exports.babylon = exports.coreDao = void 0;
|
|
40
|
+
exports.coreDao = __importStar(require("./coreDao"));
|
|
41
|
+
exports.babylon = __importStar(require("./babylon"));
|
|
19
42
|
__exportStar(require("./transaction"), exports);
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQXFDO0FBQ3JDLHFEQUFxQztBQUVyQyxnREFBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBhcyBjb3JlRGFvIGZyb20gJy4vY29yZURhbyc7XG5leHBvcnQgKiBhcyBiYWJ5bG9uIGZyb20gJy4vYmFieWxvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNhY3Rpb24nO1xuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,sBAAsB,CAAC;
|
|
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"}
|
package/dist/src/transaction.js
CHANGED
|
@@ -1,8 +1,43 @@
|
|
|
1
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
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.buildFixedWalletStakingPsbt = buildFixedWalletStakingPsbt;
|
|
4
|
-
const utxolib = require("@bitgo-beta/utxo-lib");
|
|
37
|
+
const utxolib = __importStar(require("@bitgo-beta/utxo-lib"));
|
|
5
38
|
const unspents_1 = require("@bitgo-beta/unspents");
|
|
39
|
+
const bitcoinjslib = __importStar(require("bitcoinjs-lib"));
|
|
40
|
+
bitcoinjslib.initEccLib(utxolib.ecc);
|
|
6
41
|
/**
|
|
7
42
|
* Build a staking transaction for a wallet that assumes 2-of-3 multisig for the inputs
|
|
8
43
|
*
|
|
@@ -51,4 +86,4 @@ function buildFixedWalletStakingPsbt({ rootWalletKeys, unspents, outputs, change
|
|
|
51
86
|
}
|
|
52
87
|
return psbt;
|
|
53
88
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNhY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFtQkEsa0VBbUZDO0FBdEdELDhEQUFnRDtBQUNoRCxtREFBa0Q7QUFDbEQsNERBQThDO0FBRTlDLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXJDOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILFNBQWdCLDJCQUEyQixDQUFDLEVBQzFDLGNBQWMsRUFDZCxRQUFRLEVBQ1IsT0FBTyxFQUNQLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osT0FBTyxFQUNQLGtCQUFrQixFQUNsQixVQUFVLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQWlCdkI7SUFDQyxJQUFJLFlBQVksR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUNELElBQUksUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsRCxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELGdDQUFnQztJQUNoQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FDckUsY0FBYyxDQUFDLHNCQUFzQixDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLEVBQ2xHLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLEVBQ3pELE9BQU8sQ0FDUixDQUFDLFlBQVksQ0FBQztJQUNmLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsd0JBQXdCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3RyxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzdELE9BQU8sQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxjQUFjLENBQUMsQ0FBQztJQUVuRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEYsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBRXBGLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUMzQixPQUFPLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUU7UUFDbkYsa0JBQWtCLEVBQUUsSUFBSTtRQUN4QixrQkFBa0I7S0FDbkIsQ0FBQyxDQUNILENBQUM7SUFDRixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFcEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FDbkIsQ0FBQyxxQkFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdkIsSUFBSSxDQUFDLHFCQUFVLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7U0FDckQsUUFBUSxFQUFFO1FBQ1gsWUFBWSxDQUFDO1FBQ2IsSUFBSSxDQUNQLENBQUM7SUFFRixNQUFNLFlBQVksR0FBRyxXQUFXLEdBQUcsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDaEUsSUFBSSxZQUFZLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0IsTUFBTSxJQUFJLEtBQUssQ0FDYixnQkFBZ0IsV0FBVyxDQUFDLFFBQVEsRUFBRSxvQ0FBb0MsWUFBWSxrQkFBa0IsR0FBRyxFQUFFLENBQzlHLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxZQUFZLEdBQUcsVUFBVSxFQUFFLENBQUM7UUFDOUIsT0FBTyxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FDakMsSUFBSSxFQUNKLGNBQWMsRUFDZCxpQkFBaUIsQ0FBQyxLQUFLLEVBQ3ZCLGlCQUFpQixDQUFDLEtBQUssRUFDdkIsWUFBWSxDQUNiLENBQUM7SUFDSixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28tYmV0YS91dHhvLWxpYic7XG5pbXBvcnQgeyBEaW1lbnNpb25zIH0gZnJvbSAnQGJpdGdvLWJldGEvdW5zcGVudHMnO1xuaW1wb3J0ICogYXMgYml0Y29pbmpzbGliIGZyb20gJ2JpdGNvaW5qcy1saWInO1xuXG5iaXRjb2luanNsaWIuaW5pdEVjY0xpYih1dHhvbGliLmVjYyk7XG5cbi8qKlxuICogQnVpbGQgYSBzdGFraW5nIHRyYW5zYWN0aW9uIGZvciBhIHdhbGxldCB0aGF0IGFzc3VtZXMgMi1vZi0zIG11bHRpc2lnIGZvciB0aGUgaW5wdXRzXG4gKlxuICogR2l2ZW4gdGhlIGlucHV0cyBhbmQgdGhlIHN0YWtpbmcgb3V0cHV0cywgd2Ugd2lsbCBjcmVhdGUgdGhlIFBTQlQgd2l0aCB0aGUgZGVzaXJlZCBmZWUgcmF0ZS5cbiAqIFdlIGFsd2F5cyBhZGQgdGhlIGNoYW5nZSBhZGRyZXNzIGFzIHRoZSBsYXN0IG91dHB1dC5cbiAqXG4gKiBAcGFyYW0gcm9vdFdhbGxldEtleXNcbiAqIEBwYXJhbSB1bnNwZW50c1xuICogQHBhcmFtIGNyZWF0ZVN0YWtpbmdPdXRwdXRzXG4gKiBAcGFyYW0gY2hhbmdlQWRkcmVzc0luZm9cbiAqIEBwYXJhbSBmZWVSYXRlU2F0S0JcbiAqIEBwYXJhbSBuZXR3b3JrXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEZpeGVkV2FsbGV0U3Rha2luZ1BzYnQoe1xuICByb290V2FsbGV0S2V5cyxcbiAgdW5zcGVudHMsXG4gIG91dHB1dHMsXG4gIGNoYW5nZUFkZHJlc3NJbmZvLFxuICBmZWVSYXRlU2F0S0IsXG4gIG5ldHdvcmssXG4gIHNraXBOb25XaXRuZXNzVXR4byxcbiAgZHVzdEFtb3VudCA9IEJpZ0ludCgwKSxcbn06IHtcbiAgcm9vdFdhbGxldEtleXM6IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXM7XG4gIHVuc3BlbnRzOiB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnQ8YmlnaW50PltdO1xuICBvdXRwdXRzOiB7XG4gICAgc2NyaXB0OiBCdWZmZXI7XG4gICAgdmFsdWU6IGJpZ2ludDtcbiAgfVtdO1xuICBjaGFuZ2VBZGRyZXNzSW5mbzoge1xuICAgIGNoYWluOiB1dHhvbGliLmJpdGdvLkNoYWluQ29kZTtcbiAgICBpbmRleDogbnVtYmVyO1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgfTtcbiAgZmVlUmF0ZVNhdEtCOiBudW1iZXI7XG4gIG5ldHdvcms6IHV0eG9saWIuTmV0d29yaztcbiAgc2tpcE5vbldpdG5lc3NVdHhvPzogYm9vbGVhbjtcbiAgZHVzdEFtb3VudD86IGJpZ2ludDtcbn0pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgaWYgKGZlZVJhdGVTYXRLQiA8IDEwMDApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZlZSByYXRlIG11c3QgYmUgYXQgbGVhc3QgMSBzYXQvdmJ5dGUnKTtcbiAgfVxuICBpZiAodW5zcGVudHMubGVuZ3RoID09PSAwIHx8IG91dHB1dHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IGhhdmUgYXQgbGVhc3Qgb25lIGlucHV0IGFuZCBvbmUgb3V0cHV0Jyk7XG4gIH1cblxuICAvLyBDaGVjayB0aGUgY2hhbmdlIGFkZHJlc3MgaW5mb1xuICBjb25zdCBjaGFuZ2VTY3JpcHQgPSB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuY3JlYXRlT3V0cHV0U2NyaXB0Mm9mMyhcbiAgICByb290V2FsbGV0S2V5cy5kZXJpdmVGb3JDaGFpbkFuZEluZGV4KGNoYW5nZUFkZHJlc3NJbmZvLmNoYWluLCBjaGFuZ2VBZGRyZXNzSW5mby5pbmRleCkucHVibGljS2V5cyxcbiAgICB1dHhvbGliLmJpdGdvLnNjcmlwdFR5cGVGb3JDaGFpbihjaGFuZ2VBZGRyZXNzSW5mby5jaGFpbiksXG4gICAgbmV0d29ya1xuICApLnNjcmlwdFB1YktleTtcbiAgaWYgKCFjaGFuZ2VTY3JpcHQuZXF1YWxzKHV0eG9saWIuYWRkcmVzc0Zvcm1hdC50b091dHB1dFNjcmlwdFRyeUZvcm1hdHMoY2hhbmdlQWRkcmVzc0luZm8uYWRkcmVzcywgbmV0d29yaykpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDaGFuZ2UgYWRkcmVzcyBpbmZvIGRvZXMgbm90IG1hdGNoIHRoZSBkZXJpdmVkIGNoYW5nZSBzY3JpcHQnKTtcbiAgfVxuXG4gIGNvbnN0IHBzYnQgPSB1dHhvbGliLmJpdGdvLmNyZWF0ZVBzYnRGb3JOZXR3b3JrKHsgbmV0d29yayB9KTtcbiAgdXR4b2xpYi5iaXRnby5hZGRYcHVic1RvUHNidChwc2J0LCByb290V2FsbGV0S2V5cyk7XG5cbiAgY29uc3QgaW5wdXRBbW91bnQgPSB1bnNwZW50cy5yZWR1Y2UoKHN1bSwgdW5zcGVudCkgPT4gc3VtICsgdW5zcGVudC52YWx1ZSwgQmlnSW50KDApKTtcbiAgY29uc3Qgb3V0cHV0QW1vdW50ID0gb3V0cHV0cy5yZWR1Y2UoKHN1bSwgb3V0cHV0KSA9PiBzdW0gKyBvdXRwdXQudmFsdWUsIEJpZ0ludCgwKSk7XG5cbiAgdW5zcGVudHMuZm9yRWFjaCgodW5zcGVudCkgPT5cbiAgICB1dHhvbGliLmJpdGdvLmFkZFdhbGxldFVuc3BlbnRUb1BzYnQocHNidCwgdW5zcGVudCwgcm9vdFdhbGxldEtleXMsICd1c2VyJywgJ2JpdGdvJywge1xuICAgICAgaXNSZXBsYWNlYWJsZUJ5RmVlOiB0cnVlLFxuICAgICAgc2tpcE5vbldpdG5lc3NVdHhvLFxuICAgIH0pXG4gICk7XG4gIG91dHB1dHMuZm9yRWFjaCgob3V0cHV0KSA9PiBwc2J0LmFkZE91dHB1dChvdXRwdXQpKTtcblxuICBjb25zdCBmZWUgPSBNYXRoLmNlaWwoXG4gICAgKERpbWVuc2lvbnMuZnJvbVBzYnQocHNidClcbiAgICAgIC5wbHVzKERpbWVuc2lvbnMuZnJvbU91dHB1dCh7IHNjcmlwdDogY2hhbmdlU2NyaXB0IH0pKVxuICAgICAgLmdldFZTaXplKCkgKlxuICAgICAgZmVlUmF0ZVNhdEtCKSAvXG4gICAgICAxMDAwXG4gICk7XG5cbiAgY29uc3QgY2hhbmdlQW1vdW50ID0gaW5wdXRBbW91bnQgLSAob3V0cHV0QW1vdW50ICsgQmlnSW50KGZlZSkpO1xuICBpZiAoY2hhbmdlQW1vdW50IDwgQmlnSW50KDApKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYElucHV0IGFtb3VudCAke2lucHV0QW1vdW50LnRvU3RyaW5nKCl9IGNhbm5vdCBjb3ZlciB0aGUgc3Rha2luZyBhbW91bnQgJHtvdXRwdXRBbW91bnR9IGFuZCAgdGhlIGZlZTogJHtmZWV9YFxuICAgICk7XG4gIH1cblxuICBpZiAoY2hhbmdlQW1vdW50ID4gZHVzdEFtb3VudCkge1xuICAgIHV0eG9saWIuYml0Z28uYWRkV2FsbGV0T3V0cHV0VG9Qc2J0KFxuICAgICAgcHNidCxcbiAgICAgIHJvb3RXYWxsZXRLZXlzLFxuICAgICAgY2hhbmdlQWRkcmVzc0luZm8uY2hhaW4sXG4gICAgICBjaGFuZ2VBZGRyZXNzSW5mby5pbmRleCxcbiAgICAgIGNoYW5nZUFtb3VudFxuICAgICk7XG4gIH1cblxuICByZXR1cm4gcHNidDtcbn1cbiJdfQ==
|