mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-03 00:31:50 +00:00
Migrate from ethereum-types to alloy-primitives (#6078)
* Remove use of ethers_core::RlpStream
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* Remove old code
* Simplify keccak call
* Remove unused package
* Merge branch 'unstable' of https://github.com/ethDreamer/lighthouse into remove_use_of_ethers_core
* Merge branch 'unstable' into remove_use_of_ethers_core
* Run clippy
* Merge branch 'remove_use_of_ethers_core' of https://github.com/dospore/lighthouse into remove_use_of_ethers_core
* Check all cargo fmt
* migrate to alloy primitives init
* fix deps
* integrate alloy-primitives
* resolve dep issues
* more changes based on dep changes
* add TODOs
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* Revert lock
* Add BeaconBlocksByRange v3
* continue migration
* Revert "Add BeaconBlocksByRange v3"
This reverts commit e3ce7fc5ea.
* impl hash256 extended trait
* revert some uneeded diffs
* merge conflict resolved
* fix subnet id rshift calc
* rename to FixedBytesExtended
* debugging
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fix failed test
* fixing more tests
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into remove_use_of_ethers_core
* introduce a shim to convert between the two u256 types
* move alloy to wrokspace
* align alloy versions
* update
* update web3signer test certs
* refactor
* resolve failing tests
* linting
* fix graffiti string test
* fmt
* fix ef test
* resolve merge conflicts
* remove udep and revert cert
* cargo patch
* cyclic dep
* fix build error
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* resolve conflicts, update deps
* merge unstable
* fmt
* fix deps
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* resolve merge conflicts
* resolve conflicts, make necessary changes
* Remove patch
* fmt
* remove file
* merge conflicts
* sneaking in a smol change
* bump versions
* Merge remote-tracking branch 'origin/unstable' into migrate-to-alloy-primitives
* Updates for peerDAS
* Update ethereum_hashing to prevent dupe
* updated alloy-consensus, removed TODOs
* cargo update
* endianess fix
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fmt
* fix merge
* fix test
* fixed_bytes crate
* minor fixes
* convert u256 to i64
* panic free mixin to_low_u64_le
* from_str_radix
* computbe_subnet api and ensuring we use big-endian
* Merge branch 'unstable' of https://github.com/sigp/lighthouse into migrate-to-alloy-primitives
* fix test
* Simplify subnet_id test
* Simplify some more tests
* Add tests to fixed_bytes crate
* Merge branch 'unstable' into migrate-to-alloy-primitives
This commit is contained in:
@@ -11,11 +11,11 @@ fake_crypto = ["bls/fake_crypto"]
|
||||
portable = ["beacon_chain/portable"]
|
||||
|
||||
[dependencies]
|
||||
alloy-primitives = { workspace = true }
|
||||
bls = { workspace = true }
|
||||
compare_fields = { workspace = true }
|
||||
compare_fields_derive = { workspace = true }
|
||||
derivative = { workspace = true }
|
||||
ethereum-types = { workspace = true }
|
||||
hex = { workspace = true }
|
||||
kzg = { workspace = true }
|
||||
rayon = { workspace = true }
|
||||
|
||||
@@ -17,7 +17,7 @@ macro_rules! uint_wrapper {
|
||||
type Error = String;
|
||||
|
||||
fn try_from(s: String) -> Result<Self, Self::Error> {
|
||||
<$wrapped_type>::from_dec_str(&s)
|
||||
<$wrapped_type>::from_str_radix(&s, 10)
|
||||
.map(|x| Self { x })
|
||||
.map_err(|e| format!("{:?}", e))
|
||||
}
|
||||
@@ -43,8 +43,8 @@ macro_rules! uint_wrapper {
|
||||
};
|
||||
}
|
||||
|
||||
uint_wrapper!(TestU128, ethereum_types::U128);
|
||||
uint_wrapper!(TestU256, ethereum_types::U256);
|
||||
uint_wrapper!(DecimalU128, alloy_primitives::U128);
|
||||
uint_wrapper!(DecimalU256, alloy_primitives::U256);
|
||||
|
||||
/// Trait for types that can be used in SSZ static tests.
|
||||
pub trait SszStaticType:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use super::*;
|
||||
use ethereum_types::U256;
|
||||
use alloy_primitives::U256;
|
||||
use serde::Deserialize;
|
||||
use std::marker::PhantomData;
|
||||
use types::DataColumnSubnetId;
|
||||
@@ -23,10 +23,11 @@ impl<E: EthSpec> LoadCase for GetCustodyColumns<E> {
|
||||
impl<E: EthSpec> Case for GetCustodyColumns<E> {
|
||||
fn result(&self, _case_index: usize, _fork_name: ForkName) -> Result<(), Error> {
|
||||
let spec = E::default_spec();
|
||||
let node_id = U256::from_dec_str(&self.node_id)
|
||||
let node_id = U256::from_str_radix(&self.node_id, 10)
|
||||
.map_err(|e| Error::FailedToParseTest(format!("{e:?}")))?;
|
||||
let raw_node_id = node_id.to_be_bytes::<32>();
|
||||
let computed = DataColumnSubnetId::compute_custody_columns::<E>(
|
||||
node_id,
|
||||
raw_node_id,
|
||||
self.custody_subnet_count,
|
||||
&spec,
|
||||
)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#![allow(non_snake_case)]
|
||||
|
||||
use super::*;
|
||||
use crate::cases::common::{SszStaticType, TestU128, TestU256};
|
||||
use crate::cases::common::{DecimalU128, DecimalU256, SszStaticType};
|
||||
use crate::cases::ssz_static::{check_serialization, check_tree_hash};
|
||||
use crate::decode::{log_file_access, snappy_decode_file, yaml_decode_file};
|
||||
use serde::{de::Error as SerdeError, Deserialize, Deserializer};
|
||||
@@ -56,8 +56,8 @@ macro_rules! type_dispatch {
|
||||
"uint16" => type_dispatch!($function, ($($arg),*), $base_ty, <$($param_ty,)* u16>, $($rest)*),
|
||||
"uint32" => type_dispatch!($function, ($($arg),*), $base_ty, <$($param_ty,)* u32>, $($rest)*),
|
||||
"uint64" => type_dispatch!($function, ($($arg),*), $base_ty, <$($param_ty,)* u64>, $($rest)*),
|
||||
"uint128" => type_dispatch!($function, ($($arg),*), $base_ty, <$($param_ty,)* TestU128>, $($rest)*),
|
||||
"uint256" => type_dispatch!($function, ($($arg),*), $base_ty, <$($param_ty,)* TestU256>, $($rest)*),
|
||||
"uint128" => type_dispatch!($function, ($($arg),*), $base_ty, <$($param_ty,)* DecimalU128>, $($rest)*),
|
||||
"uint256" => type_dispatch!($function, ($($arg),*), $base_ty, <$($param_ty,)* DecimalU256>, $($rest)*),
|
||||
_ => Err(Error::FailedToParseTest(format!("unsupported: {}", $value))),
|
||||
}
|
||||
};
|
||||
@@ -231,7 +231,7 @@ fn ssz_generic_test<T: SszStaticType + TreeHash + ssz::Decode>(path: &Path) -> R
|
||||
check_serialization(&value, &serialized, T::from_ssz_bytes)?;
|
||||
|
||||
if let Some(ref meta) = meta {
|
||||
check_tree_hash(&meta.root, value.tree_hash_root().as_bytes())?;
|
||||
check_tree_hash(&meta.root, value.tree_hash_root().as_slice())?;
|
||||
}
|
||||
}
|
||||
// Invalid
|
||||
|
||||
@@ -104,7 +104,7 @@ pub fn check_tree_hash(expected_str: &str, actual_root: &[u8]) -> Result<(), Err
|
||||
impl<T: SszStaticType + TreeHash + Decode> Case for SszStatic<T> {
|
||||
fn result(&self, _case_index: usize, _fork_name: ForkName) -> Result<(), Error> {
|
||||
check_serialization(&self.value, &self.serialized, T::from_ssz_bytes)?;
|
||||
check_tree_hash(&self.roots.root, self.value.tree_hash_root().as_bytes())?;
|
||||
check_tree_hash(&self.roots.root, self.value.tree_hash_root().as_slice())?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
@@ -118,7 +118,7 @@ impl<E: EthSpec> Case for SszStaticTHC<BeaconState<E>> {
|
||||
|
||||
let mut state = self.value.clone();
|
||||
let cached_tree_hash_root = state.update_tree_hash_cache().unwrap();
|
||||
check_tree_hash(&self.roots.root, cached_tree_hash_root.as_bytes())?;
|
||||
check_tree_hash(&self.roots.root, cached_tree_hash_root.as_slice())?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
@@ -130,7 +130,7 @@ impl<E: EthSpec> Case for SszStaticWithSpec<BeaconBlock<E>> {
|
||||
check_serialization(&self.value, &self.serialized, |bytes| {
|
||||
BeaconBlock::from_ssz_bytes(bytes, spec)
|
||||
})?;
|
||||
check_tree_hash(&self.roots.root, self.value.tree_hash_root().as_bytes())?;
|
||||
check_tree_hash(&self.roots.root, self.value.tree_hash_root().as_slice())?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
@@ -141,7 +141,7 @@ impl<E: EthSpec> Case for SszStaticWithSpec<SignedBeaconBlock<E>> {
|
||||
check_serialization(&self.value, &self.serialized, |bytes| {
|
||||
SignedBeaconBlock::from_ssz_bytes(bytes, spec)
|
||||
})?;
|
||||
check_tree_hash(&self.roots.root, self.value.tree_hash_root().as_bytes())?;
|
||||
check_tree_hash(&self.roots.root, self.value.tree_hash_root().as_slice())?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@ use ethers_core::{
|
||||
pub use ethers_providers::{Http, Middleware, Provider};
|
||||
use std::time::Duration;
|
||||
use tokio::time::sleep;
|
||||
use types::DepositData;
|
||||
use types::{test_utils::generate_deterministic_keypair, EthSpec, Hash256, Keypair, Signature};
|
||||
use types::{DepositData, FixedBytesExtended};
|
||||
|
||||
pub const DEPLOYER_ACCOUNTS_INDEX: usize = 0;
|
||||
pub const DEPOSIT_ACCOUNTS_INDEX: usize = 0;
|
||||
|
||||
@@ -14,8 +14,8 @@ execution_layer = { workspace = true }
|
||||
sensitive_url = { workspace = true }
|
||||
types = { workspace = true }
|
||||
unused_port = { workspace = true }
|
||||
ethers-core = { workspace = true }
|
||||
ethers-providers = { workspace = true }
|
||||
ethers-core = { workspace = true }
|
||||
deposit_contract = { workspace = true }
|
||||
reqwest = { workspace = true }
|
||||
hex = { workspace = true }
|
||||
|
||||
@@ -18,7 +18,7 @@ use tokio::time::sleep;
|
||||
use types::payload::BlockProductionVersion;
|
||||
use types::{
|
||||
Address, ChainSpec, EthSpec, ExecutionBlockHash, ExecutionPayload, ExecutionPayloadHeader,
|
||||
ForkName, Hash256, MainnetEthSpec, PublicKeyBytes, Slot, Uint256,
|
||||
FixedBytesExtended, ForkName, Hash256, MainnetEthSpec, PublicKeyBytes, Slot, Uint256,
|
||||
};
|
||||
const EXECUTION_ENGINE_START_TIMEOUT: Duration = Duration::from_secs(60);
|
||||
|
||||
@@ -115,7 +115,7 @@ impl<Engine: GenericExecutionEngine> TestRig<Engine> {
|
||||
let (shutdown_tx, _) = futures::channel::mpsc::channel(1);
|
||||
let executor = TaskExecutor::new(Arc::downgrade(&runtime), exit, log.clone(), shutdown_tx);
|
||||
let mut spec = TEST_FORK.make_genesis_spec(MainnetEthSpec::default_spec());
|
||||
spec.terminal_total_difficulty = Uint256::zero();
|
||||
spec.terminal_total_difficulty = Uint256::ZERO;
|
||||
|
||||
let fee_recipient = None;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ use ethers_core::types::{
|
||||
transaction::{eip2718::TypedTransaction, eip2930::AccessList},
|
||||
Address, Bytes, Eip1559TransactionRequest, TransactionRequest, U256,
|
||||
};
|
||||
use types::{DepositData, EthSpec, Hash256, Keypair, Signature};
|
||||
use types::{DepositData, EthSpec, FixedBytesExtended, Hash256, Keypair, Signature};
|
||||
|
||||
/// Hardcoded deposit contract address based on sender address and nonce
|
||||
pub const DEPOSIT_CONTRACT_ADDRESS: &str = "64f43BEc7F86526686C931d65362bB8698872F90";
|
||||
|
||||
@@ -13,7 +13,7 @@ use std::sync::LazyLock;
|
||||
use types::{
|
||||
test_utils::generate_deterministic_keypairs, BeaconState, EthSpec, Keypair, SignedBeaconBlock,
|
||||
};
|
||||
use types::{Hash256, MainnetEthSpec, Slot};
|
||||
use types::{FixedBytesExtended, Hash256, MainnetEthSpec, Slot};
|
||||
|
||||
type E = MainnetEthSpec;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user