Skip to content

Add EVMC_MONAD revsion changes to the VM#32

Open
goodlyrottenapple wants to merge 7 commits into
v0.15.0-categoryfrom
sam/monad_rev
Open

Add EVMC_MONAD revsion changes to the VM#32
goodlyrottenapple wants to merge 7 commits into
v0.15.0-categoryfrom
sam/monad_rev

Conversation

@goodlyrottenapple

@goodlyrottenapple goodlyrottenapple commented Oct 2, 2025

Copy link
Copy Markdown

These are all the monad changes to date and the changes applied to the VM (if applicable) for each item:

  • Code size

    • MONAD_TWO: increase max code size to 128k
      replaced single contant MAX_CODE_SIZE in lib/evmone/constants.hpp with ETHEREUM_MAX_CODE_SIZE/MONAD_MAX_CODE_SIZE, setting MONAD_MAX_CODE_SIZE to 128 * 1024
  • Initcode size

    • MONAD_FOUR: increase max initcode size to 256k
      replaced single contant MAX_INITCODE_SIZE in lib/evmone/constants.hpp with ETHEREUM_MAX_INITCODE_SIZE/MONAD_MAX_INITCODE_SIZE, setting MONAD_MAX_INITCODE_SIZE to 2 * MONAD_MAX_CODE_SIZE
  • Reserve balance

    • MONAD_FOUR: reserve balance system; changes to txn validation around dipping
      N/A to the VM
  • System txns

    • MONAD_FOUR: system txns can be originated; changes to txn validation + block inclusion
      N/A to the VM
  • Staking precompile

    • MONAD_FOUR: precompile becomes active
      N/A to the VM
  • Refunds

    • MONAD_ONE: disable refunds
      N/A to the VM
  • Storage repricing

    • MONAD_FIVE: increase cold storage costs
      renamed cold_sload_cost to cold_sload_cost_ethereum and cold_account_access_cost to cold_account_access_cost_ethereum and added new constants cold_sload_cost_monad and cold_account_access_cost_monad in lib/evmone/instructions_traits.hpp
  • Precompile repricing

    • MONAD_FIVE: increase select precompile costs
      N/A to the VM
  • CREATE repricing

    • MONAD_FIVE: increase static and per-byte costs for CREATE opcodes
      N/A happens in the host
  • Create inside delegated

    • All (n.b. only meaningful from MONAD_FOUR because of Prague activation): disable opcodes when executing delegated calls
      Added check to create_impl in lib/evmone/instructions_calls.cpp, calling get_delegate_address which is equivalent to resolve_delegation in monad

@goodlyrottenapple goodlyrottenapple force-pushed the sam/monad_rev branch 2 times, most recently from 4113c2b to 11d84f2 Compare November 25, 2025 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant