Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge next to master #237

Merged
merged 48 commits into from
Nov 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
b73c33c
Introduce the concept of Etable in core (#186)
sorpaas Oct 29, 2023
4808cc8
No need to store exit reasons or return ranges (#187)
sorpaas Oct 29, 2023
456f0ba
Init evm-interpreter and only pass etable on step @sorpaas (#188)
sorpaas Nov 2, 2023
ef4d69d
Finish combining `evm-core` and `evm-runtime` (#189)
sorpaas Nov 3, 2023
d80f5ce
Implement Etable::wrap (#190)
sorpaas Nov 3, 2023
05ceda6
Add another Etable::wrap example for dyn fns (#191)
sorpaas Nov 3, 2023
cf51618
Initial refactoring of gasometer (#192)
sorpaas Nov 4, 2023
2046cfa
Improve trapping design (#193)
sorpaas Nov 4, 2023
4f1c6b6
Adopt Call/Create to use the new trapping design (#194)
sorpaas Nov 4, 2023
17632f9
Revert new trapping design #193 and #194 (#195)
sorpaas Nov 5, 2023
03eff1a
Make runtime opcode handler generic over `S` and add missing gasomete…
sorpaas Nov 5, 2023
0f30b61
Tweak gasometer interface (#197)
sorpaas Nov 5, 2023
f037c56
Improve stack checking (#198)
sorpaas Nov 5, 2023
157df36
Small indentation fix (#199)
sorpaas Nov 6, 2023
0924e66
New implementation for callcreate trap (#200)
sorpaas Nov 6, 2023
b9f6be0
New callstack implementation (#201)
sorpaas Nov 6, 2023
2337db3
Hybrid call stack (#202)
sorpaas Nov 7, 2023
659f4f8
Refactor: consistent params and generics order (#203)
sorpaas Nov 7, 2023
48ff83a
Add a new usability test and some naming changes (#204)
sorpaas Nov 7, 2023
729f149
Refactor: GasedMachine (#205)
sorpaas Nov 7, 2023
5ec9288
Reverse the order of backend and is_static in gasometer (#206)
sorpaas Nov 7, 2023
7d133f2
Implement standard invoker (#207)
sorpaas Nov 8, 2023
b15f4b7
Implement basic transact_call (#208)
sorpaas Nov 8, 2023
4520fa6
Reimplementation of jsontests in Apache-2 license (#209)
sorpaas Nov 10, 2023
a7dd2bf
Move origin and gas price into transaction context (#210)
sorpaas Nov 10, 2023
a9ca4ba
Implement transact_create and transact_create2 (#211)
sorpaas Nov 10, 2023
bc94954
Integrate jsontests to CI (#212)
sorpaas Nov 10, 2023
9d0a2eb
Refactor invoker with subroutines (#213)
sorpaas Nov 15, 2023
47e371a
jsontests: support multiple files (#214)
sorpaas Nov 15, 2023
1f05d4c
Init tracer and generalize gaosmeter over standard invoker (#215)
sorpaas Nov 16, 2023
5c94026
New Invoker / Callstack (#216)
sorpaas Nov 17, 2023
539a07c
Implement single step for GasedMachine (#217)
sorpaas Nov 18, 2023
7443848
Compliance fix 1 (#218)
sorpaas Nov 18, 2023
9f5645d
Compliance fix 2 (#219)
sorpaas Nov 18, 2023
fc97fb7
Compliance fix 3 (#220)
sorpaas Nov 19, 2023
11e36de
Compilance fix 5 (#221)
sorpaas Nov 19, 2023
dbf6a10
Compilance fix 6 (#224)
sorpaas Nov 20, 2023
0e81a49
Generalize machine run/step in call stack (#226)
sorpaas Nov 20, 2023
b2de609
Implement PrecompileSet trait (#227)
sorpaas Nov 22, 2023
dc364d7
Add all standard precompiles (#228)
sorpaas Nov 22, 2023
c239c9c
Compilance fix 7 (#229)
sorpaas Nov 23, 2023
d58d203
Expose parent machine information in substate creation (#230)
sorpaas Nov 23, 2023
227260f
Make Backend::set_code able to fail (#231)
sorpaas Nov 23, 2023
55965c9
Allow InvokerControl for precompiles (#232)
sorpaas Nov 23, 2023
1fa8518
Analyse code after machine creation (#233)
sorpaas Nov 23, 2023
3b9e87c
Don't use InvokerControl for precompile (#234)
sorpaas Nov 23, 2023
144898b
Implement colored machine (#235)
sorpaas Nov 23, 2023
1ed84b3
Merge branch 'master' into next
sorpaas Nov 24, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 18 additions & 16 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Rust

on:
push:
branches: [ master ]
branches: [ master, next ]
pull_request:
branches: [ master ]
branches: [ master, next ]

env:
CARGO_TERM_COLOR: always
Expand All @@ -16,32 +16,34 @@ jobs:
- uses: actions/checkout@v2
- name: Rustfmt
run: cargo fmt --all -- --check
- name: Clippy
run: cargo clippy --all
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: cargo build --verbose
- name: Build for feature (tracing)
run: cargo build --features tracing --verbose
- name: Run tests
run: cargo test --verbose
jsontests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v2
with:
repository: "rust-blockchain/evm-tests"
submodules: recursive
- name: Submodules
run: |
cd evm
git remote set-url origin "$GITHUB_SERVER_URL/$GITHUB_REPOSITORY"
git fetch origin $GITHUB_SHA
git checkout $GITHUB_SHA
path: jsontests/res/ethtests
repository: ethereum/tests
ref: 428f218d7d6f4a52544e12684afbfe6e2882ffbf
- name: Run tests
run: |
cd jsontests
cargo test --release --verbose
cargo run --release --verbose -p jsontests -- \
jsontests/res/ethtests/GeneralStateTests/stArgsZeroOneBalance/ \
jsontests/res/ethtests/GeneralStateTests/stCodeCopyTest/ \
jsontests/res/ethtests/GeneralStateTests/stExample/ \
jsontests/res/ethtests/GeneralStateTests/stSelfBalance \
jsontests/res/ethtests/GeneralStateTests/stSLoadTest/ \
jsontests/res/ethtests/GeneralStateTests/VMTests/vmArithmeticTest/ \
jsontests/res/ethtests/GeneralStateTests/VMTests/vmBitwiseLogicOperation/ \
jsontests/res/ethtests/GeneralStateTests/VMTests/vmIOandFlowOperations/ \
jsontests/res/ethtests/GeneralStateTests/VMTests/vmLogTest/ \
jsontests/res/ethtests/GeneralStateTests/VMTests/vmTests/

4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,6 @@
target
**/result
tests.bin
Cargo.lock
Cargo.lock
perf.data
perf.data.old
37 changes: 10 additions & 27 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "evm"
version = "0.41.0"
version = "0.40.0"
license = "Apache-2.0"
authors = ["Wei Tang <[email protected]>", "Parity Technologies <[email protected]>"]
description = "SputnikVM - a Portable Blockchain Virtual Machine"
Expand All @@ -10,7 +10,7 @@ edition = "2018"

[dependencies]
auto_impl = "1.0"
ethereum = { version = "0.15", default-features = false }
ethereum = { version = "0.14", default-features = false }
log = { version = "0.4", default-features = false }
primitive-types = { version = "0.12", default-features = false, features = ["rlp"] }
rlp = { version = "0.5", default-features = false }
Expand All @@ -22,18 +22,12 @@ scale-codec = { package = "parity-scale-codec", version = "3.2", default-feature
scale-info = { version = "2.3", default-features = false, features = ["derive"], optional = true }
serde = { version = "1.0", default-features = false, features = ["derive"], optional = true }

evm-core = { version = "0.41", path = "core", default-features = false }
evm-gasometer = { version = "0.41", path = "gasometer", default-features = false }
evm-runtime = { version = "0.41", path = "runtime", default-features = false }
evm-interpreter = { version = "0.2.0-dev", path = "interpreter", default-features = false }

[dev-dependencies]
criterion = "0.4"
hex = "0.4"

[[bench]]
name = "loop"
harness = false

[features]
default = ["std"]
std = [
Expand All @@ -46,38 +40,27 @@ std = [
"scale-codec/std",
"scale-info/std",
"serde/std",
"evm-core/std",
"evm-gasometer/std",
"evm-runtime/std",
"evm-interpreter/std",
]
with-codec = [
"scale-codec",
"scale-info",
"primitive-types/codec",
"primitive-types/scale-info",
"ethereum/with-codec",
"evm-core/with-codec",
"evm-interpreter/with-codec",
]
with-serde = [
"serde",
"primitive-types/impl-serde",
"evm-core/with-serde",
"evm-interpreter/with-serde",
"ethereum/with-serde",
]
tracing = [
"environmental",
"evm-gasometer/tracing",
"evm-runtime/tracing",
]
force-debug = [
"evm-core/force-debug",
"evm-gasometer/force-debug",
]

[workspace]
members = [
"core",
"gasometer",
"runtime",
"fuzzer",
"interpreter",
"jsontests",
"precompiles",
"tracer",
]
68 changes: 0 additions & 68 deletions benches/loop.rs

This file was deleted.

Loading
Loading