plugeth/eth/ethconfig/plugin_hooks.go

44 lines
1.3 KiB
Go
Raw Normal View History

package ethconfig
import (
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/plugins"
2023-07-13 01:15:05 +00:00
// "github.com/ethereum/go-ethereum/plugins/wrappers"
wengine "github.com/ethereum/go-ethereum/plugins/wrappers/engine"
2023-07-13 01:15:05 +00:00
// "github.com/ethereum/go-ethereum/plugins/wrappers/backendwrapper"
// "github.com/openrelayxyz/plugeth-utils/core"
// "github.com/openrelayxyz/plugeth-utils/restricted"
"github.com/ethereum/go-ethereum/consensus"
2023-07-13 01:15:05 +00:00
// "github.com/ethereum/go-ethereum/ethdb"
// "github.com/ethereum/go-ethereum/node"
pconsensus "github.com/openrelayxyz/plugeth-utils/restricted/consensus"
)
2023-07-13 01:15:05 +00:00
func PluginGetEngine(pl *plugins.PluginLoader) consensus.Engine {
fnList := pl.Lookup("CreateEngine", func(item interface{}) bool {
2023-07-13 01:15:05 +00:00
_, ok := item.(func() pconsensus.Engine)
return ok
})
for _, fni := range fnList {
2023-07-13 01:15:05 +00:00
if fn, ok := fni.(func() pconsensus.Engine); ok {
if engine := fn(); engine != nil {
wrappedEngine := wengine.NewWrappedEngine(engine)
return wrappedEngine
}
}
}
return nil
}
2023-07-13 01:15:05 +00:00
func pluginGetEngine() consensus.Engine {
if plugins.DefaultPluginLoader == nil {
log.Warn("Attempting GetEngine, but default PluginLoader has not been initialized")
return nil
}
2023-07-13 01:15:05 +00:00
return PluginGetEngine(plugins.DefaultPluginLoader)
}