
Product
Socket for Jira Is Now Available
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.
Easier calculation and formatting of Ethereum values.
toFixed())ethvalYou can feed it BN.js instances returned from web3:
const EthVal = require('ethval')
const balance = await web3.eth.getBalance(account) // returns BN.js instance
// assume balance is 20000000000000000 wei (=0.02eth)
console.log( new EthVal(balance).toEth().mul(2).toFixed(2) ) // "0.04"
Use it calculate the Wei/Gwei/Eth equivalent of a given value:
const v = new EthVal('1.234', 'eth')
console.log( b.toGwei().toString() ) // "1234000000"
You can also output hex and binary strings:
const v = new EthVal(255)
console.log( b.toString(16) ) // "0xff"
console.log( b.toString(2) ) // "11111111"
Basic arithmetic supported fully:
const v = new EthVal(255)
const b = await web3.eth.getBalance('0x...') // assume balance is 100 wei
console.log( v.div(5).add(b).mul(2).sub(2).toString(16) ) // 0x12c (= 300 in base-10)
Comparisons too:
const { toBN } = require('web3-utils')
const v = new EthVal(255)
const v2 = new EthVal('0.2', 'eth')
console.log( v2.lt(v) ) // false
console.log( v.gt(200) ) // true
console.log( v.lte(toBN('0xFFFF')) ) // true
It also ensures units are aligned when performing operations:
const v = new EthVal(25500)
const v2 = new EthVal('0.2', 'eth')
console.log( v2.gt(v) ) // true
console.log( v.add(v2).toString() ) // "200000000000025500"
console.log( v2.add(v).toString() ) // "0.2000000000000255"
new EthVal(input, unit = 'wei')
Constructs a new EthVal instance.
input - can be a Number, a string (in base-10 or base-16/hex format),
another EthVal instance, or a BN instance.unit - must be one of eth, gwei or wei (default)..toWei()
Convert the value to its Wei equivalent and return a new EthVal instance.
.toGwei()
Convert the value to its Gwei equivalent and return a new EthVal instance.
.toEth()
Convert the value to its Eth equivalent and return a new EthVal instance.
.add(input)
Add input to this value and return a new EthVal instance.
input - same as for the EthVal constructor.sub(input)
Subtract input from this value and return a new EthVal instance.
input - same as for the EthVal constructor.mul(input)
Multiply input with this value and return a new EthVal instance.
input - same as for the EthVal constructor.div(input)
Divide this value by input and return a new EthVal instance.
input - same as for the EthVal constructor.round()
Round this value to the nearest integer (i.e 0 decimal places) and return a new EthVal instance.
.eq(input)
Get whether this value equals input. Returns true or false.
input - same as for the EthVal constructor.lt(input)
Get whether this value is less than input. Returns true or false.
input - same as for the EthVal constructor.lte(input)
Get whether this value is less than or equal to input. Returns true or false.
input - same as for the EthVal constructor.gt(input)
Get whether this value is greater than input. Returns true or false.
input - same as for the EthVal constructor.gte(input)
Get whether this value is greater than or equal to input. Returns true or false.
input - same as for the EthVal constructor.toString(base)
Return string representation of this value according to the given number base.
For example, if base is 2 then a binary string representation is returned, if
16 then a hexadecimal string representation is returned.
base - either 2, 16 or 10..toNumber()
Return base-10 Number representation of this value.
.toFixed(precision)
Return base-10 decimal-point representation of this value to the given precision.
precision - maximum no. of numbers after the decimal point..isWei
Whether the current unit is wei.
.isGwei
Whether the current unit is gwei.
.isEth
Whether the current unit is eth.
npm inpm testnpm run test:coveragenpm run buildnpm run lintMIT
FAQs
Easier calculation and formatting of Ethereum values
The npm package ethval receives a total of 331 weekly downloads. As such, ethval popularity was classified as not popular.
We found that ethval demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.