Skip to content

Commit fa1e546

Browse files
authored
feat: restructure Part2 database crate (bluealloy#1784)
* feat: restructure database crate * fix tests * wip examples * split examples to standalone crates
1 parent be1d324 commit fa1e546

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+533
-227
lines changed

Cargo.lock

Lines changed: 26 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,55 @@
11
[workspace]
2+
resolver = "2"
3+
default-members = ["crates/revm"]
24
members = [
5+
# binary
36
"bins/revme",
7+
8+
# libraries
49
"crates/revm",
510
"crates/primitives",
611
"crates/interpreter",
712
"crates/precompile",
813
"crates/optimism",
14+
"crates/database",
915
"crates/database/interface",
1016
"crates/bytecode",
1117
"crates/state",
1218
"crates/wiring",
1319
"crates/specification",
20+
21+
# examples
22+
#"examples/block_traces",
23+
#"examples/contract_deployment",
24+
#"examples/custom_opcodes",
25+
#"examples/database_components",
26+
#"examples/database_ref",
27+
#"examples/uniswap_get_reserves",
28+
#"examples/uniswap_v2_usdc_swap",
1429
]
15-
resolver = "2"
16-
default-members = ["crates/revm"]
1730

1831
[workspace.dependencies]
1932
# revm
2033
primitives = { path = "crates/primitives", package = "revm-primitives", version = "9.0.1", default-features = false }
2134
bytecode = { path = "crates/bytecode", package = "revm-bytecode", version = "1.0.0", default-features = false }
35+
database = { path = "crates/database", package = "revm-database", version = "1.0.0", default-features = false }
2236
database-interface = { path = "crates/database/interface", package = "revm-database-interface", version = "1.0.0", default-features = false }
2337
specification = { path = "crates/specification", package = "revm-specification", version = "1.0.0", default-features = false }
2438
state = { path = "crates/state", package = "revm-state", version = "1.0.0", default-features = false }
2539
wiring = { path = "crates/wiring", package = "revm-wiring", version = "1.0.0", default-features = false }
2640
revm = { path = "crates/revm", version = "14.0.1", default-features = false }
2741
interpreter = { path = "crates/interpreter", package = "revm-interpreter", version = "10.0.1", default-features = false }
2842
precompile = { path = "crates/precompile", package = "revm-precompile", version = "11.0.1", default-features = false }
29-
# misc
43+
44+
[workspace.package]
45+
license = "MIT"
46+
authors = ["Dragan Rakita <dragan0rakita@gmail.com>"]
47+
categories = ["no-std", "compilers", "cryptography::cryptocurrencies"]
48+
keywords = ["revm", "evm", "ethereum", "blockchain", "no_std"]
49+
repository = "https://github.com/bluealloy/revm"
50+
documentation = "https://bluealloy.github.io/revm/"
51+
homepage = ""
52+
edition = "2021"
3053

3154
[workspace.metadata.docs.rs]
3255
all-features = true

bins/revme/Cargo.toml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
[package]
2-
authors = ["Dragan Rakita <dragan0rakita@gmail.com>"]
3-
edition = "2021"
42
name = "revme"
5-
keywords = ["ethereum", "evm"]
6-
license = "MIT"
7-
repository = "https://github.com/bluealloy/revm"
83
description = "Rust Ethereum Virtual Machine Executable"
94
version = "0.10.1"
5+
authors.workspace = true
6+
edition.workspace = true
7+
keywords.workspace = true
8+
license.workspace = true
9+
repository.workspace = true
1010

1111
[dependencies]
12+
database.workspace = true
1213
# revm
1314
revm = { workspace = true, features = [
1415
"std",

bins/revme/src/cmd/bench/analysis.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
use database::{BenchmarkDB, EthereumBenchmarkWiring};
12
use revm::{
23
bytecode::Bytecode,
3-
db::{BenchmarkDB, EthereumBenchmarkWiring},
44
interpreter::analysis::to_analysed,
55
primitives::{address, bytes, Bytes, TxKind},
66
Evm,

bins/revme/src/cmd/bench/burntpix.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ use static_data::{
88

99
use alloy_sol_macro::sol;
1010
use alloy_sol_types::SolCall;
11+
use database::CacheDB;
1112
use revm::{
1213
database_interface::EmptyDB,
13-
db::CacheDB,
1414
primitives::{address, hex, keccak256, Address, Bytes, TxKind, B256, U256},
1515
state::{AccountInfo, Bytecode},
1616
wiring::{

bins/revme/src/cmd/bench/snailtracer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
use database::{BenchmarkDB, EthereumBenchmarkWiring};
12
use revm::{
23
bytecode::Bytecode,
3-
db::{BenchmarkDB, EthereumBenchmarkWiring},
44
interpreter::analysis::to_analysed,
55
primitives::{address, bytes, Bytes, TxKind},
66
Evm,

bins/revme/src/cmd/bench/transfer.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1+
use database::{BenchmarkDB, EthereumBenchmarkWiring};
12
use revm::{
23
bytecode::Bytecode,
3-
db::{BenchmarkDB, EthereumBenchmarkWiring},
44
primitives::{TxKind, U256},
55
Evm,
66
};

bins/revme/src/cmd/evmrunner.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use clap::Parser;
2+
use database::BenchmarkDB;
23
use revm::{
34
bytecode::{Bytecode, BytecodeDecodeError},
4-
db::BenchmarkDB,
55
inspector_handle_register,
66
inspectors::TracerEip3155,
77
primitives::{address, Address, TxKind},

bins/revme/src/cmd/statetest/merkle_trie.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
use alloy_rlp::{RlpEncodable, RlpMaxEncodedLen};
2+
use database::PlainAccount;
23
use hash_db::Hasher;
34
use plain_hasher::PlainHasher;
4-
use revm::{
5-
db::PlainAccount,
6-
primitives::{keccak256, Address, Log, B256, U256},
7-
};
5+
use revm::primitives::{keccak256, Address, Log, B256, U256};
86
use triehash::sec_trie_root;
97

108
pub fn log_rlp_hash(logs: &[Log]) -> B256 {

bins/revme/src/cmd/statetest/runner.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@ use super::{
33
models::{SpecName, Test, TestSuite},
44
utils::recover_address,
55
};
6+
use database::State;
67
use indicatif::{ProgressBar, ProgressDrawTarget};
78
use revm::{
89
bytecode::Bytecode,
910
database_interface::EmptyDB,
10-
db::State,
1111
inspector_handle_register,
1212
inspectors::TracerEip3155,
1313
interpreter::analysis::to_analysed,
@@ -276,7 +276,7 @@ pub fn execute_test_suite(
276276

277277
for (name, unit) in suite.0 {
278278
// Create database and insert cache
279-
let mut cache_state = revm::CacheState::new(false);
279+
let mut cache_state = database::CacheState::new(false);
280280
for (address, info) in unit.pre {
281281
let code_hash = keccak256(&info.code);
282282
let bytecode = to_analysed(Bytecode::new_raw(info.code));
@@ -397,7 +397,7 @@ pub fn execute_test_suite(
397397

398398
let mut cache = cache_state.clone();
399399
cache.set_state_clear_flag(SpecId::enabled(spec_id, SpecId::SPURIOUS_DRAGON));
400-
let mut state = revm::db::State::builder()
400+
let mut state = database::State::builder()
401401
.with_cached_prestate(cache)
402402
.with_bundle_update()
403403
.build();
@@ -466,7 +466,7 @@ pub fn execute_test_suite(
466466
// re build to run with tracing
467467
let mut cache = cache_state.clone();
468468
cache.set_state_clear_flag(SpecId::enabled(spec_id, SpecId::SPURIOUS_DRAGON));
469-
let mut state = revm::db::State::builder()
469+
let mut state = database::State::builder()
470470
.with_cached_prestate(cache)
471471
.with_bundle_update()
472472
.build();

0 commit comments

Comments
 (0)