Skip to content

Releases: evmts/voltaire

v0.2.27

28 Jan 20:28

Choose a tag to compare

What's Changed

  • πŸ”§ chore: bump version to 0.2.27 (2721361)
  • πŸ“š docs: Reorganize sidebar with Core/Advanced Services (2267be0)
  • πŸ”§ fix: Correct provider factory return types (c7bcfda)
  • πŸŽ‰ feat: Add idiomatic provider factory functions (f580e02)
  • πŸ“š docs: Add contract-registry to sidebar & simplify provider examples (eea0b5f)
  • πŸ“š docs: Add Effect.ts ContractRegistry showcase to home page (fd8d74d)
  • πŸ“š docs: Add retry and timeout to ContractRegistry examples (1cccc38)
  • πŸ“š docs: Simplify ContractRegistry examples (7adb557)
  • πŸ“š docs: Promote voltaire-effect ContractRegistry as premier example (3b5b94f)
  • πŸ“š docs: Clarify ProviderService as request-only minimal Context.Tag (d0a84eb)
  • πŸ”§ chore: Add provider migration implementation constraints (f6b829d)
  • πŸ“š docs: Add contract registry documentation and update contract docs (096a651)
  • βœ… test: Add ContractRegistryService test suite (c0e1907)
  • πŸŽ‰ feat: Add ContractRegistryService for managing multiple contracts (ba7d95e)

Installation

# Main package
npm install @tevm/voltaire@0.2.27

# Effect-TS integration
npm install voltaire-effect@0.2.27

Full Changelog

v0.2.25...v0.2.27

v0.2.25

28 Jan 19:28

Choose a tag to compare

What's Changed

  • chore: bump version to 0.2.25 (c2438cd)
  • docs: align provider migration docs (2fb3b5e)
  • πŸ“š docs: Fix error handling and examples index (37168c7)
  • πŸ“š docs: Minor doc fixes (a2acac0)
  • πŸ“š docs: Update error handling, wallet, rate limiter docs (530323f)
  • πŸ“š docs: Update viem migration guide (f4ff497)
  • πŸ“š docs: Final documentation updates (37dacb2)
  • πŸ“š docs: Update remaining documentation files (76112e8)
  • πŸ“š docs: Update migration guide and troubleshooting (c6d1103)
  • πŸ“š docs: Update testing, layers, and transport docs (f3199f1)
  • πŸ“š docs: Update contract and transaction example docs (03749a9)
  • βœ… test: Update ContractSignature and Signer writeContract tests (e6abfc8)
  • πŸ“š docs: Update Provider service documentation and examples (d4329bf)
  • πŸ”§ chore: Update dependencies (76a6b11)
  • πŸ“š docs: Update documentation for Provider architecture changes (1061403)
  • ♻️ refactor: Update root exports and add type export tests (6ebfda7)
  • ♻️ refactor: Update primitives and standards for Provider changes (f7af52c)
  • ♻️ refactor: Update crypto modules for Provider changes (573d882)
  • ♻️ refactor: Update services for new Provider architecture (f5ee685)
  • ♻️ refactor: Consolidate Provider service into modular architecture (932c2fd)

Installation

# Main package
npm install @tevm/voltaire@0.2.25

# Effect-TS integration
npm install voltaire-effect@0.2.25

Full Changelog

v0.2.24...v0.2.25

v0.2.24

28 Jan 17:31

Choose a tag to compare

What's Changed

  • chore: bump version to 0.2.24 (702b461)
  • 🎨 refactor: Update module exports for modular architecture (bceeabb)
  • πŸŽ‰ feat: Implement modular primitives architecture (one function per file) (5eda8de)
  • πŸ“š docs: Update primitive module documentation (f0051a1)

Installation

# Main package
npm install @tevm/voltaire@0.2.24

# Effect-TS integration
npm install voltaire-effect@0.2.24

Full Changelog

v0.2.23...v0.2.24

v0.2.23

28 Jan 06:55

Choose a tag to compare

What's Changed

  • chore: bump version to 0.2.23 (94625dc)

Installation

