diff --git a/plugins/test-plugin/engine.go b/plugins/test-plugin/engine.go index 76097ba6f..fac7cd505 100644 --- a/plugins/test-plugin/engine.go +++ b/plugins/test-plugin/engine.go @@ -17,6 +17,7 @@ var ( backend restricted.Backend log core.Logger events core.Feed + createEngineCalled bool ) var httpApiFlagName = "http.api" @@ -107,6 +108,7 @@ func (e *engine) Close() error { } func CreateEngine(chainConfig *params.ChainConfig, db restricted.Database) consensus.Engine { + createEngineCalled = true return &engine{} } diff --git a/plugins/test-plugin/hooks.go b/plugins/test-plugin/hooks.go index b1a11e44a..47f8249ed 100644 --- a/plugins/test-plugin/hooks.go +++ b/plugins/test-plugin/hooks.go @@ -6,6 +6,7 @@ import ( "sync" "github.com/openrelayxyz/plugeth-utils/core" + "github.com/openrelayxyz/plugeth-utils/restricted" ) @@ -37,6 +38,15 @@ func GetAPIs(stack core.Node, backend core.Backend) []core.API { return apis } +func InitializeNode(stack core.Node, b restricted.Backend) { + go func() { + m := map[string]struct{}{ + "InitializeNode":struct{}{}, + } + hookChan <- m + }() +} + // func OnShutdown(){ // this injection is covered by another test in this package. See documentation for details. // } @@ -187,6 +197,17 @@ func OpCodeSelect() []int { return nil } +// eth/ethconfig + +func pseudoCreateEngine() { + if createEngineCalled { + m := map[string]struct{}{ + "CreateEngine":struct{}{}, + } + hookChan <- m + } +} + // rpc/ @@ -239,6 +260,8 @@ func Is160(num *big.Int) bool { } var plugins map[string]struct{} = map[string]struct{}{ + "InitializeNode":struct{}{}, + "CreateEngine":struct{}{}, "OnShutdown": struct{}{}, "SetTrieFlushIntervalClone":struct{}{}, "StateUpdate": struct{}{}, diff --git a/plugins/test-plugin/main.go b/plugins/test-plugin/main.go index 75cba1eee..30f272606 100644 --- a/plugins/test-plugin/main.go +++ b/plugins/test-plugin/main.go @@ -53,6 +53,10 @@ func BlockChain() { var ok bool f := func(key string) bool {_, ok = m[key]; return ok} switch { + case f("InitializeNode"): + delete(plugins, "InitializeNode") + case f("CreateEngine"): + delete(plugins, "CreateEngine") case f("OnShutdown"): delete(plugins, "OnShutdown") case f("StateUpdate"): @@ -139,6 +143,7 @@ func BlockChain() { } }() + pseudoCreateEngine() txFactory() txTracer() }