ethereumjs / fixed-bn.js

a bn.js wrapper that constrains numbers to a fixed width
7 stars 9 forks source link

SYNOPSIS

NPM Package Build Status Coverage Status

js-standard-style

a bn.js factory wrapper that constrains numbers to a fixed width

USAGE

const FixedBN = require('fixed-bn.js')

// there are some built in sizes `U64`, `U128`, `U160`, `U256`
const bnNum = new FixedBN.U64('0x5555555')
// use normal bn.js methods
bnNum.iaddn(55)

// toBuffer and toArray allways produces a fixed length result
bnNum.toBuffer()
// <Buffer 00 00 00 00 05 55 55 55>

// you can also create an arbitary fixed lenght bn
// max bit lenght is 199 bits and min length is 2 bits
const I199 = FixedBN(199, 2)
const newBnNum = new I199(390248)

API

Since this module extends BN.js it has the methods as it does plus a few extras.

factory

./index.js:11-87

A factory that produces BN.js constructors for a given width

Parameters

Returns bn.js returns a bn.js constuctor that that is constained to maxWidth and minWidth

builtin length

the factory has the following builtins

bn.js instance

Each instance has the following additional methods

maxWidth

./index.js:35-37

retuns Max Width

Returns integer

minWidth

./index.js:43-45

retuns Min Width

Returns integer

fromBuffer

./index.js:66-68

converts a buffer to a fixed-bn.js

Parameters

isFixBN

./index.js:74-76

checks if a BN instance is a fixed BN instance

Parameters

isSameWidth

./index.js:82-84

checks if a fixed-bn instance is the same width as the contructor

Parameters

LICENSE

MPL-2.0