0.7.0 • Published 4 years ago
@lntools/buffer-cursor v0.7.0
Buffer Cursor for simple reading/writing from a Buffer
Simplify reading and writing to buffers by internally maintaining the position. This library exposes a wrapper for a buffer that uses similar read and write methods to those found in the Node Buffer API. The library also includes
methods that assist with reading Bitcoin specific encodings such as int64
and varuint
. Large numbers
are returned as BN.js
values.
Usage:
npm install @lntools/buffer-cursor
const BufferCursor = require('@lntools/buffer-cursor');
let buffer = BufferCursor(Buffer.alloc(8));
buffer.writeUInt8(1);
buffer.writeUInt16BE(2);
buffer.writeUInt32BE(3);
buffer.writeBytes(Buffer.from([4]));
buffer.position = 0;
console.log(buffer.readUInt8());
console.log(buffer.readUInt16BE());
console.log(buffer.readUInt32BE());
console.log(buffer.readBytes());
API
position: number
- the current buffer cursor positioneof: bool
- whether the current position is at the end of the bufferbuffer: Buffer
- the underlying bufferlastReadBytes
- number of bytes last read from the bufferreadUInt8(): number
- reads 1 bytereadUInt16LE(): number
- reads 2 bytes as 16-bit little-endian unsigned integerreadUInt16BE(): number
- reads 2 bytes as 16-bit big-endian unsigned integerreadUInt32LE(): number
- reads 4 bytes as 32-bit little-endian unsigned integerreadUInt32BE(): number
- reads 4 bytes as 32-bit big-endian unsigned integerreadUInt64LE(): BN
- reads 8 bytes as 64-bit little-endian unsigned integerreadUInt64BE(): BN
- reads 8 bytes as 64-bit big-endian unsigned integerreadVarUint(): BN
- reads a variable length integer as defined in the Bitcoin protocol docsreadBytes([len]): Buffer
- reads the optionally specified number of bytes. If no length is supplied, it reads to the end of the buffer.writeUInt8(number): undefined
- writes 1 bytewriteUInt16LE(number): undefined
- writes a number as a 16-bit little-endian unsigned integerwriteUInt16BE(number): undefined
- writes a number as a 16-bit big-endian unsigned integerwriteUInt32LE(number): undefined
- writes a number as a 32-bit little-endian unsigned integerwriteUInt32BE(number): undefined
- writes a number as a 32-bit big-endian unsigned integerwriteUInt64LE(number): undefined
- writes a number as a 64-bit little-endian unsigned integerwriteUInt64BE(number): undefined
- writes a number as a 64-bit big-endian unsigned integerwriteBytes(buffer): undefined
- writes the supplied buffer to the cursor buffer