Skip to main content

Exports Reference

Complete list of what’s exported from TypeScript and Zig modules.

TypeScript Package Exports

From package.json exports field. Import as:
// Main entry
import { Address, Hash, Keccak256 } from "@tevm/voltaire";

// Direct imports (tree-shakeable)
import * as Address from "@tevm/voltaire/Address";
import * as Keccak256 from "@tevm/voltaire/Keccak256";

Primitives

ExportPathDescription
Abi./AbiABI encoding/decoding
AccessList./AccessListEIP-2930 access lists
Address./Address20-byte addresses
Authorization./AuthorizationEIP-7702 authorizations
Base64./Base64Base64 encoding
Blob./BlobEIP-4844 blobs
Block./BlockBlock structure
BloomFilter./BloomFilterLog bloom filter
Bytecode./BytecodeEVM bytecode
Bytes./BytesVariable bytes
Bytes32./Bytes3232-byte arrays
Chain./ChainChain metadata
Denomination./DenominationWei/Gwei/Ether
Ens./EnsENS normalization
EventLog./EventLogContract events
FeeMarket./FeeMarketEIP-1559 fees
Gas./GasGas types
GasConstants./GasConstantsEVM gas costs
Hardfork./HardforkHardfork enums
Hash./Hash32-byte hashes
Hex./HexHex encoding
Opcode./OpcodeEVM opcodes
Receipt./ReceiptTransaction receipts
Rlp./RlpRLP encoding
Signature./SignatureECDSA signatures
Siwe./SiweSign-In with Ethereum
Transaction./TransactionAll transaction types
Uint256./Uint256256-bit integers

Crypto

ExportPathDescription
Keccak256./Keccak256Keccak-256 hash
SHA256./SHA256SHA-256 hash
Blake2./Blake2Blake2b hash
Ripemd160./Ripemd160RIPEMD-160 hash
Secp256k1./Secp256k1ECDSA signing
Ed25519./Ed25519EdDSA signing
P256./P256NIST P-256
X25519./X25519Key exchange
AesGcm./AesGcmEncryption
Bip39./Bip39Mnemonics
HDWallet./HDWalletHD derivation
KZG./KZGBlob commitments
BN254./BN254BN254 curve
EIP712./EIP712Typed data

Other

ExportPathDescription
jsonrpc./jsonrpcJSON-RPC types
precompiles./precompilesEVM precompiles

TypeScript Main Index

From src/index.ts:
// Re-exports all primitives
export * from "./primitives/index.js";

// Re-exports all crypto
export * from "./crypto/index.js";

// Re-exports standards
export * from "./standards/index.js";

// Re-exports EVM
export * from "./evm/index.js";

Zig Primitives Module

From src/primitives/root.zig:

Core Types

pub const Address = @import("Address/address.zig").Address;
pub const Hash = @import("Hash/hash.zig").Hash;
pub const Bytes32 = @import("Bytes32/bytes32.zig").Bytes32;
pub const Signature = @import("Signature/signature.zig").Signature;

Encoding

pub const Hex = @import("Hex/hex.zig");
pub const Rlp = @import("Rlp/rlp.zig");
pub const Abi = @import("Abi/abi.zig");
pub const AbiEncoding = @import("Abi/abi_encoding.zig");
pub const Base64 = @import("Base64/base64.zig").Base64;
pub const Ssz = @import("Ssz/ssz.zig");

Numeric

pub const Numeric = @import("Uint256/numeric.zig");
pub const Uint = @import("Uint256/uint256.zig");
pub const Denomination = @import("Denomination/denomination.zig");
pub const Wei = Denomination.Wei;
pub const Gwei = Denomination.Gwei;
pub const Ether = Denomination.Ether;

Transaction

pub const Transaction = @import("Transaction/transaction.zig");
pub const LegacyTransaction = Transaction.LegacyTransaction;
pub const Eip2930Transaction = Transaction.Eip2930Transaction;
pub const Eip1559Transaction = Transaction.Eip1559Transaction;
pub const Eip4844Transaction = Transaction.Eip4844Transaction;
pub const Eip7702Transaction = Transaction.Eip7702Transaction;

EVM

pub const Bytecode = @import("Bytecode/bytecode.zig").Bytecode;
pub const Opcode = @import("Opcode/opcode.zig").Opcode;
pub const OpcodeInfo = @import("Opcode/opcode_info.zig");
pub const Gas = @import("Gas/gas.zig");
pub const GasConstants = @import("GasConstants/gas_constants.zig");

Protocol

pub const Chain = @import("Chain/chain.zig");
pub const Hardfork = @import("Hardfork/hardfork.zig").Hardfork;
pub const ForkTransition = @import("Hardfork/fork_transition.zig");
pub const Eips = @import("Hardfork/eips.zig");

Standards

pub const Siwe = @import("Siwe/siwe.zig");
pub const Ens = @import("Ens/ens.zig");
pub const TypedData = @import("Domain/typed_data.zig");

