Add setMining RPC method
This commit is contained in:
parent
605dd3a982
commit
a59cd94625
|
@ -201,6 +201,21 @@ func (req *RpcRequest) ToGetCodeAtArgs() (*GetCodeAtArgs, error) {
|
|||
return args, nil
|
||||
}
|
||||
|
||||
func (req *RpcRequest) ToBoolArgs() (bool, error) {
|
||||
if len(req.Params) < 1 {
|
||||
return false, NewErrorResponse(ErrorArguments)
|
||||
}
|
||||
|
||||
var args bool
|
||||
err := json.Unmarshal(req.Params[0], &args)
|
||||
if err != nil {
|
||||
return false, NewErrorResponse(ErrorDecodeArgs)
|
||||
}
|
||||
|
||||
rpclogger.DebugDetailf("%T %v", args, args)
|
||||
return args, nil
|
||||
}
|
||||
|
||||
func (req *RpcRequest) ToCompileArgs() (string, error) {
|
||||
if len(req.Params) < 1 {
|
||||
return "", NewErrorResponse(ErrorArguments)
|
||||
|
|
|
@ -267,6 +267,11 @@ func (p *EthereumApi) GetIsMining(reply *interface{}) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (p *EthereumApi) SetMining(shouldmine bool, reply *interface{}) error {
|
||||
*reply = p.xeth.SetMining(shouldmine)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *EthereumApi) BlockNumber(reply *interface{}) error {
|
||||
*reply = p.xeth.Backend().ChainManager().CurrentBlock().Number()
|
||||
return nil
|
||||
|
@ -400,6 +405,12 @@ func (p *EthereumApi) GetRequestReply(req *RpcRequest, reply *interface{}) error
|
|||
return p.GetIsListening(reply)
|
||||
case "eth_mining":
|
||||
return p.GetIsMining(reply)
|
||||
case "eth_setMining":
|
||||
args, err := req.ToBoolArgs()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return p.SetMining(args, reply)
|
||||
case "eth_peerCount":
|
||||
return p.GetPeerCount(reply)
|
||||
case "eth_number":
|
||||
|
|
11
xeth/xeth.go
11
xeth/xeth.go
|
@ -102,6 +102,17 @@ func (self *XEth) IsMining() bool {
|
|||
return self.miner.Mining()
|
||||
}
|
||||
|
||||
func (self *XEth) SetMining(shouldmine bool) bool {
|
||||
ismining := self.miner.Mining()
|
||||
if shouldmine && !ismining {
|
||||
self.miner.Start()
|
||||
}
|
||||
if ismining && !shouldmine {
|
||||
self.miner.Stop()
|
||||
}
|
||||
return self.miner.Mining()
|
||||
}
|
||||
|
||||
func (self *XEth) IsListening() bool {
|
||||
return self.eth.IsListening()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue