UNPKG

1.5 kBJavaScriptView Raw
1'use strict';
2
3var BufferWriter = require('./bufferwriter');
4var BufferReader = require('./bufferreader');
5var BN = require('../crypto/bn');
6
7var Varint = function Varint(buf) {
8 if (!(this instanceof Varint))
9 return new Varint(buf);
10 if (Buffer.isBuffer(buf)) {
11 this.buf = buf;
12 } else if (typeof buf === 'number') {
13 var num = buf;
14 this.fromNumber(num);
15 } else if (buf instanceof BN) {
16 var bn = buf;
17 this.fromBN(bn);
18 } else if (buf) {
19 var obj = buf;
20 this.set(obj);
21 }
22};
23
24Varint.prototype.set = function(obj) {
25 this.buf = obj.buf || this.buf;
26 return this;
27};
28
29Varint.prototype.fromString = function(str) {
30 this.set({
31 buf: Buffer.from(str, 'hex')
32 });
33 return this;
34};
35
36Varint.prototype.toString = function() {
37 return this.buf.toString('hex');
38};
39
40Varint.prototype.fromBuffer = function(buf) {
41 this.buf = buf;
42 return this;
43};
44
45Varint.prototype.fromBufferReader = function(br) {
46 this.buf = br.readVarintBuf();
47 return this;
48};
49
50Varint.prototype.fromBN = function(bn) {
51 this.buf = BufferWriter().writeVarintBN(bn).concat();
52 return this;
53};
54
55Varint.prototype.fromNumber = function(num) {
56 this.buf = BufferWriter().writeVarintNum(num).concat();
57 return this;
58};
59
60Varint.prototype.toBuffer = function() {
61 return this.buf;
62};
63
64Varint.prototype.toBN = function() {
65 return BufferReader(this.buf).readVarintBN();
66};
67
68Varint.prototype.toNumber = function() {
69 return BufferReader(this.buf).readVarintNum();
70};
71
72module.exports = Varint;