diff options
author | Martin Holst Swende <martin@swende.se> | 2017-06-07 00:38:38 +0800 |
---|---|---|
committer | Martin Holst Swende <martin@swende.se> | 2017-06-07 00:38:38 +0800 |
commit | 1496b3aff6a537a1c5597ec55b8d3b25afded26c (patch) | |
tree | fd19f9f963ec0e636e8665fbaa7a956c53b987dd /common/math/big.go | |
parent | 3285a0fda37207ca1b79ac28e2c12c6f5efff89b (diff) | |
download | go-tangerine-1496b3aff6a537a1c5597ec55b8d3b25afded26c.tar go-tangerine-1496b3aff6a537a1c5597ec55b8d3b25afded26c.tar.gz go-tangerine-1496b3aff6a537a1c5597ec55b8d3b25afded26c.tar.bz2 go-tangerine-1496b3aff6a537a1c5597ec55b8d3b25afded26c.tar.lz go-tangerine-1496b3aff6a537a1c5597ec55b8d3b25afded26c.tar.xz go-tangerine-1496b3aff6a537a1c5597ec55b8d3b25afded26c.tar.zst go-tangerine-1496b3aff6a537a1c5597ec55b8d3b25afded26c.zip |
common/math, core/vm: Un-expose bigEndianByteAt, use correct terms for endianness
Diffstat (limited to 'common/math/big.go')
-rw-r--r-- | common/math/big.go | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/common/math/big.go b/common/math/big.go index 48ad90216..c49d751fa 100644 --- a/common/math/big.go +++ b/common/math/big.go @@ -130,10 +130,10 @@ func PaddedBigBytes(bigint *big.Int, n int) []byte { return ret } -// LittleEndianByteAt returns the byte at position n, -// if bigint is considered little-endian. -// So n==0 gives the least significant byte -func LittleEndianByteAt(bigint *big.Int, n int) byte { +// bigEndianByteAt returns the byte at position n, +// if bigint is considered big-endian. +// So n==0 returns the least significant byte +func bigEndianByteAt(bigint *big.Int, n int) byte { words := bigint.Bits() // Check word-bucket the byte will reside in i := n / wordBytes @@ -147,15 +147,15 @@ func LittleEndianByteAt(bigint *big.Int, n int) byte { return byte(word >> shift) } -// BigEndian32ByteAt returns the byte at position n, -// if bigint is considered big-endian. -// So n==0 gives the most significant byte -// WARNING: Only works for bigints in 32-byte range -func BigEndian32ByteAt(bigint *big.Int, n int) byte { - if n > 31 { +// Byte returns the byte at position n, +// if bigint is considered little-endian with the supplied padlength. +// n==0 returns the most significant byte +// bigint '5', padlength 32, n=31 => 5 +func Byte(bigint *big.Int, padlength, n int) byte { + if n >= padlength { return byte(0) } - return LittleEndianByteAt(bigint, 31-n) + return bigEndianByteAt(bigint, padlength-1-n) } // ReadBits encodes the absolute value of bigint as big-endian bytes. Callers must ensure |