Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
db3725a
usdc predeploy
daltoncoder Feb 19, 2026
d0f8000
fix genesis
daltoncoder Feb 19, 2026
bd6bb64
override balance of rpc
daltoncoder Feb 19, 2026
79fb0d3
override native balance check on send transaction
daltoncoder Feb 19, 2026
27eab6b
override valid balance check in txpool
daltoncoder Feb 19, 2026
61eb35f
skip balance checks
daltoncoder Feb 20, 2026
fc2b0f7
report native or usdc balance in getBalance
daltoncoder Feb 20, 2026
fbaa6c2
remove revm feature flag for disable_balance_check
daltoncoder Feb 20, 2026
ba471e6
fix tx pool update filtering usdc gas transactions
daltoncoder Feb 20, 2026
d93f395
rebase
daltoncoder Apr 9, 2026
0022676
do proper balance checks on usdc in txpool
daltoncoder Apr 9, 2026
ab272d7
fmt+clippy
daltoncoder Apr 9, 2026
adb3009
update revm/stablecoin addresses
daltoncoder Apr 13, 2026
8977ac6
update genesis hash
daltoncoder Apr 13, 2026
6aa0b8e
update usdc contract address
daltoncoder Apr 13, 2026
ec7e18c
read usdc storage slot directly
daltoncoder Apr 13, 2026
618d9f0
add some debug logs
daltoncoder Apr 13, 2026
ee1eaf1
more debug logs
daltoncoder Apr 13, 2026
1a3012d
update revm
daltoncoder Apr 14, 2026
618d92a
update revm
daltoncoder Apr 14, 2026
ab94a08
update lock
daltoncoder Apr 14, 2026
088c73e
fix: use snapshot-consistent state in ChangedAccountsHook (#380)
drappi-ai Apr 14, 2026
09b46c9
fix: reload queued senders on USDC storage changes
drappi-ai Apr 14, 2026
036567b
test: add tests for queued-sender USDC slot reload logic
drappi-ai Apr 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 24 additions & 22 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 12 additions & 12 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -768,18 +768,18 @@ alloy-dyn-abi = { git = "https://github.com/SeismicSystems/seismic-alloy-core.gi
alloy-trie = { git = "https://github.com/SeismicSystems/seismic-trie.git", rev = "2787e2265d492fa8eaee00424585b8f7e522178f" }

# revm
revm = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
revm-bytecode = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
revm-database = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
revm-state = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
revm-primitives = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
revm-interpreter = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
revm-inspector = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
revm-context = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
revm-context-interface = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
revm-database-interface = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
op-revm = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
seismic-revm = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "dc05eece19f14516ab9f996611fa7c63e1d1a8ae" }
revm = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }
revm-bytecode = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }
revm-database = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }
revm-state = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }
revm-primitives = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }
revm-interpreter = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }
revm-inspector = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }
revm-context = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }
revm-context-interface = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }
revm-database-interface = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }
op-revm = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }
seismic-revm = { git = "https://github.com/SeismicSystems/seismic-revm.git", rev = "2861f865d2b9249ebb0da4946be5052ec8ab41a0" }

revm-inspectors = { git = "https://github.com/SeismicSystems/seismic-revm-inspectors.git", rev = "24652f3b9ef6a8057bc46203b26d1d9857f7ae30" }

Expand Down
2 changes: 1 addition & 1 deletion crates/e2e-test-utils/src/setup_import.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ use reth_db::DatabaseEnv;
use reth_engine_local::LocalPayloadAttributesBuilder;
use reth_evm::ConfigureEvm;
use reth_node_api::{NodeTypes, NodeTypesWithDBAdapter, PayloadTypes, TreeConfig};
use reth_node_builder::{EngineNodeLauncher, Node, NodeBuilder, NodeConfig, NodeHandle};
use reth_node_builder::{EngineNodeLauncher, NodeBuilder, NodeConfig, NodeHandle};
use reth_node_core::args::{DiscoveryArgs, NetworkArgs, RpcServerArgs};
use reth_node_ethereum::EthereumNode;
use reth_provider::{
Expand Down
5 changes: 4 additions & 1 deletion crates/seismic/chainspec/res/genesis/dev.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,11 +76,14 @@
"0x90f79bf6eb2c4f870365e785982e1f101e93b906": {
"balance": "0xD3C21BCECCEDA1000000"
},
"0xd412c5ecd343e264381ff15afc0ad78a67b79f35": {
"0xD9b09DCAe1B5D2fFd36200E12f2617414D5fcC30": {
"balance": "0x2000000000000000000000000000000000000000000000000000000000000000"
},
"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266": {
"balance": "0xD3C21BCECCEDA1000000"
},
"0x2aA4C90C2F9D8A699A0C87B573411Db0d34BE61B":{
"balance": "0xD3C21BCECCEDA1000000"
}
},
"coinbase": "0x0000000000000000000000000000000000000000",
Expand Down
2 changes: 1 addition & 1 deletion crates/seismic/chainspec/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ pub const SEISMIC_MAINNET_GENESIS_HASH: B256 =
/// Calculated by rlp encoding the genesis header and hashing it
/// Currently matches the mainnet genesis hash because they have matching hardforks
pub const SEISMIC_DEV_GENESIS_HASH: B256 =
b256!("0x78ab9057bb67f95a6182969c5d755ac02802c98c0d2f0d8daeb52f4bddc60be5");
b256!("0x79b52ea2cc4088327fca3a7591ced55f29d13aa05c33fa7cc02e936db799727f");

/// Seismic devnet specification
///
Expand Down
2 changes: 1 addition & 1 deletion crates/seismic/evm/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ reth-seismic-primitives = { workspace = true }
reth-ethereum-primitives = { workspace = true, features = ["serde", "serde-bincode-compat", "reth-codec"]}

# revm
revm.workspace = true
revm = { workspace = true}
seismic-revm.workspace = true

# misc
Expand Down
10 changes: 8 additions & 2 deletions crates/seismic/node/src/node.rs
Original file line number Diff line number Diff line change
Expand Up @@ -510,6 +510,10 @@ where
.kzg_settings(ctx.kzg_settings()?)
.with_local_transactions_config(pool_config.local_transactions_config.clone())
.with_additional_tasks(ctx.config().txpool.additional_validation_tasks)
// Gas is paid in USDC on Seismic, not native ETH. Disable the native balance check
// so transactions from accounts with zero ETH are not rejected. Actual gas payment
// is enforced by the Seismic revm implementation at execution time.
.disable_balance_check()
.build_with_tasks(ctx.task_executor().clone(), blob_store.clone());

// Wrap the eth validator with seismic-specific validation
Expand Down Expand Up @@ -544,10 +548,11 @@ reth_transaction_pool::maintain::LocalTransactionBackupConfig::with_local_txs_ba
},
);

// spawn the maintenance task
// spawn the maintenance task with USDC balance augmentation
let balance_hook = reth_seismic_txpool::SeismicBalanceHook;
ctx.task_executor().spawn_critical(
"txpool maintenance task",
reth_transaction_pool::maintain::maintain_transaction_pool_future(
reth_transaction_pool::maintain::maintain_transaction_pool_future_with_hook(
client,
pool,
chain_events,
Expand All @@ -556,6 +561,7 @@ reth_transaction_pool::maintain::LocalTransactionBackupConfig::with_local_txs_ba
max_tx_lifetime: transaction_pool.config().max_queued_lifetime,
..Default::default()
},
balance_hook,
),
);
// debug!(target: "reth::cli", "Spawned txpool maintenance task");
Expand Down
Loading
Loading