PHP WebShell
Текущая директория: /opt/BitGoJS/modules/bitgo/dist/test/v2/unit/coins/utxo/util
Просмотр файла: unspents.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getOutputScript = getOutputScript;
exports.getWalletAddress = getWalletAddress;
exports.mockWalletUnspent = mockWalletUnspent;
exports.mockUnspentReplayProtection = mockUnspentReplayProtection;
exports.mockUnspent = mockUnspent;
/**
* @prettier
*/
const utxolib = require("@bitgo/utxo-lib");
const { scriptTypeForChain, chainCodesP2sh, getExternalChainCode, getInternalChainCode } = utxolib.bitgo;
const sdk_test_1 = require("@bitgo/sdk-test");
const abstract_utxo_1 = require("@bitgo/abstract-utxo");
const defaultChain = getExternalChainCode(chainCodesP2sh);
function getOutputScript(walletKeys, chain = defaultChain, index = 0) {
return utxolib.bitgo.outputScripts.createOutputScript2of3(walletKeys.deriveForChainAndIndex(chain, index).publicKeys, scriptTypeForChain(chain));
}
function getWalletAddress(network, walletKeys, chain = defaultChain, index = 0) {
return utxolib.address.fromOutputScript(getOutputScript(walletKeys, chain, index).scriptPubKey, network);
}
function mockOutputIdForAddress(address) {
return (0, sdk_test_1.getSeed)(address).toString('hex') + ':1';
}
function mockWalletUnspent(network, walletKeys, { id, chain = defaultChain, index = 0, value, address }) {
if (value === undefined) {
throw new Error(`unspent value must be set`);
}
if (chain === undefined) {
throw new Error(`unspent chain must be set`);
}
const derived = getOutputScript(walletKeys, chain, index);
const deriveAddress = utxolib.address.fromOutputScript(derived.scriptPubKey, network);
if (address) {
if (address !== deriveAddress) {
throw new Error(`derivedAddress mismatch: ${address} derived=${deriveAddress}`);
}
}
else {
address = deriveAddress;
}
if (!id) {
id = mockOutputIdForAddress(address);
}
return {
id,
address,
chain,
index,
value,
};
}
function mockUnspentReplayProtection(network, value) {
const addresses = (0, abstract_utxo_1.getReplayProtectionAddresses)(network);
if (addresses.length) {
const address = addresses[0];
return {
id: mockOutputIdForAddress(address),
address,
value,
};
}
throw new Error(`${utxolib.getNetworkName(network)} has no replay protection unspetns`);
}
function mockUnspent(network, walletKeys, chain, index, value) {
if (chain === 'replayProtection') {
return mockUnspentReplayProtection(network, (typeof value === 'bigint' ? BigInt(1000) : 1000));
}
else {
return mockWalletUnspent(network, walletKeys, { chain: getInternalChainCode(chain), value, index });
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5zcGVudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi90ZXN0L3YyL3VuaXQvY29pbnMvdXR4by91dGlsL3Vuc3BlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLDBDQVNDO0FBRUQsNENBT0M7QUFNRCw4Q0E4QkM7QUFFRCxrRUFjQztBQUVELGtDQVlDO0FBdEdEOztHQUVHO0FBQ0gsMkNBQTJDO0FBQzNDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO0FBT3pHLDhDQUEwQztBQUMxQyx3REFBb0U7QUFJcEUsTUFBTSxZQUFZLEdBQWMsb0JBQW9CLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFckUsU0FBZ0IsZUFBZSxDQUM3QixVQUEwQixFQUMxQixLQUFLLEdBQUcsWUFBWSxFQUNwQixLQUFLLEdBQUcsQ0FBQztJQUVULE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQ3ZELFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsVUFBVSxFQUMxRCxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FDMUIsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FDOUIsT0FBd0IsRUFDeEIsVUFBMEIsRUFDMUIsS0FBSyxHQUFHLFlBQVksRUFDcEIsS0FBSyxHQUFHLENBQUM7SUFFVCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNHLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLE9BQWU7SUFDN0MsT0FBTyxJQUFBLGtCQUFPLEVBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLE9BQXdCLEVBQ3hCLFVBQTBCLEVBQzFCLEVBQUUsRUFBRSxFQUFFLEtBQUssR0FBRyxZQUFZLEVBQUUsS0FBSyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFtQztJQUV4RixJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDJCQUEyQixDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUNELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQ0QsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUQsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RGLElBQUksT0FBTyxFQUFFLENBQUM7UUFDWixJQUFJLE9BQU8sS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixPQUFPLFlBQVksYUFBYSxFQUFFLENBQUMsQ0FBQztRQUNsRixDQUFDO0lBQ0gsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLEdBQUcsYUFBYSxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDUixFQUFFLEdBQUcsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELE9BQU87UUFDTCxFQUFFO1FBQ0YsT0FBTztRQUNQLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsMkJBQTJCLENBQ3pDLE9BQXdCLEVBQ3hCLEtBQWM7SUFFZCxNQUFNLFNBQVMsR0FBRyxJQUFBLDRDQUE0QixFQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3hELElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QixPQUFPO1lBQ0wsRUFBRSxFQUFFLHNCQUFzQixDQUFDLE9BQU8sQ0FBQztZQUNuQyxPQUFPO1lBQ1AsS0FBSztTQUNOLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFDMUYsQ0FBQztBQUVELFNBQWdCLFdBQVcsQ0FDekIsT0FBd0IsRUFDeEIsVUFBMEIsRUFDMUIsS0FBa0MsRUFDbEMsS0FBYSxFQUNiLEtBQWM7SUFFZCxJQUFJLEtBQUssS0FBSyxrQkFBa0IsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sMkJBQTJCLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBWSxDQUFDLENBQUM7SUFDNUcsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdEcsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBwcmV0dGllclxuICovXG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5jb25zdCB7IHNjcmlwdFR5cGVGb3JDaGFpbiwgY2hhaW5Db2Rlc1Ayc2gsIGdldEV4dGVybmFsQ2hhaW5Db2RlLCBnZXRJbnRlcm5hbENoYWluQ29kZSB9ID0gdXR4b2xpYi5iaXRnbztcblxudHlwZSBSb290V2FsbGV0S2V5cyA9IHV0eG9saWIuYml0Z28uUm9vdFdhbGxldEtleXM7XG50eXBlIFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gPSB1dHhvbGliLmJpdGdvLlVuc3BlbnQ8VE51bWJlcj47XG50eXBlIFdhbGxldFVuc3BlbnQ8VE51bWJlciBleHRlbmRzIG51bWJlciB8IGJpZ2ludCA9IG51bWJlcj4gPSB1dHhvbGliLmJpdGdvLldhbGxldFVuc3BlbnQ8VE51bWJlcj47XG50eXBlIENoYWluQ29kZSA9IHV0eG9saWIuYml0Z28uQ2hhaW5Db2RlO1xuXG5pbXBvcnQgeyBnZXRTZWVkIH0gZnJvbSAnQGJpdGdvL3Nkay10ZXN0JztcbmltcG9ydCB7IGdldFJlcGxheVByb3RlY3Rpb25BZGRyZXNzZXMgfSBmcm9tICdAYml0Z28vYWJzdHJhY3QtdXR4byc7XG5cbmV4cG9ydCB0eXBlIElucHV0U2NyaXB0VHlwZSA9IHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5TY3JpcHRUeXBlMk9mMyB8ICdyZXBsYXlQcm90ZWN0aW9uJztcblxuY29uc3QgZGVmYXVsdENoYWluOiBDaGFpbkNvZGUgPSBnZXRFeHRlcm5hbENoYWluQ29kZShjaGFpbkNvZGVzUDJzaCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPdXRwdXRTY3JpcHQoXG4gIHdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBjaGFpbiA9IGRlZmF1bHRDaGFpbixcbiAgaW5kZXggPSAwXG4pOiB1dHhvbGliLmJpdGdvLm91dHB1dFNjcmlwdHMuU3BlbmRhYmxlU2NyaXB0IHtcbiAgcmV0dXJuIHV0eG9saWIuYml0Z28ub3V0cHV0U2NyaXB0cy5jcmVhdGVPdXRwdXRTY3JpcHQyb2YzKFxuICAgIHdhbGxldEtleXMuZGVyaXZlRm9yQ2hhaW5BbmRJbmRleChjaGFpbiwgaW5kZXgpLnB1YmxpY0tleXMsXG4gICAgc2NyaXB0VHlwZUZvckNoYWluKGNoYWluKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2FsbGV0QWRkcmVzcyhcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICB3YWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgY2hhaW4gPSBkZWZhdWx0Q2hhaW4sXG4gIGluZGV4ID0gMFxuKTogc3RyaW5nIHtcbiAgcmV0dXJuIHV0eG9saWIuYWRkcmVzcy5mcm9tT3V0cHV0U2NyaXB0KGdldE91dHB1dFNjcmlwdCh3YWxsZXRLZXlzLCBjaGFpbiwgaW5kZXgpLnNjcmlwdFB1YktleSwgbmV0d29yayk7XG59XG5cbmZ1bmN0aW9uIG1vY2tPdXRwdXRJZEZvckFkZHJlc3MoYWRkcmVzczogc3RyaW5nKSB7XG4gIHJldHVybiBnZXRTZWVkKGFkZHJlc3MpLnRvU3RyaW5nKCdoZXgnKSArICc6MSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2NrV2FsbGV0VW5zcGVudDxUTnVtYmVyIGV4dGVuZHMgbnVtYmVyIHwgYmlnaW50ID0gbnVtYmVyPihcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrLFxuICB3YWxsZXRLZXlzOiBSb290V2FsbGV0S2V5cyxcbiAgeyBpZCwgY2hhaW4gPSBkZWZhdWx0Q2hhaW4sIGluZGV4ID0gMCwgdmFsdWUsIGFkZHJlc3MgfTogUGFydGlhbDxXYWxsZXRVbnNwZW50PFROdW1iZXI+PlxuKTogV2FsbGV0VW5zcGVudDxUTnVtYmVyPiB7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGB1bnNwZW50IHZhbHVlIG11c3QgYmUgc2V0YCk7XG4gIH1cbiAgaWYgKGNoYWluID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHVuc3BlbnQgY2hhaW4gbXVzdCBiZSBzZXRgKTtcbiAgfVxuICBjb25zdCBkZXJpdmVkID0gZ2V0T3V0cHV0U2NyaXB0KHdhbGxldEtleXMsIGNoYWluLCBpbmRleCk7XG4gIGNvbnN0IGRlcml2ZUFkZHJlc3MgPSB1dHhvbGliLmFkZHJlc3MuZnJvbU91dHB1dFNjcmlwdChkZXJpdmVkLnNjcmlwdFB1YktleSwgbmV0d29yayk7XG4gIGlmIChhZGRyZXNzKSB7XG4gICAgaWYgKGFkZHJlc3MgIT09IGRlcml2ZUFkZHJlc3MpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZGVyaXZlZEFkZHJlc3MgbWlzbWF0Y2g6ICR7YWRkcmVzc30gZGVyaXZlZD0ke2Rlcml2ZUFkZHJlc3N9YCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGFkZHJlc3MgPSBkZXJpdmVBZGRyZXNzO1xuICB9XG4gIGlmICghaWQpIHtcbiAgICBpZCA9IG1vY2tPdXRwdXRJZEZvckFkZHJlc3MoYWRkcmVzcyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBpZCxcbiAgICBhZGRyZXNzLFxuICAgIGNoYWluLFxuICAgIGluZGV4LFxuICAgIHZhbHVlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1Vuc3BlbnRSZXBsYXlQcm90ZWN0aW9uPFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIHZhbHVlOiBUTnVtYmVyXG4pOiBVbnNwZW50PFROdW1iZXI+IHtcbiAgY29uc3QgYWRkcmVzc2VzID0gZ2V0UmVwbGF5UHJvdGVjdGlvbkFkZHJlc3NlcyhuZXR3b3JrKTtcbiAgaWYgKGFkZHJlc3Nlcy5sZW5ndGgpIHtcbiAgICBjb25zdCBhZGRyZXNzID0gYWRkcmVzc2VzWzBdO1xuICAgIHJldHVybiB7XG4gICAgICBpZDogbW9ja091dHB1dElkRm9yQWRkcmVzcyhhZGRyZXNzKSxcbiAgICAgIGFkZHJlc3MsXG4gICAgICB2YWx1ZSxcbiAgICB9O1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgJHt1dHhvbGliLmdldE5ldHdvcmtOYW1lKG5ldHdvcmspfSBoYXMgbm8gcmVwbGF5IHByb3RlY3Rpb24gdW5zcGV0bnNgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vY2tVbnNwZW50PFROdW1iZXIgZXh0ZW5kcyBudW1iZXIgfCBiaWdpbnQgPSBudW1iZXI+KFxuICBuZXR3b3JrOiB1dHhvbGliLk5ldHdvcmssXG4gIHdhbGxldEtleXM6IFJvb3RXYWxsZXRLZXlzLFxuICBjaGFpbjogQ2hhaW5Db2RlIHwgSW5wdXRTY3JpcHRUeXBlLFxuICBpbmRleDogbnVtYmVyLFxuICB2YWx1ZTogVE51bWJlclxuKTogVW5zcGVudDxUTnVtYmVyPiB7XG4gIGlmIChjaGFpbiA9PT0gJ3JlcGxheVByb3RlY3Rpb24nKSB7XG4gICAgcmV0dXJuIG1vY2tVbnNwZW50UmVwbGF5UHJvdGVjdGlvbihuZXR3b3JrLCAodHlwZW9mIHZhbHVlID09PSAnYmlnaW50JyA/IEJpZ0ludCgxMDAwKSA6IDEwMDApIGFzIFROdW1iZXIpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBtb2NrV2FsbGV0VW5zcGVudChuZXR3b3JrLCB3YWxsZXRLZXlzLCB7IGNoYWluOiBnZXRJbnRlcm5hbENoYWluQ29kZShjaGFpbiksIHZhbHVlLCBpbmRleCB9KTtcbiAgfVxufVxuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!