forked from cerc-io/plugeth
53 lines
1.9 KiB
Go
53 lines
1.9 KiB
Go
|
package eth
|
||
|
|
||
|
import (
|
||
|
"github.com/ethereum/go-ethereum/plugins"
|
||
|
"github.com/ethereum/go-ethereum/node"
|
||
|
"github.com/ethereum/go-ethereum/params"
|
||
|
"github.com/ethereum/go-ethereum/core/vm"
|
||
|
"github.com/ethereum/go-ethereum/consensus"
|
||
|
"github.com/ethereum/go-ethereum/consensus/ethash"
|
||
|
"github.com/ethereum/go-ethereum/eth/ethconfig"
|
||
|
"github.com/ethereum/go-ethereum/ethdb"
|
||
|
)
|
||
|
|
||
|
|
||
|
func pluginCreateConsensusEngine(stack *node.Node, chainConfig *params.ChainConfig, config *ethash.Config, notify []string, noverify bool, db ethdb.Database) consensus.Engine {
|
||
|
fnList := plugins.Lookup("CreateConsensusEngine", func(item interface{}) bool {
|
||
|
_, ok := item.(func(*node.Node, *params.ChainConfig, *ethash.Config, []string, bool, ethdb.Database) consensus.Engine)
|
||
|
return ok
|
||
|
})
|
||
|
for _, fni := range fnList {
|
||
|
if fn, ok := fni.(func(*node.Node, *params.ChainConfig, *ethash.Config, []string, bool, ethdb.Database) consensus.Engine); ok {
|
||
|
return fn(stack, chainConfig, config, notify, noverify, db)
|
||
|
}
|
||
|
}
|
||
|
return ethconfig.CreateConsensusEngine(stack, chainConfig, config, notify, noverify, db)
|
||
|
}
|
||
|
func pluginUpdateBlockchainVMConfig(cfg *vm.Config) {
|
||
|
fnList := plugins.Lookup("UpdateBlockchainVMConfig", func(item interface{}) bool {
|
||
|
_, ok := item.(func(*vm.Config))
|
||
|
return ok
|
||
|
})
|
||
|
for _, fni := range fnList {
|
||
|
if fn, ok := fni.(func(*vm.Config)); ok {
|
||
|
fn(cfg)
|
||
|
return
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// ce, err := plug.Lookup("CreateConsensusEngine")
|
||
|
// if err == nil {
|
||
|
// cce, ok := ce.(func (stack *node.Node, chainConfig *params.ChainConfig, config *ethash.Config, notify []string, noverify bool, db ethdb.Database) consensus.Engine)
|
||
|
// if !ok {
|
||
|
// log.Warn("Could not cast plugin.CreateConsensusEngine to appropriate function", "file", fpath)
|
||
|
// } else {
|
||
|
// if setConsensus {
|
||
|
// log.Warn("CreateConsensusEngine redeclared", "file", fpath)
|
||
|
// }
|
||
|
// pl.CreateConsensusEngine = cce
|
||
|
// setConsensus = true
|
||
|
// }
|
||
|
// }
|