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=Выполнить команду
Для локальной разработки. Не используйте в интернете!