diff options
Diffstat (limited to 'rpc')
-rw-r--r-- | rpc/args.go | 9 | ||||
-rw-r--r-- | rpc/args_test.go | 35 |
2 files changed, 37 insertions, 7 deletions
diff --git a/rpc/args.go b/rpc/args.go index 6e02b65ef..5b655024c 100644 --- a/rpc/args.go +++ b/rpc/args.go @@ -467,7 +467,7 @@ func (args *BlockFilterArgs) UnmarshalJSON(b []byte) (err error) { switch fromstr { case "latest": - args.Earliest = 0 + args.Earliest = -1 default: args.Earliest = int64(common.Big(obj[0].FromBlock.(string)).Int64()) } @@ -479,9 +479,9 @@ func (args *BlockFilterArgs) UnmarshalJSON(b []byte) (err error) { switch tostr { case "latest": - args.Latest = 0 - case "pending": args.Latest = -1 + case "pending": + args.Latest = -2 default: args.Latest = int64(common.Big(obj[0].ToBlock.(string)).Int64()) } @@ -775,8 +775,7 @@ func (args *SubmitWorkArgs) UnmarshalJSON(b []byte) (err error) { return NewDecodeParamError("Nonce is not a string") } - args.Nonce = common.BytesToNumber(common.Hex2Bytes(objstr)) - + args.Nonce = common.String2Big(objstr).Uint64() if objstr, ok = obj[1].(string); !ok { return NewDecodeParamError("Header is not a string") } diff --git a/rpc/args_test.go b/rpc/args_test.go index 2ad53fba2..5cbafd4b2 100644 --- a/rpc/args_test.go +++ b/rpc/args_test.go @@ -5,6 +5,8 @@ import ( "encoding/json" "math/big" "testing" + + "github.com/ethereum/go-ethereum/common" ) func TestSha3(t *testing.T) { @@ -440,8 +442,8 @@ func TestBlockFilterArgsWords(t *testing.T) { "toBlock": "pending" }]` expected := new(BlockFilterArgs) - expected.Earliest = 0 - expected.Latest = -1 + expected.Earliest = -1 + expected.Latest = -2 args := new(BlockFilterArgs) if err := json.Unmarshal([]byte(input), &args); err != nil { @@ -651,6 +653,10 @@ func TestFilterStringArgs(t *testing.T) { t.Error(err) } + if err := args.requirements(); err != nil { + t.Error(err) + } + if expected.Word != args.Word { t.Errorf("Word shoud be %#v but is %#v", expected.Word, args.Word) } @@ -720,3 +726,28 @@ func TestHashIndexArgs(t *testing.T) { t.Errorf("Index shoud be %#v but is %#v", expected.Index, args.Index) } } + +func TestSubmitWorkArgs(t *testing.T) { + input := `["0x0000000000000001", "0x1234567890abcdef1234567890abcdef", "0xD1GE5700000000000000000000000000"]` + expected := new(SubmitWorkArgs) + expected.Nonce = 1 + expected.Header = common.HexToHash("0x1234567890abcdef1234567890abcdef") + expected.Digest = common.HexToHash("0xD1GE5700000000000000000000000000") + + args := new(SubmitWorkArgs) + if err := json.Unmarshal([]byte(input), &args); err != nil { + t.Error(err) + } + + if expected.Nonce != args.Nonce { + t.Errorf("Nonce shoud be %d but is %d", expected.Nonce, args.Nonce) + } + + if expected.Header != args.Header { + t.Errorf("Header shoud be %#v but is %#v", expected.Header, args.Header) + } + + if expected.Digest != args.Digest { + t.Errorf("Digest shoud be %#v but is %#v", expected.Digest, args.Digest) + } +} |