A collection of utility functions for Ethereum. It can be used in Node.js and in the browser with browserify.
To obtain the latest version, simply require the project using npm
:
npm install @ethereumjs/util
import assert from 'assert'
import { isValidChecksumAddress, unpadBuffer } from '@ethereumjs/util'
assert.ok(isValidChecksumAddress('0x2F015C60E0be116B1f0CD534704Db9c92118FB6A'))
assert.ok(unpadBuffer(Buffer.from('000000006600', 'hex')).equals(Buffer.from('6600', 'hex')))
Read the API docs.
- account
- Account class
- Private/public key and address-related functionality (creation, validation, conversion)
- address
- Address class and type
- bytes
- Byte-related helper and conversion functions
- constants
- Exposed constants
- e.g.
KECCAK256_NULL_S
for string representation of Keccak-256 hash of null
- e.g.
- Exposed constants
- hash
- This module has been removed with
v8
, please use ethereum-cryptography directly instead
- This module has been removed with
- signature
- Signing, signature validation, conversion, recovery
- types
- Helpful TypeScript types
- internal
- Internalized helper methods
- withdrawal
- Withdrawal class (EIP-4895)
Starting with v8 the usage of BN.js for big numbers has been removed from the library and replaced with the usage of the native JS BigInt data type (introduced in ES2020
).
Please note that number-related API signatures have changed along with this version update and the minimal build target has been updated to ES2020
.
The following methods are available by an internalized version of the ethjs-util package (MIT
license), see internal.ts. The original package is not maintained any more and the original functionality will be replaced by own implementations over time (starting with the v7.1.3
release, October 2021).
- arrayContainsArray
- getBinarySize
- stripHexPrefix
- isHexPrefixed
- isHexString
- padToEven
- fromAscii
- fromUtf8
- toUtf8
- toAscii
- getKeys
They can be imported by name:
import { stripHexPrefix } from '@ethereumjs/util'
See our organizational documentation for an introduction to EthereumJS
as well as information on current standards and best practices. If you want to join for work or carry out improvements on the libraries, please review our contribution guidelines first.