Skip to content

Commit 9a39cb7

Browse files
authored
refactor(anvil): beacon api tests + use Alloy's GenesisResponse struct (#12513)
* refactor(anvil): beacon api tests + use Alloy's `GenesisResponse` struct - Updated the `/eth/v1/beacon/genesis` endpoint to return a new `GenesisResponse`, and removed `GenesisDetails` struct. - Improved tests for the Beacon API, deserde with Alloy beacon response structs. * chore: bump alloy to 1.1.1
1 parent ef761ec commit 9a39cb7

File tree

9 files changed

+472
-451
lines changed

9 files changed

+472
-451
lines changed

Cargo.lock

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

Cargo.toml

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -235,31 +235,31 @@ svm = { package = "svm-rs", version = "0.5", default-features = false, features
235235
] }
236236

237237
## alloy
238-
alloy-consensus = { version = "1.1.0", default-features = false }
239-
alloy-contract = { version = "1.1.0", default-features = false }
240-
alloy-eips = { version = "1.1.0", default-features = false }
241-
alloy-eip5792 = { version = "1.1.0", default-features = false }
242-
alloy-ens = { version = "1.1.0", default-features = false }
243-
alloy-genesis = { version = "1.1.0", default-features = false }
244-
alloy-json-rpc = { version = "1.1.0", default-features = false }
245-
alloy-network = { version = "1.1.0", default-features = false }
246-
alloy-provider = { version = "1.1.0", default-features = false }
247-
alloy-pubsub = { version = "1.1.0", default-features = false }
248-
alloy-rpc-client = { version = "1.1.0", default-features = false }
249-
alloy-rpc-types = { version = "1.1.0", default-features = true }
250-
alloy-rpc-types-beacon = { version = "1.1.0", default-features = true }
251-
alloy-serde = { version = "1.1.0", default-features = false }
252-
alloy-signer = { version = "1.1.0", default-features = false }
253-
alloy-signer-aws = { version = "1.1.0", default-features = false }
254-
alloy-signer-gcp = { version = "1.1.0", default-features = false }
255-
alloy-signer-ledger = { version = "1.1.0", default-features = false }
256-
alloy-signer-local = { version = "1.1.0", default-features = false }
257-
alloy-signer-trezor = { version = "1.1.0", default-features = false }
258-
alloy-signer-turnkey = { version = "1.1.0", default-features = false }
259-
alloy-transport = { version = "1.1.0", default-features = false }
260-
alloy-transport-http = { version = "1.1.0", default-features = false }
261-
alloy-transport-ipc = { version = "1.1.0", default-features = false }
262-
alloy-transport-ws = { version = "1.1.0", default-features = false }
238+
alloy-consensus = { version = "1.1.1", default-features = false }
239+
alloy-contract = { version = "1.1.1", default-features = false }
240+
alloy-eips = { version = "1.1.1", default-features = false }
241+
alloy-eip5792 = { version = "1.1.1", default-features = false }
242+
alloy-ens = { version = "1.1.1", default-features = false }
243+
alloy-genesis = { version = "1.1.1", default-features = false }
244+
alloy-json-rpc = { version = "1.1.1", default-features = false }
245+
alloy-network = { version = "1.1.1", default-features = false }
246+
alloy-provider = { version = "1.1.1", default-features = false }
247+
alloy-pubsub = { version = "1.1.1", default-features = false }
248+
alloy-rpc-client = { version = "1.1.1", default-features = false }
249+
alloy-rpc-types = { version = "1.1.1", default-features = true }
250+
alloy-rpc-types-beacon = { version = "1.1.1", default-features = true }
251+
alloy-serde = { version = "1.1.1", default-features = false }
252+
alloy-signer = { version = "1.1.1", default-features = false }
253+
alloy-signer-aws = { version = "1.1.1", default-features = false }
254+
alloy-signer-gcp = { version = "1.1.1", default-features = false }
255+
alloy-signer-ledger = { version = "1.1.1", default-features = false }
256+
alloy-signer-local = { version = "1.1.1", default-features = false }
257+
alloy-signer-trezor = { version = "1.1.1", default-features = false }
258+
alloy-signer-turnkey = { version = "1.1.1", default-features = false }
259+
alloy-transport = { version = "1.1.1", default-features = false }
260+
alloy-transport-http = { version = "1.1.1", default-features = false }
261+
alloy-transport-ipc = { version = "1.1.1", default-features = false }
262+
alloy-transport-ws = { version = "1.1.1", default-features = false }
263263
alloy-hardforks = { version = "0.4.0", default-features = false }
264264
alloy-op-hardforks = { version = "0.4.0", default-features = false }
265265

@@ -358,7 +358,6 @@ reqwest = { version = "0.12", default-features = false, features = [
358358
rustls = "0.23"
359359
semver = "1"
360360
serde = { version = "1.0", features = ["derive"] }
361-
serde_with = "3.15.1"
362361
serde_json = { version = "1.0", features = ["arbitrary_precision"] }
363362
similar-asserts = "1.7"
364363
soldeer-commands = "=0.9.0"

crates/anvil/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,6 @@ async-trait.workspace = true
8989
flate2.workspace = true
9090
serde_json.workspace = true
9191
serde.workspace = true
92-
serde_with.workspace = true
9392
thiserror.workspace = true
9493
yansi.workspace = true
9594
tempfile.workspace = true

crates/anvil/src/eth/beacon/data.rs

Lines changed: 0 additions & 18 deletions
This file was deleted.

crates/anvil/src/eth/beacon/mod.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,8 @@
33
//! This module provides types and utilities for implementing Beacon API endpoints
44
//! in Anvil, allowing testing of blob-based transactions with standard beacon chain APIs.
55
6-
pub mod data;
76
pub mod error;
87
pub mod response;
98

10-
pub use data::GenesisDetails;
119
pub use error::BeaconError;
1210
pub use response::BeaconResponse;

crates/anvil/src/server/beacon_handler.rs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
use crate::eth::{
22
EthApi,
3-
beacon::{BeaconError, BeaconResponse, GenesisDetails},
3+
beacon::{BeaconError, BeaconResponse},
44
};
55
use alloy_eips::BlockId;
66
use alloy_primitives::{B256, aliases::B32};
77
use alloy_rpc_types_beacon::{
8+
genesis::{GenesisData, GenesisResponse},
89
header::Header,
910
sidecar::{BlobData, GetBlobsResponse},
1011
};
@@ -99,12 +100,17 @@ pub async fn handle_get_blobs(
99100
/// GET /eth/v1/beacon/genesis
100101
pub async fn handle_get_genesis(State(api): State<EthApi>) -> Response {
101102
match api.anvil_get_genesis_time() {
102-
Ok(genesis_time) => BeaconResponse::new(GenesisDetails {
103-
genesis_time,
104-
genesis_validators_root: B256::ZERO,
105-
genesis_fork_version: B32::ZERO,
106-
})
107-
.into_response(),
103+
Ok(genesis_time) => (
104+
StatusCode::OK,
105+
Json(GenesisResponse {
106+
data: GenesisData {
107+
genesis_time,
108+
genesis_validators_root: B256::ZERO,
109+
genesis_fork_version: B32::ZERO,
110+
},
111+
}),
112+
)
113+
.into_response(),
108114
Err(_) => BeaconError::internal_error().into_response(),
109115
}
110116
}

0 commit comments

Comments
 (0)