UNPKG

@dashevo/dashcore-lib

Version:

A pure and powerful JavaScript Dash library.

75 lines (60 loc) 1.6 kB
/* eslint-disable */ // TODO: Remove previous line and work through linting issues at next edit 'use strict'; var BufferWriter = require('./bufferwriter'); var BufferReader = require('./bufferreader'); var BN = require('../crypto/bn'); var Varint = function Varint(buf) { if (!(this instanceof Varint)) return new Varint(buf); if (Buffer.isBuffer(buf)) { this.buf = buf; } else if (typeof buf === 'number') { var num = buf; this.fromNumber(num); } else if (buf instanceof BN) { var bn = buf; this.fromBN(bn); } else if (buf) { var obj = buf; this.set(obj); } }; Varint.prototype.set = function (obj) { this.buf = obj.buf || this.buf; return this; }; Varint.prototype.fromString = function (str) { this.set({ buf: Buffer.from(str, 'hex'), }); return this; }; Varint.prototype.toString = function () { return this.buf.toString('hex'); }; Varint.prototype.fromBuffer = function (buf) { this.buf = buf; return this; }; Varint.prototype.fromBufferReader = function (br) { this.buf = br.readVarintBuf(); return this; }; Varint.prototype.fromBN = function (bn) { this.buf = BufferWriter().writeVarintBN(bn).concat(); return this; }; Varint.prototype.fromNumber = function (num) { this.buf = BufferWriter().writeVarintNum(num).concat(); return this; }; Varint.prototype.toBuffer = function () { return this.buf; }; Varint.prototype.toBN = function () { return BufferReader(this.buf).readVarintBN(); }; Varint.prototype.toNumber = function () { return BufferReader(this.buf).readVarintNum(); }; module.exports = Varint;