Data Structures

pub const Trie = @import("Trie/trie.zig");
pub const BloomFilter = @import("BloomFilter/bloom_filter.zig");
pub const BinaryTree = @import("BinaryTree/binary_tree.zig");

Zig Crypto Module

From src/crypto/root.zig:

Hashing

pub const Hash = @import("hash.zig");
pub const HashAlgorithms = @import("hash_algorithms.zig");
pub const HashUtils = @import("hash_utils.zig");
pub const Blake2 = @import("blake2.zig");
pub const Ripemd160 = @import("ripemd160.zig");

Signatures

pub const secp256k1 = @import("secp256k1.zig");
pub const p256 = @import("p256.zig");
pub const ed25519 = @import("ed25519.zig");
pub const x25519 = @import("x25519.zig");

Encryption

pub const aes_gcm = @import("aes_gcm.zig");

Curves

pub const bn254 = @import("bn254.zig");
pub const bn254_arkworks = @import("bn254_arkworks.zig");
pub const bls12_381 = @import("precompiles.zig").Crypto;

KZG

pub const kzg_trusted_setup = @import("kzg_trusted_setup.zig");
pub const kzg_setup = @import("kzg_setup.zig");
pub const c_kzg = @import("c_kzg.zig");

EIP-712

pub const Eip712 = @import("eip712.zig");

Hardware Acceleration

pub const CpuFeatures = @import("cpu_features.zig").CpuFeatures;
pub const SHA256_Accel = @import("sha256_accel.zig");
pub const Keccak256_Accel = @import("keccak256_accel.zig");
pub const keccak_asm = @import("keccak_asm.zig");

Modular Arithmetic

pub const ModExp = @import("modexp.zig");

Zig Precompiles Module

From src/evm/precompiles/root.zig:

Precompile Functions

pub const ecrecover = @import("ecrecover.zig");
pub const sha256 = @import("sha256.zig");
pub const ripemd160 = @import("ripemd160.zig");
pub const identity = @import("identity.zig");
pub const modexp = @import("modexp.zig");
pub const blake2f = @import("blake2f.zig");
pub const point_evaluation = @import("point_evaluation.zig");

BN254

pub const bn254_add = @import("bn254_add.zig");
pub const bn254_mul = @import("bn254_mul.zig");
pub const bn254_pairing = @import("bn254_pairing.zig");

BLS12-381

pub const bls12_g1_add = @import("bls12_g1_add.zig");
pub const bls12_g1_mul = @import("bls12_g1_mul.zig");
pub const bls12_g1_msm = @import("bls12_g1_msm.zig");
pub const bls12_g2_add = @import("bls12_g2_add.zig");
pub const bls12_g2_mul = @import("bls12_g2_mul.zig");
pub const bls12_g2_msm = @import("bls12_g2_msm.zig");
pub const bls12_pairing = @import("bls12_pairing.zig");
pub const bls12_map_fp_to_g1 = @import("bls12_map_fp_to_g1.zig");
pub const bls12_map_fp2_to_g2 = @import("bls12_map_fp2_to_g2.zig");

Address Constants

pub const ECRECOVER_ADDRESS: Address = addressFromInt(0x01);
pub const SHA256_ADDRESS: Address = addressFromInt(0x02);
pub const RIPEMD160_ADDRESS: Address = addressFromInt(0x03);
pub const IDENTITY_ADDRESS: Address = addressFromInt(0x04);
pub const MODEXP_ADDRESS: Address = addressFromInt(0x05);
pub const BN254_ADD_ADDRESS: Address = addressFromInt(0x06);
pub const BN254_MUL_ADDRESS: Address = addressFromInt(0x07);
pub const BN254_PAIRING_ADDRESS: Address = addressFromInt(0x08);
pub const BLAKE2F_ADDRESS: Address = addressFromInt(0x09);
pub const POINT_EVALUATION_ADDRESS: Address = addressFromInt(0x0A);
// ... BLS12-381 addresses 0x0B-0x13

Dispatch

/// Check if address is a precompile for given hardfork
pub fn isPrecompile(address: Address, hardfork: Hardfork) bool;

/// Execute precompile at address
pub fn execute(
    address: Address,
    input: []const u8,
    gas_limit: u64,
    hardfork: Hardfork
) !ExecuteResult;

Using Imports

TypeScript

// Namespace import (recommended)
import * as Address from "@tevm/voltaire/Address";
Address.fromHex("0x...");
Address.toChecksummed(addr);

// Named imports
import { fromHex, toChecksummed } from "@tevm/voltaire/Address";

// Default import (entire library)
import voltaire from "@tevm/voltaire";
voltaire.Address.fromHex("0x...");

Zig

// Module import
const primitives = @import("primitives");
const Address = primitives.Address;

const crypto = @import("crypto");
const secp256k1 = crypto.secp256k1;

const precompiles = @import("precompiles");
const ecrecover = precompiles.ecrecover;