# Main package
npm install @tevm/voltaire@0.2.23

# Effect-TS integration
npm install voltaire-effect@0.2.23

Full Changelog

v0.2.22...v0.2.23

v0.2.18

28 Jan 04:08

Choose a tag to compare

What's Changed

  • chore: bump version to 0.2.18 (93df896)
  • πŸ› fix: Make voltaire-effect publish optional (a046469)

Installation

# Main package
npm install @tevm/voltaire@0.2.18

# Effect-TS integration
npm install voltaire-effect@0.2.18

Full Changelog

v0.2.17...v0.2.18

v0.2.12

14 Jan 22:15

Choose a tag to compare

What's Changed

  • fix wasm loader and bump version to 0.2.12 (5a87984)

Installation

npm install @tevm/voltaire@0.2.12
# or
pnpm add @tevm/voltaire@0.2.12

Full Changelog

v0.2.11...v0.2.12

v0.1.54

14 Jan 08:48

Choose a tag to compare

What's Changed

  • chore: bump version to 0.1.54 (7ab905c)
  • fix: organize imports in bn254/index.ts (09bab38)

Installation

npm install @tevm/voltaire@0.1.54
# or
pnpm add @tevm/voltaire@0.1.54

Full Changelog

v0.1.53...v0.1.54

v0.1.42

06 Jan 00:11

Choose a tag to compare

