PHP WebShell

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

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.padInputScript = padInputScript;
const assert = require("assert");
const opcodes = require("bitcoin-ops");
const __1 = require("../");
/**
 * @param input - Input of non-standard half-signed transaction created with `tx.build()` instead of `tx.buildIncomplete()`.
 * @param signatureIndex - Position to map the existing signatures to. Other signatures will be padded with OP_0.
 */
function padInputScript(input, signatureIndex) {
    if (![0, 1, 2].includes(signatureIndex)) {
        /* istanbul ignore next */
        throw new Error(`invalid signature index: must be one of [0, 1, 2]`);
    }
    let decompiledSigScript;
    if (input.witness && input.witness.length > 0) {
        decompiledSigScript = input.witness;
    }
    else {
        decompiledSigScript = __1.script.decompile(input.script);
    }
    // The shape of a non-standard half-signed input is
    //   OP_0 <signature> <p2ms>
    if (!decompiledSigScript || decompiledSigScript.length !== 3) {
        /* istanbul ignore next */
        return;
    }
    const [op0, signatureBuffer, sigScript] = decompiledSigScript;
    if (op0 !== opcodes.OP_0 && !(Buffer.isBuffer(op0) && op0.length === 0)) {
        /* istanbul ignore next */
        return;
    }
    if (!Buffer.isBuffer(sigScript)) {
        /* istanbul ignore next */
        return;
    }
    if (__1.classify.output(sigScript) !== __1.classify.types.P2MS) {
        /* istanbul ignore next */
        return;
    }
    const paddedSigScript = [
        op0,
        ...[0, 1, 2].map((i) => (i === signatureIndex ? signatureBuffer : Buffer.from([]))),
        sigScript,
    ];
    if (input.witness.length) {
        paddedSigScript.forEach((b) => assert(Buffer.isBuffer(b)));
        input.witness = paddedSigScript;
    }
    else {
        input.script = __1.script.compile(paddedSigScript);
    }
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9uU3RhbmRhcmRIYWxmU2lnbmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JpdGdvL25vblN0YW5kYXJkSGFsZlNpZ25lZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLHdDQWdEQztBQXhERCxpQ0FBaUM7QUFDakMsdUNBQXVDO0FBQ3ZDLDJCQUEyRDtBQUUzRDs7O0dBR0c7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBYyxFQUFFLGNBQXNCO0lBQ25FLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUM7UUFDeEMsMEJBQTBCO1FBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBSSxtQkFBbUIsQ0FBQztJQUN4QixJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDOUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUN0QyxDQUFDO1NBQU0sQ0FBQztRQUNOLG1CQUFtQixHQUFHLFVBQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsNEJBQTRCO0lBQzVCLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDN0QsMEJBQTBCO1FBQzFCLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDLEdBQUcsbUJBQW1CLENBQUM7SUFDOUQsSUFBSSxHQUFHLEtBQUssT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDeEUsMEJBQTBCO1FBQzFCLE9BQU87SUFDVCxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUNoQywwQkFBMEI7UUFDMUIsT0FBTztJQUNULENBQUM7SUFFRCxJQUFJLFlBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssWUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2RCwwQkFBMEI7UUFDMUIsT0FBTztJQUNULENBQUM7SUFFRCxNQUFNLGVBQWUsR0FBRztRQUN0QixHQUFHO1FBQ0gsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxjQUFjLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25GLFNBQVM7S0FDVixDQUFDO0lBRUYsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRCxLQUFLLENBQUMsT0FBTyxHQUFHLGVBQTJCLENBQUM7SUFDOUMsQ0FBQztTQUFNLENBQUM7UUFDTixLQUFLLENBQUMsTUFBTSxHQUFHLFVBQU8sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBhc3NlcnQgZnJvbSAnYXNzZXJ0JztcbmltcG9ydCAqIGFzIG9wY29kZXMgZnJvbSAnYml0Y29pbi1vcHMnO1xuaW1wb3J0IHsgY2xhc3NpZnksIHNjcmlwdCBhcyBic2NyaXB0LCBUeElucHV0IH0gZnJvbSAnLi4vJztcblxuLyoqXG4gKiBAcGFyYW0gaW5wdXQgLSBJbnB1dCBvZiBub24tc3RhbmRhcmQgaGFsZi1zaWduZWQgdHJhbnNhY3Rpb24gY3JlYXRlZCB3aXRoIGB0eC5idWlsZCgpYCBpbnN0ZWFkIG9mIGB0eC5idWlsZEluY29tcGxldGUoKWAuXG4gKiBAcGFyYW0gc2lnbmF0dXJlSW5kZXggLSBQb3NpdGlvbiB0byBtYXAgdGhlIGV4aXN0aW5nIHNpZ25hdHVyZXMgdG8uIE90aGVyIHNpZ25hdHVyZXMgd2lsbCBiZSBwYWRkZWQgd2l0aCBPUF8wLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFkSW5wdXRTY3JpcHQoaW5wdXQ6IFR4SW5wdXQsIHNpZ25hdHVyZUluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgaWYgKCFbMCwgMSwgMl0uaW5jbHVkZXMoc2lnbmF0dXJlSW5kZXgpKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICB0aHJvdyBuZXcgRXJyb3IoYGludmFsaWQgc2lnbmF0dXJlIGluZGV4OiBtdXN0IGJlIG9uZSBvZiBbMCwgMSwgMl1gKTtcbiAgfVxuXG4gIGxldCBkZWNvbXBpbGVkU2lnU2NyaXB0O1xuICBpZiAoaW5wdXQud2l0bmVzcyAmJiBpbnB1dC53aXRuZXNzLmxlbmd0aCA+IDApIHtcbiAgICBkZWNvbXBpbGVkU2lnU2NyaXB0ID0gaW5wdXQud2l0bmVzcztcbiAgfSBlbHNlIHtcbiAgICBkZWNvbXBpbGVkU2lnU2NyaXB0ID0gYnNjcmlwdC5kZWNvbXBpbGUoaW5wdXQuc2NyaXB0KTtcbiAgfVxuXG4gIC8vIFRoZSBzaGFwZSBvZiBhIG5vbi1zdGFuZGFyZCBoYWxmLXNpZ25lZCBpbnB1dCBpc1xuICAvLyAgIE9QXzAgPHNpZ25hdHVyZT4gPHAybXM+XG4gIGlmICghZGVjb21waWxlZFNpZ1NjcmlwdCB8fCBkZWNvbXBpbGVkU2lnU2NyaXB0Lmxlbmd0aCAhPT0gMykge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgW29wMCwgc2lnbmF0dXJlQnVmZmVyLCBzaWdTY3JpcHRdID0gZGVjb21waWxlZFNpZ1NjcmlwdDtcbiAgaWYgKG9wMCAhPT0gb3Bjb2Rlcy5PUF8wICYmICEoQnVmZmVyLmlzQnVmZmVyKG9wMCkgJiYgb3AwLmxlbmd0aCA9PT0gMCkpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICghQnVmZmVyLmlzQnVmZmVyKHNpZ1NjcmlwdCkpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChjbGFzc2lmeS5vdXRwdXQoc2lnU2NyaXB0KSAhPT0gY2xhc3NpZnkudHlwZXMuUDJNUykge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcGFkZGVkU2lnU2NyaXB0ID0gW1xuICAgIG9wMCxcbiAgICAuLi5bMCwgMSwgMl0ubWFwKChpKSA9PiAoaSA9PT0gc2lnbmF0dXJlSW5kZXggPyBzaWduYXR1cmVCdWZmZXIgOiBCdWZmZXIuZnJvbShbXSkpKSxcbiAgICBzaWdTY3JpcHQsXG4gIF07XG5cbiAgaWYgKGlucHV0LndpdG5lc3MubGVuZ3RoKSB7XG4gICAgcGFkZGVkU2lnU2NyaXB0LmZvckVhY2goKGIpID0+IGFzc2VydChCdWZmZXIuaXNCdWZmZXIoYikpKTtcbiAgICBpbnB1dC53aXRuZXNzID0gcGFkZGVkU2lnU2NyaXB0IGFzIEJ1ZmZlcltdO1xuICB9IGVsc2Uge1xuICAgIGlucHV0LnNjcmlwdCA9IGJzY3JpcHQuY29tcGlsZShwYWRkZWRTaWdTY3JpcHQpO1xuICB9XG59XG4iXX0=

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


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