forked from cerc-io/plugeth
Missing rpc call hook and test
This commit is contained in:
parent
7d7fad0988
commit
25af69b8e2
28
rpc/getRPCcall_test.go
Normal file
28
rpc/getRPCcall_test.go
Normal file
@ -0,0 +1,28 @@
|
||||
package rpc
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/ethereum/go-ethereum/plugins"
|
||||
)
|
||||
|
||||
func TestGetRPCCalls(t *testing.T) {
|
||||
invoked := false
|
||||
done := plugins.HookTester("GetRPCCalls", func(id, method, params string) {
|
||||
invoked = true
|
||||
if id == "" {
|
||||
t.Errorf("Expected id to be non-nil")
|
||||
}
|
||||
if method == "" {
|
||||
t.Errorf("Expected method to be non-nil")
|
||||
}
|
||||
if params == "" {
|
||||
t.Errorf("Expected params to be non-nil")
|
||||
}
|
||||
})
|
||||
defer done()
|
||||
TestClientResponseType(t)
|
||||
if !invoked {
|
||||
t.Errorf("Expected plugin invocation")
|
||||
}
|
||||
}
|
26
rpc/plugin_hooks.go
Normal file
26
rpc/plugin_hooks.go
Normal file
@ -0,0 +1,26 @@
|
||||
package rpc
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/log"
|
||||
"github.com/ethereum/go-ethereum/plugins"
|
||||
)
|
||||
|
||||
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)
|
||||
}
|
Loading…
Reference in New Issue
Block a user