Skip to content

Developer Preview – 2025-07-01

Choose a tag to compare

@github-actions github-actions released this 02 Jul 11:20
· 454 commits to devel since this release

🚀 Features

  • metadata:
    • New metadata account storage with ownership model for evm/svm/wasm runtimes (@dmitry123)
    • Re-implement svm storage using metadata API (@bfday)
  • genesis-upgrade:
    • Add update account code by auth feature (@b33ngo)
  • wasm-runtime:
  • eip2935:
    • EIP-2935 implementation, e2e tests, and cleanup (@bfday)
  • erc20:
    • Native wasm-driven universal ERC20 token standard with plugins support (@bfday)
    • Added processing of ERC20_MAGIC_BYTES into make_create_frame (@bfday)
    • Warmup precompiles before benchmarking (@bfday)
    • Additional tests and optimizations, plugin disable, bug fixes, LE endianess switch, error handling, modularization, benchmarking, better performance, reduced size, and native ser/deser (@bfday)
  • builtins-fuel:
    • Add fuel builtins for imported functions (@xozzslip)
    • Add flag for emitting builtins fuel procedures (@xozzslip)
  • build:
    • Return custom paths for cargo:rerun-if-changed (@bfday)
    • Docker-based reproducible builds with artifact generation (@d1r1)
  • svm:
    • Unified block env creation, block propagation, balance settlement, debug_log split, contract test coverage, import optimizations, extended code size, error/output stringification, warnings cleanup, test toggles, and more integration with AddrType (@bfday)
  • runtime/transaction:
    • Add method for resetting call id; reset call id before each transaction (@xozzslip)
  • wasmtime:
    • Migrate system builtins to the new version of rwasm with updated context management system (@dmitry123)
    • Use unified wasmtime compilation config, migrate runtime to the new rwasm and updated caller, integrated new wasmtime execution model, optimized running evm e2e testing suite, temporarily disabled failing tests (@dmitry123)
    • New rwasm with new wasmtime compiler & executor (@dmitry123)
  • test:
    • Multicall tests now enabled with new Wasmtime-based implementation (@xozzslip)

🐞 Bug Fixes

  • rwasm/vm/stack-overflow:
    • Investigate and fix stack overflow issues, update to fixed rwasm version (@dmitry123)
  • revm:
    • Run e2e tests with wasmtime enabled, fix artifact movement and CI versioning for sub-crates (@dmitry123)
  • codec/metadata:
    • Migrate codec to BufMut, fix metadata create syscall input size (@dmitry123)
  • svm:
    • Fix protected storage slot verification, block propagation, max code size logic, warnings, missing docs, and unused structs (@dmitry123, @bfday)
  • runtime/rwasm:
    • Fix reading/writing stack params for fuel system calls, gas calculation for missing memory grow ops, support shared buffer for rwasm calls, fix syncing sp pointer between system calls (@dmitry123)
  • deps/build:
    • Update revm, fix alloy deps compilation, fix missing SDK features in tests (@dmitry123, @bfday)
  • misc:
    • Fix incorrect input size for metadata create syscall, mark fuzz tests ignored, improve lcov merging, update lcov gen and makefile targets, prevent makefile crash on wasm2wat conversion failure (@dmitry123, @bfday)

🛠 Refactoring

  • metadata/contract:
    • Metadata syscalls and fix missing keccak256 native mapping, move contract into one crate, fix eip2935 exit error (@dmitry123)
  • erc20/build:
    • Move ERC20 logic to separate crate, optimize code, reproducible docker builds (@bfday, @d1r1)
  • ci/infrastructure:
    • Switch runners, update pipeline, submodule fetch, artifact cleanup, increase timeouts, clean space before builds (@dmitry123, @d1r1)

🧹 Chores

  • deps/actions:
    • Bump docker/build-push-action, actions/delete-package-versions (@dependabot)
    • Upgrade revm, remove legacy storage and preimage syscalls, derive Default for BlockContextV1, enable wasmtime for e2e tests, rename testing folders, tweak exit/panic interfaces (@dmitry123)

⚡️ Performance

  • tests:
    • Replace genesis caches with precompiled data, speeding up e2e test execution by 5–6x (@dmitry123)

What's Changed

  • feat(rwasm): migrating rwasm to the latest version by @dmitry123 in #110
  • feat(svm): system precompiles for svm support (mvp) by @bfdays in #111
  • docs: update broken doc link in storage.md by @JayeTurn in #109
  • feat(build): add docker-based reproducible builds with artifact generation by @d1r1 in #112
  • feat(new-wasmtime): new rwasm with new wasmtime compiler & executor by @dmitry123 in #118
  • ci: clean space before builds by @dmitry123 in #120
  • feat(erc20): native wasm-driven universal ERC20 token standard with plugins support by @bfdays in #115
  • feat(eip2935): eip2935 implementation by @bfdays in #117
  • feat(builtins-fuel): add fuel builtins for imported functions by @xozzslip in #119
  • ci: change default runner by @dmitry123 in #124
  • feat(genesis-upgrade): add update account code by auth feature by @b33ngo in #116
  • chore(deps): bump actions/delete-package-versions from 4 to 5 by @dependabot in #113
  • chore(deps): bump docker/build-push-action from 5 to 6 by @dependabot in #114
  • feat(metadata): new metadata account storage with ownership model for evm/svm/wasm runtimes by @dmitry123 in #125
  • refactor(sdk): change interfaces for exit/panic methods by @dmitry123 in #127
  • feat(svm): re-implement svm storage using metadata api by @bfdays in #126
  • fix(rwasm): investigating issue with stack overflow by @dmitry123 in #128
  • feat(runtime): add method for resetting call id by @xozzslip in #129

New Contributors

Full Changelog: v0.2.1-dev...v0.3.0-dev