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

Выполнить команду


Для локальной разработки. Не используйте в интернете!