From e173dd817b794d2bdadaa7ed45583798aaa91f0d Mon Sep 17 00:00:00 2001 From: benbierens Date: Thu, 8 Aug 2024 14:45:13 +0200 Subject: [PATCH 1/3] bumps constantine, updates curves --- poseidon2.nim | 4 ++-- poseidon2.nimble | 2 +- poseidon2/io.nim | 6 +++--- poseidon2/roundfun.nim | 2 +- poseidon2/types.nim | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/poseidon2.nim b/poseidon2.nim index 694f12b..68792f5 100644 --- a/poseidon2.nim +++ b/poseidon2.nim @@ -16,5 +16,5 @@ export elements export types # workaround for "undeclared identifier: 'getCurveOrder'" -import constantine/math/config/curves -export curves +import constantine/named/algebras +export algebras diff --git a/poseidon2.nimble b/poseidon2.nimble index 131eac7..1e7ed96 100644 --- a/poseidon2.nimble +++ b/poseidon2.nimble @@ -3,4 +3,4 @@ author = "nim-poseidon2 authors" description = "Poseidon2 hash function" license = "MIT" -requires "https://github.com/mratsim/constantine#ab6fa6ae1bbbd1b10071a92ec209b381b5d82511" +requires "https://github.com/mratsim/constantine#1e34ec22929eaba7bcf1681350ec21aed8f370f7" diff --git a/poseidon2/io.nim b/poseidon2/io.nim index 68d7157..4ca3f30 100644 --- a/poseidon2/io.nim +++ b/poseidon2/io.nim @@ -2,10 +2,10 @@ import std/options import constantine/math/arithmetic import constantine/math/io/io_bigints import constantine/math/io/io_fields -import constantine/math/config/curves +import constantine/named/algebras import ./types -export curves +export algebras func fromOpenArray(_: type F, bytes: openArray[byte]): F = F.fromBig(B.unmarshal(bytes, littleEndian)) @@ -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 bool(big < F.fieldMod()): + if bool(big < F.getModulus()): return some(F.fromBig(big)) func toBytes*(element: F): array[32, byte] = diff --git a/poseidon2/roundfun.nim b/poseidon2/roundfun.nim index 7e9d5a0..dc087aa 100644 --- a/poseidon2/roundfun.nim +++ b/poseidon2/roundfun.nim @@ -1,6 +1,6 @@ import constantine/math/arithmetic, - constantine/math/config/curves + constantine/named/algebras import ./types import ./roundconst diff --git a/poseidon2/types.nim b/poseidon2/types.nim index 2c9fa52..98d567d 100644 --- a/poseidon2/types.nim +++ b/poseidon2/types.nim @@ -3,12 +3,12 @@ import constantine/math/arithmetic, constantine/math/io/io_fields, constantine/math/io/io_bigints, - constantine/math/config/curves + constantine/named/algebras #------------------------------------------------------------------------------- type B* = BigInt[254] -type F* = Fr[BN254Snarks] +type F* = Fr[BN254_Snarks] type S* = (F,F,F) #------------------------------------------------------------------------------- From f5a3511349f77027e0b10cbdeb953c130cc8268c Mon Sep 17 00:00:00 2001 From: Arnaud Date: Mon, 2 Dec 2024 12:37:53 +0100 Subject: [PATCH 2/3] Update constantine to the last commit hash Signed-off-by: Arnaud --- .gitignore | 2 ++ nimble.lock | 16 ++++++++++++++++ poseidon2.nimble | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 nimble.lock diff --git a/.gitignore b/.gitignore index becd7f9..41f61d0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ * !*/ !*.* +.nimble +poseidon2.out \ No newline at end of file diff --git a/nimble.lock b/nimble.lock new file mode 100644 index 0000000..f2ddf6e --- /dev/null +++ b/nimble.lock @@ -0,0 +1,16 @@ +{ + "version": 2, + "packages": { + "constantine": { + "version": "0.1.0", + "vcsRevision": "bc3845aa492b52f7fef047503b1592e830d1a774", + "url": "https://github.com/mratsim/constantine", + "downloadMethod": "git", + "dependencies": [], + "checksums": { + "sha1": "09594d4ce93e83ae377a7a9cb8fd4472b104ca4b" + } + } + }, + "tasks": {} +} diff --git a/poseidon2.nimble b/poseidon2.nimble index 1e7ed96..cf21d46 100644 --- a/poseidon2.nimble +++ b/poseidon2.nimble @@ -3,4 +3,4 @@ author = "nim-poseidon2 authors" description = "Poseidon2 hash function" license = "MIT" -requires "https://github.com/mratsim/constantine#1e34ec22929eaba7bcf1681350ec21aed8f370f7" +requires "https://github.com/mratsim/constantine#bc3845aa492b52f7fef047503b1592e830d1a774" From 4e2c6e619b2f2859aaa4b2aed2f346ea4d0c67a3 Mon Sep 17 00:00:00 2001 From: Arnaud Date: Tue, 7 Jan 2025 10:27:25 +0100 Subject: [PATCH 3/3] Add 2.0.14 to testing matrix --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 288ceea..1358432 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,7 +7,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - nim: [1.6.14] + nim: [1.6.14, 2.0.14] steps: - uses: actions/checkout@v2 - uses: iffy/install-nim@v3