Skip to content

Commit b1b8151

Browse files
yash-atreyamattsse
andauthored
refactor(common): use alloy retry layer (#8368)
* use alloy retry layer in RetryProvider * nits * rm built-in retry layer * rm `timeout_retry` * bump alloy --------- Co-authored-by: Matthias Seitz <[email protected]>
1 parent 7c4482f commit b1b8151

File tree

7 files changed

+37
-396
lines changed

7 files changed

+37
-396
lines changed

Cargo.toml

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -172,28 +172,28 @@ revm-inspectors = { version = "0.3", features = ["serde"] }
172172
ethers-contract-abigen = { version = "2.0.14", default-features = false }
173173

174174
## alloy
175-
alloy-consensus = { version = "0.1.2", default-features = false }
176-
alloy-contract = { version = "0.1.2", default-features = false }
177-
alloy-eips = { version = "0.1.2", default-features = false }
178-
alloy-genesis = { version = "0.1.2", default-features = false }
179-
alloy-json-rpc = { version = "0.1.2", default-features = false }
180-
alloy-network = { version = "0.1.2", default-features = false }
181-
alloy-node-bindings = { version = "0.1.2", default-features = false }
182-
alloy-provider = { version = "0.1.2", default-features = false }
183-
alloy-pubsub = { version = "0.1.2", default-features = false }
184-
alloy-rpc-client = { version = "0.1.2", default-features = false }
185-
alloy-rpc-types = { version = "0.1.2", default-features = false }
186-
alloy-serde = { version = "0.1.2", default-features = false }
187-
alloy-signer = { version = "0.1.2", default-features = false }
188-
alloy-signer-aws = { version = "0.1.2", default-features = false }
189-
alloy-signer-gcp = { version = "0.1.2", default-features = false }
190-
alloy-signer-ledger = { version = "0.1.2", default-features = false }
191-
alloy-signer-local = { version = "0.1.2", default-features = false }
192-
alloy-signer-trezor = { version = "0.1.2", default-features = false }
193-
alloy-transport = { version = "0.1.2", default-features = false }
194-
alloy-transport-http = { version = "0.1.2", default-features = false }
195-
alloy-transport-ipc = { version = "0.1.2", default-features = false }
196-
alloy-transport-ws = { version = "0.1.2", default-features = false }
175+
alloy-consensus = { version = "0.1.4", default-features = false }
176+
alloy-contract = { version = "0.1.4", default-features = false }
177+
alloy-eips = { version = "0.1.4", default-features = false }
178+
alloy-genesis = { version = "0.1.4", default-features = false }
179+
alloy-json-rpc = { version = "0.1.4", default-features = false }
180+
alloy-network = { version = "0.1.4", default-features = false }
181+
alloy-node-bindings = { version = "0.1.4", default-features = false }
182+
alloy-provider = { version = "0.1.4", default-features = false }
183+
alloy-pubsub = { version = "0.1.4", default-features = false }
184+
alloy-rpc-client = { version = "0.1.4", default-features = false }
185+
alloy-rpc-types = { version = "0.1.4", default-features = false }
186+
alloy-serde = { version = "0.1.4", default-features = false }
187+
alloy-signer = { version = "0.1.4", default-features = false }
188+
alloy-signer-aws = { version = "0.1.4", default-features = false }
189+
alloy-signer-gcp = { version = "0.1.4", default-features = false }
190+
alloy-signer-ledger = { version = "0.1.4", default-features = false }
191+
alloy-signer-local = { version = "0.1.4", default-features = false }
192+
alloy-signer-trezor = { version = "0.1.4", default-features = false }
193+
alloy-transport = { version = "0.1.4", default-features = false }
194+
alloy-transport-http = { version = "0.1.4", default-features = false }
195+
alloy-transport-ipc = { version = "0.1.4", default-features = false }
196+
alloy-transport-ws = { version = "0.1.4", default-features = false }
197197

198198
alloy-dyn-abi = "0.7.3"
199199
alloy-json-abi = "0.7.3"

crates/anvil/src/config.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1020,10 +1020,10 @@ impl NodeConfig {
10201020
let provider = Arc::new(
10211021
ProviderBuilder::new(&eth_rpc_url)
10221022
.timeout(self.fork_request_timeout)
1023-
.timeout_retry(self.fork_request_retries)
1023+
// .timeout_retry(self.fork_request_retries)
10241024
.initial_backoff(self.fork_retry_backoff.as_millis() as u64)
10251025
.compute_units_per_second(self.compute_units_per_second)
1026-
.max_retry(10)
1026+
.max_retry(self.fork_request_retries)
10271027
.initial_backoff(1000)
10281028
.headers(self.fork_headers.clone())
10291029
.build()

crates/anvil/src/eth/backend/fork.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -623,8 +623,8 @@ impl ClientForkConfig {
623623
self.provider = Arc::new(
624624
ProviderBuilder::new(url.as_str())
625625
.timeout(self.timeout)
626-
.timeout_retry(self.retries)
627-
.max_retry(10)
626+
// .timeout_retry(self.retries)
627+
.max_retry(self.retries)
628628
.initial_backoff(self.backoff.as_millis() as u64)
629629
.compute_units_per_second(self.compute_units_per_second)
630630
.build()

crates/common/src/provider/mod.rs

Lines changed: 9 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
//! Provider-related instantiation and usage utilities.
22
3-
pub mod retry;
43
pub mod runtime_transport;
5-
pub mod tower;
64

75
use crate::{
86
provider::runtime_transport::RuntimeTransportBuilder, ALCHEMY_FREE_TIER_CUPS, REQUEST_TIMEOUT,
@@ -13,7 +11,10 @@ use alloy_provider::{
1311
Identity, ProviderBuilder as AlloyProviderBuilder, RootProvider,
1412
};
1513
use alloy_rpc_client::ClientBuilder;
16-
use alloy_transport::utils::guess_local_url;
14+
use alloy_transport::{
15+
layers::{RetryBackoffLayer, RetryBackoffService},
16+
utils::guess_local_url,
17+
};
1718
use eyre::{Result, WrapErr};
1819
use foundry_config::NamedChain;
1920
use reqwest::Url;
@@ -24,7 +25,6 @@ use std::{
2425
str::FromStr,
2526
time::Duration,
2627
};
27-
use tower::{RetryBackoffLayer, RetryBackoffService};
2828
use url::ParseError;
2929

3030
/// Helper type alias for a retry provider
@@ -77,7 +77,6 @@ pub struct ProviderBuilder {
7777
url: Result<Url>,
7878
chain: NamedChain,
7979
max_retry: u32,
80-
timeout_retry: u32,
8180
initial_backoff: u64,
8281
timeout: Duration,
8382
/// available CUPS
@@ -128,7 +127,6 @@ impl ProviderBuilder {
128127
url,
129128
chain: NamedChain::Mainnet,
130129
max_retry: 8,
131-
timeout_retry: 8,
132130
initial_backoff: 800,
133131
timeout: REQUEST_TIMEOUT,
134132
// alchemy max cpus <https://docs.alchemy.com/reference/compute-units#what-are-cups-compute-units-per-second>
@@ -175,12 +173,6 @@ impl ProviderBuilder {
175173
self
176174
}
177175

178-
/// How often to retry a failed request due to connection issues
179-
pub fn timeout_retry(mut self, timeout_retry: u32) -> Self {
180-
self.timeout_retry = timeout_retry;
181-
self
182-
}
183-
184176
/// The starting backoff delay to use after the first failed request
185177
pub fn initial_backoff(mut self, initial_backoff: u64) -> Self {
186178
self.initial_backoff = initial_backoff;
@@ -239,7 +231,6 @@ impl ProviderBuilder {
239231
url,
240232
chain: _,
241233
max_retry,
242-
timeout_retry,
243234
initial_backoff,
244235
timeout,
245236
compute_units_per_second,
@@ -249,12 +240,9 @@ impl ProviderBuilder {
249240
} = self;
250241
let url = url?;
251242

252-
let retry_layer = RetryBackoffLayer::new(
253-
max_retry,
254-
timeout_retry,
255-
initial_backoff,
256-
compute_units_per_second,
257-
);
243+
let retry_layer =
244+
RetryBackoffLayer::new(max_retry, initial_backoff, compute_units_per_second);
245+
258246
let transport = RuntimeTransportBuilder::new(url)
259247
.with_timeout(timeout)
260248
.with_headers(headers)
@@ -274,7 +262,6 @@ impl ProviderBuilder {
274262
url,
275263
chain: _,
276264
max_retry,
277-
timeout_retry,
278265
initial_backoff,
279266
timeout,
280267
compute_units_per_second,
@@ -284,12 +271,8 @@ impl ProviderBuilder {
284271
} = self;
285272
let url = url?;
286273

287-
let retry_layer = RetryBackoffLayer::new(
288-
max_retry,
289-
timeout_retry,
290-
initial_backoff,
291-
compute_units_per_second,
292-
);
274+
let retry_layer =
275+
RetryBackoffLayer::new(max_retry, initial_backoff, compute_units_per_second);
293276

294277
let transport = RuntimeTransportBuilder::new(url)
295278
.with_timeout(timeout)

crates/common/src/provider/retry.rs

Lines changed: 0 additions & 152 deletions
This file was deleted.

0 commit comments

Comments
 (0)