Skip to content

v0.1.42

Choose a tag to compare

@github-actions github-actions released this 06 Jan 00:11
· 169 commits to main since this release

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