Pass all precompiles to Prepare call

This commit is contained in:
Tony Chen 2025-05-15 14:25:34 +08:00
parent 83ac470046
commit 02f56340c9
2 changed files with 10 additions and 1 deletions

View file

@ -425,7 +425,9 @@ func (st *StateTransition) TransitionDb() (*ExecutionResult, error) {
// Execute the preparatory steps for state transition which includes: // Execute the preparatory steps for state transition which includes:
// - prepare accessList(post-berlin) // - prepare accessList(post-berlin)
// - reset transient storage(eip 1153) // - reset transient storage(eip 1153)
st.state.Prepare(rules, msg.From, st.evm.Context.Coinbase, msg.To, vm.ActivePrecompiles(rules), msg.AccessList) precompiles := st.evm.GetPrecompiles()
precompiles = append(precompiles, vm.ActivePrecompiles(rules)...)
st.state.Prepare(rules, msg.From, st.evm.Context.Coinbase, msg.To, precompiles, msg.AccessList)
var ( var (
ret []byte ret []byte

View file

@ -619,3 +619,10 @@ func (evm *EVM) GetVMContext() *tracing.VMContext {
func (evm *EVM) GetDepth() int { func (evm *EVM) GetDepth() int {
return evm.depth return evm.depth
} }
func (evm *EVM) GetPrecompiles() (res []common.Address) {
for addr := range evm.dynamicPrecompiles {
res = append(res, addr)
}
return
}