Skip to content

Commit d412f2b

Browse files
committed
refactor: add recommended_fillers in superalloy
1 parent 23c5217 commit d412f2b

4 files changed

Lines changed: 22 additions & 19 deletions

File tree

bin/onlyswaps-solver/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ serde = { workspace = true, features = ["derive"] }
2020
serde_json.workspace = true
2121
speculoos = "0.13.0"
2222
shellexpand = "3.1.1"
23-
superalloy = { workspace = true, features = ["fillers"] }
23+
superalloy.workspace = true
2424
tokio = { workspace = true, features = ["rt-multi-thread", "signal"] }
25-
tracing.workspace = true
25+
tracing.workspace = true

bin/onlyswaps-solver/src/network.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ use crate::model::{BlockEvent, ChainState, Transfer};
33
use crate::solver::ChainStateProvider;
44
use alloy::network::EthereumWallet;
55
use alloy::primitives::{Address, U256};
6-
use alloy::providers::fillers::{BlobGasFiller, ChainIdFiller};
76
use alloy::providers::{DynProvider, Provider, ProviderBuilder, WsConnect};
87
use alloy::signers::local::PrivateKeySigner;
98
use async_trait::async_trait;
@@ -17,7 +16,7 @@ use itertools::Itertools;
1716
use std::collections::HashMap;
1817
use std::pin::Pin;
1918
use std::str::FromStr;
20-
use superalloy::fillers::GasBufferFiller;
19+
use superalloy::provider::recommended_fillers;
2120

2221
pub(crate) struct Network<P> {
2322
pub chain_id: u64,
@@ -52,10 +51,7 @@ impl Network<DynProvider> {
5251
let url = config.rpc_url.clone();
5352
let chain_id = config.chain_id;
5453
let provider = ProviderBuilder::default()
55-
.filler(ChainIdFiller::default())
56-
.with_simple_nonce_management()
57-
.filler(BlobGasFiller)
58-
.filler(GasBufferFiller::new(config.tx_gas_buffer))
54+
.filler(recommended_fillers(config.tx_gas_buffer))
5955
.wallet(EthereumWallet::new(signer.clone()))
6056
.connect_ws(WsConnect::new(url))
6157
.await?

crates/superalloy/Cargo.toml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ name = "superalloy"
33
version.workspace = true
44
edition.workspace = true
55

6-
[features]
7-
fillers = []
8-
96
[dependencies]
107
# blockchain
118
alloy = { workspace = true, features = ["default", "provider-ws"] }

crates/superalloy/src/provider.rs

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ mod multi;
22

33
pub use multi::*;
44

5+
use crate::fillers::GasBufferFiller;
56
use crate::retry::{RetryStrategy, with_retry};
67
use alloy::consensus::BlockHeader;
78
use alloy::providers::fillers::{
8-
BlobGasFiller, ChainIdFiller, FillProvider, GasFiller, JoinFill, NonceFiller,
9+
BlobGasFiller, ChainIdFiller, FillProvider, JoinFill, NonceFiller, SimpleNonceManager,
910
};
1011
use alloy::providers::{Identity, Provider, ProviderBuilder, RootProvider, WsConnect};
1112
use alloy::transports::http::reqwest;
@@ -28,20 +29,29 @@ pub enum CreateProviderError {
2829
UnsupportedScheme,
2930
}
3031

31-
pub type RecommendedProvider = FillProvider<
32-
JoinFill<
33-
Identity,
34-
JoinFill<GasFiller, JoinFill<BlobGasFiller, JoinFill<NonceFiller, ChainIdFiller>>>,
35-
>,
36-
RootProvider,
32+
pub type RecommendedProvider = FillProvider<JoinFill<Identity, RecommendedFillers>, RootProvider>;
33+
34+
pub type RecommendedFillers = JoinFill<
35+
NonceFiller<SimpleNonceManager>,
36+
JoinFill<ChainIdFiller, JoinFill<BlobGasFiller, GasBufferFiller>>,
3737
>;
3838

39+
pub fn recommended_fillers(tx_gas_buffer: u16) -> RecommendedFillers {
40+
JoinFill::new(
41+
NonceFiller::new(SimpleNonceManager::default()),
42+
JoinFill::new(
43+
ChainIdFiller::default(),
44+
JoinFill::new(BlobGasFiller, GasBufferFiller::new(tx_gas_buffer)),
45+
),
46+
)
47+
}
48+
3949
/// Creates a http / websocket provider based on the rpc url provided.
4050
pub async fn create_provider_with_retry(
4151
rpc_url: reqwest::Url,
4252
retry_strategy: RetryStrategy,
4353
) -> Result<RecommendedProvider, CreateProviderError> {
44-
let build_provider = || ProviderBuilder::default().with_recommended_fillers();
54+
let build_provider = || ProviderBuilder::default().filler(recommended_fillers(100));
4555

4656
match rpc_url.scheme() {
4757
"http" | "https" => {

0 commit comments

Comments
 (0)