1 | 'use strict'
|
2 |
|
3 | const varint = require('varint')
|
4 | const uint8ArrayToString = require('uint8arrays/to-string')
|
5 | const uint8ArrayFromString = require('uint8arrays/from-string')
|
6 |
|
7 | module.exports = {
|
8 | numberToUint8Array,
|
9 | uint8ArrayToNumber,
|
10 | varintUint8ArrayEncode,
|
11 | varintEncode
|
12 | }
|
13 |
|
14 | function uint8ArrayToNumber (buf) {
|
15 | return parseInt(uint8ArrayToString(buf, 'base16'), 16)
|
16 | }
|
17 |
|
18 | function numberToUint8Array (num) {
|
19 | let hexString = num.toString(16)
|
20 | if (hexString.length % 2 === 1) {
|
21 | hexString = '0' + hexString
|
22 | }
|
23 | return uint8ArrayFromString(hexString, 'base16')
|
24 | }
|
25 |
|
26 | function varintUint8ArrayEncode (input) {
|
27 | return Uint8Array.from(varint.encode(uint8ArrayToNumber(input)))
|
28 | }
|
29 |
|
30 | function varintEncode (num) {
|
31 | return Uint8Array.from(varint.encode(num))
|
32 | }
|