Skip to content

Commit de596a4

Browse files
authored
fix: ignore nonce in call evm env (#8815)
1 parent 3f15f9a commit de596a4

File tree

1 file changed

+11
-2
lines changed
  • crates/anvil/src/eth/backend/mem

1 file changed

+11
-2
lines changed

crates/anvil/src/eth/backend/mem/mod.rs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1125,6 +1125,13 @@ impl Backend {
11251125
}).await?
11261126
}
11271127

1128+
/// ## EVM settings
1129+
///
1130+
/// This modifies certain EVM settings to mirror geth's `SkipAccountChecks` when transacting requests, see also: <https://github.com/ethereum/go-ethereum/blob/380688c636a654becc8f114438c2a5d93d2db032/core/state_transition.go#L145-L148>:
1131+
///
1132+
/// - `disable_eip3607` is set to `true`
1133+
/// - `disable_base_fee` is set to `true`
1134+
/// - `nonce` is set to `None`
11281135
fn build_call_env(
11291136
&self,
11301137
request: WithOtherFields<TransactionRequest>,
@@ -1139,10 +1146,11 @@ impl Backend {
11391146
gas,
11401147
value,
11411148
input,
1142-
nonce,
11431149
access_list,
11441150
blob_versioned_hashes,
11451151
authorization_list,
1152+
// nonce is always ignored for calls
1153+
nonce: _,
11461154
sidecar: _,
11471155
chain_id: _,
11481156
transaction_type: _,
@@ -1190,7 +1198,8 @@ impl Backend {
11901198
value: value.unwrap_or_default(),
11911199
data: input.into_input().unwrap_or_default(),
11921200
chain_id: None,
1193-
nonce,
1201+
// set nonce to None so that the correct nonce is chosen by the EVM
1202+
nonce: None,
11941203
access_list: access_list.unwrap_or_default().into(),
11951204
blob_hashes: blob_versioned_hashes.unwrap_or_default(),
11961205
optimism: OptimismFields { enveloped_tx: Some(Bytes::new()), ..Default::default() },

0 commit comments

Comments
 (0)