diff --git a/poseidon2/io.nim b/poseidon2/io.nim index 3ca8fca..68d7157 100644 --- a/poseidon2/io.nim +++ b/poseidon2/io.nim @@ -19,7 +19,7 @@ func fromBytes*(_: type F, bytes: array[32, byte]): Option[F] = ## Converts bytes into a field element. The byte array is interpreted as a ## canonical little-endian big integer. let big = B.unmarshal(bytes, littleEndian) - if big < F.fieldMod(): + if bool(big < F.fieldMod()): return some(F.fromBig(big)) func toBytes*(element: F): array[32, byte] = diff --git a/tests/poseidon2/testIo.nim b/tests/poseidon2/testIo.nim index 2ff6555..83d9929 100644 --- a/tests/poseidon2/testIo.nim +++ b/tests/poseidon2/testIo.nim @@ -1,5 +1,6 @@ import std/unittest import std/sequtils +import std/options import constantine/math/io/io_bigints import constantine/math/io/io_fields import constantine/math/arithmetic @@ -11,6 +12,9 @@ suite "conversion to/from bytes": func toArray(bytes: openArray[byte]): array[31, byte] = result[0..