Skip to content

Commit

Permalink
Fix ChargeAccountAccessGas logic (#7997)
Browse files Browse the repository at this point in the history
  • Loading branch information
smartprogrammer93 authored and rjnrohit committed Jan 11, 2025
1 parent 396cbf1 commit b0d9bb1
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions src/Nethermind/Nethermind.Evm/VirtualMachine.cs
Original file line number Diff line number Diff line change
Expand Up @@ -500,10 +500,9 @@ private bool ChargeAccountAccessGas(ref long gasAvailable, EvmState vmState, Add
}
bool notOutOfGas = ChargeAccountGas(ref gasAvailable, vmState, address, spec);
return notOutOfGas
&& chargeForDelegation
&& vmState.Env.TxExecutionContext.CodeInfoRepository.TryGetDelegation(_state, address, out Address delegated)
? ChargeAccountGas(ref gasAvailable, vmState, delegated, spec)
: notOutOfGas;
&& (!chargeForDelegation
|| !vmState.Env.TxExecutionContext.CodeInfoRepository.TryGetDelegation(_state, address, out Address delegated)
|| ChargeAccountGas(ref gasAvailable, vmState, delegated, spec));

bool ChargeAccountGas(ref long gasAvailable, EvmState vmState, Address address, IReleaseSpec spec)
{
Expand Down Expand Up @@ -2075,7 +2074,7 @@ private void InstructionExtCodeSize<TTracingInstructions>(Address address, ref E
UInt256 result = (UInt256)accountCode.Span.Length;
if (delegation is not null)
{
//If the account has been delegated only the first two bytes of the delegation header counts as size
//If the account has been delegated only the first two bytes of the delegation header counts as size
result = (UInt256)Eip7702Constants.FirstTwoBytesOfHeader.Length;
}
stack.PushUInt256(in result);
Expand Down

0 comments on commit b0d9bb1

Please sign in to comment.