@dashevo/dashcore-lib
Version:
A pure and powerful JavaScript Dash library.
75 lines (60 loc) • 1.6 kB
JavaScript
/* 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;