PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-core/dist/src/testutil/descriptor
Просмотр файла: mock.utils.js
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.mockDerivedDescriptorWalletOutput = mockDerivedDescriptorWalletOutput;
exports.mockPsbt = mockPsbt;
exports.mockPsbtDefault = mockPsbtDefault;
exports.mockPsbtDefaultWithDescriptorTemplate = mockPsbtDefaultWithDescriptorTemplate;
const utxolib = __importStar(require("@bitgo/utxo-lib"));
const descriptor_1 = require("../../descriptor");
const descriptors_1 = require("./descriptors");
function mockOutputId(id) {
const hash = id?.hash ?? Buffer.alloc(32, 1).toString('hex');
const vout = id?.vout ?? 0;
return { hash, vout };
}
function mockDerivedDescriptorWalletOutput(descriptor, outputParams = {}) {
const { value = BigInt(1e6) } = outputParams;
const { hash, vout } = mockOutputId(outputParams.id);
return {
hash,
index: vout,
witnessUtxo: {
script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(descriptor, undefined),
value,
},
descriptor,
sequence: outputParams.sequence,
};
}
function tryDeriveAtIndex(descriptor, index) {
return descriptor.hasWildcard() ? descriptor.atDerivationIndex(index) : descriptor;
}
function mockPsbt(inputs, outputs, params = {}) {
return (0, descriptor_1.createPsbt)({ ...params, network: params.network ?? utxolib.networks.bitcoin }, inputs.map((i) => mockDerivedDescriptorWalletOutput(tryDeriveAtIndex(i.descriptor, i.index), i)), outputs.map((o) => {
const derivedDescriptor = tryDeriveAtIndex(o.descriptor, o.index);
return {
script: (0, descriptor_1.createScriptPubKeyFromDescriptor)(derivedDescriptor, undefined),
value: o.value,
descriptor: o.external ? undefined : derivedDescriptor,
};
}));
}
function mockPsbtDefault({ descriptorSelf = (0, descriptors_1.getDescriptor)('Wsh2Of3', (0, descriptors_1.getDefaultXPubs)('a')), descriptorOther = (0, descriptors_1.getDescriptor)('Wsh2Of3', (0, descriptors_1.getDefaultXPubs)('b')), params = {}, } = {}) {
return mockPsbt([
{ descriptor: descriptorSelf, index: 0 },
{ descriptor: descriptorSelf, index: 1, id: { vout: 1 } },
], [
{ descriptor: descriptorOther, index: 0, value: BigInt(4e5), external: true },
{ descriptor: descriptorSelf, index: 0, value: BigInt(4e5) },
], params);
}
function mockPsbtDefaultWithDescriptorTemplate(t, params = {}) {
return mockPsbtDefault({
descriptorSelf: (0, descriptors_1.getDescriptor)(t, (0, descriptors_1.getDefaultXPubs)('a')),
descriptorOther: (0, descriptors_1.getDescriptor)(t, (0, descriptors_1.getDefaultXPubs)('b')),
params,
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90ZXN0dXRpbC9kZXNjcmlwdG9yL21vY2sudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUE4QkEsOEVBZ0JDO0FBa0JELDRCQWlCQztBQUVELDBDQW9CQztBQUVELHNGQVNDO0FBakhELHlEQUEyQztBQUUzQyxpREFLMEI7QUFFMUIsK0NBQW1GO0FBV25GLFNBQVMsWUFBWSxDQUFDLEVBQXVCO0lBSTNDLE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELE1BQU0sSUFBSSxHQUFHLEVBQUUsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO0lBQzNCLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQWdCLGlDQUFpQyxDQUMvQyxVQUFzQixFQUN0QixlQUErQyxFQUFFO0lBRWpELE1BQU0sRUFBRSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsWUFBWSxDQUFDO0lBQzdDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxPQUFPO1FBQ0wsSUFBSTtRQUNKLEtBQUssRUFBRSxJQUFJO1FBQ1gsV0FBVyxFQUFFO1lBQ1gsTUFBTSxFQUFFLElBQUEsNkNBQWdDLEVBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQztZQUMvRCxLQUFLO1NBQ047UUFDRCxVQUFVO1FBQ1YsUUFBUSxFQUFFLFlBQVksQ0FBQyxRQUFRO0tBQ2hDLENBQUM7QUFDSixDQUFDO0FBY0QsU0FBUyxnQkFBZ0IsQ0FBQyxVQUFzQixFQUFFLEtBQWE7SUFDN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0FBQ3JGLENBQUM7QUFFRCxTQUFnQixRQUFRLENBQ3RCLE1BQW1CLEVBQ25CLE9BQXFCLEVBQ3JCLFNBQThCLEVBQUU7SUFFaEMsT0FBTyxJQUFBLHVCQUFVLEVBQ2YsRUFBRSxHQUFHLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUNsRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxpQ0FBaUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUNoRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7UUFDaEIsTUFBTSxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRSxPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUEsNkNBQWdDLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxDQUFDO1lBQ3RFLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztZQUNkLFVBQVUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGlCQUFpQjtTQUN2RCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixlQUFlLENBQUMsRUFDOUIsY0FBYyxHQUFHLElBQUEsMkJBQWEsRUFBQyxTQUFTLEVBQUUsSUFBQSw2QkFBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQy9ELGVBQWUsR0FBRyxJQUFBLDJCQUFhLEVBQUMsU0FBUyxFQUFFLElBQUEsNkJBQWUsRUFBQyxHQUFHLENBQUMsQ0FBQyxFQUNoRSxNQUFNLEdBQUcsRUFBRSxNQUtULEVBQUU7SUFDSixPQUFPLFFBQVEsQ0FDYjtRQUNFLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1FBQ3hDLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRTtLQUMxRCxFQUNEO1FBQ0UsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO1FBQzdFLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7S0FDN0QsRUFDRCxNQUFNLENBQ1AsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixxQ0FBcUMsQ0FDbkQsQ0FBcUIsRUFDckIsU0FBOEIsRUFBRTtJQUVoQyxPQUFPLGVBQWUsQ0FBQztRQUNyQixjQUFjLEVBQUUsSUFBQSwyQkFBYSxFQUFDLENBQUMsRUFBRSxJQUFBLDZCQUFlLEVBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsZUFBZSxFQUFFLElBQUEsMkJBQWEsRUFBQyxDQUFDLEVBQUUsSUFBQSw2QkFBZSxFQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELE1BQU07S0FDUCxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVzY3JpcHRvciB9IGZyb20gJ0BiaXRnby93YXNtLW1pbmlzY3JpcHQnO1xuaW1wb3J0ICogYXMgdXR4b2xpYiBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5pbXBvcnQge1xuICBQc2J0UGFyYW1zLFxuICBjcmVhdGVQc2J0LFxuICBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvcixcbiAgRGVyaXZlZERlc2NyaXB0b3JUcmFuc2FjdGlvbklucHV0LFxufSBmcm9tICcuLi8uLi9kZXNjcmlwdG9yJztcblxuaW1wb3J0IHsgRGVzY3JpcHRvclRlbXBsYXRlLCBnZXREZWZhdWx0WFB1YnMsIGdldERlc2NyaXB0b3IgfSBmcm9tICcuL2Rlc2NyaXB0b3JzJztcblxudHlwZSBNb2NrT3V0cHV0SWRQYXJhbXMgPSB7IGhhc2g/OiBzdHJpbmc7IHZvdXQ/OiBudW1iZXIgfTtcblxudHlwZSBCYXNlTW9ja0Rlc2NyaXB0b3JPdXRwdXRQYXJhbXMgPSB7XG4gIGlkPzogTW9ja091dHB1dElkUGFyYW1zO1xuICBpbmRleD86IG51bWJlcjtcbiAgdmFsdWU/OiBiaWdpbnQ7XG4gIHNlcXVlbmNlPzogbnVtYmVyO1xufTtcblxuZnVuY3Rpb24gbW9ja091dHB1dElkKGlkPzogTW9ja091dHB1dElkUGFyYW1zKToge1xuICBoYXNoOiBzdHJpbmc7XG4gIHZvdXQ6IG51bWJlcjtcbn0ge1xuICBjb25zdCBoYXNoID0gaWQ/Lmhhc2ggPz8gQnVmZmVyLmFsbG9jKDMyLCAxKS50b1N0cmluZygnaGV4Jyk7XG4gIGNvbnN0IHZvdXQgPSBpZD8udm91dCA/PyAwO1xuICByZXR1cm4geyBoYXNoLCB2b3V0IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQoXG4gIGRlc2NyaXB0b3I6IERlc2NyaXB0b3IsXG4gIG91dHB1dFBhcmFtczogQmFzZU1vY2tEZXNjcmlwdG9yT3V0cHV0UGFyYW1zID0ge31cbik6IERlcml2ZWREZXNjcmlwdG9yVHJhbnNhY3Rpb25JbnB1dCB7XG4gIGNvbnN0IHsgdmFsdWUgPSBCaWdJbnQoMWU2KSB9ID0gb3V0cHV0UGFyYW1zO1xuICBjb25zdCB7IGhhc2gsIHZvdXQgfSA9IG1vY2tPdXRwdXRJZChvdXRwdXRQYXJhbXMuaWQpO1xuICByZXR1cm4ge1xuICAgIGhhc2gsXG4gICAgaW5kZXg6IHZvdXQsXG4gICAgd2l0bmVzc1V0eG86IHtcbiAgICAgIHNjcmlwdDogY3JlYXRlU2NyaXB0UHViS2V5RnJvbURlc2NyaXB0b3IoZGVzY3JpcHRvciwgdW5kZWZpbmVkKSxcbiAgICAgIHZhbHVlLFxuICAgIH0sXG4gICAgZGVzY3JpcHRvcixcbiAgICBzZXF1ZW5jZTogb3V0cHV0UGFyYW1zLnNlcXVlbmNlLFxuICB9O1xufVxuXG50eXBlIE1vY2tJbnB1dCA9IEJhc2VNb2NrRGVzY3JpcHRvck91dHB1dFBhcmFtcyAmIHtcbiAgaW5kZXg6IG51bWJlcjtcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcjtcbn07XG5cbnR5cGUgTW9ja091dHB1dCA9IHtcbiAgZGVzY3JpcHRvcjogRGVzY3JpcHRvcjtcbiAgaW5kZXg6IG51bWJlcjtcbiAgdmFsdWU6IGJpZ2ludDtcbiAgZXh0ZXJuYWw/OiBib29sZWFuO1xufTtcblxuZnVuY3Rpb24gdHJ5RGVyaXZlQXRJbmRleChkZXNjcmlwdG9yOiBEZXNjcmlwdG9yLCBpbmRleDogbnVtYmVyKTogRGVzY3JpcHRvciB7XG4gIHJldHVybiBkZXNjcmlwdG9yLmhhc1dpbGRjYXJkKCkgPyBkZXNjcmlwdG9yLmF0RGVyaXZhdGlvbkluZGV4KGluZGV4KSA6IGRlc2NyaXB0b3I7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUHNidChcbiAgaW5wdXRzOiBNb2NrSW5wdXRbXSxcbiAgb3V0cHV0czogTW9ja091dHB1dFtdLFxuICBwYXJhbXM6IFBhcnRpYWw8UHNidFBhcmFtcz4gPSB7fVxuKTogdXR4b2xpYi5iaXRnby5VdHhvUHNidCB7XG4gIHJldHVybiBjcmVhdGVQc2J0KFxuICAgIHsgLi4ucGFyYW1zLCBuZXR3b3JrOiBwYXJhbXMubmV0d29yayA/PyB1dHhvbGliLm5ldHdvcmtzLmJpdGNvaW4gfSxcbiAgICBpbnB1dHMubWFwKChpKSA9PiBtb2NrRGVyaXZlZERlc2NyaXB0b3JXYWxsZXRPdXRwdXQodHJ5RGVyaXZlQXRJbmRleChpLmRlc2NyaXB0b3IsIGkuaW5kZXgpLCBpKSksXG4gICAgb3V0cHV0cy5tYXAoKG8pID0+IHtcbiAgICAgIGNvbnN0IGRlcml2ZWREZXNjcmlwdG9yID0gdHJ5RGVyaXZlQXRJbmRleChvLmRlc2NyaXB0b3IsIG8uaW5kZXgpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2NyaXB0OiBjcmVhdGVTY3JpcHRQdWJLZXlGcm9tRGVzY3JpcHRvcihkZXJpdmVkRGVzY3JpcHRvciwgdW5kZWZpbmVkKSxcbiAgICAgICAgdmFsdWU6IG8udmFsdWUsXG4gICAgICAgIGRlc2NyaXB0b3I6IG8uZXh0ZXJuYWwgPyB1bmRlZmluZWQgOiBkZXJpdmVkRGVzY3JpcHRvcixcbiAgICAgIH07XG4gICAgfSlcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tQc2J0RGVmYXVsdCh7XG4gIGRlc2NyaXB0b3JTZWxmID0gZ2V0RGVzY3JpcHRvcignV3NoMk9mMycsIGdldERlZmF1bHRYUHVicygnYScpKSxcbiAgZGVzY3JpcHRvck90aGVyID0gZ2V0RGVzY3JpcHRvcignV3NoMk9mMycsIGdldERlZmF1bHRYUHVicygnYicpKSxcbiAgcGFyYW1zID0ge30sXG59OiB7XG4gIGRlc2NyaXB0b3JTZWxmPzogRGVzY3JpcHRvcjtcbiAgZGVzY3JpcHRvck90aGVyPzogRGVzY3JpcHRvcjtcbiAgcGFyYW1zPzogUGFydGlhbDxQc2J0UGFyYW1zPjtcbn0gPSB7fSk6IHV0eG9saWIuYml0Z28uVXR4b1BzYnQge1xuICByZXR1cm4gbW9ja1BzYnQoXG4gICAgW1xuICAgICAgeyBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yU2VsZiwgaW5kZXg6IDAgfSxcbiAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvclNlbGYsIGluZGV4OiAxLCBpZDogeyB2b3V0OiAxIH0gfSxcbiAgICBdLFxuICAgIFtcbiAgICAgIHsgZGVzY3JpcHRvcjogZGVzY3JpcHRvck90aGVyLCBpbmRleDogMCwgdmFsdWU6IEJpZ0ludCg0ZTUpLCBleHRlcm5hbDogdHJ1ZSB9LFxuICAgICAgeyBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yU2VsZiwgaW5kZXg6IDAsIHZhbHVlOiBCaWdJbnQoNGU1KSB9LFxuICAgIF0sXG4gICAgcGFyYW1zXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrUHNidERlZmF1bHRXaXRoRGVzY3JpcHRvclRlbXBsYXRlKFxuICB0OiBEZXNjcmlwdG9yVGVtcGxhdGUsXG4gIHBhcmFtczogUGFydGlhbDxQc2J0UGFyYW1zPiA9IHt9XG4pOiB1dHhvbGliLmJpdGdvLlV0eG9Qc2J0IHtcbiAgcmV0dXJuIG1vY2tQc2J0RGVmYXVsdCh7XG4gICAgZGVzY3JpcHRvclNlbGY6IGdldERlc2NyaXB0b3IodCwgZ2V0RGVmYXVsdFhQdWJzKCdhJykpLFxuICAgIGRlc2NyaXB0b3JPdGhlcjogZ2V0RGVzY3JpcHRvcih0LCBnZXREZWZhdWx0WFB1YnMoJ2InKSksXG4gICAgcGFyYW1zLFxuICB9KTtcbn1cbiJdfQ==Выполнить команду
Для локальной разработки. Не используйте в интернете!