Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

@tevm/address

Utilities for Ethereum addresses. Wraps the ZEVM-compatible EthjsAddress primitive with a Tevm-style API and returns EIP-55 checksummed strings.

Installation

npm install @tevm/address

API Reference

Address

Extends ZEVM's EthjsAddress (re-exported from @tevm/utils). Methods:

  • toString() - checksummed hex string
  • toBytes() - Uint8Array
  • equals(address) - equality check
  • isZero() - zero-address check
  • isPrecompileOrSystemAddress() - precompile/system check

createAddress(input): Address

Accepts hex string, unprefixed hex string, number, bigint, Uint8Array, or Address.

import { createAddress } from '@tevm/address'
 
createAddress(`0x${'00'.repeat(20)}`)
createAddress(0n)
createAddress(new Uint8Array(20))
createAddress('55'.repeat(20))

Throws InvalidAddressError on invalid input.

createContractAddress(from: Address, nonce: bigint): Address

CREATE address. Throws InvalidAddressError if from is invalid.

import { createAddress, createContractAddress } from '@tevm/address'
 
const contractAddress = createContractAddress(createAddress('0x1234...'), 0n)

create2ContractAddress(from: Address, salt: string, code: string): Address

CREATE2 address (EIP-1014). salt must be 32 bytes hex.

import { createAddress, create2ContractAddress } from '@tevm/address'
 
const create2Address = create2ContractAddress(
  createAddress('0x1234...'),
  `0x${'00'.repeat(32)}`,
  '0x...', // creation code
)

Throws InvalidSaltError or InvalidAddressError. Union: Create2ContractAddressError.

See Also