PHP WebShell

Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/utxo-core/dist/src/testutil

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

"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    var desc = Object.getOwnPropertyDescriptor(m, k);
    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
      desc = { enumerable: true, get: function() { return m[k]; } };
    }
    Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
    if (k2 === undefined) k2 = k;
    o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
    Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
    o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
    var ownKeys = function(o) {
        ownKeys = Object.getOwnPropertyNames || function (o) {
            var ar = [];
            for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
            return ar;
        };
        return ownKeys(o);
    };
    return function (mod) {
        if (mod && mod.__esModule) return mod;
        var result = {};
        if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
        __setModuleDefault(result, mod);
        return result;
    };
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.trimMessagePrefix = trimMessagePrefix;
const utxolib = __importStar(require("@bitgo/utxo-lib"));
/** We receive a proof in the form:
 * 0x18Bitcoin Signed Message:\n<varint_length><ENTROPY><ADDRESS><UUID>
 * and when verifying our message we want to exclude the 0x18Bitcoin Signed Message:\n<varint_length>
 * of the proof so that we are left with the entropy address and uuid as our message.
 * This is what we are going to be verifying.
 *
 * @param proof
 * @returns
 */
function trimMessagePrefix(proof) {
    const prefix = '\u0018Bitcoin Signed Message:\n';
    if (proof.toString().startsWith(prefix)) {
        proof = proof.slice(Buffer.from(prefix).length);
        utxolib.bufferutils.varuint.decode(proof, 0);
        // Determines how many bytes were consumed during our last varuint.decode(Buffer, offset)
        // So if varuint.decode(0xfd) then varuint.decode.bytes = 3
        // varuint.decode(0xfe) then varuint.decode.bytes = 5, etc.
        const varintBytesLength = utxolib.bufferutils.varuint.decode.bytes;
        proof.slice(varintBytesLength);
    }
    return proof;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpbU1lc3NhZ2VQcmVmaXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvdHJpbU1lc3NhZ2VQcmVmaXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXQSw4Q0FhQztBQXhCRCx5REFBMkM7QUFFM0M7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FBQyxLQUFhO0lBQzdDLE1BQU0sTUFBTSxHQUFHLGlDQUFpQyxDQUFDO0lBQ2pELElBQUksS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ3hDLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3Qyx5RkFBeUY7UUFDekYsMkRBQTJEO1FBQzNELDJEQUEyRDtRQUMzRCxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFFbkUsS0FBSyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dHhvbGliIGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5cbi8qKiBXZSByZWNlaXZlIGEgcHJvb2YgaW4gdGhlIGZvcm06XG4gKiAweDE4Qml0Y29pbiBTaWduZWQgTWVzc2FnZTpcXG48dmFyaW50X2xlbmd0aD48RU5UUk9QWT48QUREUkVTUz48VVVJRD5cbiAqIGFuZCB3aGVuIHZlcmlmeWluZyBvdXIgbWVzc2FnZSB3ZSB3YW50IHRvIGV4Y2x1ZGUgdGhlIDB4MThCaXRjb2luIFNpZ25lZCBNZXNzYWdlOlxcbjx2YXJpbnRfbGVuZ3RoPlxuICogb2YgdGhlIHByb29mIHNvIHRoYXQgd2UgYXJlIGxlZnQgd2l0aCB0aGUgZW50cm9weSBhZGRyZXNzIGFuZCB1dWlkIGFzIG91ciBtZXNzYWdlLlxuICogVGhpcyBpcyB3aGF0IHdlIGFyZSBnb2luZyB0byBiZSB2ZXJpZnlpbmcuXG4gKlxuICogQHBhcmFtIHByb29mXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdHJpbU1lc3NhZ2VQcmVmaXgocHJvb2Y6IEJ1ZmZlcik6IEJ1ZmZlciB7XG4gIGNvbnN0IHByZWZpeCA9ICdcXHUwMDE4Qml0Y29pbiBTaWduZWQgTWVzc2FnZTpcXG4nO1xuICBpZiAocHJvb2YudG9TdHJpbmcoKS5zdGFydHNXaXRoKHByZWZpeCkpIHtcbiAgICBwcm9vZiA9IHByb29mLnNsaWNlKEJ1ZmZlci5mcm9tKHByZWZpeCkubGVuZ3RoKTtcbiAgICB1dHhvbGliLmJ1ZmZlcnV0aWxzLnZhcnVpbnQuZGVjb2RlKHByb29mLCAwKTtcbiAgICAvLyBEZXRlcm1pbmVzIGhvdyBtYW55IGJ5dGVzIHdlcmUgY29uc3VtZWQgZHVyaW5nIG91ciBsYXN0IHZhcnVpbnQuZGVjb2RlKEJ1ZmZlciwgb2Zmc2V0KVxuICAgIC8vIFNvIGlmIHZhcnVpbnQuZGVjb2RlKDB4ZmQpIHRoZW4gdmFydWludC5kZWNvZGUuYnl0ZXMgPSAzXG4gICAgLy8gdmFydWludC5kZWNvZGUoMHhmZSkgdGhlbiB2YXJ1aW50LmRlY29kZS5ieXRlcyA9IDUsIGV0Yy5cbiAgICBjb25zdCB2YXJpbnRCeXRlc0xlbmd0aCA9IHV0eG9saWIuYnVmZmVydXRpbHMudmFydWludC5kZWNvZGUuYnl0ZXM7XG5cbiAgICBwcm9vZi5zbGljZSh2YXJpbnRCeXRlc0xlbmd0aCk7XG4gIH1cbiAgcmV0dXJuIHByb29mO1xufVxuIl19

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


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