Plugin support for SetOption, Query, and Commit
This commit is contained in:
+2
-2
@@ -93,9 +93,9 @@ func ExecTx(state *State, tx types.Tx, isCheckTx bool, evc events.Fireable) tmsp
|
||||
}
|
||||
|
||||
// Validate call address
|
||||
plugin := state.GetPlugin(tx.Address)
|
||||
plugin := state.GetPlugin(string(tx.Address))
|
||||
if plugin != nil {
|
||||
return tmsp.ErrBaseUnknownAddress.AppendLog(Fmt("Unrecognized address %X", tx.Address))
|
||||
return tmsp.ErrBaseUnknownAddress.AppendLog(Fmt("Unrecognized address %X (%v)", tx.Address, string(tx.Address)))
|
||||
}
|
||||
|
||||
// Good!
|
||||
|
||||
+18
-8
@@ -8,10 +8,11 @@ import (
|
||||
)
|
||||
|
||||
type State struct {
|
||||
chainID string
|
||||
eyesCli *eyes.Client
|
||||
checkCache map[string]checkAccount
|
||||
plugins map[string]types.Plugin
|
||||
chainID string
|
||||
eyesCli *eyes.Client
|
||||
checkCache map[string]checkAccount
|
||||
plugins map[string]types.Plugin
|
||||
pluginsList []types.NamedPlugin
|
||||
|
||||
LastBlockHeight uint64
|
||||
LastBlockHash []byte
|
||||
@@ -23,6 +24,7 @@ func NewState(eyesCli *eyes.Client) *State {
|
||||
chainID: "",
|
||||
eyesCli: eyesCli,
|
||||
checkCache: make(map[string]checkAccount),
|
||||
plugins: make(map[string]types.Plugin),
|
||||
}
|
||||
return s
|
||||
}
|
||||
@@ -38,12 +40,20 @@ func (s *State) GetChainID() string {
|
||||
return s.chainID
|
||||
}
|
||||
|
||||
func (s *State) RegisterPlugin(addr []byte, plugin types.Plugin) {
|
||||
s.plugins[string(addr)] = plugin
|
||||
func (s *State) RegisterPlugin(name string, plugin types.Plugin) {
|
||||
s.plugins[name] = plugin
|
||||
s.pluginsList = append(s.pluginsList, types.NamedPlugin{
|
||||
Name: name,
|
||||
Plugin: plugin,
|
||||
})
|
||||
}
|
||||
|
||||
func (s *State) GetPlugin(addr []byte) types.Plugin {
|
||||
return s.plugins[string(addr)]
|
||||
func (s *State) GetPlugin(name string) types.Plugin {
|
||||
return s.plugins[name]
|
||||
}
|
||||
|
||||
func (s *State) GetPlugins() []types.NamedPlugin {
|
||||
return s.pluginsList
|
||||
}
|
||||
|
||||
//----------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user