n-multi-hashing
Version:
A re-write of the Node Multi Hashing library, which provides Javascript bindings for C/C++ based hashing algorithms.
33 lines • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.serializeHeader = exports.reverseBytes = void 0;
const reverseBuffer = (buff) => {
const reversed = Buffer.alloc(buff.length);
for (let i = buff.length - 1; i >= 0; i--)
reversed[buff.length - i - 1] = buff[i];
return reversed;
};
const reverseBytes = (buffer, output) => {
output = output || buffer;
const halfLen = buffer.length / 2;
for (let i = 0; i < halfLen; i++) {
const byte = buffer[i];
output[i] = buffer[buffer.length - i - 1];
output[buffer.length - i - 1] = byte;
}
return output;
};
exports.reverseBytes = reverseBytes;
const serializeHeader = (rpcData, merkleRoot, nTime, nonce) => {
const header = Buffer.alloc(80);
let position = 0;
header.write(nonce, position, 4, 'hex');
header.write(rpcData.bits, (position += 4), 4, 'hex');
header.write(nTime, (position += 4), 4, 'hex');
header.write(merkleRoot, (position += 4), 32, 'hex');
header.write(rpcData.previousBlockHash, (position += 32), 32, 'hex');
header.writeUInt32BE(rpcData.version, position + 32);
return reverseBuffer(header);
};
exports.serializeHeader = serializeHeader;
//# sourceMappingURL=utils.js.map