What's Changed

  • chore: bump version to 0.1.42 (0c6541f)
  • πŸ”§ chore: Increase Keystore test timeouts for CI (0066131)
  • πŸ› fix: Fix CI issues and Transaction.zig y_parity field (5c47070)
  • πŸ› fix: Restore host property declaration and disable EIP-712 example (7080e09)
  • πŸ”§ chore: Fix CI issues (710a641)
  • πŸ”§ chore: Fix lint errors from biome check (11adecd)
  • πŸ”§ chore: Update build.zig.zon fingerprint for Zig 0.15.1 (7794a4c)
  • πŸ› fix: TypeScript errors and remove console.warn from library code (1d2692b)
  • πŸŽ‰ feat: Add Block.calculateHash() for PoS blocks (#271) (1eda429)
  • πŸ› fix: MerkleTree proof verification validates proof length (#264) (6f4370f)
  • feat: Add runtime type guards for primitives (isAddress, isSignature, isUint256) (#255) (e9c6e82)
  • Fix #131: Add Storage.from() with 32-byte validation (#249) (cb6e918)
  • πŸŽ‰ feat: Add function selector collision detection (#134) (#246) (4850013)
  • fix(primitives): Add Proof.verify to validate proof format (#243) (25f7a8a)
  • feat: Add Block.fromRpc for JSON-RPC block parsing (#238) (9f158aa)
  • πŸŽ‰ feat: Add Rlp.decodeValue() for direct value decoding (#232) (f6b0ea5)
  • fix: Allow chainId=0 in Authorization per EIP-7702 (#161) (1b38ea9)
  • πŸ› fix: Reject negative values in Hex.fromBigInt (#173) (cd11977)
  • πŸ› fix: Validate strings in Hex.from() (#174) (9dde302)
  • πŸ› fix: Validate CREATE2 salt is exactly 32 bytes (#169) (a5a5608)
  • πŸ› fix: Add explicit big-endian verification tests for Uint.toBytes (#178) (29f386d)
  • πŸ› fix: Add constant-time Bytes comparison for timing attack resistance (#266) (a779d6f)
  • πŸ› fix: Check bounds before truncation in Int32.from() (#180) (d8050a1)
  • πŸ› fix: Add tests for zero signature in Transaction.isSigned() (#182) (7dc069b)
  • πŸ“š docs: Add AES-GCM nonce reuse security warnings and tests (#258) (28be7f5)
  • πŸ”’ fix: Validate HMAC key is not empty (#184) (3e89769)
  • πŸ› fix: Validate RIPEMD160 output buffer size (#187) (87b8419)
  • πŸ› fix: Validate maxPriorityFeePerGas <= maxFeePerGas (#189) (2cc73d5)
  • πŸ› fix: Use RLP encoding in contract address calculation (#198) (33ef57e)
  • πŸ› fix: Correct fee bump calculation in Transaction.replaceWith() (#192) (1bbc2f3)
  • πŸ› fix: Validate EIP-712 integer values fit declared bit width (#194) (70f5fd3)
  • πŸ› fix: Support EIP-712 fixed-size arrays (#195) (44f3acc)
  • πŸ› fix: Expand tuple types in ABI.getSignature() (#197) (525cfee)
  • πŸ› fix: Add EIP-55 all-caps and all-lowercase test vectors (#191) (5abbe2c)
  • πŸ› fix: Verify ABI decoding handles dynamic type offsets correctly (#225) (79461b9)
  • πŸ› fix: Prevent blob gas price underflow (EIP-4844) (#206) (7df1446)
  • πŸ› fix: Validate KZG proof is exactly 48 bytes (#213) (8c2bc02)
  • πŸ§ͺ test: Add explicit verification that selector = keccak256[0:4] (#215) (dd5b05c)
  • βœ… test: Add comprehensive EIP-2930 access list serialization tests (#216) (6cfbdae)
  • πŸ› fix: Verify BLS signature aggregation is order-independent (#218) (e37c020)
  • πŸ› fix: Verify bloom filter has no false negatives (#223) (ad11ca1)
  • πŸ› fix: Verify Uint256.dividedBy works for large divisors (#224) (5421b44)
  • πŸ› fix: Verify legacy Transaction.hash() RLP encoding (#229) (d88a028)
  • πŸ› fix: Verify RLP.encode handles empty nested arrays (#230) (bb4f625)
  • fix: Support anonymous event parsing in ABI decodeLog and parseLogs (#242) (b0bc7a3)
  • πŸ› fix: Implement EIP-2098 compact signature format for Secp256k1 (#239) (68cac27)
  • πŸ› fix: Validate input length in PublicKey.compress() (#240) (462cfa2)
  • πŸ› fix: Complete HDWallet derivation path validation (#251) (8b4505e)
  • fix(eip712): validate EIP712Domain field types (#273) (00685f5)
  • πŸ› fix: Reject SSZ boolean values > 1 (#286) (22e45e2)
  • fix: Validate topics as 32-byte hashes in EventLog.from() (#277) (8721a7d)
  • πŸ› fix: Validate EIP-4844 blob versioned hash version byte (0x01) (#287) (f18a76f)
  • πŸ› fix: Validate PBKDF2 iteration count in Keystore (#257) (0c71400)
  • fix(bytes): preserve at least one byte for all-zero arrays in trimLeft (#252) (256cd5f)
  • πŸ› fix: Validate WithdrawalIndex is uint64 per EIP-4895 (#250) (ae9e739)
  • πŸ› fix(ssz): Add range validation for uint8/16/32 encoding (#279) (bf4c67e)
  • πŸ› fix: Validate ABI-encoded address padding bytes are zeros (#282) (2767f54)
  • πŸ› fix(BlockHash): Return copy from fromBytes instead of reference (#284) (69c74d0)
  • πŸ› fix: Export Hex.concat() from public API (#231) (301552f)
  • πŸ› fix: Export ZERO_ADDRESS constant from Address module (#233) (c013567)
  • πŸ› fix: Add missing console.warn in Uint64.toNumber empty if-block (#283) (1305302)
  • docs: Add comprehensive JSDoc to Address and Hex public APIs (#268) (fb054b2)
  • πŸ“š docs: Document why Address requires explicit keccak256 (#235) (1299043)
  • πŸ“š docs: Clarify Address constructor patterns (#234) (45ef165)
  • πŸ§ͺ test: Add viem cross-validation for legacy transaction hash (#276) (f4f60a7)
  • πŸ§ͺ test: Document ECDSA v value validation for invalid recovery IDs (#274) (394f8d7)
  • πŸ§ͺ test: Document Keccak256.hash() always returns copy not reference (#272) (35833aa)
  • πŸ§ͺ test: Add comprehensive dynamic type offset handling tests for ABI decoding (#270) (1057fed)
  • test(Hex): Add comprehensive negative index tests for slice() (#269) (e494e59)
  • test(Transaction): verify EIP-2930 access list serialization (closes #120) (#256) (28d51c2)
  • πŸ“ docs: Add byte boundary tests for selector calculation (closes #122) (#254) (1b44998)
  • test: Add regression tests for indexed event parameter decoding (#253) (777e4be)
  • βœ… test: Add MAX_SAFE_INTEGER edge case tests for Hex.fromNumber (#247) (730ad84)
  • Merge pull request #262 from evmts/fix/issue-113-chainid (2b7bbc6)
  • Merge pull request #162 from evmts/fix/issue-56-receipt-status-zero (e416928)
  • Merge pull request #275 from evmts/fix/issue-96-hex-pad (d61d989)
  • Merge pull request #278 from evmts/fix/issue-88-accesslist (ff1332c)
  • Merge pull request #281 from evmts/fix/issue-78-effectivegasprice (179b9c7)
  • Merge pull request #167 from evmts/fix/issue-98-bytes32-oversized-validation (8f877c3)
  • Merge pull request #176 from evmts/fix/issue-105-hex-slice-negative (6112674)
  • Merge pull request #265 from evmts/fix/issue-110-bloom-filter (58cfdc8)
  • Merge pull request #160 from evmts/fix/issue-80-denomination-negative-values (9300167)
  • Merge pull request #261 from evmts/fix/issue-114-iscontract (5e36a44)
  • Merge pull request #165 from evmts/fix/issue-150-wei-fromether-decimals (21a7010)
  • πŸ› fix: Prevent negative values from getEffectiveGasPrice (#78) (9f8488d)
  • πŸ› fix: Validate storage keys in AccessList.from() (9bfb9e2)
  • πŸ› fix: Validate size parameter in Hex.pad and Hex.padRight (3077084)
  • Merge pull request #244 from evmts/fix/issue-136-uint-tobytes (6de9d24)
  • Merge pull request #267 from evmts/fix/issue-108-uint256-divide (99cf21c)
  • test(Uint256): add large divisor tests for dividedBy (3c06d9c)
  • Merge pull request #241 from evmts/fix/issue-140-bytes-compare (2874a38)
  • Merge pull request #236 from evmts/fix/issue-147-checksum-case (fe5702e)
  • Merge pull request #237 from evmts/fix/issue-146-domain-caching (d483afa)
  • Merge pull request #245 from evmts/fix/issue-135-ripemd160-length (9822d84)
  • Merge pull request #248 from evmts/fix/issue-132-basefee-overflow (694b941)
  • Merge pull request #263 from evmts/fix/issue-112-nonce-negative (c4c2ab5)
  • Merge pull request #259 from evmts/fix/issue-116-bls-aggregation (b25ef69)
  • Merge pull request #260 from evmts/fix/issue-115-wei-toether (582043c)
  • πŸ› fix: Use Keccak-256 for BloomFilter hash per Ethereum Yellow Paper (73b6915)
  • πŸ”§ fix: Rename package to primitives (b7af625)
  • πŸ”§ fix: Pin Zig dependencies to commit hashes (ccf5d75)
  • πŸ§ͺ test: Document Nonce validation rejects negative values (6398ceb)
  • πŸŽ‰ feat: Add known chain validation to ChainId (f4c89ba)
  • ✨ feat(Address): Implement IsContract factory for contract detection (b978e92)
  • βœ… test: Add precision tests for Wei.toEther() (fixes #115) (b5c5a14)
  • πŸ§ͺ test: Add commutativity tests for BLS12-381 aggregation (644ad4e)
  • πŸ§ͺ test: Add overflow safety tests for base fee calculation (27b53f4)
  • πŸ“ docs: Add tests documenting RIPEMD160 20-byte output is type-enforced (5a3339a)
  • βœ… test: Add Ethereum big-endian compatibility tests for Uint.toBytes (2bda3be)
  • πŸ“ docs: Specify Bytes.compare() return value semantics (9c6037a)
  • πŸ“ test: Document domain separator has no caching (closes #146) (28622f3)
  • test: Add EIP-55 case sensitivity edge case tests for isValidChecksum (Issue #147) (8b15294)
  • Merge pull request #204 from evmts/fix/issue-144-hex-tobigint-signed (8b240ae)
  • Merge pull request #155 from evmts/fix/issue-95-bytes-concat-empty-array (592aac0)
  • Merge pull request #207 from evmts/fix/issue-126-scrypt-cost-validation (e8e0891)
  • πŸ› fix: Validate Scrypt N is power of 2 (337cda4)
  • πŸŽ‰ feat: Add signed option to Hex.toBigInt() (f78ada6)
  • πŸ› fix: Support negative indices in Hex.slice() (d228798)
  • πŸ§ͺ test: Add explicit tests for Bytes32.from() size validation (8e02ed5)
  • πŸ› fix: Parse decimal strings in Wei.fromEther and related conversions (8a0f89b)
  • πŸ› fix: Accept status=0 in Receipt.from() for failed transactions (ed5f0ae)
  • πŸ› fix: Reject negative values in Wei/Ether/Gwei constructors (6990488)
  • πŸ› fix: Handle empty array in Bytes.concat (1f951dd)
  • πŸ”§ chore: Add ghost test files and remove empty gitkeep files (2830187)

Installation

npm install @tevm/voltaire@0.1.42
# or
pnpm add @tevm/voltaire@0.1.42

Full Changelog

v0.1.41...v0.1.42

v0.1.40

31 Dec 08:23

Choose a tag to compare

What's Changed

  • fix(lint): auto-fix lint errors and bump to 0.1.40 (e8860be)

Installation

npm install @tevm/voltaire@0.1.40
# or
pnpm add @tevm/voltaire@0.1.40

Full Changelog

v0.1.39...v0.1.40

v0.1.0 - First Release

25 Oct 19:05

Choose a tag to compare

πŸŽ‰ First Release: v0.1.0

This is the first official release of primitives - Ethereum primitives and cryptographic operations for Zig.

πŸ“¦ Installation

You can now install this package using zig fetch:

# Install specific version (recommended)
zig fetch --save https://github.com/evmts/primitives/archive/refs/tags/v0.1.0.tar.gz

# Install latest from main branch
zig fetch --save git+https://github.com/evmts/primitives

πŸ“š Usage

After fetching, add to your build.zig:

const primitives = b.dependency("guillotine_primitives", .{
    .target = target,
    .optimize = optimize,
});

// Add the modules you need:
exe.root_module.addImport("primitives", primitives.module("primitives"));
exe.root_module.addImport("crypto", primitives.module("crypto"));
exe.root_module.addImport("precompiles", primitives.module("precompiles"));

πŸ”§ Features

Primitives Module

  • uint256: 256-bit unsigned integers for Ethereum
  • Address: Ethereum address type with validation
  • Hex: Hex encoding/decoding utilities
  • RLP: Recursive Length Prefix encoding/decoding
  • ABI: Ethereum ABI encoding/decoding
  • Transactions: Ethereum transaction types and operations
  • Logs: Ethereum event log handling

Crypto Module

  • Keccak-256: Ethereum's hashing algorithm
  • secp256k1: ECDSA signature operations
  • BLS12-381: BLS signature operations (via blst)
  • BN254: Elliptic curve operations for zkSNARKs
  • KZG: KZG commitments (EIP-4844)
  • SHA256, RIPEMD160, Blake2: Additional hash functions

Precompiles Module

  • EIP-152: Blake2 compression function
  • EIP-196/197: BN254 elliptic curve operations
  • EIP-4844: KZG point evaluation

⚠️ Important Notes

  • Mission-critical cryptographic infrastructure - reviewed but use at your own risk
  • Requires Zig 0.15.1 or later
  • Some crypto implementations are marked as "unaudited" - use production-audited alternatives where available

πŸ“– Documentation

See the README for detailed documentation and examples.


πŸ€– Generated with Claude Code

Note: This action was performed by Claude AI assistant, not @roninjin10 or @fucory