aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--common/hexutil/hexutil.go2
-rw-r--r--common/hexutil/hexutil_test.go1
-rw-r--r--common/hexutil/json.go18
3 files changed, 5 insertions, 16 deletions
diff --git a/common/hexutil/hexutil.go b/common/hexutil/hexutil.go
index b66c0d3fe..6b128ae36 100644
--- a/common/hexutil/hexutil.go
+++ b/common/hexutil/hexutil.go
@@ -178,7 +178,7 @@ func EncodeBig(bigint *big.Int) string {
if nbits == 0 {
return "0x0"
}
- return fmt.Sprintf("0x%x", bigint)
+ return fmt.Sprintf("%#x", bigint)
}
func has0xPrefix(input string) bool {
diff --git a/common/hexutil/hexutil_test.go b/common/hexutil/hexutil_test.go
index 6a92a385c..ed6fccc3c 100644
--- a/common/hexutil/hexutil_test.go
+++ b/common/hexutil/hexutil_test.go
@@ -47,6 +47,7 @@ var (
{referenceBig("ff"), "0xff"},
{referenceBig("112233445566778899aabbccddeeff"), "0x112233445566778899aabbccddeeff"},
{referenceBig("80a7f2c1bcc396c00"), "0x80a7f2c1bcc396c00"},
+ {referenceBig("-80a7f2c1bcc396c00"), "-0x80a7f2c1bcc396c00"},
}
encodeUint64Tests = []marshalTest{
diff --git a/common/hexutil/json.go b/common/hexutil/json.go
index ce6a2b048..23393ed2c 100644
--- a/common/hexutil/json.go
+++ b/common/hexutil/json.go
@@ -25,9 +25,8 @@ import (
)
var (
- textZero = []byte(`0x0`)
- errNonString = errors.New("cannot unmarshal non-string as hex data")
- errNegativeBigInt = errors.New("hexutil.Big: can't marshal negative integer")
+ textZero = []byte(`0x0`)
+ errNonString = errors.New("cannot unmarshal non-string as hex data")
)
// Bytes marshals/unmarshals as a JSON string with 0x prefix.
@@ -101,18 +100,7 @@ type Big big.Int
// MarshalText implements encoding.TextMarshaler
func (b Big) MarshalText() ([]byte, error) {
- bigint := (big.Int)(b)
- if bigint.Sign() == -1 {
- return nil, errNegativeBigInt
- }
- nbits := bigint.BitLen()
- if nbits == 0 {
- return textZero, nil
- }
- enc := make([]byte, 2, nbits/4+2)
- copy(enc, "0x")
- enc = bigint.Append(enc, 16)
- return enc, nil
+ return []byte(EncodeBig((*big.Int)(&b))), nil
}
// UnmarshalJSON implements json.Unmarshaler.