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