diff --git a/Cargo.lock b/Cargo.lock index 92952e6..bbfb2ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -718,8 +718,6 @@ dependencies = [ "alloy-primitives", "alloy-signer", "async-trait", - "coins-bip32", - "coins-bip39", "k256", "rand 0.8.5", "thiserror 2.0.14", @@ -1527,12 +1525,6 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "55248b47b0caf0546f7988906588779981c43bb1bc9d0c44087278f80cdb44ba" -[[package]] -name = "bech32" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445" - [[package]] name = "bimap" version = "0.6.3" @@ -1890,7 +1882,6 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ - "sha2 0.10.9", "tinyvec", ] @@ -2160,57 +2151,6 @@ version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b94f61472cee1439c0b966b47e3aca9ae07e45d070759512cd390ea2bebc6675" -[[package]] -name = "coins-bip32" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2073678591747aed4000dd468b97b14d7007f7936851d3f2f01846899f5ebf08" -dependencies = [ - "bs58", - "coins-core", - "digest 0.10.7", - "hmac", - "k256", - "serde", - "sha2 0.10.9", - "thiserror 1.0.69", -] - -[[package]] -name = "coins-bip39" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74b169b26623ff17e9db37a539fe4f15342080df39f129ef7631df7683d6d9d4" -dependencies = [ - "bitvec", - "coins-bip32", - "hmac", - "once_cell", - "pbkdf2", - "rand 0.8.5", - "sha2 0.10.9", - "thiserror 1.0.69", -] - -[[package]] -name = "coins-core" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b962ad8545e43a28e14e87377812ba9ae748dd4fd963f4c10e9fcc6d13475b" -dependencies = [ - "base64 0.21.7", - "bech32", - "bs58", - "const-hex", - "digest 0.10.7", - "generic-array 0.14.7", - "ripemd", - "serde", - "sha2 0.10.9", - "sha3 0.10.8", - "thiserror 1.0.69", -] - [[package]] name = "colorchoice" version = "1.0.4" @@ -5975,16 +5915,6 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac", -] - [[package]] name = "peg" version = "0.8.5" @@ -7457,68 +7387,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "reth-e2e-test-utils" -version = "1.6.0" -source = "git+https://github.com/clydemeng/reth.git?branch=6487f0b-bsc-patch#6f5fff17aec67a6b14fbea778f4d7eac8c4d4912" -dependencies = [ - "alloy-consensus", - "alloy-eips", - "alloy-genesis", - "alloy-network", - "alloy-primitives", - "alloy-provider", - "alloy-rlp", - "alloy-rpc-types-engine", - "alloy-rpc-types-eth", - "alloy-signer", - "alloy-signer-local", - "derive_more 2.0.1", - "eyre", - "futures-util", - "jsonrpsee", - "reth-chainspec", - "reth-cli-commands", - "reth-config", - "reth-consensus", - "reth-db", - "reth-db-common", - "reth-engine-local", - "reth-ethereum-consensus", - "reth-ethereum-primitives", - "reth-evm", - "reth-network-api", - "reth-network-peers", - "reth-node-api", - "reth-node-builder", - "reth-node-core", - "reth-node-ethereum", - "reth-payload-builder", - "reth-payload-builder-primitives", - "reth-payload-primitives", - "reth-primitives", - "reth-primitives-traits", - "reth-provider", - "reth-prune-types", - "reth-rpc-api", - "reth-rpc-builder", - "reth-rpc-eth-api", - "reth-rpc-layer", - "reth-rpc-server-types", - "reth-stages-types", - "reth-static-file", - "reth-tasks", - "reth-tokio-util", - "reth-tracing", - "revm", - "serde_json", - "tempfile", - "tokio", - "tokio-stream", - "tracing", - "url", -] - [[package]] name = "reth-ecies" version = "1.6.0" @@ -9861,7 +9729,6 @@ dependencies = [ "reth-cli-util", "reth-db", "reth-discv4", - "reth-e2e-test-utils", "reth-engine-local", "reth-engine-primitives", "reth-eth-wire", @@ -9908,7 +9775,6 @@ dependencies = [ "tokio", "tokio-stream", "tracing", - "uuid", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 311073f..f817142 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -171,15 +171,6 @@ client = [ "reth-rpc-eth-api/client", ] -[dev-dependencies] -# E2E test-suite support -reth-e2e-test-utils = { git = "https://github.com/clydemeng/reth.git", branch = "6487f0b-bsc-patch" } -# (all other reth crates are pulled in automatically via workspace deps) - -# For unit tests -uuid = { version = "1.0", features = ["v4"] } - - [profile.release] opt-level = 3 lto = "thin" diff --git a/README.md b/README.md index bbcbf27..2ef9746 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ This is a **Work in Progress** project that requires community contributions to ### Sync Status (as of August 5, 2025) -- **BSC Mainnet**: Synced to block 42,159,275 and still syncing 🔄 (11TB disk usage) +- **BSC Mainnet**: Synced to block 47,000,000 and still syncing 🔄 (7.7TB disk usage) - **BSC Testnet**: Synced to the tip ✅ (780GB disk usage) ## Getting Started diff --git a/src/chainspec/bsc.rs b/src/chainspec/bsc.rs index db4f93c..c074d49 100644 --- a/src/chainspec/bsc.rs +++ b/src/chainspec/bsc.rs @@ -4,8 +4,6 @@ use alloy_primitives::{BlockHash, U256}; use reth_chainspec::{ make_genesis_header, BaseFeeParams, BaseFeeParamsKind, Chain, ChainSpec, Head, NamedChain, }; -use alloy_eips::{eip7840::BlobParams, eip7892::BlobScheduleBlobParams}; -use alloy_eips::eip4844::BLOB_TX_MIN_BLOB_GASPRICE; use reth_primitives::SealedHeader; use std::str::FromStr; @@ -21,23 +19,6 @@ pub fn bsc_mainnet() -> ChainSpec { hardforks: BscHardfork::bsc_mainnet(), deposit_contract: None, base_fee_params: BaseFeeParamsKind::Constant(BaseFeeParams::new(1, 1)), - blob_params: BlobScheduleBlobParams { - cancun: BlobParams { - target_blob_count: 3, - max_blob_count: 6, - update_fraction: 3_338_477, - min_blob_fee: BLOB_TX_MIN_BLOB_GASPRICE, - max_blobs_per_tx: 6, - }, - prague: BlobParams { - target_blob_count: 3, // BSC keeps same values in Prague - max_blob_count: 6, - update_fraction: 3_338_477, - min_blob_fee: BLOB_TX_MIN_BLOB_GASPRICE, - max_blobs_per_tx: 6, - }, - ..Default::default() - }, prune_delete_limit: 3500, genesis_header: SealedHeader::new( make_genesis_header(&genesis, &hardforks), diff --git a/src/chainspec/bsc_chapel.rs b/src/chainspec/bsc_chapel.rs index ccd9075..dab3b99 100644 --- a/src/chainspec/bsc_chapel.rs +++ b/src/chainspec/bsc_chapel.rs @@ -4,8 +4,6 @@ use alloy_primitives::{BlockHash, B256, U256}; use reth_chainspec::{ make_genesis_header, BaseFeeParams, BaseFeeParamsKind, Chain, ChainSpec, Head, NamedChain, }; -use alloy_eips::{eip7840::BlobParams, eip7892::BlobScheduleBlobParams}; -use alloy_eips::eip4844::BLOB_TX_MIN_BLOB_GASPRICE; use reth_primitives::SealedHeader; use std::str::FromStr; @@ -21,23 +19,6 @@ pub fn bsc_testnet() -> ChainSpec { hardforks: BscHardfork::bsc_testnet(), deposit_contract: None, base_fee_params: BaseFeeParamsKind::Constant(BaseFeeParams::new(1, 1)), - blob_params: BlobScheduleBlobParams { - cancun: BlobParams { - target_blob_count: 3, - max_blob_count: 6, - update_fraction: 3_338_477, - min_blob_fee: BLOB_TX_MIN_BLOB_GASPRICE, - max_blobs_per_tx: 6, - }, - prague: BlobParams { - target_blob_count: 3, // BSC testnet keeps same values as mainnet - max_blob_count: 6, - update_fraction: 3_338_477, - min_blob_fee: BLOB_TX_MIN_BLOB_GASPRICE, - max_blobs_per_tx: 6, - }, - ..Default::default() - }, prune_delete_limit: 3500, genesis_header: SealedHeader::new( make_genesis_header(&genesis, &hardforks), diff --git a/src/evm/precompiles/double_sign.rs b/src/evm/precompiles/double_sign.rs index 0d2e9ac..391d57e 100644 --- a/src/evm/precompiles/double_sign.rs +++ b/src/evm/precompiles/double_sign.rs @@ -103,7 +103,8 @@ fn double_sign_evidence_validation_run(input: &[u8], gas_limit: u64) -> Precompi return Err(BscPrecompileError::DoubleSignInvalidEvidence.into()); } - if header1.extra.len() < EXTRA_SEAL_LENGTH || header1.extra.len() < EXTRA_SEAL_LENGTH { + + if header1.extra.len() < EXTRA_SEAL_LENGTH || header2.extra.len() < EXTRA_SEAL_LENGTH { return Err(BscPrecompileError::DoubleSignInvalidEvidence.into()); } diff --git a/src/evm/precompiles/error.rs b/src/evm/precompiles/error.rs index 642bbdb..057084c 100644 --- a/src/evm/precompiles/error.rs +++ b/src/evm/precompiles/error.rs @@ -9,8 +9,8 @@ pub enum BscPrecompileError { CometBftApplyBlockFailed, /// The cometbft consensus state encoding failed. CometBftEncodeConsensusStateFailed, - /// The double sign invalid evidence. - DoubleSignInvalidEvidence, + /// The double sign invalid evidence. + DoubleSignInvalidEvidence, } impl From for PrecompileError {