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