Add setMining RPC method
This commit is contained in:
		@@ -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()
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user