PHP WebShell
Текущая директория: /opt/BitGoJS/modules/unspents/dist/src
Просмотр файла: inputWeights.js
"use strict";
/**
* Defines input sizes for BitGo signature scripts.
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.inputComponentsP2shP2pk = exports.inputComponentsP2trScriptSpendLevel2 = exports.inputComponentsP2trScriptSpendLevel1 = exports.inputComponentsP2trKeySpend = exports.inputComponentsP2wsh = exports.inputComponentsP2shP2wsh = exports.inputComponentsP2sh = void 0;
exports.varSliceSize = varSliceSize;
exports.getInputByteLength = getInputByteLength;
exports.getInputWeight = getInputWeight;
exports.getInputComponentsWeight = getInputComponentsWeight;
const varuint_bitcoin_1 = __importDefault(require("varuint-bitcoin"));
function varSliceSize(someScript) {
const length = someScript.length;
return varuint_bitcoin_1.default.encodingLength(length) + length;
}
function vectorSize(someVector) {
const length = someVector.length;
return (varuint_bitcoin_1.default.encodingLength(length) +
someVector.reduce((sum, witness) => {
return sum + varSliceSize(witness);
}, 0));
}
function getInputByteLength(input, allowWitness) {
return (40 /* inputId(32), index(4), nSequence(4) */ +
varSliceSize(input.script) +
(allowWitness ? vectorSize(input.witness) : 0));
}
function getInputWeight(input) {
return 3 * getInputByteLength(input, false) + getInputByteLength(input, true);
}
function getInputComponentsWeight(c) {
const scriptSize = c.script.reduce((a, b) => a + b, 0);
return getInputWeight({
script: { length: scriptSize },
witness: c.witness.map((v) => ({ length: v })),
});
}
const opSize = 1;
const op0Size = opSize;
const opPushSize = opSize;
const opCheckSigVerifySize = opSize;
const opCheckSigSize = opSize;
const ecdsaSignatureSize = 72;
const schnorrPubkeySize = 32;
const schnorrSignatureNoSighashSize = 64;
const p2msPubScriptSize = 105; // Note: This is valid for a compressed public key only
const p2wshPubScriptSize = 34;
const p2pkPubScriptSize = 35;
function p2trScriptSpend(level) {
return [
schnorrSignatureNoSighashSize,
schnorrSignatureNoSighashSize,
opPushSize + schnorrPubkeySize + opCheckSigSize + opPushSize + schnorrPubkeySize + opCheckSigVerifySize,
/* header byte */ 1 + /* inner key */ 32 + /* inner leaf */ 32 * level,
];
}
function p2msSigScriptSize(witness) {
return [
witness ? 0 : op0Size,
(witness ? 0 : opPushSize) + ecdsaSignatureSize,
(witness ? 0 : opPushSize) + ecdsaSignatureSize,
(witness ? 0 : /* OP_PUSHDATA2 */ opPushSize + 1) + p2msPubScriptSize,
];
}
exports.inputComponentsP2sh = {
script: p2msSigScriptSize(false),
witness: [],
};
exports.inputComponentsP2shP2wsh = {
script: [opSize + p2wshPubScriptSize],
witness: p2msSigScriptSize(true),
};
exports.inputComponentsP2wsh = {
script: [],
witness: p2msSigScriptSize(true),
};
// See: https://murchandamus.medium.com/2-of-3-multisig-inputs-using-pay-to-taproot-d5faf2312ba3
exports.inputComponentsP2trKeySpend = {
script: [],
witness: [schnorrSignatureNoSighashSize],
};
exports.inputComponentsP2trScriptSpendLevel1 = {
script: [],
witness: p2trScriptSpend(1),
};
exports.inputComponentsP2trScriptSpendLevel2 = {
script: [],
witness: p2trScriptSpend(2),
};
exports.inputComponentsP2shP2pk = {
script: [opPushSize + ecdsaSignatureSize, opPushSize + p2pkPubScriptSize],
witness: [],
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRXZWlnaHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2lucHV0V2VpZ2h0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7OztBQUlILG9DQUlDO0FBc0JELGdEQU1DO0FBRUQsd0NBRUM7QUFPRCw0REFNQztBQW5ERCxzRUFBc0M7QUFFdEMsU0FBZ0IsWUFBWSxDQUFDLFVBQWlCO0lBQzVDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFFakMsT0FBTyx5QkFBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLFVBQW1CO0lBQ3JDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFFakMsT0FBTyxDQUNMLHlCQUFPLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUM5QixVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2pDLE9BQU8sR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ04sQ0FBQztBQUNKLENBQUM7QUFXRCxTQUFnQixrQkFBa0IsQ0FBQyxLQUFZLEVBQUUsWUFBcUI7SUFDcEUsT0FBTyxDQUNMLEVBQUUsQ0FBQyx5Q0FBeUM7UUFDNUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDMUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUMvQyxDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxLQUFZO0lBQ3pDLE9BQU8sQ0FBQyxHQUFHLGtCQUFrQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxrQkFBa0IsQ0FB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QyxDQUFDO0NBQzVCLENBQUM7QUFFVyxRQUFBLG9DQUFvQyxHQUFvQjtJQUNuRSxNQUFNLEVBQUUsRUFBRTtJQUNWLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDO0NBQzVCLENBQUM7QUFFVyxRQUFBLHVCQUF1QixHQUFvQjtJQUN0RCxNQUFNLEVBQUUsQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLEVBQUUsVUFBVSxHQUFHLGlCQUFpQixDQUFDO0lBQ3pFLE9BQU8sRUFBRSxFQUFFO0NBQ1osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRGVmaW5lcyBpbnB1dCBzaXplcyBmb3IgQml0R28gc2lnbmF0dXJlIHNjcmlwdHMuXG4gKi9cblxuaW1wb3J0IHZhcnVpbnQgZnJvbSAndmFydWludC1iaXRjb2luJztcblxuZXhwb3J0IGZ1bmN0aW9uIHZhclNsaWNlU2l6ZShzb21lU2NyaXB0OiBTaXplZCk6IG51bWJlciB7XG4gIGNvbnN0IGxlbmd0aCA9IHNvbWVTY3JpcHQubGVuZ3RoO1xuXG4gIHJldHVybiB2YXJ1aW50LmVuY29kaW5nTGVuZ3RoKGxlbmd0aCkgKyBsZW5ndGg7XG59XG5cbmZ1bmN0aW9uIHZlY3RvclNpemUoc29tZVZlY3RvcjogU2l6ZWRbXSk6IG51bWJlciB7XG4gIGNvbnN0IGxlbmd0aCA9IHNvbWVWZWN0b3IubGVuZ3RoO1xuXG4gIHJldHVybiAoXG4gICAgdmFydWludC5lbmNvZGluZ0xlbmd0aChsZW5ndGgpICtcbiAgICBzb21lVmVjdG9yLnJlZHVjZSgoc3VtLCB3aXRuZXNzKSA9PiB7XG4gICAgICByZXR1cm4gc3VtICsgdmFyU2xpY2VTaXplKHdpdG5lc3MpO1xuICAgIH0sIDApXG4gICk7XG59XG5cbmV4cG9ydCB0eXBlIFNpemVkID0ge1xuICBsZW5ndGg6IG51bWJlcjtcbn07XG5cbmV4cG9ydCB0eXBlIElucHV0ID0ge1xuICBzY3JpcHQ6IFNpemVkO1xuICB3aXRuZXNzOiBTaXplZFtdO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldElucHV0Qnl0ZUxlbmd0aChpbnB1dDogSW5wdXQsIGFsbG93V2l0bmVzczogYm9vbGVhbik6IG51bWJlciB7XG4gIHJldHVybiAoXG4gICAgNDAgLyogaW5wdXRJZCgzMiksIGluZGV4KDQpLCBuU2VxdWVuY2UoNCkgKi8gK1xuICAgIHZhclNsaWNlU2l6ZShpbnB1dC5zY3JpcHQpICtcbiAgICAoYWxsb3dXaXRuZXNzID8gdmVjdG9yU2l6ZShpbnB1dC53aXRuZXNzKSA6IDApXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dFdlaWdodChpbnB1dDogSW5wdXQpOiBudW1iZXIge1xuICByZXR1cm4gMyAqIGdldElucHV0Qnl0ZUxlbmd0aChpbnB1dCwgZmFsc2UpICsgZ2V0SW5wdXRCeXRlTGVuZ3RoKGlucHV0LCB0cnVlKTtcbn1cblxuZXhwb3J0IHR5cGUgSW5wdXRDb21wb25lbnRzID0ge1xuICBzY3JpcHQ6IG51bWJlcltdO1xuICB3aXRuZXNzOiBudW1iZXJbXTtcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbnB1dENvbXBvbmVudHNXZWlnaHQoYzogSW5wdXRDb21wb25lbnRzKTogbnVtYmVyIHtcbiAgY29uc3Qgc2NyaXB0U2l6ZSA9IGMuc2NyaXB0LnJlZHVjZSgoYSwgYikgPT4gYSArIGIsIDApO1xuICByZXR1cm4gZ2V0SW5wdXRXZWlnaHQoe1xuICAgIHNjcmlwdDogeyBsZW5ndGg6IHNjcmlwdFNpemUgfSxcbiAgICB3aXRuZXNzOiBjLndpdG5lc3MubWFwKCh2KSA9PiAoeyBsZW5ndGg6IHYgfSkpLFxuICB9KTtcbn1cblxuY29uc3Qgb3BTaXplID0gMTtcbmNvbnN0IG9wMFNpemUgPSBvcFNpemU7XG5jb25zdCBvcFB1c2hTaXplID0gb3BTaXplO1xuY29uc3Qgb3BDaGVja1NpZ1ZlcmlmeVNpemUgPSBvcFNpemU7XG5jb25zdCBvcENoZWNrU2lnU2l6ZSA9IG9wU2l6ZTtcbmNvbnN0IGVjZHNhU2lnbmF0dXJlU2l6ZSA9IDcyO1xuY29uc3Qgc2Nobm9yclB1YmtleVNpemUgPSAzMjtcbmNvbnN0IHNjaG5vcnJTaWduYXR1cmVOb1NpZ2hhc2hTaXplID0gNjQ7XG5jb25zdCBwMm1zUHViU2NyaXB0U2l6ZSA9IDEwNTsgLy8gTm90ZTogVGhpcyBpcyB2YWxpZCBmb3IgYSBjb21wcmVzc2VkIHB1YmxpYyBrZXkgb25seVxuY29uc3QgcDJ3c2hQdWJTY3JpcHRTaXplID0gMzQ7XG5jb25zdCBwMnBrUHViU2NyaXB0U2l6ZSA9IDM1O1xuXG5mdW5jdGlvbiBwMnRyU2NyaXB0U3BlbmQobGV2ZWw6IDEgfCAyKTogbnVtYmVyW10ge1xuICByZXR1cm4gW1xuICAgIHNjaG5vcnJTaWduYXR1cmVOb1NpZ2hhc2hTaXplLFxuICAgIHNjaG5vcnJTaWduYXR1cmVOb1NpZ2hhc2hTaXplLFxuICAgIG9wUHVzaFNpemUgKyBzY2hub3JyUHVia2V5U2l6ZSArIG9wQ2hlY2tTaWdTaXplICsgb3BQdXNoU2l6ZSArIHNjaG5vcnJQdWJrZXlTaXplICsgb3BDaGVja1NpZ1ZlcmlmeVNpemUsXG4gICAgLyogaGVhZGVyIGJ5dGUgKi8gMSArIC8qIGlubmVyIGtleSAqLyAzMiArIC8qIGlubmVyIGxlYWYgKi8gMzIgKiBsZXZlbCxcbiAgXTtcbn1cblxuZnVuY3Rpb24gcDJtc1NpZ1NjcmlwdFNpemUod2l0bmVzczogYm9vbGVhbikge1xuICByZXR1cm4gW1xuICAgIHdpdG5lc3MgPyAwIDogb3AwU2l6ZSxcbiAgICAod2l0bmVzcyA/IDAgOiBvcFB1c2hTaXplKSArIGVjZHNhU2lnbmF0dXJlU2l6ZSxcbiAgICAod2l0bmVzcyA/IDAgOiBvcFB1c2hTaXplKSArIGVjZHNhU2lnbmF0dXJlU2l6ZSxcbiAgICAod2l0bmVzcyA/IDAgOiAvKiBPUF9QVVNIREFUQTIgKi8gb3BQdXNoU2l6ZSArIDEpICsgcDJtc1B1YlNjcmlwdFNpemUsXG4gIF07XG59XG5cbmV4cG9ydCBjb25zdCBpbnB1dENvbXBvbmVudHNQMnNoOiBJbnB1dENvbXBvbmVudHMgPSB7XG4gIHNjcmlwdDogcDJtc1NpZ1NjcmlwdFNpemUoZmFsc2UpLFxuICB3aXRuZXNzOiBbXSxcbn07XG5cbmV4cG9ydCBjb25zdCBpbnB1dENvbXBvbmVudHNQMnNoUDJ3c2g6IElucHV0Q29tcG9uZW50cyA9IHtcbiAgc2NyaXB0OiBbb3BTaXplICsgcDJ3c2hQdWJTY3JpcHRTaXplXSxcbiAgd2l0bmVzczogcDJtc1NpZ1NjcmlwdFNpemUodHJ1ZSksXG59O1xuXG5leHBvcnQgY29uc3QgaW5wdXRDb21wb25lbnRzUDJ3c2g6IElucHV0Q29tcG9uZW50cyA9IHtcbiAgc2NyaXB0OiBbXSxcbiAgd2l0bmVzczogcDJtc1NpZ1NjcmlwdFNpemUodHJ1ZSksXG59O1xuXG4vLyBTZWU6IGh0dHBzOi8vbXVyY2hhbmRhbXVzLm1lZGl1bS5jb20vMi1vZi0zLW11bHRpc2lnLWlucHV0cy11c2luZy1wYXktdG8tdGFwcm9vdC1kNWZhZjIzMTJiYTNcbmV4cG9ydCBjb25zdCBpbnB1dENvbXBvbmVudHNQMnRyS2V5U3BlbmQ6IElucHV0Q29tcG9uZW50cyA9IHtcbiAgc2NyaXB0OiBbXSxcbiAgd2l0bmVzczogW3NjaG5vcnJTaWduYXR1cmVOb1NpZ2hhc2hTaXplXSxcbn07XG5cbmV4cG9ydCBjb25zdCBpbnB1dENvbXBvbmVudHNQMnRyU2NyaXB0U3BlbmRMZXZlbDE6IElucHV0Q29tcG9uZW50cyA9IHtcbiAgc2NyaXB0OiBbXSxcbiAgd2l0bmVzczogcDJ0clNjcmlwdFNwZW5kKDEpLFxufTtcblxuZXhwb3J0IGNvbnN0IGlucHV0Q29tcG9uZW50c1AydHJTY3JpcHRTcGVuZExldmVsMjogSW5wdXRDb21wb25lbnRzID0ge1xuICBzY3JpcHQ6IFtdLFxuICB3aXRuZXNzOiBwMnRyU2NyaXB0U3BlbmQoMiksXG59O1xuXG5leHBvcnQgY29uc3QgaW5wdXRDb21wb25lbnRzUDJzaFAycGs6IElucHV0Q29tcG9uZW50cyA9IHtcbiAgc2NyaXB0OiBbb3BQdXNoU2l6ZSArIGVjZHNhU2lnbmF0dXJlU2l6ZSwgb3BQdXNoU2l6ZSArIHAycGtQdWJTY3JpcHRTaXplXSxcbiAgd2l0bmVzczogW10sXG59O1xuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!