@@ -2,10 +2,11 @@ mod multi;
22
33pub use multi:: * ;
44
5+ use crate :: fillers:: GasBufferFiller ;
56use crate :: retry:: { RetryStrategy , with_retry} ;
67use alloy:: consensus:: BlockHeader ;
78use alloy:: providers:: fillers:: {
8- BlobGasFiller , ChainIdFiller , FillProvider , GasFiller , JoinFill , NonceFiller ,
9+ BlobGasFiller , ChainIdFiller , FillProvider , JoinFill , NonceFiller , SimpleNonceManager ,
910} ;
1011use alloy:: providers:: { Identity , Provider , ProviderBuilder , RootProvider , WsConnect } ;
1112use 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.
4050pub 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