This release focuses on reliability, compatibility, and performance:
- Runtime stability: Fixes node crashes, bridge-related block failures, and malformed-input handling.
- EVM and SDK correctness: Improves gas accounting, Solidity ABI compatibility, and contract routing.
- Performance: Upgrades to rWasm 0.6.0 and reduces execution overhead.
- Release security: Strengthens build provenance, publishing controls, and regression coverage.
What's Changed
- ci: run coverage weekly and on demand by @dmitry123 in #518
- docs: clarify rWasm trap handling and panic invariants by @dmitry123 in #521
- fix(runtime): meter output during compilation by @dmitry123 in #522
- docs(compatibility): document EIP-7825 divergence by @hedwig0x in #523
- fix(codec): encode zero-valued ABI integers canonically by @dmitry123 in #524
- fix: harden latent host panic paths by @dmitry123 in #530
- docs(revm): document accepted buffered effect gas policy by @dmitry123 in #532
- fix(node): prevent silent RPC consensus follower stalls by @dmitry123 in #528
- fix(runtime): bound system runtime envelope decoding by @dmitry123 in #529
- fix(codec): restore Solidity ABI conformance after history reset by @dmitry123 in #533
- fix(evm-e2e): build fluentbase-genesis with one codegen unit by @dmitry123 in #535
- fix(runtime): recover module cache from poisoned lock instead of panicking by @dmitry123 in #534
- refactor(codec): share Solidity struct header sizing by @dmitry123 in #525
- fix(sdk-derive): map [u8; N] to uint8[N] and reject fixed bytes wider than bytes32 by @dmitry123 in #536
- fix(runtime): validate system upgrades across both backends by @dmitry123 in #531
- fix: resolve the LOW findings of the 2026-09-02 audit by @dmitry123 in #538
- fix(revm): halt system runtime traps instead of panicking the node by @dmitry123 in #537
- refactor(runtime): cut host-side overhead on the wasmtime hot path by @dmitry123 in #539
- refactor: group the test suites under e2e/ by @dmitry123 in #541
- build(deps): bump rwasm to 0.5.0 by @dmitry123 in #540
- fix(evm-e2e): replay fixtures with the node's precompile warm set by @dmitry123 in #542
- docs: rework the root README by @dmitry123 in #543
- docs: bring the examples and contracts READMEs in line with the tree by @dmitry123 in #544
- fix(runtime): bound the module cache code-hash index by @dmitry123 in #526
- fix(evm): allow CALLCODE with value inside static calls by @dmitry123 in #545
- fix(contracts): drop static fees from engine-metered system runtimes by @dmitry123 in #546
- fix(evm): correct empty bytecode and GASPRICE with current state tests by @dmitry123 in #547
- fix: follow-ups from the 2026-09-11 e2e audit by @dmitry123 in #548
- fix(revm): skip bridge credit on balance overflow instead of failing the block by @dmitry123 in #550
- fix: follow-ups from the 2026-09-11 audit round 2 (FLU-1388) by @dmitry123 in #551
- fix: correct codec layouts and historical testnet rules by @dmitry123 in #552
- build(deps): bump rwasm to 0.6.0 by @dmitry123 in #556
Full Changelog: v1.4.2...v1.5.0
All Changes
- chore: bump version to 1.5.0
- build(deps): bump rwasm to 0.6.0 (#556)
- fix: correct codec layouts and historical testnet rules (#552)
- fix: follow-ups from the 2026-09-11 audit round 2 (FLU-1388) (#551)
- fix(revm): skip bridge credit on balance overflow instead of failing the block (#550)
- fix: follow-ups from the 2026-09-11 e2e audit (#548)
- fix(evm): correct empty bytecode and GASPRICE with current state tests (#547)
- fix(contracts): drop static fees from engine-metered system runtimes (#546)
- fix(evm): allow CALLCODE with value inside static calls (#545)
- fix(runtime): bound the module cache code-hash index (#526)
- docs: bring the examples and contracts READMEs in line with the tree (#544)
- docs: rework the root README (#543)
- fix(evm-e2e): replay fixtures with the node's precompile warm set (#542)
- build(deps): bump rwasm to 0.5.0 (#540)
- refactor: group the test suites under e2e/ (#541)
- refactor(runtime): cut host-side overhead on the wasmtime hot path (#539)
- fix(revm): halt system runtime traps instead of panicking the node (#537)
- fix: resolve the LOW findings of the 2026-09-02 audit (#538)
- fix(runtime): validate system upgrades across both backends (#531)
- fix(sdk-derive): map [u8; N] to uint8[N] and reject fixed bytes wider than bytes32 (#536)
- refactor(codec): share Solidity struct header sizing (#525)
- fix(runtime): recover module cache from poisoned lock instead of panicking (#534)
- fix(evm-e2e): build fluentbase-genesis with one codegen unit (#535)
- fix(codec): restore Solidity ABI conformance after history reset (#533)
- fix(runtime): bound system runtime envelope decoding (#529)
- fix(node): prevent silent RPC consensus follower stalls (#528)
- docs(revm): document accepted buffered effect gas policy (#532)
- fix: harden latent host panic paths (#530)
- fix(codec): encode zero-valued ABI integers canonically (#524)
- docs(compatibility): document EIP-7825 divergence (#523)
- fix(runtime): meter output during compilation (#522)
- docs: clarify trap handling and panic invariants (#521)
- ci: run coverage weekly and on demand (#518)