PHP WebShell

Текущая директория: /opt/BitGoJS/modules/utxo-bin/dist/src

Просмотр файла: hollowSegwitSpend.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseHollowSegwitSpend = parseHollowSegwitSpend;
exports.getHollowSpendMessage = getHollowSpendMessage;
const utxolib = require("@bitgo/utxo-lib");
/**
 * @return HollowSegwitSpend if spend is a
 */
function parseHollowSegwitSpend(input, network) {
    if (utxolib.getMainnet(network) !== utxolib.networks.bitcoincash &&
        utxolib.getMainnet(network) !== utxolib.networks.bitcoinsv) {
        // this can only happen on the BCH/BSV forks
        return;
    }
    const type = utxolib.classify.input(input.script, true);
    if (type !== 'scripthash') {
        // this can only happen for p2sh spends
        return;
    }
    const bufs = utxolib.script.decompile(input.script);
    if (!bufs || bufs.length !== 1) {
        return;
    }
    const buf = bufs[0];
    if (typeof buf === 'number') {
        return;
    }
    const [a, b] = buf;
    if (a === 0x00 && b === 0x14 && buf.length === 22) {
        return { scriptType: 'p2shP2wpkhHollow' };
    }
    if (a === 0x00 && b === 0x20 && buf.length === 34) {
        return { scriptType: 'p2shP2wshHollow' };
    }
}
function getHollowSpendMessage() {
    return `This output was likely claimed by a miner. See https://bitcoin.stackexchange.com/a/115850/137601 for details.`;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9sbG93U2Vnd2l0U3BlbmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaG9sbG93U2Vnd2l0U3BlbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFxQkEsd0RBb0NDO0FBRUQsc0RBRUM7QUE3REQsMkNBQTJDO0FBa0IzQzs7R0FFRztBQUNILFNBQWdCLHNCQUFzQixDQUNwQyxLQUFzQixFQUN0QixPQUF3QjtJQUV4QixJQUNFLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXO1FBQzVELE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQzFELENBQUM7UUFDRCw0Q0FBNEM7UUFDNUMsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hELElBQUksSUFBSSxLQUFLLFlBQVksRUFBRSxDQUFDO1FBQzFCLHVDQUF1QztRQUN2QyxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDL0IsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEIsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUM1QixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ25CLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQWdCLHFCQUFxQjtJQUNuQyxPQUFPLCtHQUErRyxDQUFDO0FBQ3pILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbi8qKlxuICogVXNlcnMgY2FuIG1pc3Rha2VubHkgY3JlYXRlIHdyYXBwZWQgc2Vnd2l0IG91dHB1dHMgb24gY2hhaW5zIHRoYXQgZG8gbm90IHN1cHBvcnQgaXQgKGJpdGNvaW5jYXNoLCBiaXRjb2luU1YpLlxuICpcbiAqIFRoZXNlIGZ1bmRzIGNhbiBiZSBjbGFpbWVkIGJ5IG1pbmVycyB0aGF0IGxlYXJuIHRoZSBoYXNoIHByZWltYWdlLCB0eXBpY2FsbHkgYnkgb2JzZXJ2aW5nIGEgc3BlbmQgb24gdGhlIGJpdGNvaW5cbiAqIGNoYWluLlxuICpcbiAqIFNpbmNlIHRoZSB0cmFuc2FjdGlvbiBkb2VzIG5vdCBoYXZlIGEgZnVsbCBpbm5lciBzY3JpcHQsIGxldCdzIGNhbGwgdGhlbSBcImhvbGxvd1wiLlxuICpcbiAqIFNlZSBodHRwczovL2JpdGNvaW4uc3RhY2tleGNoYW5nZS5jb20vYS8xMTU4NTAvMTM3NjAxIGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbmV4cG9ydCB0eXBlIEhvbGxvd1NlZ3dpdFNwZW5kID1cbiAgLyoqIFdyYXBwZWQgU2Vnd2l0IFBheS1Uby1XaXRuZXNzLVNjcmlwdC1IYXNoICovXG4gIHwgeyBzY3JpcHRUeXBlOiAncDJzaFAyd3NoSG9sbG93JyB9XG4gIC8qKiBXcmFwcGVkIFNlZ3dpdCBQYXktVG8tUHVia2V5LUhhc2ggKi9cbiAgfCB7IHNjcmlwdFR5cGU6ICdwMnNoUDJ3cGtoSG9sbG93JyB9O1xuXG4vKipcbiAqIEByZXR1cm4gSG9sbG93U2Vnd2l0U3BlbmQgaWYgc3BlbmQgaXMgYVxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VIb2xsb3dTZWd3aXRTcGVuZChcbiAgaW5wdXQ6IHV0eG9saWIuVHhJbnB1dCxcbiAgbmV0d29yazogdXR4b2xpYi5OZXR3b3JrXG4pOiBIb2xsb3dTZWd3aXRTcGVuZCB8IHVuZGVmaW5lZCB7XG4gIGlmIChcbiAgICB1dHhvbGliLmdldE1haW5uZXQobmV0d29yaykgIT09IHV0eG9saWIubmV0d29ya3MuYml0Y29pbmNhc2ggJiZcbiAgICB1dHhvbGliLmdldE1haW5uZXQobmV0d29yaykgIT09IHV0eG9saWIubmV0d29ya3MuYml0Y29pbnN2XG4gICkge1xuICAgIC8vIHRoaXMgY2FuIG9ubHkgaGFwcGVuIG9uIHRoZSBCQ0gvQlNWIGZvcmtzXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgdHlwZSA9IHV0eG9saWIuY2xhc3NpZnkuaW5wdXQoaW5wdXQuc2NyaXB0LCB0cnVlKTtcbiAgaWYgKHR5cGUgIT09ICdzY3JpcHRoYXNoJykge1xuICAgIC8vIHRoaXMgY2FuIG9ubHkgaGFwcGVuIGZvciBwMnNoIHNwZW5kc1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IGJ1ZnMgPSB1dHhvbGliLnNjcmlwdC5kZWNvbXBpbGUoaW5wdXQuc2NyaXB0KTtcbiAgaWYgKCFidWZzIHx8IGJ1ZnMubGVuZ3RoICE9PSAxKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYnVmID0gYnVmc1swXTtcbiAgaWYgKHR5cGVvZiBidWYgPT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgW2EsIGJdID0gYnVmO1xuICBpZiAoYSA9PT0gMHgwMCAmJiBiID09PSAweDE0ICYmIGJ1Zi5sZW5ndGggPT09IDIyKSB7XG4gICAgcmV0dXJuIHsgc2NyaXB0VHlwZTogJ3Ayc2hQMndwa2hIb2xsb3cnIH07XG4gIH1cblxuICBpZiAoYSA9PT0gMHgwMCAmJiBiID09PSAweDIwICYmIGJ1Zi5sZW5ndGggPT09IDM0KSB7XG4gICAgcmV0dXJuIHsgc2NyaXB0VHlwZTogJ3Ayc2hQMndzaEhvbGxvdycgfTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9sbG93U3BlbmRNZXNzYWdlKCk6IHN0cmluZyB7XG4gIHJldHVybiBgVGhpcyBvdXRwdXQgd2FzIGxpa2VseSBjbGFpbWVkIGJ5IGEgbWluZXIuIFNlZSBodHRwczovL2JpdGNvaW4uc3RhY2tleGNoYW5nZS5jb20vYS8xMTU4NTAvMTM3NjAxIGZvciBkZXRhaWxzLmA7XG59XG4iXX0=

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


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