diff options
Diffstat (limited to 'ethutil')
-rw-r--r-- | ethutil/big.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ethutil/big.go b/ethutil/big.go index ec263b818..d8f54ad10 100644 --- a/ethutil/big.go +++ b/ethutil/big.go @@ -34,6 +34,19 @@ func BigD(data []byte) *big.Int { return n } +// To256 +// +// "cast" the big int to a 256 big int (i.e., limit to) +var tt256 = new(big.Int).Sub(new(big.Int).Lsh(big.NewInt(1), 256), big.NewInt(1)) + +func To256(x *big.Int) { + x.And(x, tt256) + + if x.Cmp(new(big.Int)) < 0 { + x.SetInt64(0) + } +} + // Big to bytes // // Returns the bytes of a big integer with the size specified by **base** |