├── .github └── workflows │ └── ci.yml ├── .gitignore ├── .gitmodules ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── Makefile ├── README.md ├── bench_results.py ├── deployment_benchmarks_sources ├── factorial_it.sol ├── factorial_rec.sol ├── fibonacci_it.sol ├── fibonacci_rec.sol ├── heap_read_write.sol └── send.sol ├── docs ├── general.md ├── introduction.md ├── opcodes.md └── zksync-era-integration.md └── src ├── address_operands.rs ├── call_frame.rs ├── eravm_error.rs ├── execution.rs ├── heaps.rs ├── lib.rs ├── op_handlers ├── add.rs ├── and.rs ├── aux_heap_read.rs ├── aux_heap_write.rs ├── context.rs ├── div.rs ├── event.rs ├── far_call.rs ├── fat_pointer_read.rs ├── heap_read.rs ├── heap_write.rs ├── jump.rs ├── log.rs ├── mod.rs ├── mul.rs ├── near_call.rs ├── opcode_decommit.rs ├── or.rs ├── precompile_call.rs ├── ptr_add.rs ├── ptr_pack.rs ├── ptr_shrink.rs ├── ptr_sub.rs ├── ret.rs ├── shift.rs ├── sub.rs ├── unimplemented.rs └── xor.rs ├── opcode.rs ├── output.rs ├── precompiles ├── ecrecover.rs ├── keccak256.rs ├── mod.rs ├── secp256r1_verify.rs └── sha256.rs ├── ptr_operator.rs ├── rollbacks.rs ├── state.rs ├── statistics.rs ├── store.rs ├── tracers ├── blob_saver_tracer.rs ├── last_state_saver_tracer.rs ├── mod.rs ├── no_tracer.rs ├── print_tracer.rs ├── state_saver_tracer.rs └── tracer.rs ├── utils.rs ├── value.rs └── vm.rs /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/.gitignore -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/.gitmodules -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/Makefile -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/README.md -------------------------------------------------------------------------------- /bench_results.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/bench_results.py -------------------------------------------------------------------------------- /deployment_benchmarks_sources/factorial_it.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/deployment_benchmarks_sources/factorial_it.sol -------------------------------------------------------------------------------- /deployment_benchmarks_sources/factorial_rec.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/deployment_benchmarks_sources/factorial_rec.sol -------------------------------------------------------------------------------- /deployment_benchmarks_sources/fibonacci_it.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/deployment_benchmarks_sources/fibonacci_it.sol -------------------------------------------------------------------------------- /deployment_benchmarks_sources/fibonacci_rec.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/deployment_benchmarks_sources/fibonacci_rec.sol -------------------------------------------------------------------------------- /deployment_benchmarks_sources/heap_read_write.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/deployment_benchmarks_sources/heap_read_write.sol -------------------------------------------------------------------------------- /deployment_benchmarks_sources/send.sol: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/deployment_benchmarks_sources/send.sol -------------------------------------------------------------------------------- /docs/general.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/docs/general.md -------------------------------------------------------------------------------- /docs/introduction.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/docs/introduction.md -------------------------------------------------------------------------------- /docs/opcodes.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/docs/opcodes.md -------------------------------------------------------------------------------- /docs/zksync-era-integration.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/docs/zksync-era-integration.md -------------------------------------------------------------------------------- /src/address_operands.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/address_operands.rs -------------------------------------------------------------------------------- /src/call_frame.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/call_frame.rs -------------------------------------------------------------------------------- /src/eravm_error.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/eravm_error.rs -------------------------------------------------------------------------------- /src/execution.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/execution.rs -------------------------------------------------------------------------------- /src/heaps.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/heaps.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/op_handlers/add.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/add.rs -------------------------------------------------------------------------------- /src/op_handlers/and.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/and.rs -------------------------------------------------------------------------------- /src/op_handlers/aux_heap_read.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/aux_heap_read.rs -------------------------------------------------------------------------------- /src/op_handlers/aux_heap_write.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/aux_heap_write.rs -------------------------------------------------------------------------------- /src/op_handlers/context.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/context.rs -------------------------------------------------------------------------------- /src/op_handlers/div.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/div.rs -------------------------------------------------------------------------------- /src/op_handlers/event.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/event.rs -------------------------------------------------------------------------------- /src/op_handlers/far_call.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/far_call.rs -------------------------------------------------------------------------------- /src/op_handlers/fat_pointer_read.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/fat_pointer_read.rs -------------------------------------------------------------------------------- /src/op_handlers/heap_read.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/heap_read.rs -------------------------------------------------------------------------------- /src/op_handlers/heap_write.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/heap_write.rs -------------------------------------------------------------------------------- /src/op_handlers/jump.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/jump.rs -------------------------------------------------------------------------------- /src/op_handlers/log.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/log.rs -------------------------------------------------------------------------------- /src/op_handlers/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/mod.rs -------------------------------------------------------------------------------- /src/op_handlers/mul.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/mul.rs -------------------------------------------------------------------------------- /src/op_handlers/near_call.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/near_call.rs -------------------------------------------------------------------------------- /src/op_handlers/opcode_decommit.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/opcode_decommit.rs -------------------------------------------------------------------------------- /src/op_handlers/or.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/or.rs -------------------------------------------------------------------------------- /src/op_handlers/precompile_call.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/precompile_call.rs -------------------------------------------------------------------------------- /src/op_handlers/ptr_add.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/ptr_add.rs -------------------------------------------------------------------------------- /src/op_handlers/ptr_pack.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/ptr_pack.rs -------------------------------------------------------------------------------- /src/op_handlers/ptr_shrink.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/ptr_shrink.rs -------------------------------------------------------------------------------- /src/op_handlers/ptr_sub.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/ptr_sub.rs -------------------------------------------------------------------------------- /src/op_handlers/ret.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/ret.rs -------------------------------------------------------------------------------- /src/op_handlers/shift.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/shift.rs -------------------------------------------------------------------------------- /src/op_handlers/sub.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/sub.rs -------------------------------------------------------------------------------- /src/op_handlers/unimplemented.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/unimplemented.rs -------------------------------------------------------------------------------- /src/op_handlers/xor.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/op_handlers/xor.rs -------------------------------------------------------------------------------- /src/opcode.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/opcode.rs -------------------------------------------------------------------------------- /src/output.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/output.rs -------------------------------------------------------------------------------- /src/precompiles/ecrecover.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/precompiles/ecrecover.rs -------------------------------------------------------------------------------- /src/precompiles/keccak256.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/precompiles/keccak256.rs -------------------------------------------------------------------------------- /src/precompiles/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/precompiles/mod.rs -------------------------------------------------------------------------------- /src/precompiles/secp256r1_verify.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/precompiles/secp256r1_verify.rs -------------------------------------------------------------------------------- /src/precompiles/sha256.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/precompiles/sha256.rs -------------------------------------------------------------------------------- /src/ptr_operator.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/ptr_operator.rs -------------------------------------------------------------------------------- /src/rollbacks.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/rollbacks.rs -------------------------------------------------------------------------------- /src/state.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/state.rs -------------------------------------------------------------------------------- /src/statistics.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/statistics.rs -------------------------------------------------------------------------------- /src/store.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/store.rs -------------------------------------------------------------------------------- /src/tracers/blob_saver_tracer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/tracers/blob_saver_tracer.rs -------------------------------------------------------------------------------- /src/tracers/last_state_saver_tracer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/tracers/last_state_saver_tracer.rs -------------------------------------------------------------------------------- /src/tracers/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/tracers/mod.rs -------------------------------------------------------------------------------- /src/tracers/no_tracer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/tracers/no_tracer.rs -------------------------------------------------------------------------------- /src/tracers/print_tracer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/tracers/print_tracer.rs -------------------------------------------------------------------------------- /src/tracers/state_saver_tracer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/tracers/state_saver_tracer.rs -------------------------------------------------------------------------------- /src/tracers/tracer.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/tracers/tracer.rs -------------------------------------------------------------------------------- /src/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/utils.rs -------------------------------------------------------------------------------- /src/value.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/value.rs -------------------------------------------------------------------------------- /src/vm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lambdaclass/era_vm/HEAD/src/vm.rs --------------------------------------------------------------------------------