PHP WebShell
Текущая директория: /opt/BitGoJS/modules/utxo-staking/dist/test/unit/babylon
Просмотр файла: bug71.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;
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs = __importStar(require("fs"));
const assert_1 = __importDefault(require("assert"));
const bitcoinjs = __importStar(require("bitcoinjs-lib"));
const utxolib = __importStar(require("@bitgo/utxo-lib"));
const wasmMiniscript = __importStar(require("@bitgo/wasm-miniscript"));
// demonstrate https://github.com/babylonlabs-io/btc-staking-ts/issues/71
describe('btc-staking-ts bug #71', function () {
let buf;
before('load half-signed transaction', async function () {
const fixture = JSON.parse(await fs.promises.readFile(__dirname + '/../../fixtures/babylon/txTree.testnet.json', 'utf-8'));
const base64 = fixture.slashingSignedBase64;
(0, assert_1.default)(typeof base64 === 'string');
buf = Buffer.from(base64, 'base64');
});
it('can finalize with bitcoinjs-lib', function () {
const psbt = bitcoinjs.Psbt.fromBuffer(buf);
// this does not throw because of a bug in bitcoinjs-lib
psbt.finalizeAllInputs();
});
it('cannot finalize with utxolib', function () {
const psbt = utxolib.Psbt.fromBuffer(buf);
assert_1.default.throws(() => {
psbt.finalizeAllInputs();
}, /Error: Can not finalize input #0/);
});
it('cannot finalize with wasm-miniscript', function () {
const psbt = wasmMiniscript.Psbt.deserialize(buf);
assert_1.default.throws(() => {
psbt.finalize();
}, /CouldNotSatisfyTr/);
});
it('cannot finalize with bitcoind', async function () {
let cookie;
try {
cookie = await fs.promises.readFile(process.env.HOME + '/.bitcoin/regtest/.cookie', 'utf-8');
}
catch (e) {
if (e.code === 'ENOENT') {
console.log('No cookie file found, skipping test');
this.skip();
}
throw e;
}
// make regtest JSON-RPC request with cookie
const url = 'http://localhost:18443';
const headers = {
'Content-Type': 'application/json',
Authorization: 'Basic ' + Buffer.from(cookie, 'utf-8').toString('base64'),
};
// Create the request payload for finalizepsbt RPC call
const body = JSON.stringify({
jsonrpc: '1.0',
id: 'bitgo-test',
method: 'finalizepsbt',
params: [buf.toString('base64')],
});
// Make the RPC request
const response = await fetch(url, {
method: 'POST',
headers,
body,
});
assert_1.default.deepStrictEqual((await response.json()).result, {
// the response psbt is the same as the input psbt - not finalized
psbt: buf.toString('base64'),
complete: false,
});
});
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVnNzEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3VuaXQvYmFieWxvbi9idWc3MS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QixvREFBNEI7QUFFNUIseURBQTJDO0FBQzNDLHlEQUEyQztBQUMzQyx1RUFBeUQ7QUFFekQseUVBQXlFO0FBQ3pFLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRTtJQUNqQyxJQUFJLEdBQVcsQ0FBQztJQUNoQixNQUFNLENBQUMsOEJBQThCLEVBQUUsS0FBSztRQUMxQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUN4QixNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyw2Q0FBNkMsRUFBRSxPQUFPLENBQUMsQ0FDL0YsQ0FBQztRQUNGLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztRQUM1QyxJQUFBLGdCQUFNLEVBQUMsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUM7UUFDbkMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGlDQUFpQyxFQUFFO1FBQ3BDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVDLHdEQUF3RDtRQUN4RCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQyw4QkFBOEIsRUFBRTtRQUNqQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQyxnQkFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDakIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDM0IsQ0FBQyxFQUFFLGtDQUFrQyxDQUFDLENBQUM7SUFDekMsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsc0NBQXNDLEVBQUU7UUFDekMsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEQsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixDQUFDLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUMxQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywrQkFBK0IsRUFBRSxLQUFLO1FBQ3ZDLElBQUksTUFBYyxDQUFDO1FBQ25CLElBQUksQ0FBQztZQUNILE1BQU0sR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLDJCQUEyQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQy9GLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7Z0JBQ25ELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLENBQUM7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7UUFDRCw0Q0FBNEM7UUFDNUMsTUFBTSxHQUFHLEdBQUcsd0JBQXdCLENBQUM7UUFDckMsTUFBTSxPQUFPLEdBQUc7WUFDZCxjQUFjLEVBQUUsa0JBQWtCO1lBQ2xDLGFBQWEsRUFBRSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztTQUMxRSxDQUFDO1FBRUYsdURBQXVEO1FBQ3ZELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDMUIsT0FBTyxFQUFFLEtBQUs7WUFDZCxFQUFFLEVBQUUsWUFBWTtZQUNoQixNQUFNLEVBQUUsY0FBYztZQUN0QixNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ2pDLENBQUMsQ0FBQztRQUVILHVCQUF1QjtRQUN2QixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxFQUFFLE1BQU07WUFDZCxPQUFPO1lBQ1AsSUFBSTtTQUNMLENBQUMsQ0FBQztRQUVILGdCQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDckQsa0VBQWtFO1lBQ2xFLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztZQUM1QixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuXG5pbXBvcnQgKiBhcyBiaXRjb2luanMgZnJvbSAnYml0Y29pbmpzLWxpYic7XG5pbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgKiBhcyB3YXNtTWluaXNjcmlwdCBmcm9tICdAYml0Z28vd2FzbS1taW5pc2NyaXB0JztcblxuLy8gZGVtb25zdHJhdGUgaHR0cHM6Ly9naXRodWIuY29tL2JhYnlsb25sYWJzLWlvL2J0Yy1zdGFraW5nLXRzL2lzc3Vlcy83MVxuZGVzY3JpYmUoJ2J0Yy1zdGFraW5nLXRzIGJ1ZyAjNzEnLCBmdW5jdGlvbiAoKSB7XG4gIGxldCBidWY6IEJ1ZmZlcjtcbiAgYmVmb3JlKCdsb2FkIGhhbGYtc2lnbmVkIHRyYW5zYWN0aW9uJywgYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgIGNvbnN0IGZpeHR1cmUgPSBKU09OLnBhcnNlKFxuICAgICAgYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUoX19kaXJuYW1lICsgJy8uLi8uLi9maXh0dXJlcy9iYWJ5bG9uL3R4VHJlZS50ZXN0bmV0Lmpzb24nLCAndXRmLTgnKVxuICAgICk7XG4gICAgY29uc3QgYmFzZTY0ID0gZml4dHVyZS5zbGFzaGluZ1NpZ25lZEJhc2U2NDtcbiAgICBhc3NlcnQodHlwZW9mIGJhc2U2NCA9PT0gJ3N0cmluZycpO1xuICAgIGJ1ZiA9IEJ1ZmZlci5mcm9tKGJhc2U2NCwgJ2Jhc2U2NCcpO1xuICB9KTtcblxuICBpdCgnY2FuIGZpbmFsaXplIHdpdGggYml0Y29pbmpzLWxpYicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwc2J0ID0gYml0Y29pbmpzLlBzYnQuZnJvbUJ1ZmZlcihidWYpO1xuICAgIC8vIHRoaXMgZG9lcyBub3QgdGhyb3cgYmVjYXVzZSBvZiBhIGJ1ZyBpbiBiaXRjb2luanMtbGliXG4gICAgcHNidC5maW5hbGl6ZUFsbElucHV0cygpO1xuICB9KTtcblxuICBpdCgnY2Fubm90IGZpbmFsaXplIHdpdGggdXR4b2xpYicsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwc2J0ID0gdXR4b2xpYi5Qc2J0LmZyb21CdWZmZXIoYnVmKTtcbiAgICBhc3NlcnQudGhyb3dzKCgpID0+IHtcbiAgICAgIHBzYnQuZmluYWxpemVBbGxJbnB1dHMoKTtcbiAgICB9LCAvRXJyb3I6IENhbiBub3QgZmluYWxpemUgaW5wdXQgIzAvKTtcbiAgfSk7XG5cbiAgaXQoJ2Nhbm5vdCBmaW5hbGl6ZSB3aXRoIHdhc20tbWluaXNjcmlwdCcsIGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBwc2J0ID0gd2FzbU1pbmlzY3JpcHQuUHNidC5kZXNlcmlhbGl6ZShidWYpO1xuICAgIGFzc2VydC50aHJvd3MoKCkgPT4ge1xuICAgICAgcHNidC5maW5hbGl6ZSgpO1xuICAgIH0sIC9Db3VsZE5vdFNhdGlzZnlUci8pO1xuICB9KTtcblxuICBpdCgnY2Fubm90IGZpbmFsaXplIHdpdGggYml0Y29pbmQnLCBhc3luYyBmdW5jdGlvbiAodGhpczogTW9jaGEuQ29udGV4dCkge1xuICAgIGxldCBjb29raWU6IHN0cmluZztcbiAgICB0cnkge1xuICAgICAgY29va2llID0gYXdhaXQgZnMucHJvbWlzZXMucmVhZEZpbGUocHJvY2Vzcy5lbnYuSE9NRSArICcvLmJpdGNvaW4vcmVndGVzdC8uY29va2llJywgJ3V0Zi04Jyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKGUuY29kZSA9PT0gJ0VOT0VOVCcpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ05vIGNvb2tpZSBmaWxlIGZvdW5kLCBza2lwcGluZyB0ZXN0Jyk7XG4gICAgICAgIHRoaXMuc2tpcCgpO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgLy8gbWFrZSByZWd0ZXN0IEpTT04tUlBDIHJlcXVlc3Qgd2l0aCBjb29raWVcbiAgICBjb25zdCB1cmwgPSAnaHR0cDovL2xvY2FsaG9zdDoxODQ0Myc7XG4gICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICBBdXRob3JpemF0aW9uOiAnQmFzaWMgJyArIEJ1ZmZlci5mcm9tKGNvb2tpZSwgJ3V0Zi04JykudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgIH07XG5cbiAgICAvLyBDcmVhdGUgdGhlIHJlcXVlc3QgcGF5bG9hZCBmb3IgZmluYWxpemVwc2J0IFJQQyBjYWxsXG4gICAgY29uc3QgYm9keSA9IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIGpzb25ycGM6ICcxLjAnLFxuICAgICAgaWQ6ICdiaXRnby10ZXN0JyxcbiAgICAgIG1ldGhvZDogJ2ZpbmFsaXplcHNidCcsXG4gICAgICBwYXJhbXM6IFtidWYudG9TdHJpbmcoJ2Jhc2U2NCcpXSxcbiAgICB9KTtcblxuICAgIC8vIE1ha2UgdGhlIFJQQyByZXF1ZXN0XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgaGVhZGVycyxcbiAgICAgIGJvZHksXG4gICAgfSk7XG5cbiAgICBhc3NlcnQuZGVlcFN0cmljdEVxdWFsKChhd2FpdCByZXNwb25zZS5qc29uKCkpLnJlc3VsdCwge1xuICAgICAgLy8gdGhlIHJlc3BvbnNlIHBzYnQgaXMgdGhlIHNhbWUgYXMgdGhlIGlucHV0IHBzYnQgLSBub3QgZmluYWxpemVkXG4gICAgICBwc2J0OiBidWYudG9TdHJpbmcoJ2Jhc2U2NCcpLFxuICAgICAgY29tcGxldGU6IGZhbHNlLFxuICAgIH0pO1xuICB9KTtcbn0pO1xuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!