aboutsummaryrefslogtreecommitdiffstats
path: root/rpc
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2016-12-17 22:39:55 +0800
committerFelix Lange <fjl@twurst.com>2016-12-20 21:41:58 +0800
commitcf71f5cd604f4d5c94d9e9b12b121a614d662dc7 (patch)
treea89491c26dc19fc39bb6d8273eeefa2778ff5ec2 /rpc
parentadab2e16bdf24c2eaf498722187fb36c04a5376b (diff)
downloadgo-tangerine-cf71f5cd604f4d5c94d9e9b12b121a614d662dc7.tar
go-tangerine-cf71f5cd604f4d5c94d9e9b12b121a614d662dc7.tar.gz
go-tangerine-cf71f5cd604f4d5c94d9e9b12b121a614d662dc7.tar.bz2
go-tangerine-cf71f5cd604f4d5c94d9e9b12b121a614d662dc7.tar.lz
go-tangerine-cf71f5cd604f4d5c94d9e9b12b121a614d662dc7.tar.xz
go-tangerine-cf71f5cd604f4d5c94d9e9b12b121a614d662dc7.tar.zst
go-tangerine-cf71f5cd604f4d5c94d9e9b12b121a614d662dc7.zip
rpc: remove HexNumber, replace all uses with hexutil types
This change couldn't be automated because HexNumber was used for numbers of all sizes.
Diffstat (limited to 'rpc')
-rw-r--r--rpc/json.go4
-rw-r--r--rpc/types.go85
-rw-r--r--rpc/types_test.go73
3 files changed, 2 insertions, 160 deletions
diff --git a/rpc/json.go b/rpc/json.go
index 5a89c1a69..ac5a4acd3 100644
--- a/rpc/json.go
+++ b/rpc/json.go
@@ -257,8 +257,8 @@ func parseBatchRequest(incomingMsg json.RawMessage) ([]rpcRequest, bool, Error)
return requests, true, nil
}
-// ParseRequestArguments tries to parse the given params (json.RawMessage) with the given types. It returns the parsed
-// values or an error when the parsing failed.
+// ParseRequestArguments tries to parse the given params (json.RawMessage) with the given
+// types. It returns the parsed values or an error when the parsing failed.
func (c *jsonCodec) ParseRequestArguments(argTypes []reflect.Type, params interface{}) ([]reflect.Value, Error) {
if args, ok := params.(json.RawMessage); !ok {
return nil, &invalidParamsError{"Invalid params supplied"}
diff --git a/rpc/types.go b/rpc/types.go
index 89c5b5bc9..01b95a170 100644
--- a/rpc/types.go
+++ b/rpc/types.go
@@ -121,91 +121,6 @@ type ServerCodec interface {
Closed() <-chan interface{}
}
-// HexNumber serializes a number to hex format using the "%#x" format
-type HexNumber big.Int
-
-// NewHexNumber creates a new hex number instance which will serialize the given val with `%#x` on marshal.
-func NewHexNumber(val interface{}) *HexNumber {
- if val == nil {
- return nil // note, this doesn't catch nil pointers, only passing nil directly!
- }
-
- if v, ok := val.(*big.Int); ok {
- if v != nil {
- return (*HexNumber)(new(big.Int).Set(v))
- }
- return nil
- }
-
- rval := reflect.ValueOf(val)
-
- var unsigned uint64
- utype := reflect.TypeOf(unsigned)
- if t := rval.Type(); t.ConvertibleTo(utype) {
- hn := new(big.Int).SetUint64(rval.Convert(utype).Uint())
- return (*HexNumber)(hn)
- }
-
- var signed int64
- stype := reflect.TypeOf(signed)
- if t := rval.Type(); t.ConvertibleTo(stype) {
- hn := new(big.Int).SetInt64(rval.Convert(stype).Int())
- return (*HexNumber)(hn)
- }
-
- return nil
-}
-
-func (h *HexNumber) UnmarshalJSON(input []byte) error {
- length := len(input)
- if length >= 2 && input[0] == '"' && input[length-1] == '"' {
- input = input[1 : length-1]
- }
-
- hn := (*big.Int)(h)
- if _, ok := hn.SetString(string(input), 0); ok {
- return nil
- }
-
- return fmt.Errorf("Unable to parse number")
-}
-
-// MarshalJSON serialize the hex number instance to a hex representation.
-func (h *HexNumber) MarshalJSON() ([]byte, error) {
- if h != nil {
- hn := (*big.Int)(h)
- if hn.BitLen() == 0 {
- return []byte(`"0x0"`), nil
- }
- return []byte(fmt.Sprintf(`"0x%x"`, hn)), nil
- }
- return nil, nil
-}
-
-func (h *HexNumber) Int() int {
- hn := (*big.Int)(h)
- return int(hn.Int64())
-}
-
-func (h *HexNumber) Int64() int64 {
- hn := (*big.Int)(h)
- return hn.Int64()
-}
-
-func (h *HexNumber) Uint() uint {
- hn := (*big.Int)(h)
- return uint(hn.Uint64())
-}
-
-func (h *HexNumber) Uint64() uint64 {
- hn := (*big.Int)(h)
- return hn.Uint64()
-}
-
-func (h *HexNumber) BigInt() *big.Int {
- return (*big.Int)(h)
-}
-
var (
pendingBlockNumber = big.NewInt(-2)
latestBlockNumber = big.NewInt(-1)
diff --git a/rpc/types_test.go b/rpc/types_test.go
deleted file mode 100644
index c2c5c6db6..000000000
--- a/rpc/types_test.go
+++ /dev/null
@@ -1,73 +0,0 @@
-// Copyright 2015 The go-ethereum Authors
-// This file is part of the go-ethereum library.
-//
-// The go-ethereum library is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// The go-ethereum library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
-
-package rpc
-
-import (
- "bytes"
- "encoding/json"
- "math/big"
- "testing"
-)
-
-func TestNewHexNumber(t *testing.T) {
- tests := []interface{}{big.NewInt(123), int64(123), uint64(123), int8(123), uint8(123)}
-
- for i, v := range tests {
- hn := NewHexNumber(v)
- if hn == nil {
- t.Fatalf("Unable to create hex number instance for tests[%d]", i)
- }
- if hn.Int64() != 123 {
- t.Fatalf("expected %d, got %d on value tests[%d]", 123, hn.Int64(), i)
- }
- }
-
- failures := []interface{}{"", nil, []byte{1, 2, 3, 4}}
- for i, v := range failures {
- hn := NewHexNumber(v)
- if hn != nil {
- t.Fatalf("Creating a nex number instance of %T should fail (failures[%d])", failures[i], i)
- }
- }
-}
-
-func TestHexNumberUnmarshalJSON(t *testing.T) {
- tests := []string{`"0x4d2"`, "1234", `"1234"`}
- for i, v := range tests {
- var hn HexNumber
- if err := json.Unmarshal([]byte(v), &hn); err != nil {
- t.Fatalf("Test %d failed - %s", i, err)
- }
-
- if hn.Int64() != 1234 {
- t.Fatalf("Expected %d, got %d for test[%d]", 1234, hn.Int64(), i)
- }
- }
-}
-
-func TestHexNumberMarshalJSON(t *testing.T) {
- hn := NewHexNumber(1234567890)
- got, err := json.Marshal(hn)
- if err != nil {
- t.Fatalf("Unable to marshal hex number - %s", err)
- }
-
- exp := []byte(`"0x499602d2"`)
- if bytes.Compare(exp, got) != 0 {
- t.Fatalf("Invalid json.Marshal, expected '%s', got '%s'", exp, got)
- }
-}