go-ethereum/libevm/reentrancy
Arran Schlosberg 910e897c54
feat: reentrancy.Guard for stateful precompiles (#212)
## Why this should be merged

The `vm.PrecompileEnvironment.Call()` method requires careful usage
because of reentrancy vulnerabilities (this is common to all outgoing
`CALL`s in the EVM, not just stateful precompiles). This package
provides a common method of protection, a reentrancy guard.

## How this works

Provides a function that returns `vm.ErrExecutionReverted` if called
twice, by the same contract, in the same transaction, with the same
identifier.

## How this was tested

Unit and integration tests.
2025-10-03 19:56:29 +00:00
..
guard.go feat: reentrancy.Guard for stateful precompiles (#212) 2025-10-03 19:56:29 +00:00
guard_test.go feat: reentrancy.Guard for stateful precompiles (#212) 2025-10-03 19:56:29 +00:00