PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@bitgo/utxo-core/dist/src/testutil
Просмотр файла: generatePayGoAttestationProof.utils.js
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generatePayGoAttestationProof = generatePayGoAttestationProof;
const crypto_1 = __importDefault(require("crypto"));
const utxo_lib_1 = require("@bitgo/utxo-lib");
const paygo_1 = require("../paygo");
/** We have a mirrored function similar to our hsm that generates our Bitcoin signed
* message so that we can use for testing. This creates a random entropy as well using
* the nilUUID structure to construct our uuid buffer and given our address we can
* directly encode it into our message.
*
* @param attestationPrvKey
* @param uuid
* @param address
* @returns
*/
function generatePayGoAttestationProof(uuid, address, hasPrefix = true) {
// <ENTROPY>
const entropyLength = 64;
const entropy = crypto_1.default.randomBytes(entropyLength);
// <UUID>
const uuidBuffer = Buffer.from(uuid);
const uuidBufferLength = uuidBuffer.length;
// <ADDRESS>
const addressBufferLength = address.length;
// <VARINT_LENGTH>
const msgLength = entropyLength + addressBufferLength + uuidBufferLength;
const msgLengthBuffer = utxo_lib_1.bufferutils.varuint.encode(msgLength);
// <LENGTH><ENTROPY><ADDRESS><UUID>
const proofMessage = Buffer.concat([msgLengthBuffer, entropy, address, uuidBuffer]);
// If hasPrefix, we return 0x18Bitcoin Signed Message:\n<proof> otherwise its just <proof>
// where <proof> = <VARINT_LEN><ENTROPY><ADDRESS><UUID>
return hasPrefix ? Buffer.concat([paygo_1.Prefix, proofMessage]) : proofMessage;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdGVQYXlHb0F0dGVzdGF0aW9uUHJvb2YudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGVzdHV0aWwvZ2VuZXJhdGVQYXlHb0F0dGVzdGF0aW9uUHJvb2YudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFnQkEsc0VBc0JDO0FBdENELG9EQUE0QjtBQUU1Qiw4Q0FBOEM7QUFFOUMsb0NBQWtDO0FBRWxDOzs7Ozs7Ozs7R0FTRztBQUNILFNBQWdCLDZCQUE2QixDQUFDLElBQVksRUFBRSxPQUFlLEVBQUUsU0FBUyxHQUFHLElBQUk7SUFDM0YsWUFBWTtJQUNaLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN6QixNQUFNLE9BQU8sR0FBRyxnQkFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUVsRCxTQUFTO0lBQ1QsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFFM0MsWUFBWTtJQUNaLE1BQU0sbUJBQW1CLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUUzQyxrQkFBa0I7SUFDbEIsTUFBTSxTQUFTLEdBQUcsYUFBYSxHQUFHLG1CQUFtQixHQUFHLGdCQUFnQixDQUFDO0lBQ3pFLE1BQU0sZUFBZSxHQUFHLHNCQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUU5RCxtQ0FBbUM7SUFDbkMsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFFcEYsMEZBQTBGO0lBQzFGLHVEQUF1RDtJQUN2RCxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGNBQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcblxuaW1wb3J0IHsgYnVmZmVydXRpbHMgfSBmcm9tICdAYml0Z28vdXR4by1saWInO1xuXG5pbXBvcnQgeyBQcmVmaXggfSBmcm9tICcuLi9wYXlnbyc7XG5cbi8qKiBXZSBoYXZlIGEgbWlycm9yZWQgZnVuY3Rpb24gc2ltaWxhciB0byBvdXIgaHNtIHRoYXQgZ2VuZXJhdGVzIG91ciBCaXRjb2luIHNpZ25lZFxuICogbWVzc2FnZSBzbyB0aGF0IHdlIGNhbiB1c2UgZm9yIHRlc3RpbmcuIFRoaXMgY3JlYXRlcyBhIHJhbmRvbSBlbnRyb3B5IGFzIHdlbGwgdXNpbmdcbiAqIHRoZSBuaWxVVUlEIHN0cnVjdHVyZSB0byBjb25zdHJ1Y3Qgb3VyIHV1aWQgYnVmZmVyIGFuZCBnaXZlbiBvdXIgYWRkcmVzcyB3ZSBjYW5cbiAqIGRpcmVjdGx5IGVuY29kZSBpdCBpbnRvIG91ciBtZXNzYWdlLlxuICpcbiAqIEBwYXJhbSBhdHRlc3RhdGlvblBydktleVxuICogQHBhcmFtIHV1aWRcbiAqIEBwYXJhbSBhZGRyZXNzXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVQYXlHb0F0dGVzdGF0aW9uUHJvb2YodXVpZDogc3RyaW5nLCBhZGRyZXNzOiBCdWZmZXIsIGhhc1ByZWZpeCA9IHRydWUpOiBCdWZmZXIge1xuICAvLyA8RU5UUk9QWT5cbiAgY29uc3QgZW50cm9weUxlbmd0aCA9IDY0O1xuICBjb25zdCBlbnRyb3B5ID0gY3J5cHRvLnJhbmRvbUJ5dGVzKGVudHJvcHlMZW5ndGgpO1xuXG4gIC8vIDxVVUlEPlxuICBjb25zdCB1dWlkQnVmZmVyID0gQnVmZmVyLmZyb20odXVpZCk7XG4gIGNvbnN0IHV1aWRCdWZmZXJMZW5ndGggPSB1dWlkQnVmZmVyLmxlbmd0aDtcblxuICAvLyA8QUREUkVTUz5cbiAgY29uc3QgYWRkcmVzc0J1ZmZlckxlbmd0aCA9IGFkZHJlc3MubGVuZ3RoO1xuXG4gIC8vIDxWQVJJTlRfTEVOR1RIPlxuICBjb25zdCBtc2dMZW5ndGggPSBlbnRyb3B5TGVuZ3RoICsgYWRkcmVzc0J1ZmZlckxlbmd0aCArIHV1aWRCdWZmZXJMZW5ndGg7XG4gIGNvbnN0IG1zZ0xlbmd0aEJ1ZmZlciA9IGJ1ZmZlcnV0aWxzLnZhcnVpbnQuZW5jb2RlKG1zZ0xlbmd0aCk7XG5cbiAgLy8gPExFTkdUSD48RU5UUk9QWT48QUREUkVTUz48VVVJRD5cbiAgY29uc3QgcHJvb2ZNZXNzYWdlID0gQnVmZmVyLmNvbmNhdChbbXNnTGVuZ3RoQnVmZmVyLCBlbnRyb3B5LCBhZGRyZXNzLCB1dWlkQnVmZmVyXSk7XG5cbiAgLy8gSWYgaGFzUHJlZml4LCB3ZSByZXR1cm4gMHgxOEJpdGNvaW4gU2lnbmVkIE1lc3NhZ2U6XFxuPHByb29mPiBvdGhlcndpc2UgaXRzIGp1c3QgPHByb29mPlxuICAvLyB3aGVyZSA8cHJvb2Y+ID0gPFZBUklOVF9MRU4+PEVOVFJPUFk+PEFERFJFU1M+PFVVSUQ+XG4gIHJldHVybiBoYXNQcmVmaXggPyBCdWZmZXIuY29uY2F0KFtQcmVmaXgsIHByb29mTWVzc2FnZV0pIDogcHJvb2ZNZXNzYWdlO1xufVxuIl19Выполнить команду
Для локальной разработки. Не используйте в интернете!