PrecompileWithAddressis renamed toPrecompileand it became a struct.PrecompilecontainsPrecompileId,Addressand function.- The reason is adding
PrecompileIdas it is needed for fusaka hardfork
Forward compatible version.
SystemCallEvmfunctions got renamed and old ones are deprecated. Renaming is done to align it with other API calls.transact_system_call_finalizeis nowsystem_call.transact_system_callis nowsystem_call_one.
ExtBytecode::regenerate_hashgot deprecated in support forget_or_calculate_hashorcalculate_hash.- Precompiles:
- Bn128 renamed to Bn254. ethereum/EIPs#10029 (comment)
InstructionResultnow starts from 1 (previous 0) for perf purposes.- In
JournalInnerpreviousprecompiles,warm_coinbase_addressandwarm_preloaded_addressespub fields are now moved towarm_addressesto encapsulate addresses that are warm by default. All access list account are all loaded from database.
ContextTrgainedHostsupertrait.- Previously Host was implemented for any T that has ContextTr, this restricts specializations. bluealloy#2732
Hostis moved torevm-context-interface- If you custom struct that implement
ContextTryou would need to manually implementHosttrait, in most cases no action needed.
- In
revm-interpreter, fncast_slice_to_u256was removed andpush_slicefn is added toStackTrait. PrecompileOutputnow contains revert flag.- It is safe to put to false.
- In
kzgandblake2modules few internal functions were made private or removed.
- Inspector fn
step_endis now called even if Inspectorstepsets the action. Previously this was not the case.- bluealloy#2687
- this additionally fixes panic bug where
bytecode.opcode()would panic instep_end
- Removal of
EvmData.- It got flattened and ctx/inspector fields moved directly to Evm, additional layering didn't have purpose.
- Merging of
Handler'svalidate_tx_against_stateanddeduct_callerinto one functionvalidate_against_state_and_deduct_caller- If you dont override those functions there is no action. If you do please look at
pre_execution::validate_against_state_and_deduct_callerfunction orOpHandlerfor examples of migration.
- If you dont override those functions there is no action. If you do please look at
- Breaking changed for EOF to support eof-devnet1.
SharedMemoryis not longer Rc<RefCell<>> and internally uses Rc<RefCell<Vec>> buffer.- No action if you dont use it inside Interpreter.
- In
JournalExtfnlast_journal_mut()is renamed tojournal_mut() - EOF is disabled from Osaka and not accessible.
No breaking changes
- No code breaking changes
- alloy-primitives bumped to v1.0.0 and we had a major bump because of it.