PHP WebShell

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

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

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.pushdataEncodingLength = pushdataEncodingLength;
exports.compactSize = compactSize;
const types_1 = require("./types");
/**
 * Overhead size for a pushdata element in a script
 * @param i
 */
function pushdataEncodingLength(i) {
    /*
     * https://github.com/bitcoin/bips/blob/master/bip-0062.mediawiki#push-operators
     * Pushing any other byte sequence up to 75 bytes must use the normal data push (opcode byte n, with n the number of bytes, followed n bytes of data being pushed).
     * Pushing 76 to 255 bytes must use OP_PUSHDATA1.
     * Pushing 256 to 520 bytes must use OP_PUSHDATA2.
     * OP_PUSHDATA4 can never be used, as pushes over 520 bytes are not allowed, and those below can be done using other operators.
     */
    if (i < 76) {
        return 1;
    }
    if (i < 255) {
        return 2;
    }
    if (i < 520) {
        return 3;
    }
    throw new Error(`invalid pushdata size`);
}
/**
 * https://developer.bitcoin.org/reference/transactions.html#compactsize-unsigned-integers
 * https://github.com/bitcoinjs/varuint-bitcoin/blob/1d5b253/index.js#L79
 * @param integer
 * @return {number} - The compact size the integer requires when serialized in a transaction
 */
function compactSize(integer) {
    if (!types_1.PositiveInteger.is(integer)) {
        throw new TypeError(`expected positive integer`);
    }
    if (integer <= 252) {
        return 1;
    }
    if (integer <= 0xffff) {
        return 3;
    }
    if (integer <= 0xffffffff) {
        return 5;
    }
    return 9;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyaXB0U2l6ZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0U2l6ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFNQSx3REFrQkM7QUFRRCxrQ0FjQztBQTlDRCxtQ0FBMEM7QUFFMUM7OztHQUdHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsQ0FBUztJQUM5Qzs7Ozs7O09BTUc7SUFDSCxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztRQUNYLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUNELElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1osT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsSUFBSSxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDWixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBZ0IsV0FBVyxDQUFDLE9BQWU7SUFDekMsSUFBSSxDQUFDLHVCQUFlLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDakMsTUFBTSxJQUFJLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNuQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUN0QixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxJQUFJLE9BQU8sSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUMxQixPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFDRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3NpdGl2ZUludGVnZXIgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBPdmVyaGVhZCBzaXplIGZvciBhIHB1c2hkYXRhIGVsZW1lbnQgaW4gYSBzY3JpcHRcbiAqIEBwYXJhbSBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwdXNoZGF0YUVuY29kaW5nTGVuZ3RoKGk6IG51bWJlcik6IG51bWJlciB7XG4gIC8qXG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvYmxvYi9tYXN0ZXIvYmlwLTAwNjIubWVkaWF3aWtpI3B1c2gtb3BlcmF0b3JzXG4gICAqIFB1c2hpbmcgYW55IG90aGVyIGJ5dGUgc2VxdWVuY2UgdXAgdG8gNzUgYnl0ZXMgbXVzdCB1c2UgdGhlIG5vcm1hbCBkYXRhIHB1c2ggKG9wY29kZSBieXRlIG4sIHdpdGggbiB0aGUgbnVtYmVyIG9mIGJ5dGVzLCBmb2xsb3dlZCBuIGJ5dGVzIG9mIGRhdGEgYmVpbmcgcHVzaGVkKS5cbiAgICogUHVzaGluZyA3NiB0byAyNTUgYnl0ZXMgbXVzdCB1c2UgT1BfUFVTSERBVEExLlxuICAgKiBQdXNoaW5nIDI1NiB0byA1MjAgYnl0ZXMgbXVzdCB1c2UgT1BfUFVTSERBVEEyLlxuICAgKiBPUF9QVVNIREFUQTQgY2FuIG5ldmVyIGJlIHVzZWQsIGFzIHB1c2hlcyBvdmVyIDUyMCBieXRlcyBhcmUgbm90IGFsbG93ZWQsIGFuZCB0aG9zZSBiZWxvdyBjYW4gYmUgZG9uZSB1c2luZyBvdGhlciBvcGVyYXRvcnMuXG4gICAqL1xuICBpZiAoaSA8IDc2KSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cbiAgaWYgKGkgPCAyNTUpIHtcbiAgICByZXR1cm4gMjtcbiAgfVxuICBpZiAoaSA8IDUyMCkge1xuICAgIHJldHVybiAzO1xuICB9XG4gIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCBwdXNoZGF0YSBzaXplYCk7XG59XG5cbi8qKlxuICogaHR0cHM6Ly9kZXZlbG9wZXIuYml0Y29pbi5vcmcvcmVmZXJlbmNlL3RyYW5zYWN0aW9ucy5odG1sI2NvbXBhY3RzaXplLXVuc2lnbmVkLWludGVnZXJzXG4gKiBodHRwczovL2dpdGh1Yi5jb20vYml0Y29pbmpzL3ZhcnVpbnQtYml0Y29pbi9ibG9iLzFkNWIyNTMvaW5kZXguanMjTDc5XG4gKiBAcGFyYW0gaW50ZWdlclxuICogQHJldHVybiB7bnVtYmVyfSAtIFRoZSBjb21wYWN0IHNpemUgdGhlIGludGVnZXIgcmVxdWlyZXMgd2hlbiBzZXJpYWxpemVkIGluIGEgdHJhbnNhY3Rpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbXBhY3RTaXplKGludGVnZXI6IG51bWJlcik6IG51bWJlciB7XG4gIGlmICghUG9zaXRpdmVJbnRlZ2VyLmlzKGludGVnZXIpKSB7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihgZXhwZWN0ZWQgcG9zaXRpdmUgaW50ZWdlcmApO1xuICB9XG4gIGlmIChpbnRlZ2VyIDw9IDI1Mikge1xuICAgIHJldHVybiAxO1xuICB9XG4gIGlmIChpbnRlZ2VyIDw9IDB4ZmZmZikge1xuICAgIHJldHVybiAzO1xuICB9XG4gIGlmIChpbnRlZ2VyIDw9IDB4ZmZmZmZmZmYpIHtcbiAgICByZXR1cm4gNTtcbiAgfVxuICByZXR1cm4gOTtcbn1cbiJdfQ==

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


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