common/hexutil: fix EncodeBig, Big.MarshalJSON

The code was too clever and failed to include zeros on a big.Word
boundary.
This commit is contained in:
Felix Lange
2017-01-16 10:20:20 +01:00
parent 01f6f2d741
commit 51f6b6d33f
3 changed files with 4 additions and 13 deletions

View File

@ -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.