plugeth/trie/plugin_hooks.go

68 lines
1.9 KiB
Go

package trie
import (
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/plugins"
"github.com/ethereum/go-ethereum/common"
"github.com/openrelayxyz/plugeth-utils/core"
)
func PluginPreTrieCommit(pl *plugins.PluginLoader, node common.Hash) {
fnList := pl.Lookup("PreTrieCommit", func(item interface{}) bool {
_, ok := item.(func(core.Hash))
return ok
})
for _, fni := range fnList {
if fn, ok := fni.(func(core.Hash)); ok {
fn(core.Hash(node))
}
}
}
func pluginPreTrieCommit(node common.Hash) {
if plugins.DefaultPluginLoader == nil {
log.Warn("Attempting PreTrieCommit, but default PluginLoader has not been initialized")
return
}
PluginPreTrieCommit(plugins.DefaultPluginLoader, node)
}
func PluginPostTrieCommit(pl *plugins.PluginLoader, node common.Hash) {
fnList := pl.Lookup("PostTrieCommit", func(item interface{}) bool {
_, ok := item.(func(core.Hash))
return ok
})
for _, fni := range fnList {
if fn, ok := fni.(func(core.Hash)); ok {
fn(core.Hash(node))
}
}
}
func pluginPostTrieCommit(node common.Hash) {
if plugins.DefaultPluginLoader == nil {
log.Warn("Attempting PostTrieCommit, but default PluginLoader has not been initialized")
return
}
PluginPostTrieCommit(plugins.DefaultPluginLoader, node)
}
// func PluginGetRPCCalls(pl *plugins.PluginLoader, id, method, params string) {
// fnList := pl.Lookup("GetRPCCalls", func(item interface{}) bool {
// _, ok := item.(func(string, string, string))
// return ok
// })
// for _, fni := range fnList {
// if fn, ok := fni.(func(string, string, string)); ok {
// fn(id, method, params)
// }
// }
// }
// func pluginGetRPCCalls(id, method, params string) {
// if plugins.DefaultPluginLoader == nil {
// log.Warn("Attempting GerRPCCalls, but default PluginLoader has not been initialized")
// return
// }
// PluginGetRPCCalls(plugins.DefaultPluginLoader, id, method, params)
// }