aboutsummaryrefslogtreecommitdiffstats
path: root/common/hexutil/json.go
diff options
context:
space:
mode:
authorFelix Lange <fjl@twurst.com>2017-01-16 17:20:20 +0800
committerFelix Lange <fjl@twurst.com>2017-01-16 17:32:40 +0800
commit51f6b6d33f5b50e16f0b04bcccd03ad370f36636 (patch)
tree871c3a0915a6b75f73619e8626c61fafd701921b /common/hexutil/json.go
parent01f6f2d741e717f669b7ba1d6b88991f28e30c72 (diff)
downloadgo-tangerine-51f6b6d33f5b50e16f0b04bcccd03ad370f36636.tar.gz
go-tangerine-51f6b6d33f5b50e16f0b04bcccd03ad370f36636.tar.zst
go-tangerine-51f6b6d33f5b50e16f0b04bcccd03ad370f36636.zip
common/hexutil: fix EncodeBig, Big.MarshalJSON
The code was too clever and failed to include zeros on a big.Word boundary.
Diffstat (limited to 'common/hexutil/json.go')
-rw-r--r--common/hexutil/json.go9
1 files changed, 2 insertions, 7 deletions
diff --git a/common/hexutil/json.go b/common/hexutil/json.go
index c36d862b5..7e4736dd6 100644
--- a/common/hexutil/json.go
+++ b/common/hexutil/json.go
@@ -109,13 +109,8 @@ func (b *Big) MarshalJSON() ([]byte, error) {
if nbits == 0 {
return jsonZero, nil
}
- enc := make([]byte, 3, (nbits/8)*2+4)
- copy(enc, `"0x`)
- for i := len(bigint.Bits()) - 1; i >= 0; i-- {
- enc = strconv.AppendUint(enc, uint64(bigint.Bits()[i]), 16)
- }
- enc = append(enc, '"')
- return enc, nil
+ enc := fmt.Sprintf(`"0x%x"`, bigint)
+ return []byte(enc), nil
}
// UnmarshalJSON implements json.Unmarshaler.