util: add Uint160DecodeBytesLE()
This commit is contained in:
parent
09b295d727
commit
07e832f046
2 changed files with 21 additions and 0 deletions
|
@ -35,6 +35,20 @@ func Uint160DecodeBytesBE(b []byte) (u Uint160, err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Uint160DecodeBytesLE attempts to decode the given bytes in little-endian
|
||||||
|
// into an Uint160.
|
||||||
|
func Uint160DecodeBytesLE(b []byte) (u Uint160, err error) {
|
||||||
|
if len(b) != Uint160Size {
|
||||||
|
return u, fmt.Errorf("expected byte size of %d got %d", Uint160Size, len(b))
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := range b {
|
||||||
|
u[Uint160Size-i-1] = b[i]
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// BytesBE returns a big-endian byte representation of u.
|
// BytesBE returns a big-endian byte representation of u.
|
||||||
func (u Uint160) BytesBE() []byte {
|
func (u Uint160) BytesBE() []byte {
|
||||||
return u[:]
|
return u[:]
|
||||||
|
|
|
@ -52,6 +52,13 @@ func TestUint160DecodeBytes(t *testing.T) {
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Equal(t, hexStr, val.String())
|
assert.Equal(t, hexStr, val.String())
|
||||||
|
|
||||||
|
valLE, err := Uint160DecodeBytesLE(b)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, val, valLE.Reverse())
|
||||||
|
|
||||||
|
_, err = Uint160DecodeBytesLE(b[1:])
|
||||||
|
assert.Error(t, err)
|
||||||
|
|
||||||
_, err = Uint160DecodeBytesBE(b[1:])
|
_, err = Uint160DecodeBytesBE(b[1:])
|
||||||
assert.Error(t, err)
|
assert.Error(t, err)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue