feat: initial relay ssz support (#5568)

This commit is contained in:
Matthias Seitz
2023-11-25 15:06:14 +01:00
committed by GitHub
parent 7de2582000
commit 1308b6729e
3 changed files with 59 additions and 2 deletions

50
Cargo.lock generated
View File

@@ -1740,6 +1740,16 @@ dependencies = [
"darling_macro 0.10.2",
]
[[package]]
name = "darling"
version = "0.13.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
dependencies = [
"darling_core 0.13.4",
"darling_macro 0.13.4",
]
[[package]]
name = "darling"
version = "0.20.3"
@@ -1764,6 +1774,20 @@ dependencies = [
"syn 1.0.109",
]
[[package]]
name = "darling_core"
version = "0.13.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
dependencies = [
"fnv",
"ident_case",
"proc-macro2",
"quote",
"strsim 0.10.0",
"syn 1.0.109",
]
[[package]]
name = "darling_core"
version = "0.20.3"
@@ -1789,6 +1813,17 @@ dependencies = [
"syn 1.0.109",
]
[[package]]
name = "darling_macro"
version = "0.13.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
dependencies = [
"darling_core 0.13.4",
"quote",
"syn 1.0.109",
]
[[package]]
name = "darling_macro"
version = "0.20.3"
@@ -2382,6 +2417,18 @@ dependencies = [
"smallvec",
]
[[package]]
name = "ethereum_ssz_derive"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6085d7fd3cf84bd2b8fec150d54c8467fb491d8db9c460607c5534f653a0ee38"
dependencies = [
"darling 0.13.4",
"proc-macro2",
"quote",
"syn 1.0.109",
]
[[package]]
name = "ethers-contract"
version = "2.0.11"
@@ -6450,6 +6497,8 @@ dependencies = [
"alloy-rlp",
"arbitrary",
"bytes",
"ethereum_ssz",
"ethereum_ssz_derive",
"itertools 0.11.0",
"jsonrpsee-types",
"proptest",
@@ -6799,6 +6848,7 @@ dependencies = [
"ark-ff 0.3.0",
"ark-ff 0.4.2",
"bytes",
"ethereum_ssz",
"fastrlp",
"num-bigint",
"num-traits",

View File

@@ -9,8 +9,11 @@ repository.workspace = true
description = "Reth RPC types"
[dependencies]
# # ethereum
# ethereum
alloy-rlp = { workspace = true, features = ["arrayvec", "derive"] }
alloy-primitives = { workspace = true, features = ["rand", "rlp", "serde"] }
ethereum_ssz_derive = { version = "0.5", optional = true }
ethereum_ssz = { version = "0.5", optional = true }
# misc
thiserror.workspace = true
@@ -19,13 +22,13 @@ serde = { workspace = true, features = ["derive"] }
serde_with = "3.3"
serde_json.workspace = true
jsonrpsee-types = { workspace = true, optional = true }
alloy-primitives = { workspace = true, features = ["rand", "rlp", "serde"] }
url = "2.3"
# necessary so we don't hit a "undeclared 'std'":
# https://github.com/paradigmxyz/reth/pull/177#discussion_r1021172198
secp256k1.workspace = true
bytes.workspace = true
# arbitrary
arbitrary = { workspace = true, features = ["derive"], optional = true }
proptest = { workspace = true, optional = true }
proptest-derive = { workspace = true, optional = true }
@@ -33,8 +36,10 @@ proptest-derive = { workspace = true, optional = true }
[features]
default = ["jsonrpsee-types"]
arbitrary = ["dep:arbitrary", "dep:proptest-derive", "dep:proptest", "alloy-primitives/arbitrary"]
ssz = ["dep:ethereum_ssz" ,"dep:ethereum_ssz_derive", "alloy-primitives/ssz"]
optimism = []
[dev-dependencies]
# misc
alloy-primitives = { workspace = true, features = ["rand", "rlp", "serde", "arbitrary"] }

View File

@@ -44,6 +44,7 @@ pub struct ValidatorRegistrationMessage {
/// (not necessarily a value confirmed by the relay).
#[serde_as]
#[derive(Default, Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "ssz", derive(ssz_derive::Encode, ssz_derive::Decode))]
pub struct BidTrace {
#[serde_as(as = "DisplayFromStr")]
pub slot: u64,
@@ -64,6 +65,7 @@ pub struct BidTrace {
/// SignedBidTrace is a BidTrace with a signature
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "ssz", derive(ssz_derive::Encode, ssz_derive::Decode))]
pub struct SignedBidTrace {
pub message: BidTrace,
pub signature: BlsSignature,