Skip to content

Commit 7a6eb65

Browse files
authored
fix(cast): do not use default overrides if no override arg (v1.2.3 backport) (#10713)
* fix(cast): do not use default overrides if no override arg (#10710) * chore: fix clippy (#10687) * chore: fix flaky test, bump timeout max rejects, use http provider (#10691) chore: flaky test, bump timeout max rejects, use http provider * chore: bump version 1.2.3 (#10712)
1 parent 73ac79f commit 7a6eb65

File tree

9 files changed

+70
-47
lines changed

9 files changed

+70
-47
lines changed

Cargo.lock

Lines changed: 30 additions & 30 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ members = [
2727
resolver = "2"
2828

2929
[workspace.package]
30-
version = "1.2.2"
30+
version = "1.2.3"
3131
edition = "2021"
3232
# Remember to update clippy.toml as well
3333
rust-version = "1.83"

crates/anvil/tests/it/anvil_api.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -673,7 +673,7 @@ async fn can_remove_pool_transactions() {
673673
#[tokio::test(flavor = "multi_thread")]
674674
async fn test_reorg() {
675675
let (api, handle) = spawn(NodeConfig::test()).await;
676-
let provider = handle.ws_provider();
676+
let provider = handle.http_provider();
677677

678678
let accounts = handle.dev_wallets().collect::<Vec<_>>();
679679

crates/cast/src/cmd/call.rs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -302,8 +302,22 @@ impl CallArgs {
302302

303303
Ok(())
304304
}
305-
/// Parse state overrides from command line arguments
306-
pub fn get_state_overrides(&self) -> eyre::Result<StateOverride> {
305+
306+
/// Parse state overrides from command line arguments.
307+
pub fn get_state_overrides(&self) -> eyre::Result<Option<StateOverride>> {
308+
// Early return if no override set - <https://github.com/foundry-rs/foundry/issues/10705>
309+
if [
310+
self.balance_overrides.as_ref(),
311+
self.nonce_overrides.as_ref(),
312+
self.code_overrides.as_ref(),
313+
self.state_overrides.as_ref(),
314+
]
315+
.iter()
316+
.all(Option::is_none)
317+
{
318+
return Ok(None);
319+
}
320+
307321
let mut state_overrides_builder = StateOverridesBuilder::default();
308322

309323
// Parse balance overrides
@@ -341,7 +355,7 @@ impl CallArgs {
341355
state_overrides_builder.with_state_diff(addr, [(slot.into(), value.into())]);
342356
}
343357

344-
Ok(state_overrides_builder.build())
358+
Ok(Some(state_overrides_builder.build()))
345359
}
346360
}
347361

crates/cast/src/lib.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ impl<P: Provider<AnyNetwork>> Cast<P> {
136136
/// let state_override_object = StateOverridesBuilder::default().build();
137137
///
138138
/// let cast = Cast::new(alloy_provider);
139-
/// let data = cast.call(&tx, None, None, state_override_object).await?;
139+
/// let data = cast.call(&tx, None, None, Some(state_override_object)).await?;
140140
/// println!("{}", data);
141141
/// # Ok(())
142142
/// # }
@@ -146,15 +146,14 @@ impl<P: Provider<AnyNetwork>> Cast<P> {
146146
req: &WithOtherFields<TransactionRequest>,
147147
func: Option<&Function>,
148148
block: Option<BlockId>,
149-
state_override: StateOverride,
149+
state_override: Option<StateOverride>,
150150
) -> Result<String> {
151-
let res = self
152-
.provider
153-
.call(req.clone())
154-
.block(block.unwrap_or_default())
155-
.overrides(state_override)
156-
.await?;
151+
let mut call = self.provider.call(req.clone()).block(block.unwrap_or_default());
152+
if let Some(state_override) = state_override {
153+
call = call.overrides(state_override)
154+
}
157155

156+
let res = call.await?;
158157
let mut decoded = vec![];
159158

160159
if let Some(func) = func {

crates/cast/tests/cli/main.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2538,3 +2538,13 @@ Error: Failed to estimate gas: server returned an error response: error code 3:
25382538
25392539
"#]]);
25402540
});
2541+
2542+
// <https://github.com/foundry-rs/foundry/issues/10705>
2543+
casttest!(cast_call_return_array_of_tuples, |_prj, cmd| {
2544+
cmd.args(["call", "0x198FC70Dfe05E755C81e54bd67Bff3F729344B9b", "facets() returns ((address,bytes4[])[])", "--rpc-url", "https://rpc.viction.xyz"])
2545+
.assert_success()
2546+
.stdout_eq(str![[r#"
2547+
[(0x9640977264aec6d4e9af381F548eee11b9e27aAe, [0x1f931c1c]), (0x395db83A04cC3d3F6C5eFc73896929Cf10D0F301, [0xcdffacc6, 0x52ef6b2c, 0xadfca15e, 0x7a0ed627, 0x01ffc9a7]), (0xC6F7b47F870024B0E2DF6DFd551E10c4A37A1cEa, [0x23452b9c, 0x7200b829, 0x8da5cb5b, 0xf2fde38b]), (0xc1f27c1f6c87e73e089Ffac23C236Fc4A9E3fccc, [0x1458d7ad, 0xd9caed12]), (0x70e272A93bc8344277a1f4390Ea6153A1D5fe450, [0x536db266, 0xfbb2d381, 0xfcd8e49e, 0x9afc19c7, 0x44e2b18c, 0x2d2506a9, 0x124f1ead, 0xc3a6a96b]), (0x662BCADB7A2CBb22367b2471d8A91E5b13FCe96B, [0x612ad9cb, 0xa4c3366e]), (0x190e03D49Ce76DDabC634a98629EDa6246aB5196, [0xa516f0f3, 0x5c2ed36a]), (0xAF69C0E3BBBf6AdE78f1466f86DfF86d64C8dA2A, [0x4630a0d8]), (0xD1317DA862AC5C145519E60D24372dc186EF7426, [0xd5bcb610, 0x5fd9ae2e, 0x2c57e884, 0x736eac0b, 0x4666fc80, 0x733214a3, 0xaf7060fd]), (0x176f558949e2a7C5217dD9C27Bf7A43c6783ee28, [0x7f99d7af, 0x103c5200, 0xc318eeda, 0xee0aa320, 0xdf1c3a5b, 0x070e81f1, 0xd53482cf, 0xf58ae2ce]), (0x531d69A3fAb6CB56A77B8402E6c217cB9cC902A9, [0xf86368ae, 0x5ad317a4, 0x0340e905, 0x2fc487ae])]
2548+
2549+
"#]]);
2550+
});

crates/evm/core/src/opts.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ impl EvmOpts {
221221
if self.no_rpc_rate_limit {
222222
u64::MAX
223223
} else if let Some(cups) = self.compute_units_per_second {
224-
return cups;
224+
cups
225225
} else {
226226
ALCHEMY_FREE_TIER_CUPS
227227
}

crates/forge/src/cmd/eip712.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,9 @@ impl Resolver {
229229
name
230230
};
231231

232-
return Ok(Some(name))
232+
Ok(Some(name))
233233
} else {
234-
return Ok(None)
234+
Ok(None)
235235
}
236236
}
237237
}

crates/forge/tests/it/fuzz.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ forgetest_init!(test_fuzz_timeout, |prj, cmd| {
254254
import {Test} from "forge-std/Test.sol";
255255
256256
contract FuzzTimeoutTest is Test {
257-
/// forge-config: default.fuzz.max-test-rejects = 10000
257+
/// forge-config: default.fuzz.max-test-rejects = 50000
258258
/// forge-config: default.fuzz.timeout = 1
259259
function test_fuzz_bound(uint256 a) public pure {
260260
vm.assume(a == 0);

0 commit comments

Comments
 (0)