add getmininginfo to switch and move to alphabetical order.
more tests.
This commit is contained in:
parent
0daf04f9bd
commit
711f229487
2 changed files with 112 additions and 67 deletions
123
jsoncmd.go
123
jsoncmd.go
|
@ -134,6 +134,9 @@ func ParseMarshaledCmd(b []byte) (Cmd, error) {
|
||||||
case "getinfo":
|
case "getinfo":
|
||||||
cmd = new(GetInfoCmd)
|
cmd = new(GetInfoCmd)
|
||||||
|
|
||||||
|
case "getmininginfo":
|
||||||
|
cmd = new(GetMiningInfoCmd)
|
||||||
|
|
||||||
case "getnettotals":
|
case "getnettotals":
|
||||||
cmd = new(GetNetTotalsCmd)
|
cmd = new(GetNetTotalsCmd)
|
||||||
|
|
||||||
|
@ -2181,6 +2184,66 @@ func (cmd *GetInfoCmd) UnmarshalJSON(b []byte) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetMiningInfoCmd is a type handling custom marshaling and
|
||||||
|
// unmarshaling of getmininginfo JSON RPC commands.
|
||||||
|
type GetMiningInfoCmd struct {
|
||||||
|
id interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Enforce that GetMiningInfoCmd satisifies the Cmd interface.
|
||||||
|
var _ Cmd = &GetMiningInfoCmd{}
|
||||||
|
|
||||||
|
// NewGetMiningInfoCmd creates a new GetMiningInfoCmd.
|
||||||
|
func NewGetMiningInfoCmd(id interface{}) (*GetMiningInfoCmd, error) {
|
||||||
|
return &GetMiningInfoCmd{
|
||||||
|
id: id,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// Id satisfies the Cmd interface by returning the id of the command.
|
||||||
|
func (cmd *GetMiningInfoCmd) Id() interface{} {
|
||||||
|
return cmd.id
|
||||||
|
}
|
||||||
|
|
||||||
|
// Method satisfies the Cmd interface by returning the json method.
|
||||||
|
func (cmd *GetMiningInfoCmd) Method() string {
|
||||||
|
return "getmininginfo"
|
||||||
|
}
|
||||||
|
|
||||||
|
// MarshalJSON returns the JSON encoding of cmd. Part of the Cmd interface.
|
||||||
|
func (cmd *GetMiningInfoCmd) MarshalJSON() ([]byte, error) {
|
||||||
|
|
||||||
|
// Fill and marshal a RawCmd.
|
||||||
|
return json.Marshal(RawCmd{
|
||||||
|
Jsonrpc: "1.0",
|
||||||
|
Method: "getmininginfo",
|
||||||
|
Id: cmd.id,
|
||||||
|
Params: []interface{}{},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// UnmarshalJSON unmarshals the JSON encoding of cmd into cmd. Part of
|
||||||
|
// the Cmd interface.
|
||||||
|
func (cmd *GetMiningInfoCmd) UnmarshalJSON(b []byte) error {
|
||||||
|
// Unmashal into a RawCmd
|
||||||
|
var r RawCmd
|
||||||
|
if err := json.Unmarshal(b, &r); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(r.Params) != 0 {
|
||||||
|
return ErrWrongNumberOfParams
|
||||||
|
}
|
||||||
|
|
||||||
|
newCmd, err := NewGetMiningInfoCmd(r.Id)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
*cmd = *newCmd
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// GetNetTotalsCmd is a type handling custom marshaling and
|
// GetNetTotalsCmd is a type handling custom marshaling and
|
||||||
// unmarshaling of getnettotals JSON RPC commands.
|
// unmarshaling of getnettotals JSON RPC commands.
|
||||||
type GetNetTotalsCmd struct {
|
type GetNetTotalsCmd struct {
|
||||||
|
@ -2347,66 +2410,6 @@ func (cmd *GetNetworkHashPSCmd) UnmarshalJSON(b []byte) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetMiningInfoCmd is a type handling custom marshaling and
|
|
||||||
// unmarshaling of getmininginfo JSON RPC commands.
|
|
||||||
type GetMiningInfoCmd struct {
|
|
||||||
id interface{}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Enforce that GetMiningInfoCmd satisifies the Cmd interface.
|
|
||||||
var _ Cmd = &GetMiningInfoCmd{}
|
|
||||||
|
|
||||||
// NewGetMiningInfoCmd creates a new GetMiningInfoCmd.
|
|
||||||
func NewGetMiningInfoCmd(id interface{}) (*GetMiningInfoCmd, error) {
|
|
||||||
return &GetMiningInfoCmd{
|
|
||||||
id: id,
|
|
||||||
}, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// Id satisfies the Cmd interface by returning the id of the command.
|
|
||||||
func (cmd *GetMiningInfoCmd) Id() interface{} {
|
|
||||||
return cmd.id
|
|
||||||
}
|
|
||||||
|
|
||||||
// Method satisfies the Cmd interface by returning the json method.
|
|
||||||
func (cmd *GetMiningInfoCmd) Method() string {
|
|
||||||
return "getmininginfo"
|
|
||||||
}
|
|
||||||
|
|
||||||
// MarshalJSON returns the JSON encoding of cmd. Part of the Cmd interface.
|
|
||||||
func (cmd *GetMiningInfoCmd) MarshalJSON() ([]byte, error) {
|
|
||||||
|
|
||||||
// Fill and marshal a RawCmd.
|
|
||||||
return json.Marshal(RawCmd{
|
|
||||||
Jsonrpc: "1.0",
|
|
||||||
Method: "getmininginfo",
|
|
||||||
Id: cmd.id,
|
|
||||||
Params: []interface{}{},
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
// UnmarshalJSON unmarshals the JSON encoding of cmd into cmd. Part of
|
|
||||||
// the Cmd interface.
|
|
||||||
func (cmd *GetMiningInfoCmd) UnmarshalJSON(b []byte) error {
|
|
||||||
// Unmashal into a RawCmd
|
|
||||||
var r RawCmd
|
|
||||||
if err := json.Unmarshal(b, &r); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
if len(r.Params) != 0 {
|
|
||||||
return ErrWrongNumberOfParams
|
|
||||||
}
|
|
||||||
|
|
||||||
newCmd, err := NewGetMiningInfoCmd(r.Id)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
*cmd = *newCmd
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
// GetNewAddressCmd is a type handling custom marshaling and
|
// GetNewAddressCmd is a type handling custom marshaling and
|
||||||
// unmarshaling of getnewaddress JSON RPC commands.
|
// unmarshaling of getnewaddress JSON RPC commands.
|
||||||
type GetNewAddressCmd struct {
|
type GetNewAddressCmd struct {
|
||||||
|
|
|
@ -310,7 +310,7 @@ var jsoncmdtests = []struct {
|
||||||
return NewGetBlockHashCmd(float64(1), 1234)
|
return NewGetBlockHashCmd(float64(1), 1234)
|
||||||
},
|
},
|
||||||
result: &GetBlockHashCmd{
|
result: &GetBlockHashCmd{
|
||||||
id: float64(1),
|
id: float64(1),
|
||||||
Index: 1234,
|
Index: 1234,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -327,13 +327,13 @@ var jsoncmdtests = []struct {
|
||||||
name: "basic getblocktemplate + request",
|
name: "basic getblocktemplate + request",
|
||||||
f: func() (Cmd, error) {
|
f: func() (Cmd, error) {
|
||||||
return NewGetBlockTemplateCmd(float64(1),
|
return NewGetBlockTemplateCmd(float64(1),
|
||||||
&TemplateRequest{Mode:"mode",
|
&TemplateRequest{Mode: "mode",
|
||||||
Capabilities: []string{"one", "two", "three"}})
|
Capabilities: []string{"one", "two", "three"}})
|
||||||
},
|
},
|
||||||
result: &GetBlockTemplateCmd{
|
result: &GetBlockTemplateCmd{
|
||||||
id: float64(1),
|
id: float64(1),
|
||||||
Request: &TemplateRequest{
|
Request: &TemplateRequest{
|
||||||
Mode:"mode",
|
Mode: "mode",
|
||||||
Capabilities: []string{
|
Capabilities: []string{
|
||||||
"one",
|
"one",
|
||||||
"two",
|
"two",
|
||||||
|
@ -347,11 +347,11 @@ var jsoncmdtests = []struct {
|
||||||
f: func() (Cmd, error) {
|
f: func() (Cmd, error) {
|
||||||
return NewGetBlockTemplateCmd(float64(1),
|
return NewGetBlockTemplateCmd(float64(1),
|
||||||
&TemplateRequest{
|
&TemplateRequest{
|
||||||
Capabilities: []string{"one", "two", "three"}})
|
Capabilities: []string{"one", "two", "three"}})
|
||||||
},
|
},
|
||||||
result: &GetBlockTemplateCmd{
|
result: &GetBlockTemplateCmd{
|
||||||
id: float64(1),
|
id: float64(1),
|
||||||
Request: &TemplateRequest{
|
Request: &TemplateRequest{
|
||||||
Capabilities: []string{
|
Capabilities: []string{
|
||||||
"one",
|
"one",
|
||||||
"two",
|
"two",
|
||||||
|
@ -423,6 +423,48 @@ var jsoncmdtests = []struct {
|
||||||
id: float64(1),
|
id: float64(1),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "basic getnetworkhashps",
|
||||||
|
f: func() (Cmd, error) {
|
||||||
|
return NewGetNetworkHashPSCmd(float64(1))
|
||||||
|
},
|
||||||
|
result: &GetNetworkHashPSCmd{
|
||||||
|
id: float64(1),
|
||||||
|
Blocks: 120,
|
||||||
|
Height: -1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "basic getnetworkhashps + blocks",
|
||||||
|
f: func() (Cmd, error) {
|
||||||
|
return NewGetNetworkHashPSCmd(float64(1), 5000)
|
||||||
|
},
|
||||||
|
result: &GetNetworkHashPSCmd{
|
||||||
|
id: float64(1),
|
||||||
|
Blocks: 5000,
|
||||||
|
Height: -1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "basic getnetworkhashps + blocks + height",
|
||||||
|
f: func() (Cmd, error) {
|
||||||
|
return NewGetNetworkHashPSCmd(float64(1), 5000, 1000)
|
||||||
|
},
|
||||||
|
result: &GetNetworkHashPSCmd{
|
||||||
|
id: float64(1),
|
||||||
|
Blocks: 5000,
|
||||||
|
Height: 1000,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "basic getmininginfo",
|
||||||
|
f: func() (Cmd, error) {
|
||||||
|
return NewGetMiningInfoCmd(float64(1))
|
||||||
|
},
|
||||||
|
result: &GetMiningInfoCmd{
|
||||||
|
id: float64(1),
|
||||||
|
},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "basic ping",
|
name: "basic ping",
|
||||||
f: func() (Cmd, error) {
|
f: func() (Cmd, error) {
|
||||||
|
|
Loading…
Reference in a new issue