From d9cbd38409edb5cfdbf9daa9dba841ad432feff9 Mon Sep 17 00:00:00 2001 From: Ivo Kubjas Date: Tue, 10 Dec 2024 15:40:09 +0100 Subject: [PATCH 1/2] doc: add audit report (#1342) --- README.md | 1 + ...2024-11 - Least Authority - Linea zkEVM.pdf | Bin 0 -> 528031 bytes 2 files changed, 1 insertion(+) create mode 100644 audits/2024-11 - Least Authority - Linea zkEVM.pdf diff --git a/README.md b/README.md index c86eedac50..4412d608e3 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,7 @@ You can also get in touch directly: gnark@consensys.net * [ZKSecurity.xyz - May 2024 - gnark standard library](audits/2024-05%20-%20zksecurity%20-%20gnark%20std.pdf) * [OpenZeppelin - June 2024 - gnark PLONK prover and verifier](https://blog.openzeppelin.com/linea-prover-audit) * [LeastAuthority - September 2024 - gnark general and GKR](audits/2024-09%20-%20Least%20Authority%20-%20arithm%20and%20GKR.pdf) +* [LeastAuthority - November 2024 - Linea zkEVM](audits/2024-11%20-%20Least%20Authority%20-%20Linea%20zkEVM.pdf) ## Proving schemes and curves diff --git a/audits/2024-11 - Least Authority - Linea zkEVM.pdf b/audits/2024-11 - Least Authority - Linea zkEVM.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1f236b140cf29713cce00dffb81c7a6e0a1ba70c GIT binary patch literal 528031 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

17XcKE>FI{ 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 z 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 z%0A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ɡ{7w&w872; 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 W*gO8t*#j*B8YN+8mr|A{`TqdnwWQbp literal 0 HcmV?d00001 From a1e66c1d6b4d00d22ac081338bffd7cfb833dda4 Mon Sep 17 00:00:00 2001 From: Gautam Botrel Date: Tue, 10 Dec 2024 14:46:54 -0600 Subject: [PATCH 2/2] docs: less verbose Apache 2 header, latest bavard (#1344) --- .chglog/config.yml | 2 +- CHANGELOG.md | 1054 ++++++++--------- CONTRIBUTING.md | 4 +- README.md | 8 +- backend/backend.go | 15 +- backend/groth16/bls12-377/commitment_test.go | 15 +- backend/groth16/bls12-377/marshal.go | 15 +- backend/groth16/bls12-377/marshal_test.go | 15 +- .../groth16/bls12-377/mpcsetup/lagrange.go | 15 +- backend/groth16/bls12-377/mpcsetup/marshal.go | 15 +- .../bls12-377/mpcsetup/marshal_test.go | 15 +- backend/groth16/bls12-377/mpcsetup/phase1.go | 15 +- backend/groth16/bls12-377/mpcsetup/phase2.go | 15 +- backend/groth16/bls12-377/mpcsetup/setup.go | 15 +- .../groth16/bls12-377/mpcsetup/setup_test.go | 15 +- backend/groth16/bls12-377/mpcsetup/utils.go | 15 +- backend/groth16/bls12-377/prove.go | 15 +- backend/groth16/bls12-377/setup.go | 15 +- backend/groth16/bls12-377/verify.go | 15 +- backend/groth16/bls12-381/commitment_test.go | 15 +- backend/groth16/bls12-381/marshal.go | 15 +- backend/groth16/bls12-381/marshal_test.go | 15 +- .../groth16/bls12-381/mpcsetup/lagrange.go | 15 +- backend/groth16/bls12-381/mpcsetup/marshal.go | 15 +- .../bls12-381/mpcsetup/marshal_test.go | 15 +- backend/groth16/bls12-381/mpcsetup/phase1.go | 15 +- backend/groth16/bls12-381/mpcsetup/phase2.go | 15 +- backend/groth16/bls12-381/mpcsetup/setup.go | 15 +- .../groth16/bls12-381/mpcsetup/setup_test.go | 15 +- backend/groth16/bls12-381/mpcsetup/utils.go | 15 +- backend/groth16/bls12-381/prove.go | 15 +- backend/groth16/bls12-381/setup.go | 15 +- backend/groth16/bls12-381/verify.go | 15 +- backend/groth16/bls24-315/commitment_test.go | 15 +- backend/groth16/bls24-315/marshal.go | 15 +- backend/groth16/bls24-315/marshal_test.go | 15 +- .../groth16/bls24-315/mpcsetup/lagrange.go | 15 +- backend/groth16/bls24-315/mpcsetup/marshal.go | 15 +- .../bls24-315/mpcsetup/marshal_test.go | 15 +- backend/groth16/bls24-315/mpcsetup/phase1.go | 15 +- backend/groth16/bls24-315/mpcsetup/phase2.go | 15 +- backend/groth16/bls24-315/mpcsetup/setup.go | 15 +- .../groth16/bls24-315/mpcsetup/setup_test.go | 15 +- backend/groth16/bls24-315/mpcsetup/utils.go | 15 +- backend/groth16/bls24-315/prove.go | 15 +- backend/groth16/bls24-315/setup.go | 15 +- backend/groth16/bls24-315/verify.go | 15 +- backend/groth16/bls24-317/commitment_test.go | 15 +- backend/groth16/bls24-317/marshal.go | 15 +- backend/groth16/bls24-317/marshal_test.go | 15 +- .../groth16/bls24-317/mpcsetup/lagrange.go | 15 +- backend/groth16/bls24-317/mpcsetup/marshal.go | 15 +- .../bls24-317/mpcsetup/marshal_test.go | 15 +- backend/groth16/bls24-317/mpcsetup/phase1.go | 15 +- backend/groth16/bls24-317/mpcsetup/phase2.go | 15 +- backend/groth16/bls24-317/mpcsetup/setup.go | 15 +- .../groth16/bls24-317/mpcsetup/setup_test.go | 15 +- backend/groth16/bls24-317/mpcsetup/utils.go | 15 +- backend/groth16/bls24-317/prove.go | 15 +- backend/groth16/bls24-317/setup.go | 15 +- backend/groth16/bls24-317/verify.go | 15 +- backend/groth16/bn254/commitment_test.go | 15 +- backend/groth16/bn254/marshal.go | 15 +- backend/groth16/bn254/marshal_test.go | 15 +- backend/groth16/bn254/mpcsetup/lagrange.go | 15 +- backend/groth16/bn254/mpcsetup/marshal.go | 15 +- .../groth16/bn254/mpcsetup/marshal_test.go | 15 +- backend/groth16/bn254/mpcsetup/phase1.go | 15 +- backend/groth16/bn254/mpcsetup/phase2.go | 15 +- backend/groth16/bn254/mpcsetup/setup.go | 15 +- backend/groth16/bn254/mpcsetup/setup_test.go | 15 +- backend/groth16/bn254/mpcsetup/utils.go | 15 +- backend/groth16/bn254/prove.go | 15 +- backend/groth16/bn254/setup.go | 15 +- backend/groth16/bn254/verify.go | 17 +- backend/groth16/bw6-633/commitment_test.go | 15 +- backend/groth16/bw6-633/marshal.go | 15 +- backend/groth16/bw6-633/marshal_test.go | 15 +- backend/groth16/bw6-633/mpcsetup/lagrange.go | 15 +- backend/groth16/bw6-633/mpcsetup/marshal.go | 15 +- .../groth16/bw6-633/mpcsetup/marshal_test.go | 15 +- backend/groth16/bw6-633/mpcsetup/phase1.go | 15 +- backend/groth16/bw6-633/mpcsetup/phase2.go | 15 +- backend/groth16/bw6-633/mpcsetup/setup.go | 15 +- .../groth16/bw6-633/mpcsetup/setup_test.go | 15 +- backend/groth16/bw6-633/mpcsetup/utils.go | 15 +- backend/groth16/bw6-633/prove.go | 15 +- backend/groth16/bw6-633/setup.go | 15 +- backend/groth16/bw6-633/verify.go | 15 +- backend/groth16/bw6-761/commitment_test.go | 15 +- backend/groth16/bw6-761/marshal.go | 15 +- backend/groth16/bw6-761/marshal_test.go | 15 +- backend/groth16/bw6-761/mpcsetup/lagrange.go | 15 +- backend/groth16/bw6-761/mpcsetup/marshal.go | 15 +- .../groth16/bw6-761/mpcsetup/marshal_test.go | 15 +- backend/groth16/bw6-761/mpcsetup/phase1.go | 15 +- backend/groth16/bw6-761/mpcsetup/phase2.go | 15 +- backend/groth16/bw6-761/mpcsetup/setup.go | 15 +- .../groth16/bw6-761/mpcsetup/setup_test.go | 15 +- backend/groth16/bw6-761/mpcsetup/utils.go | 15 +- backend/groth16/bw6-761/prove.go | 15 +- backend/groth16/bw6-761/setup.go | 15 +- backend/groth16/bw6-761/verify.go | 15 +- backend/groth16/groth16.go | 15 +- backend/plonk/bls12-377/marshal.go | 15 +- backend/plonk/bls12-377/marshal_test.go | 15 +- backend/plonk/bls12-377/prove.go | 15 +- backend/plonk/bls12-377/setup.go | 15 +- backend/plonk/bls12-377/verify.go | 15 +- backend/plonk/bls12-381/marshal.go | 15 +- backend/plonk/bls12-381/marshal_test.go | 15 +- backend/plonk/bls12-381/prove.go | 15 +- backend/plonk/bls12-381/setup.go | 15 +- backend/plonk/bls12-381/verify.go | 15 +- backend/plonk/bls24-315/marshal.go | 15 +- backend/plonk/bls24-315/marshal_test.go | 15 +- backend/plonk/bls24-315/prove.go | 15 +- backend/plonk/bls24-315/setup.go | 15 +- backend/plonk/bls24-315/verify.go | 15 +- backend/plonk/bls24-317/marshal.go | 15 +- backend/plonk/bls24-317/marshal_test.go | 15 +- backend/plonk/bls24-317/prove.go | 15 +- backend/plonk/bls24-317/setup.go | 15 +- backend/plonk/bls24-317/verify.go | 15 +- backend/plonk/bn254/marshal.go | 15 +- backend/plonk/bn254/marshal_test.go | 15 +- backend/plonk/bn254/prove.go | 15 +- backend/plonk/bn254/setup.go | 15 +- backend/plonk/bn254/verify.go | 17 +- backend/plonk/bw6-633/marshal.go | 15 +- backend/plonk/bw6-633/marshal_test.go | 15 +- backend/plonk/bw6-633/prove.go | 15 +- backend/plonk/bw6-633/setup.go | 15 +- backend/plonk/bw6-633/verify.go | 15 +- backend/plonk/bw6-761/marshal.go | 15 +- backend/plonk/bw6-761/marshal_test.go | 15 +- backend/plonk/bw6-761/prove.go | 15 +- backend/plonk/bw6-761/setup.go | 15 +- backend/plonk/bw6-761/verify.go | 15 +- backend/plonk/plonk.go | 15 +- backend/witness/witness.go | 2 +- constraint/bls12-377/coeff.go | 15 +- constraint/bls12-377/gkr.go | 15 +- constraint/bls12-377/marshal.go | 15 +- constraint/bls12-377/r1cs_test.go | 15 +- constraint/bls12-377/solver.go | 15 +- constraint/bls12-377/system.go | 15 +- constraint/bls12-381/coeff.go | 15 +- constraint/bls12-381/gkr.go | 15 +- constraint/bls12-381/marshal.go | 15 +- constraint/bls12-381/r1cs_test.go | 15 +- constraint/bls12-381/solver.go | 15 +- constraint/bls12-381/system.go | 15 +- constraint/bls24-315/coeff.go | 15 +- constraint/bls24-315/gkr.go | 15 +- constraint/bls24-315/marshal.go | 15 +- constraint/bls24-315/r1cs_test.go | 15 +- constraint/bls24-315/solver.go | 15 +- constraint/bls24-315/system.go | 15 +- constraint/bls24-317/coeff.go | 15 +- constraint/bls24-317/gkr.go | 15 +- constraint/bls24-317/marshal.go | 15 +- constraint/bls24-317/r1cs_test.go | 15 +- constraint/bls24-317/solver.go | 15 +- constraint/bls24-317/system.go | 15 +- constraint/bn254/coeff.go | 15 +- constraint/bn254/gkr.go | 15 +- constraint/bn254/marshal.go | 15 +- constraint/bn254/r1cs_test.go | 15 +- constraint/bn254/solver.go | 15 +- constraint/bn254/system.go | 15 +- constraint/bw6-633/coeff.go | 15 +- constraint/bw6-633/gkr.go | 15 +- constraint/bw6-633/marshal.go | 15 +- constraint/bw6-633/r1cs_test.go | 15 +- constraint/bw6-633/solver.go | 15 +- constraint/bw6-633/system.go | 15 +- constraint/bw6-761/coeff.go | 15 +- constraint/bw6-761/gkr.go | 15 +- constraint/bw6-761/marshal.go | 15 +- constraint/bw6-761/r1cs_test.go | 15 +- constraint/bw6-761/solver.go | 15 +- constraint/bw6-761/system.go | 15 +- constraint/linear_expression.go | 15 +- constraint/log.go | 15 +- constraint/r1cs.go | 15 +- constraint/r1cs_sparse.go | 15 +- constraint/term.go | 15 +- constraint/tinyfield/coeff.go | 15 +- constraint/tinyfield/marshal.go | 15 +- constraint/tinyfield/r1cs_test.go | 15 +- constraint/tinyfield/solver.go | 15 +- constraint/tinyfield/system.go | 15 +- examples/cubic/cubic.go | 15 +- examples/cubic/cubic_test.go | 15 +- examples/exponentiate/exponentiate.go | 15 +- examples/exponentiate/exponentiate_test.go | 15 +- examples/mimc/mimc.go | 15 +- examples/mimc/mimc_test.go | 15 +- examples/plonk/main.go | 15 +- examples/rollup/account.go | 17 +- examples/rollup/account_test.go | 17 +- examples/rollup/circuit.go | 17 +- examples/rollup/circuit_test.go | 17 +- examples/rollup/error.go | 17 +- examples/rollup/operator.go | 17 +- examples/rollup/rollup_test.go | 17 +- examples/rollup/transfer.go | 17 +- frontend/api.go | 17 +- frontend/circuit.go | 17 +- frontend/cs/r1cs/api.go | 20 +- frontend/cs/r1cs/api_assertions.go | 17 +- frontend/cs/r1cs/builder.go | 17 +- frontend/cs/r1cs/r1cs_test.go | 17 +- frontend/cs/scs/api.go | 17 +- frontend/cs/scs/api_assertions.go | 17 +- frontend/cs/scs/builder.go | 17 +- frontend/schema/field.go | 17 +- frontend/schema/schema.go | 17 +- frontend/schema/schema_test.go | 17 +- frontend/variable.go | 17 +- go.mod | 2 +- go.sum | 6 +- integration_test.go | 17 +- internal/generator/backend/main.go | 2 +- .../zkpschemes/groth16/groth16.verify.go.tmpl | 2 +- .../zkpschemes/plonk/plonk.verify.go.tmpl | 2 +- internal/tinyfield/arith.go | 15 +- internal/tinyfield/doc.go | 15 +- internal/tinyfield/element.go | 15 +- internal/tinyfield/element_ops_purego.go | 15 +- internal/tinyfield/element_test.go | 15 +- internal/tinyfield/vector.go | 15 +- internal/tinyfield/vector_test.go | 15 +- internal/utils/convert.go | 15 +- internal/utils/convert_test.go | 15 +- io/io.go | 17 +- std/accumulator/merkle/verify.go | 17 +- std/accumulator/merkle/verify_test.go | 17 +- std/algebra/native/fields_bls12377/e12.go | 17 +- .../native/fields_bls12377/e12_test.go | 17 +- std/algebra/native/fields_bls12377/e2.go | 17 +- std/algebra/native/fields_bls12377/e2_test.go | 17 +- std/algebra/native/fields_bls12377/e6.go | 17 +- std/algebra/native/fields_bls12377/e6_test.go | 17 +- std/algebra/native/fields_bls24315/e12.go | 17 +- .../native/fields_bls24315/e12_test.go | 17 +- std/algebra/native/fields_bls24315/e2.go | 17 +- std/algebra/native/fields_bls24315/e24.go | 17 +- .../native/fields_bls24315/e24_test.go | 17 +- std/algebra/native/fields_bls24315/e2_test.go | 17 +- std/algebra/native/fields_bls24315/e4.go | 17 +- std/algebra/native/fields_bls24315/e4_test.go | 17 +- std/algebra/native/sw_bls12377/g1.go | 17 +- std/algebra/native/sw_bls12377/g1_test.go | 17 +- std/algebra/native/sw_bls12377/g2.go | 17 +- std/algebra/native/sw_bls12377/g2_test.go | 17 +- std/algebra/native/sw_bls12377/pairing.go | 17 +- .../native/sw_bls12377/pairing_test.go | 17 +- .../native/sw_bls12377/precomputations.go | 17 +- std/algebra/native/sw_bls24315/g1.go | 17 +- std/algebra/native/sw_bls24315/g1_test.go | 17 +- std/algebra/native/sw_bls24315/g2.go | 17 +- std/algebra/native/sw_bls24315/g2_test.go | 17 +- std/algebra/native/sw_bls24315/pairing.go | 17 +- .../native/sw_bls24315/pairing_test.go | 17 +- .../native/sw_bls24315/precomputations.go | 17 +- .../native/twistededwards/curve_test.go | 17 +- std/algebra/native/twistededwards/point.go | 17 +- .../native/twistededwards/twistededwards.go | 17 +- std/fiat-shamir/transcript.go | 17 +- std/fiat-shamir/transcript_test.go | 17 +- std/hash/hash.go | 17 +- std/hash/mimc/encrypt.go | 17 +- std/hash/mimc/mimc.go | 17 +- std/hash/mimc/mimc_test.go | 17 +- std/math/emulated/element_test.go | 2 +- std/signature/eddsa/eddsa_test.go | 17 +- test/assert.go | 17 +- test/assert_options.go | 2 +- test/doc.go | 17 +- test/engine.go | 17 +- version_test.go | 4 +- 283 files changed, 1089 insertions(+), 4192 deletions(-) diff --git a/.chglog/config.yml b/.chglog/config.yml index 94cbcc8dcd..cebf506712 100755 --- a/.chglog/config.yml +++ b/.chglog/config.yml @@ -2,7 +2,7 @@ style: github template: CHANGELOG.tpl.md info: title: CHANGELOG - repository_url: https://github.com/consensys/gnark + repository_url: https://github.com/Consensys/gnark options: commits: # filters: diff --git a/CHANGELOG.md b/CHANGELOG.md index 63a6b7b54e..1ba0ddea18 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,32 +1,32 @@ ## [v0.11.0] - 2024-09-06 ### Build -- update runner and go version ([#1260](https://github.com/consensys/gnark/issues/1260)) +- update runner and go version ([#1260](https://github.com/Consensys/gnark/issues/1260)) ### Chore - update version -- explicit IO methods in interfaces ([#1266](https://github.com/consensys/gnark/issues/1266)) +- explicit IO methods in interfaces ([#1266](https://github.com/Consensys/gnark/issues/1266)) - update gnark-crypto module - clean old definition - generate - define interface for solidity-supported VK -- make function comments match function names ([#1163](https://github.com/consensys/gnark/issues/1163)) +- make function comments match function names ([#1163](https://github.com/Consensys/gnark/issues/1163)) ### Docs -- update README ([#1255](https://github.com/consensys/gnark/issues/1255)) +- update README ([#1255](https://github.com/Consensys/gnark/issues/1255)) - update reference -- describe potential length extension attack when using MiMC in-circuit ([#1198](https://github.com/consensys/gnark/issues/1198)) +- describe potential length extension attack when using MiMC in-circuit ([#1198](https://github.com/Consensys/gnark/issues/1198)) - fix typo in package doc - add documentation - update documentation for ecdsa and eddsa -- update TODOs ([#1109](https://github.com/consensys/gnark/issues/1109)) +- update TODOs ([#1109](https://github.com/Consensys/gnark/issues/1109)) ### Feat - use offset variable in derive_gamma -- handle invalid signature failures in ECRecover precompile ([#1101](https://github.com/consensys/gnark/issues/1101)) -- allow configurable hash-to-field function for Groth16 Solidity verifier ([#1102](https://github.com/consensys/gnark/issues/1102)) -- add IsOnG2 for BN254 ([#1204](https://github.com/consensys/gnark/issues/1204)) -- use blake2 for variable hashcode ([#1197](https://github.com/consensys/gnark/issues/1197)) +- handle invalid signature failures in ECRecover precompile ([#1101](https://github.com/Consensys/gnark/issues/1101)) +- allow configurable hash-to-field function for Groth16 Solidity verifier ([#1102](https://github.com/Consensys/gnark/issues/1102)) +- add IsOnG2 for BN254 ([#1204](https://github.com/Consensys/gnark/issues/1204)) +- use blake2 for variable hashcode ([#1197](https://github.com/Consensys/gnark/issues/1197)) - simplified offset computation - ensure verifying keys implement Solidity interface - handle solidity options in CI check @@ -36,9 +36,9 @@ - code gen - statistical zero knowledge option for bn254 - use offset in pairing -- capture O variable in gate for external range checker ([#1211](https://github.com/consensys/gnark/issues/1211)) +- capture O variable in gate for external range checker ([#1211](https://github.com/Consensys/gnark/issues/1211)) - code gen -- add BN254 final exponentiation check with output ([#1209](https://github.com/consensys/gnark/issues/1209)) +- add BN254 final exponentiation check with output ([#1209](https://github.com/Consensys/gnark/issues/1209)) - use anonymous struct - added version solidity template groth16 verifier - re ran code gen and add files @@ -55,27 +55,27 @@ - **bw6:** Fp6 as a direct extension using Montgomery-6 ### Feat -- implement FixedLengthSum of sha2 ([#821](https://github.com/consensys/gnark/issues/821)) +- implement FixedLengthSum of sha2 ([#821](https://github.com/Consensys/gnark/issues/821)) ### Fix - remove redundant select -- variable modulus subtraction padding ([#1200](https://github.com/consensys/gnark/issues/1200)) -- branch with unchecked cast could panic at compile time ([#1234](https://github.com/consensys/gnark/issues/1234)) -- minimum 1 bit for constant binary decomposition ([#1229](https://github.com/consensys/gnark/issues/1229)) -- edge case with PLONK backend when 1 constraint ([#1226](https://github.com/consensys/gnark/issues/1226)) -- strict ModReduce in emulated fields ([#1224](https://github.com/consensys/gnark/issues/1224)) +- variable modulus subtraction padding ([#1200](https://github.com/Consensys/gnark/issues/1200)) +- branch with unchecked cast could panic at compile time ([#1234](https://github.com/Consensys/gnark/issues/1234)) +- minimum 1 bit for constant binary decomposition ([#1229](https://github.com/Consensys/gnark/issues/1229)) +- edge case with PLONK backend when 1 constraint ([#1226](https://github.com/Consensys/gnark/issues/1226)) +- strict ModReduce in emulated fields ([#1224](https://github.com/Consensys/gnark/issues/1224)) - used size in domain instead of recomputing it - remove unconstrained and unused variables -- remove unconstrained and unused variables ([#1218](https://github.com/consensys/gnark/issues/1218)) +- remove unconstrained and unused variables ([#1218](https://github.com/Consensys/gnark/issues/1218)) - avoid malicious hint in BLS12-381 final exp check - avoid infinite loop in hint when previous ML=0 - avoid malicious hint in BN254 final exp check -- conditional check in non-native IsZero for applying optimization ([#1145](https://github.com/consensys/gnark/issues/1145)) -- use consecutive powers instead of squaring ([#1212](https://github.com/consensys/gnark/issues/1212)) -- use emulated arithmetic for GLV decomp ([#1167](https://github.com/consensys/gnark/issues/1167)) +- conditional check in non-native IsZero for applying optimization ([#1145](https://github.com/Consensys/gnark/issues/1145)) +- use consecutive powers instead of squaring ([#1212](https://github.com/Consensys/gnark/issues/1212)) +- use emulated arithmetic for GLV decomp ([#1167](https://github.com/Consensys/gnark/issues/1167)) - restored cfg struct - fixed error_mod_exp comment -- shift constraint indices by nb of public vars ([#1128](https://github.com/consensys/gnark/issues/1128)) +- shift constraint indices by nb of public vars ([#1128](https://github.com/Consensys/gnark/issues/1128)) - fixed conflicts - fixed comment prove - fixed typo PROOF_H_0_X -> PROOF_H_0_COM_X @@ -86,9 +86,9 @@ - fixed comment - removed redundant computation pointer update - remove redundant computation -- several external typo fixes ([#1261](https://github.com/consensys/gnark/issues/1261)) +- several external typo fixes ([#1261](https://github.com/Consensys/gnark/issues/1261)) - ensure condition is bool in api.Select -- fix OR computation in case one input is constant and other variable ([#1181](https://github.com/consensys/gnark/issues/1181)) +- fix OR computation in case one input is constant and other variable ([#1181](https://github.com/Consensys/gnark/issues/1181)) - fixed comment unmarshal - fixed comment solidity - fixed comment solidity @@ -101,12 +101,12 @@ - fixed L-04 - fixed l-02 - defer to math.bits when nbdigits big or not set -- fix [#1149](https://github.com/consensys/gnark/issues/1149) by removing unused code ([#1164](https://github.com/consensys/gnark/issues/1164)) +- fix [#1149](https://github.com/Consensys/gnark/issues/1149) by removing unused code ([#1164](https://github.com/Consensys/gnark/issues/1164)) - exact width for upper part -- more descriptive error message ([#1104](https://github.com/consensys/gnark/issues/1104)) +- more descriptive error message ([#1104](https://github.com/Consensys/gnark/issues/1104)) - added missing import in template - fixed solidity template -- fixes [#1157](https://github.com/consensys/gnark/issues/1157) ensures calls to AttachDebugInfo are surrounded with… ([#1160](https://github.com/consensys/gnark/issues/1160)) +- fixes [#1157](https://github.com/Consensys/gnark/issues/1157) ensures calls to AttachDebugInfo are surrounded with… ([#1160](https://github.com/Consensys/gnark/issues/1160)) - **bls12-377:** use FinalExponentiationCheck in pairing2.go - **bls12-377:** push to cyclo group in pairing2.go - **bls12-377:** hint computation for final exp @@ -114,10 +114,10 @@ - **bw6:** Toom-Cook 6-way mul - **bw6:** pairing using direct sextic extension - **pairing:** fix benchmarks -- **uints:** constrain valueOf ([#1139](https://github.com/consensys/gnark/issues/1139)) +- **uints:** constrain valueOf ([#1139](https://github.com/Consensys/gnark/issues/1139)) ### Fix -- Build on 32-bit arch would raise int overflow https://github.com/Consensys/gnark/issues/1192 ([#1195](https://github.com/consensys/gnark/issues/1195)) +- Build on 32-bit arch would raise int overflow https://github.com/Consensys/gnark/issues/1192 ([#1195](https://github.com/Consensys/gnark/issues/1195)) ### Perf - eliminate final exp in bls12-381 optimized @@ -156,13 +156,13 @@ - move utils from std/ to internal - apply review suggestions - apply review suggestions -- separate fixed circuits used in zkevm ([#1217](https://github.com/consensys/gnark/issues/1217)) +- separate fixed circuits used in zkevm ([#1217](https://github.com/Consensys/gnark/issues/1217)) - clean code - clean code - move limb composition to package - use single implementation - clean code -- removes todods ([#1111](https://github.com/consensys/gnark/issues/1111)) +- removes todods ([#1111](https://github.com/Consensys/gnark/issues/1111)) - **bls12-377:** karabina decompression - **bn254:** clean FE elimination code - **bn254:** add some comments @@ -189,7 +189,7 @@ - divideByXMinusOne could -> divideByZH - fixed typo - clean code -- remove old todos ([#1106](https://github.com/consensys/gnark/issues/1106)) +- remove old todos ([#1106](https://github.com/Consensys/gnark/issues/1106)) ### Test - update stats @@ -197,49 +197,49 @@ - added non regression test for api.Select bool cond - add issue 1153 repro - update stats -- check errors in test circuit ([#1140](https://github.com/consensys/gnark/issues/1140)) +- check errors in test circuit ([#1140](https://github.com/Consensys/gnark/issues/1140)) - update stats - update stats - update stats - update stats -- add PLONK test for public input mapping ([#1123](https://github.com/consensys/gnark/issues/1123)) +- add PLONK test for public input mapping ([#1123](https://github.com/Consensys/gnark/issues/1123)) - update stats ### Wip - toom-cook-3x ### Pull Requests -- Merge pull request [#1254](https://github.com/consensys/gnark/issues/1254) from Consensys/perf/ML -- Merge pull request [#1258](https://github.com/consensys/gnark/issues/1258) from Consensys/refactor/limb-composition -- Merge pull request [#1251](https://github.com/consensys/gnark/issues/1251) from Consensys/build/bump-gnarkcrypto-vsn -- Merge pull request [#1247](https://github.com/consensys/gnark/issues/1247) from Consensys/fix/issue1246 -- Merge pull request [#1207](https://github.com/consensys/gnark/issues/1207) from Consensys/perf/eliminate-finalExp-bls -- Merge pull request [#1214](https://github.com/consensys/gnark/issues/1214) from Consensys/fix/BN254-finalExp -- Merge pull request [#1196](https://github.com/consensys/gnark/issues/1196) from ThomasPiellard/audit/final-commit-fixes -- Merge pull request [#1143](https://github.com/consensys/gnark/issues/1143) from Consensys/perf/eliminate-finalExp -- Merge pull request [#1187](https://github.com/consensys/gnark/issues/1187) from Consensys/fix/groth16-solidity-templates -- Merge pull request [#1155](https://github.com/consensys/gnark/issues/1155) from Consensys/perf/eliminate-finalExp-bw6761 -- Merge pull request [#1173](https://github.com/consensys/gnark/issues/1173) from Consensys/perf/eliminate-finalExp-bls12381 -- Merge pull request [#11](https://github.com/consensys/gnark/issues/11) from ThomasPiellard/audit/M-04 -- Merge pull request [#10](https://github.com/consensys/gnark/issues/10) from ThomasPiellard/audit/L-02 -- Merge pull request [#14](https://github.com/consensys/gnark/issues/14) from ThomasPiellard/audit/H-01 -- Merge pull request [#13](https://github.com/consensys/gnark/issues/13) from ThomasPiellard/audit/N-05 -- Merge pull request [#2](https://github.com/consensys/gnark/issues/2) from ThomasPiellard/audit/N-01 -- Merge pull request [#5](https://github.com/consensys/gnark/issues/5) from ThomasPiellard/audit/L-08 -- Merge pull request [#7](https://github.com/consensys/gnark/issues/7) from ThomasPiellard/audit/L-06 -- Merge pull request [#6](https://github.com/consensys/gnark/issues/6) from ThomasPiellard/audit/L-07 -- Merge pull request [#8](https://github.com/consensys/gnark/issues/8) from ThomasPiellard/audit/L-05 -- Merge pull request [#4](https://github.com/consensys/gnark/issues/4) from ThomasPiellard/audit/N-03 -- Merge pull request [#3](https://github.com/consensys/gnark/issues/3) from ThomasPiellard/audit/N-02 -- Merge pull request [#1](https://github.com/consensys/gnark/issues/1) from ThomasPiellard/audit/N-04 -- Merge pull request [#9](https://github.com/consensys/gnark/issues/9) from ThomasPiellard/audit/L-04 -- Merge pull request [#12](https://github.com/consensys/gnark/issues/12) from ThomasPiellard/audit/L-03 -- Merge pull request [#1165](https://github.com/consensys/gnark/issues/1165) from Consensys/fix/partition-bounds -- Merge pull request [#1138](https://github.com/consensys/gnark/issues/1138) from Consensys/feat/option_solidity -- Merge pull request [#1131](https://github.com/consensys/gnark/issues/1131) from Consensys/perf/toom3-r1cs -- Merge pull request [#1126](https://github.com/consensys/gnark/issues/1126) from Consensys/perf/direct-extensions -- Merge pull request [#1110](https://github.com/consensys/gnark/issues/1110) from Consensys/perf/field-extensions -- Merge pull request [#1113](https://github.com/consensys/gnark/issues/1113) from Consensys/docs/signatures +- Merge pull request [#1254](https://github.com/Consensys/gnark/issues/1254) from Consensys/perf/ML +- Merge pull request [#1258](https://github.com/Consensys/gnark/issues/1258) from Consensys/refactor/limb-composition +- Merge pull request [#1251](https://github.com/Consensys/gnark/issues/1251) from Consensys/build/bump-gnarkcrypto-vsn +- Merge pull request [#1247](https://github.com/Consensys/gnark/issues/1247) from Consensys/fix/issue1246 +- Merge pull request [#1207](https://github.com/Consensys/gnark/issues/1207) from Consensys/perf/eliminate-finalExp-bls +- Merge pull request [#1214](https://github.com/Consensys/gnark/issues/1214) from Consensys/fix/BN254-finalExp +- Merge pull request [#1196](https://github.com/Consensys/gnark/issues/1196) from ThomasPiellard/audit/final-commit-fixes +- Merge pull request [#1143](https://github.com/Consensys/gnark/issues/1143) from Consensys/perf/eliminate-finalExp +- Merge pull request [#1187](https://github.com/Consensys/gnark/issues/1187) from Consensys/fix/groth16-solidity-templates +- Merge pull request [#1155](https://github.com/Consensys/gnark/issues/1155) from Consensys/perf/eliminate-finalExp-bw6761 +- Merge pull request [#1173](https://github.com/Consensys/gnark/issues/1173) from Consensys/perf/eliminate-finalExp-bls12381 +- Merge pull request [#11](https://github.com/Consensys/gnark/issues/11) from ThomasPiellard/audit/M-04 +- Merge pull request [#10](https://github.com/Consensys/gnark/issues/10) from ThomasPiellard/audit/L-02 +- Merge pull request [#14](https://github.com/Consensys/gnark/issues/14) from ThomasPiellard/audit/H-01 +- Merge pull request [#13](https://github.com/Consensys/gnark/issues/13) from ThomasPiellard/audit/N-05 +- Merge pull request [#2](https://github.com/Consensys/gnark/issues/2) from ThomasPiellard/audit/N-01 +- Merge pull request [#5](https://github.com/Consensys/gnark/issues/5) from ThomasPiellard/audit/L-08 +- Merge pull request [#7](https://github.com/Consensys/gnark/issues/7) from ThomasPiellard/audit/L-06 +- Merge pull request [#6](https://github.com/Consensys/gnark/issues/6) from ThomasPiellard/audit/L-07 +- Merge pull request [#8](https://github.com/Consensys/gnark/issues/8) from ThomasPiellard/audit/L-05 +- Merge pull request [#4](https://github.com/Consensys/gnark/issues/4) from ThomasPiellard/audit/N-03 +- Merge pull request [#3](https://github.com/Consensys/gnark/issues/3) from ThomasPiellard/audit/N-02 +- Merge pull request [#1](https://github.com/Consensys/gnark/issues/1) from ThomasPiellard/audit/N-04 +- Merge pull request [#9](https://github.com/Consensys/gnark/issues/9) from ThomasPiellard/audit/L-04 +- Merge pull request [#12](https://github.com/Consensys/gnark/issues/12) from ThomasPiellard/audit/L-03 +- Merge pull request [#1165](https://github.com/Consensys/gnark/issues/1165) from Consensys/fix/partition-bounds +- Merge pull request [#1138](https://github.com/Consensys/gnark/issues/1138) from Consensys/feat/option_solidity +- Merge pull request [#1131](https://github.com/Consensys/gnark/issues/1131) from Consensys/perf/toom3-r1cs +- Merge pull request [#1126](https://github.com/Consensys/gnark/issues/1126) from Consensys/perf/direct-extensions +- Merge pull request [#1110](https://github.com/Consensys/gnark/issues/1110) from Consensys/perf/field-extensions +- Merge pull request [#1113](https://github.com/Consensys/gnark/issues/1113) from Consensys/docs/signatures @@ -269,7 +269,7 @@ - test mul 01 by 01 ### Build -- update compress to v0.2.3 ([#1032](https://github.com/consensys/gnark/issues/1032)) +- update compress to v0.2.3 ([#1032](https://github.com/Consensys/gnark/issues/1032)) - get gopter ### Bw6761 @@ -280,8 +280,8 @@ - remove prints and all huffman code - comments/cleanup for lzss compression - update stats -- remove committed profiles ([#1053](https://github.com/consensys/gnark/issues/1053)) -- adapt changes from native Fiat-Shamir transcript ([#974](https://github.com/consensys/gnark/issues/974)) +- remove committed profiles ([#1053](https://github.com/Consensys/gnark/issues/1053)) +- adapt changes from native Fiat-Shamir transcript ([#974](https://github.com/Consensys/gnark/issues/974)) - go.sum - update stats - remove unused line eval init @@ -300,7 +300,7 @@ - update gnark-crypto to latest - uncrowd the pr a bit more - cleanup documentation examples -- avoid nonnative dereferences ([#861](https://github.com/consensys/gnark/issues/861)) +- avoid nonnative dereferences ([#861](https://github.com/Consensys/gnark/issues/861)) - better logging, remove code from data folder - update gnark-crypto to latest - clean up comments and prints @@ -308,7 +308,7 @@ - remove prints - clean up test cases - improved analytics -- **deps:** bump golang.org/x/crypto from 0.12.0 to 0.17.0 ([#973](https://github.com/consensys/gnark/issues/973)) +- **deps:** bump golang.org/x/crypto from 0.12.0 to 0.17.0 ([#973](https://github.com/Consensys/gnark/issues/973)) ### Ci - don't run redundant release checks @@ -320,7 +320,7 @@ - rm solidity.tmpl ### Doc -- add docs to NewR1CS and NewSparseR1CS in system.go [#985](https://github.com/consensys/gnark/issues/985) +- add docs to NewR1CS and NewSparseR1CS in system.go [#985](https://github.com/Consensys/gnark/issues/985) ### Docs - clean comments @@ -328,7 +328,7 @@ - method doc native output - add comments - add subgroup check to doc_test.go -- describe that hint inputs and outputs are init-ed ([#1003](https://github.com/consensys/gnark/issues/1003)) +- describe that hint inputs and outputs are init-ed ([#1003](https://github.com/Consensys/gnark/issues/1003)) - clean comments - update algebra documentations - GLV hint @@ -337,13 +337,13 @@ - BestCompression vs BestSnarkDecomposition ### FEAT -- Add experimental support for Icicle GPU acceleration behind build tag ([#844](https://github.com/consensys/gnark/issues/844)) +- Add experimental support for Icicle GPU acceleration behind build tag ([#844](https://github.com/Consensys/gnark/issues/844)) ### Feat - register hints in std/ also when have no circuit - change sign in comment - modified comment -- expmod with variable modulus ([#1090](https://github.com/consensys/gnark/issues/1090)) +- expmod with variable modulus ([#1090](https://github.com/Consensys/gnark/issues/1090)) - moved claimed values of linearised polynomial out of the proof - re enable test bs12->bw6 - code gen @@ -353,53 +353,53 @@ - addition of precompiles as constants - used to compute offsets in state - used in template for proof offsetss -- Groth16 Solidity contract with commitments ([#1063](https://github.com/consensys/gnark/issues/1063)) -- add secp256k1 curve default initializer ([#1086](https://github.com/consensys/gnark/issues/1086)) -- add range check selector retrieval ([#1066](https://github.com/consensys/gnark/issues/1066)) -- add MulNoReduce and Sum methods in field emulation ([#1072](https://github.com/consensys/gnark/issues/1072)) +- Groth16 Solidity contract with commitments ([#1063](https://github.com/Consensys/gnark/issues/1063)) +- add secp256k1 curve default initializer ([#1086](https://github.com/Consensys/gnark/issues/1086)) +- add range check selector retrieval ([#1066](https://github.com/Consensys/gnark/issues/1066)) +- add MulNoReduce and Sum methods in field emulation ([#1072](https://github.com/Consensys/gnark/issues/1072)) - add non-native hint with native inputs - add non-native hint with native output - add non-native hint with native output -- non-native sumcheck verifier ([#1042](https://github.com/consensys/gnark/issues/1042)) -- verify commitments in groth16 recursion verifier ([#1057](https://github.com/consensys/gnark/issues/1057)) -- add option for enforcing number of goroutines for the solver ([#1052](https://github.com/consensys/gnark/issues/1052)) -- stabilize anonymous hint function names ([#1054](https://github.com/consensys/gnark/issues/1054)) +- non-native sumcheck verifier ([#1042](https://github.com/Consensys/gnark/issues/1042)) +- verify commitments in groth16 recursion verifier ([#1057](https://github.com/Consensys/gnark/issues/1057)) +- add option for enforcing number of goroutines for the solver ([#1052](https://github.com/Consensys/gnark/issues/1052)) +- stabilize anonymous hint function names ([#1054](https://github.com/Consensys/gnark/issues/1054)) - modified algebraic relation - G2 membership bls12-377 - G1 membership bls12-377 - curve/twist membership bls12-377 - subgroup G1/G2 membership BW6-761 -- add PLONK in-circuit verifier ([#880](https://github.com/consensys/gnark/issues/880)) +- add PLONK in-circuit verifier ([#880](https://github.com/Consensys/gnark/issues/880)) - pairing precompile error handled - code gen - clean MarshalSolidity - fix unmarshalling solidity -- use n-bit mux for switching PLONK verification keys ([#1017](https://github.com/consensys/gnark/issues/1017)) +- use n-bit mux for switching PLONK verification keys ([#1017](https://github.com/Consensys/gnark/issues/1017)) - code gen plonk upgrade -- adds plonk.SRSSize helper method ([#1012](https://github.com/consensys/gnark/issues/1012)) -- different PLONK circuit verification ([#1010](https://github.com/consensys/gnark/issues/1010)) +- adds plonk.SRSSize helper method ([#1012](https://github.com/Consensys/gnark/issues/1012)) +- different PLONK circuit verification ([#1010](https://github.com/Consensys/gnark/issues/1010)) - renaming zhZeta - opening of h0, h1, h2 ok - using batch inversion - remove foldedHDigest - add quotient to the linearised polynomial - multiply s1, s2 by alpha -- some todos and dead code ([#993](https://github.com/consensys/gnark/issues/993)) +- some todos and dead code ([#993](https://github.com/Consensys/gnark/issues/993)) - add WithUseSafe option -- update compress version; failing test (resolved) ([#979](https://github.com/consensys/gnark/issues/979)) +- update compress version; failing test (resolved) ([#979](https://github.com/Consensys/gnark/issues/979)) - regenerate internal/stats - updated comment in fold_state -- groth16 solidity use calldatacopy for commitments ([#1097](https://github.com/consensys/gnark/issues/1097)) -- plonk verifier options ([#1028](https://github.com/consensys/gnark/issues/1028)) -- if we don't compress we don't need the dict ([#929](https://github.com/consensys/gnark/issues/929)) +- groth16 solidity use calldatacopy for commitments ([#1097](https://github.com/Consensys/gnark/issues/1097)) +- plonk verifier options ([#1028](https://github.com/Consensys/gnark/issues/1028)) +- if we don't compress we don't need the dict ([#929](https://github.com/Consensys/gnark/issues/929)) - exit when an error is encountered - exit when condition is not filled -- make registries for gkr thread safe ([#920](https://github.com/consensys/gnark/issues/920)) -- cache lookup blueprint entries in solving phase ([#915](https://github.com/consensys/gnark/issues/915)) -- batched KZG ([#908](https://github.com/consensys/gnark/issues/908)) +- make registries for gkr thread safe ([#920](https://github.com/Consensys/gnark/issues/920)) +- cache lookup blueprint entries in solving phase ([#915](https://github.com/Consensys/gnark/issues/915)) +- batched KZG ([#908](https://github.com/Consensys/gnark/issues/908)) - forceDivisibleBy - compile large circuit outside tests -- Fiat-Shamir transcript using a short hash ([#900](https://github.com/consensys/gnark/issues/900)) +- Fiat-Shamir transcript using a short hash ([#900](https://github.com/Consensys/gnark/issues/900)) - snark decomp done, not yet tested - snark decompressor, all but eof logic done - offset, length and bytes tables @@ -412,12 +412,12 @@ - use bitlength from parameters - bit-level alignment of compressed - marshalling G1 and Scalar on emulated curves, following gnark-crypto -- add short-hash wrappers for recursion ([#884](https://github.com/consensys/gnark/issues/884)) +- add short-hash wrappers for recursion ([#884](https://github.com/Consensys/gnark/issues/884)) - native marshal (bls12, 24) consistent with gnark-crypto - marshal G1 ok on non emulated curves (bls12, 24) - pack/unpack functions - add fixed pairing for bw6-761 -- allow custom hash function in backends ([#873](https://github.com/consensys/gnark/issues/873)) +- allow custom hash function in backends ([#873](https://github.com/Consensys/gnark/issues/873)) - more analytics - some analytics - add bw6 kzg @@ -445,34 +445,34 @@ - JointScalarMulBase without GLV (for ecdsa package) - fixed type - folded MSM scalar decomposition -- emulated hint tests ([#1083](https://github.com/consensys/gnark/issues/1083)) +- emulated hint tests ([#1083](https://github.com/Consensys/gnark/issues/1083)) - edge cases in SM and JSM were inverted + comments - incorrect parameter -- several typos in the documentation ([#943](https://github.com/consensys/gnark/issues/943)) +- several typos in the documentation ([#943](https://github.com/Consensys/gnark/issues/943)) - remove duplicate error check - scs add/mul when recorded constraint is 0 -- organize std packages hints registrations ([#1043](https://github.com/consensys/gnark/issues/1043)) -- another occurence of G1 in SRS ([#1036](https://github.com/consensys/gnark/issues/1036)) -- use G1 generator from SRS ([#1035](https://github.com/consensys/gnark/issues/1035)) +- organize std packages hints registrations ([#1043](https://github.com/Consensys/gnark/issues/1043)) +- another occurence of G1 in SRS ([#1036](https://github.com/Consensys/gnark/issues/1036)) +- use G1 generator from SRS ([#1035](https://github.com/Consensys/gnark/issues/1035)) - verifier works - fixed size slice - fixed formula in comments - AssertOnG1 BLS12-377 -- use subtraction with reduce in AssertIsEqual ([#1026](https://github.com/consensys/gnark/issues/1026)) +- use subtraction with reduce in AssertIsEqual ([#1026](https://github.com/Consensys/gnark/issues/1026)) - plonk recursion without commitment - fixed compute_gamma_kzg - fixed offset opening at zeta-omega -- Decompressor to return -1 when output doesn't fit ([#1022](https://github.com/consensys/gnark/issues/1022)) +- Decompressor to return -1 when output doesn't fit ([#1022](https://github.com/Consensys/gnark/issues/1022)) - fixed typo - fixed verify_opening_linearised_polynomial - fixed proof size - fixed generator - fixed comment derive alpha - fixed MarshalSolidity -- assign baseChallenge correctly while verifying gkr solution ([#1020](https://github.com/consensys/gnark/issues/1020)) +- assign baseChallenge correctly while verifying gkr solution ([#1020](https://github.com/Consensys/gnark/issues/1020)) - verifier ok - add Placeholder for vk with fixed lines -- remove shorthash override for same field ([#1008](https://github.com/consensys/gnark/issues/1008)) +- remove shorthash override for same field ([#1008](https://github.com/Consensys/gnark/issues/1008)) - bw6 field emulation - works on small test case - "last byte" bug @@ -487,7 +487,7 @@ - stats - use Generic instead of GLV for ECMUL to handle edge-cases - remove debug panic from previous commit -- ensure plonk verify check witness length ([#952](https://github.com/consensys/gnark/issues/952)) +- ensure plonk verify check witness length ([#952](https://github.com/Consensys/gnark/issues/952)) - update stats - some bugs - groth16 verifier @@ -495,14 +495,14 @@ - bn254 -> {{ toLower .Curve }} - test Expt remaned to ExpX0 - compression works on the first 300b of calldata -- missing wait on channel in plonk prover ([#926](https://github.com/consensys/gnark/issues/926)) +- missing wait on channel in plonk prover ([#926](https://github.com/Consensys/gnark/issues/926)) - minor test issues - bad merge. bad git! -- use platform independent method for counting new multiplication overflow from result limb count ([#916](https://github.com/consensys/gnark/issues/916)) +- use platform independent method for counting new multiplication overflow from result limb count ([#916](https://github.com/Consensys/gnark/issues/916)) - actually remove the go generate line - comment out go generate in suffixarray - groth16 recursion -- non-native arithmetic autoreduction for division, inversion and sqrt ([#870](https://github.com/consensys/gnark/issues/870)) +- non-native arithmetic autoreduction for division, inversion and sqrt ([#870](https://github.com/Consensys/gnark/issues/870)) - readIntoStream bug - simple table lookup works - test with backrefs @@ -561,7 +561,7 @@ - optimize hint computation with corresponding output field - do not use multiplication for subscalar check - simplify the glv decomposition hint -- emulated equality assertion ([#1064](https://github.com/consensys/gnark/issues/1064)) +- emulated equality assertion ([#1064](https://github.com/Consensys/gnark/issues/1064)) - minor optims for plonk verifier - save some negs in ec arithmetic - big optim for JointScalarMulBase @@ -584,9 +584,9 @@ - one binary search only - fold H before big MSM - even better lookahead for lazy deflate -- non-native multilinear polynomial evaluation ([#1087](https://github.com/consensys/gnark/issues/1087)) +- non-native multilinear polynomial evaluation ([#1087](https://github.com/Consensys/gnark/issues/1087)) - groth16 uses precomputed lines for all curves -- mark the result of `builder.IsZero` as boolean to save constraints when used in future ([#977](https://github.com/consensys/gnark/issues/977)) +- mark the result of `builder.IsZero` as boolean to save constraints when used in future ([#977](https://github.com/Consensys/gnark/issues/977)) - smaller backrefs - faster compression by reducing search space - avoid some additions in jointScalarMulGLV @@ -596,16 +596,16 @@ - big optim for JointScalarMul and MSM - isolate trival add/mul by 0/1 in plonk verifier and kzg - rewrite Hayashida et al. hard part -- non-native modular multiplication ([#749](https://github.com/consensys/gnark/issues/749)) +- non-native modular multiplication ([#749](https://github.com/Consensys/gnark/issues/749)) - implement unified addition in 2-chains - mutualize bit decomposition when same scalar used is ScalarMul - reduce mem alloc when init suffix array - use JointScalarMul in plonk recursion -- bounded scalar multiplication ([#934](https://github.com/consensys/gnark/issues/934)) -- use G2 precomputed lines for Miller loop ([#930](https://github.com/consensys/gnark/issues/930)) +- bounded scalar multiplication ([#934](https://github.com/Consensys/gnark/issues/934)) +- use G2 precomputed lines for Miller loop ([#930](https://github.com/Consensys/gnark/issues/930)) - replace sort.Search - don't use 0 as symbol delimiter -- lookup blueprint compile time improvement ([#899](https://github.com/consensys/gnark/issues/899)) +- lookup blueprint compile time improvement ([#899](https://github.com/Consensys/gnark/issues/899)) - use new fixed-arg pairing in kzg - use new fixed-arg pairing in kzg (WIP) - **2-chain:** handle edge cases in varScalarMul @@ -658,23 +658,23 @@ - use line evaluation references for avoiding copies - hardcode glv values instead of exporting from gnark-crypto - remove SameScalarMul from interface -- plonk.Setup takes kzg srs in canonical and lagrange form ([#953](https://github.com/consensys/gnark/issues/953)) +- plonk.Setup takes kzg srs in canonical and lagrange form ([#953](https://github.com/Consensys/gnark/issues/953)) - reconcile with master - rename precompute to compute when done in-circuit - clean comments - algebra interface and pairing -- use external compressor repo ([#942](https://github.com/consensys/gnark/issues/942)) +- use external compressor repo ([#942](https://github.com/Consensys/gnark/issues/942)) - consolidate emulated bw6-761 pairing with other curves - consolidate bw6-761 tower + fix GT exp tests - apply PR review suggestions -- simplify hint overloading for api.Commit ([#919](https://github.com/consensys/gnark/issues/919)) +- simplify hint overloading for api.Commit ([#919](https://github.com/Consensys/gnark/issues/919)) - re-introduce points in KZG verification key -- kill backend.PLONK_FRI ([#1075](https://github.com/consensys/gnark/issues/1075)) +- kill backend.PLONK_FRI ([#1075](https://github.com/Consensys/gnark/issues/1075)) - use variable point in tests for precomputeLines - lzssv2 -> lzss - kill backend.PLONK_FRI - use lineEvaluation type instead of field elements -- use emulated.FieldParams as type parameter to generic Curve and Pairing ([#901](https://github.com/consensys/gnark/issues/901)) +- use emulated.FieldParams as type parameter to generic Curve and Pairing ([#901](https://github.com/Consensys/gnark/issues/901)) - bls24 also uses size 4 lines - lots of cleanup. one failing test remaining - keep one version + multi-pairing @@ -738,7 +738,7 @@ - add g1 marshal + hash test - add test case for not recording zero mul constraint - update stats -- add emulated pairing circuits to stats ([#1031](https://github.com/consensys/gnark/issues/1031)) +- add emulated pairing circuits to stats ([#1031](https://github.com/Consensys/gnark/issues/1031)) - reactivate other for cmp - added BenchmarkAverageBatch - added average batch test case @@ -759,32 +759,32 @@ - **bw6:** recude multi-pairing size in tests ### Pull Requests -- Merge pull request [#1044](https://github.com/consensys/gnark/issues/1044) from Consensys/feat/plonk_update -- Merge pull request [#1085](https://github.com/consensys/gnark/issues/1085) from Consensys/perf/ec-arithmetic-2chain -- Merge pull request [#1061](https://github.com/consensys/gnark/issues/1061) from Consensys/perf/ec-arithmetic -- Merge pull request [#1080](https://github.com/consensys/gnark/issues/1080) from Consensys/feat/emulated-nativehint -- Merge pull request [#1077](https://github.com/consensys/gnark/issues/1077) from shramee/faster-fq6-01 -- Merge pull request [#1076](https://github.com/consensys/gnark/issues/1076) from shramee/faster-fq6-01-01 -- Merge pull request [#1068](https://github.com/consensys/gnark/issues/1068) from Consensys/fix/recorded-scs -- Merge pull request [#1030](https://github.com/consensys/gnark/issues/1030) from Consensys/feat/bw6-subgroupcheck -- Merge pull request [#1049](https://github.com/consensys/gnark/issues/1049) from Consensys/perf/jointScalarMulGeneric -- Merge pull request [#1023](https://github.com/consensys/gnark/issues/1023) from Consensys/fix/ec-edgecases -- Merge pull request [#1016](https://github.com/consensys/gnark/issues/1016) from Consensys/perf/g16-circuit -- Merge pull request [#976](https://github.com/consensys/gnark/issues/976) from Consensys/perf/ecmul-precompile -- Merge pull request [#992](https://github.com/consensys/gnark/issues/992) from GoodDaisy/master -- Merge pull request [#975](https://github.com/consensys/gnark/issues/975) from Consensys/perf/ecdsa -- Merge pull request [#949](https://github.com/consensys/gnark/issues/949) from Consensys/perf/plonk-verifier -- Merge pull request [#928](https://github.com/consensys/gnark/issues/928) from Consensys/feat/plonk_exit_if_error -- Merge pull request [#933](https://github.com/consensys/gnark/issues/933) from Consensys/perf/karabina-cycloSq -- Merge pull request [#931](https://github.com/consensys/gnark/issues/931) from Consensys/perf/bw6-finalExp -- Merge pull request [#924](https://github.com/consensys/gnark/issues/924) from Consensys/feat/bypass-compression -- Merge pull request [#891](https://github.com/consensys/gnark/issues/891) from Consensys/feat/marshal_g1_scalar -- Merge pull request [#889](https://github.com/consensys/gnark/issues/889) from secure12/master -- Merge pull request [#876](https://github.com/consensys/gnark/issues/876) from Consensys/feat/bw6761-fixed-pairing -- Merge pull request [#878](https://github.com/consensys/gnark/issues/878) from Consensys/chore/example-cleanup -- Merge pull request [#868](https://github.com/consensys/gnark/issues/868) from Consensys/fix/decompressKarabina -- Merge pull request [#866](https://github.com/consensys/gnark/issues/866) from Consensys/feat/bw6761-kzg -- Merge pull request [#846](https://github.com/consensys/gnark/issues/846) from Consensys/feat/bw6761-pairing +- Merge pull request [#1044](https://github.com/Consensys/gnark/issues/1044) from Consensys/feat/plonk_update +- Merge pull request [#1085](https://github.com/Consensys/gnark/issues/1085) from Consensys/perf/ec-arithmetic-2chain +- Merge pull request [#1061](https://github.com/Consensys/gnark/issues/1061) from Consensys/perf/ec-arithmetic +- Merge pull request [#1080](https://github.com/Consensys/gnark/issues/1080) from Consensys/feat/emulated-nativehint +- Merge pull request [#1077](https://github.com/Consensys/gnark/issues/1077) from shramee/faster-fq6-01 +- Merge pull request [#1076](https://github.com/Consensys/gnark/issues/1076) from shramee/faster-fq6-01-01 +- Merge pull request [#1068](https://github.com/Consensys/gnark/issues/1068) from Consensys/fix/recorded-scs +- Merge pull request [#1030](https://github.com/Consensys/gnark/issues/1030) from Consensys/feat/bw6-subgroupcheck +- Merge pull request [#1049](https://github.com/Consensys/gnark/issues/1049) from Consensys/perf/jointScalarMulGeneric +- Merge pull request [#1023](https://github.com/Consensys/gnark/issues/1023) from Consensys/fix/ec-edgecases +- Merge pull request [#1016](https://github.com/Consensys/gnark/issues/1016) from Consensys/perf/g16-circuit +- Merge pull request [#976](https://github.com/Consensys/gnark/issues/976) from Consensys/perf/ecmul-precompile +- Merge pull request [#992](https://github.com/Consensys/gnark/issues/992) from GoodDaisy/master +- Merge pull request [#975](https://github.com/Consensys/gnark/issues/975) from Consensys/perf/ecdsa +- Merge pull request [#949](https://github.com/Consensys/gnark/issues/949) from Consensys/perf/plonk-verifier +- Merge pull request [#928](https://github.com/Consensys/gnark/issues/928) from Consensys/feat/plonk_exit_if_error +- Merge pull request [#933](https://github.com/Consensys/gnark/issues/933) from Consensys/perf/karabina-cycloSq +- Merge pull request [#931](https://github.com/Consensys/gnark/issues/931) from Consensys/perf/bw6-finalExp +- Merge pull request [#924](https://github.com/Consensys/gnark/issues/924) from Consensys/feat/bypass-compression +- Merge pull request [#891](https://github.com/Consensys/gnark/issues/891) from Consensys/feat/marshal_g1_scalar +- Merge pull request [#889](https://github.com/Consensys/gnark/issues/889) from secure12/master +- Merge pull request [#876](https://github.com/Consensys/gnark/issues/876) from Consensys/feat/bw6761-fixed-pairing +- Merge pull request [#878](https://github.com/Consensys/gnark/issues/878) from Consensys/chore/example-cleanup +- Merge pull request [#868](https://github.com/Consensys/gnark/issues/868) from Consensys/fix/decompressKarabina +- Merge pull request [#866](https://github.com/Consensys/gnark/issues/866) from Consensys/feat/bw6761-kzg +- Merge pull request [#846](https://github.com/Consensys/gnark/issues/846) from Consensys/feat/bw6761-pairing @@ -829,7 +829,7 @@ - fixed fold_state ### Perf -- a special case for mulacc ([#859](https://github.com/consensys/gnark/issues/859)) +- a special case for mulacc ([#859](https://github.com/Consensys/gnark/issues/859)) ### Refactor - remove typed KZG and Groth16 verifiers @@ -850,11 +850,11 @@ - implement recursion test - add generic groth16 test (broken) - add KZG test for BLS12377 -- update version tag ([#841](https://github.com/consensys/gnark/issues/841)) +- update version tag ([#841](https://github.com/Consensys/gnark/issues/841)) ### Pull Requests -- Merge pull request [#840](https://github.com/consensys/gnark/issues/840) from Consensys/refactor/generic-kzg -- Merge pull request [#820](https://github.com/consensys/gnark/issues/820) from Consensys/fix/fold_state +- Merge pull request [#840](https://github.com/Consensys/gnark/issues/840) from Consensys/refactor/generic-kzg +- Merge pull request [#820](https://github.com/Consensys/gnark/issues/820) from Consensys/fix/fold_state @@ -871,11 +871,11 @@ - avoid running std/ test on macOS CI ### Feat -- add bounded comparator functions ([#530](https://github.com/consensys/gnark/issues/530)) -- add sha3 primitive ([#817](https://github.com/consensys/gnark/issues/817)) +- add bounded comparator functions ([#530](https://github.com/Consensys/gnark/issues/530)) +- add sha3 primitive ([#817](https://github.com/Consensys/gnark/issues/817)) ### Fix -- assert that the binary decomposition of a variable is less than the modulus ([#835](https://github.com/consensys/gnark/issues/835)) +- assert that the binary decomposition of a variable is less than the modulus ([#835](https://github.com/Consensys/gnark/issues/835)) - remove panic when iterating constraints - don't bind bsb22 comm to gamma - move bsb22 comm fs in plonk prover @@ -883,14 +883,14 @@ - plonk must commit to Qcp ### Perf -- improve plonk prover memory footprint ([#815](https://github.com/consensys/gnark/issues/815)) +- improve plonk prover memory footprint ([#815](https://github.com/Consensys/gnark/issues/815)) ### Refactor - **pairing:** remove bls24 bench + remove bn254 duplicate line ### Pull Requests -- Merge pull request [#816](https://github.com/consensys/gnark/issues/816) from Consensys/perf/pairing-neg -- Merge pull request [#812](https://github.com/consensys/gnark/issues/812) from Consensys/fix/plonk-bsb-challenge +- Merge pull request [#816](https://github.com/Consensys/gnark/issues/816) from Consensys/perf/pairing-neg +- Merge pull request [#812](https://github.com/Consensys/gnark/issues/812) from Consensys/fix/plonk-bsb-challenge @@ -940,7 +940,7 @@ - make linter happy ### Chore -- update gnark-crypto dependency ([#790](https://github.com/consensys/gnark/issues/790)) +- update gnark-crypto dependency ([#790](https://github.com/Consensys/gnark/issues/790)) - make staticcheck happy - merge changes - more accurate field name, remove some dead code @@ -950,7 +950,7 @@ - delete unnecessary test cases - go get gnark-crypto[@develop](https://github.com/develop) - point to gnark-crypto[@develop](https://github.com/develop) -- git ignore go workspace ([#635](https://github.com/consensys/gnark/issues/635)) +- git ignore go workspace ([#635](https://github.com/Consensys/gnark/issues/635)) - remove debug printing code - remove training wheels - update gnark-crypto dependency for exported towers @@ -959,7 +959,7 @@ ### Ci - allow weak rng in marshaling tests -- ensure linter runs on generated files + adjustements ([#677](https://github.com/consensys/gnark/issues/677)) +- ensure linter runs on generated files + adjustements ([#677](https://github.com/Consensys/gnark/issues/677)) ### Clean - removed dead code + double comments @@ -997,7 +997,7 @@ - comment about subgroup membership - update version in README.md - make href in godoc -- correct `WithNbDigits` description ([#522](https://github.com/consensys/gnark/issues/522)) +- correct `WithNbDigits` description ([#522](https://github.com/Consensys/gnark/issues/522)) - add documentation to std/algebra packages - implement lookup2 comment - fix docs, make links @@ -1030,21 +1030,21 @@ - staticcall fails -> revert immediately instead of updated state_success - zeta_power_n_minus_one save and reused in compute_pi - [PLONK_AUDIT_4-15] fixes 757 -- status of staticcalls are checked, fixes [#753](https://github.com/consensys/gnark/issues/753) -- added plonk.ProvingKey WriteRawTo and UnsafeReadFrom ([#746](https://github.com/consensys/gnark/issues/746)) -- [PLONK_AUDIT_4-8] fixes [#743](https://github.com/consensys/gnark/issues/743) -- [PLONK_AUDIT_4-4] fixes [#741](https://github.com/consensys/gnark/issues/741) +- status of staticcalls are checked, fixes [#753](https://github.com/Consensys/gnark/issues/753) +- added plonk.ProvingKey WriteRawTo and UnsafeReadFrom ([#746](https://github.com/Consensys/gnark/issues/746)) +- [PLONK_AUDIT_4-8] fixes [#743](https://github.com/Consensys/gnark/issues/743) +- [PLONK_AUDIT_4-4] fixes [#741](https://github.com/Consensys/gnark/issues/741) - restored comments - [PLONK_AUDIT_4-9] fixes 738 - "named gate" -- [PLONK_AUDIT_4-11] fixes [#735](https://github.com/consensys/gnark/issues/735) +- [PLONK_AUDIT_4-11] fixes [#735](https://github.com/Consensys/gnark/issues/735) - gkr-api for plonk -- update plonk solidity template ([#729](https://github.com/consensys/gnark/issues/729)) -- added dummy setup part for g16 multi commit ([#725](https://github.com/consensys/gnark/issues/725)) +- update plonk solidity template ([#729](https://github.com/Consensys/gnark/issues/729)) +- added dummy setup part for g16 multi commit ([#725](https://github.com/Consensys/gnark/issues/725)) - implement add-only Joye scalarMul - groth16 commitmetInfo experiments - in-place-ish DivideByThresholdOrList -- add sha2 primitive ([#689](https://github.com/consensys/gnark/issues/689)) +- add sha2 primitive ([#689](https://github.com/Consensys/gnark/issues/689)) - commitment info in groth16.vk[bn254] serialization - commitment placeholder -> randomness - lazy line initialising @@ -1052,8 +1052,8 @@ - filterHeap for unsorted lists - groth16 multicommit setup bn254, hopefully - batch pedersen poks -- implement NIST P-256 and P-384 curves ([#697](https://github.com/consensys/gnark/issues/697)) -- differentiate ecrecover with strict and lax check for s ([#656](https://github.com/consensys/gnark/issues/656)) +- implement NIST P-256 and P-384 curves ([#697](https://github.com/Consensys/gnark/issues/697)) +- differentiate ecrecover with strict and lax check for s ([#656](https://github.com/Consensys/gnark/issues/656)) - no commitments -> vanilla groth16 - prover with no commitment act like vanilla groth16 - reflect pedersen changes in bn254 @@ -1062,15 +1062,15 @@ - prover template ok - modification opening order kzg bn254 - plonk provingkey marshaling with muticommits -- introduce constraint blueprints. improve memory usage, enables custom gates and group of constraints ([#641](https://github.com/consensys/gnark/issues/641)) +- introduce constraint blueprints. improve memory usage, enables custom gates and group of constraints ([#641](https://github.com/Consensys/gnark/issues/641)) - sr1cs multicommits - compilation side - plonk multicommits - described zpnmo parameter + reuse zpnmo in compute_alpha_square_lagrange_0 (forgot to push it) - use state instead of mload(0x40) - bn254 plonk multicommit backend -- log-derivative vector lookups ([#620](https://github.com/consensys/gnark/issues/620)) +- log-derivative vector lookups ([#620](https://github.com/Consensys/gnark/issues/620)) - multi-commits in constraint system data structures -- add modular square root in field emulation ([#623](https://github.com/consensys/gnark/issues/623)) +- add modular square root in field emulation ([#623](https://github.com/Consensys/gnark/issues/623)) - plonkVk.WriteRawTo - serialize minimal commitmentinfo with plonk vk - use Brier-Joye unified add for evm ecadd @@ -1081,33 +1081,33 @@ - support more operations - codegen - yet more codegen -- add n to 1 MUX and MAP ([#475](https://github.com/consensys/gnark/issues/475)) -- add EVM precompiles ([#488](https://github.com/consensys/gnark/issues/488)) +- add n to 1 MUX and MAP ([#475](https://github.com/Consensys/gnark/issues/475)) +- add EVM precompiles ([#488](https://github.com/Consensys/gnark/issues/488)) - add PairingCheck function - store api in pairing structs - add simple key value storage - embed key-value storage in R1CS and SCS - embed key-value storage in test engine -- add gadget for enabling multiple commitments in-circuit ([#562](https://github.com/consensys/gnark/issues/562)) -- isZero in field emulation ([#609](https://github.com/consensys/gnark/issues/609)) -- range checks using log derivative, fixes [#581](https://github.com/consensys/gnark/issues/581) ([#583](https://github.com/consensys/gnark/issues/583)) +- add gadget for enabling multiple commitments in-circuit ([#562](https://github.com/Consensys/gnark/issues/562)) +- isZero in field emulation ([#609](https://github.com/Consensys/gnark/issues/609)) +- range checks using log derivative, fixes [#581](https://github.com/Consensys/gnark/issues/581) ([#583](https://github.com/Consensys/gnark/issues/583)) - implement commit for test engine -- set default compression threshold ([#599](https://github.com/consensys/gnark/issues/599)) +- set default compression threshold ([#599](https://github.com/Consensys/gnark/issues/599)) - add IsOnCurve to sw_bn254/g2 - add IsOnCurve to sw_emulated - add bls12-381 to std/algebra/emulated - blind commitment -- add a partition selector ([#486](https://github.com/consensys/gnark/issues/486)) -- reintroduce hints for field emulation ([#547](https://github.com/consensys/gnark/issues/547)) +- add a partition selector ([#486](https://github.com/Consensys/gnark/issues/486)) +- reintroduce hints for field emulation ([#547](https://github.com/Consensys/gnark/issues/547)) - some bsb22 proving in plonk -- range check gadget ([#472](https://github.com/consensys/gnark/issues/472)) -- plonk frontend filter common cases of duplicate constraints ([#539](https://github.com/consensys/gnark/issues/539)) +- range check gadget ([#472](https://github.com/Consensys/gnark/issues/472)) +- plonk frontend filter common cases of duplicate constraints ([#539](https://github.com/Consensys/gnark/issues/539)) - add calling hints to field emulation - commitment verification - plonk bn254 -- gnark/profile now filter frontend private method for clarity and return a tree as txt repr ([#538](https://github.com/consensys/gnark/issues/538)) -- BN254 pairing ([#411](https://github.com/consensys/gnark/issues/411)) +- gnark/profile now filter frontend private method for clarity and return a tree as txt repr ([#538](https://github.com/Consensys/gnark/issues/538)) +- BN254 pairing ([#411](https://github.com/Consensys/gnark/issues/411)) - compute table on init once -- add defer to the Compiler interface ([#483](https://github.com/consensys/gnark/issues/483)) +- add defer to the Compiler interface ([#483](https://github.com/Consensys/gnark/issues/483)) - compilation, setup and commitment done; proof and verification next - update gnark version to v0.8.0 - add equality assertion for GT elements @@ -1126,28 +1126,28 @@ - **sw_emulated:** infinity as (0,0) edge-cases in ScalarMul ### Feat -- Export multicommit ([#789](https://github.com/consensys/gnark/issues/789)) +- Export multicommit ([#789](https://github.com/Consensys/gnark/issues/789)) ### Fix - use jacobain double for test -- fixed [#761](https://github.com/consensys/gnark/issues/761) +- fixed [#761](https://github.com/Consensys/gnark/issues/761) - fixed kzg G1 srs in template :/ - compute_kzg fixed calldata -- update develop version ([#776](https://github.com/consensys/gnark/issues/776)) +- update develop version ([#776](https://github.com/Consensys/gnark/issues/776)) - update circuits stats -- do not accumulate terms with zero coefficient for addition ([#763](https://github.com/consensys/gnark/issues/763)) +- do not accumulate terms with zero coefficient for addition ([#763](https://github.com/Consensys/gnark/issues/763)) - use AddUnified in ECRecover -- create full-length slice for gkr value ([#751](https://github.com/consensys/gnark/issues/751)) +- create full-length slice for gkr value ([#751](https://github.com/Consensys/gnark/issues/751)) - removed deadcode -- loop counter corrected fixes [#755](https://github.com/consensys/gnark/issues/755) +- loop counter corrected fixes [#755](https://github.com/Consensys/gnark/issues/755) - fixed pairing check (wait for 4-5 to check staticcall using dedicated function) - range checks for quotient + linearised polynomials openigns -- plonk scs serialization issues ([#747](https://github.com/consensys/gnark/issues/747)) +- plonk scs serialization issues ([#747](https://github.com/Consensys/gnark/issues/747)) - compute_pi takes the proof only when commit is called - Verify is public - fixed visibilities, changed library to contract - replace hints bn254 -- emulated ToBits ([#731](https://github.com/consensys/gnark/issues/731)) +- emulated ToBits ([#731](https://github.com/Consensys/gnark/issues/731)) - K -> Z - nil -> empty slice - the previous fix @@ -1177,9 +1177,9 @@ - remove dead file - removed non used code - removed commented code -- fixes [#672](https://github.com/consensys/gnark/issues/672) +- fixes [#672](https://github.com/Consensys/gnark/issues/672) - fixed kzg serialisation on bn254 -- init elements in arrays and slices if have init hook ([#695](https://github.com/consensys/gnark/issues/695)) +- init elements in arrays and slices if have init hook ([#695](https://github.com/Consensys/gnark/issues/695)) - PI2 renaming in marshal - failing vk serialization test - newNamedHint bug @@ -1189,19 +1189,19 @@ - prover no longer errors; unexpected quotient for 2-commit - Proving key serialization - proof serialization -- fix race condition when compiling circuits in parallel ([#676](https://github.com/consensys/gnark/issues/676)) +- fix race condition when compiling circuits in parallel ([#676](https://github.com/Consensys/gnark/issues/676)) - added missing cbor tags for BlueprintSparseR1CBool - register commitment func with new name - HasCommitment -> NbCommitments - multi-commit unsupported error messages - in case no commitment - private -> public -- assert oddity of y coordinate from v instead of high bit ([#655](https://github.com/consensys/gnark/issues/655)) +- assert oddity of y coordinate from v instead of high bit ([#655](https://github.com/Consensys/gnark/issues/655)) - companion to pedersen breakup -- field emulation subtract padding compute ([#603](https://github.com/consensys/gnark/issues/603)) +- field emulation subtract padding compute ([#603](https://github.com/Consensys/gnark/issues/603)) - add (0,0) case to curve membership - fixed double comments -- fixes [#768](https://github.com/consensys/gnark/issues/768) +- fixes [#768](https://github.com/Consensys/gnark/issues/768) - one omitted change - finalExp when element is 1 in torus - restore reference plonk circuit size @@ -1219,34 +1219,34 @@ - minor mistake in setup generification - make linter happy - disastrous typo -- subtraction overflow computation bug ([#579](https://github.com/consensys/gnark/issues/579)) +- subtraction overflow computation bug ([#579](https://github.com/Consensys/gnark/issues/579)) - circuit-efficient Expt - open qcp commitment - qcp formats - computing t(X) requires lagrange coset input - handle nested Define signature in call stack for profile - pass canonical version of pi2 to computeLinearizedPolynomial -- use mocked api.Commit also in Windows tests ([#560](https://github.com/consensys/gnark/issues/560)) -- fix [#516](https://github.com/consensys/gnark/issues/516) compiler detects api.AssertIsDifferent(x,x) with better error ([#552](https://github.com/consensys/gnark/issues/552)) -- do not pass limb width enforcement for consts in AssertIsEqual ([#550](https://github.com/consensys/gnark/issues/550)) +- use mocked api.Commit also in Windows tests ([#560](https://github.com/Consensys/gnark/issues/560)) +- fix [#516](https://github.com/Consensys/gnark/issues/516) compiler detects api.AssertIsDifferent(x,x) with better error ([#552](https://github.com/Consensys/gnark/issues/552)) +- do not pass limb width enforcement for consts in AssertIsEqual ([#550](https://github.com/Consensys/gnark/issues/550)) - append solver options to prover options in tests - fix profile example to not compare expected output with varying line numbers -- allow unreplaced BSB22 commitment hint in solver ([#507](https://github.com/consensys/gnark/issues/507)) -- stable levelbuilder hint mapping ([#533](https://github.com/consensys/gnark/issues/533)) -- initialize new variable if field emulation multiplication check ([#534](https://github.com/consensys/gnark/issues/534)) -- handle stack traces with deferred function ([#521](https://github.com/consensys/gnark/issues/521)) +- allow unreplaced BSB22 commitment hint in solver ([#507](https://github.com/Consensys/gnark/issues/507)) +- stable levelbuilder hint mapping ([#533](https://github.com/Consensys/gnark/issues/533)) +- initialize new variable if field emulation multiplication check ([#534](https://github.com/Consensys/gnark/issues/534)) +- handle stack traces with deferred function ([#521](https://github.com/Consensys/gnark/issues/521)) - update path to algebra/native/twistededwards - update path to algebra/native - update path to algebra/native - use sw_emulated instead of weierstrass - remove pairing_bn254 -- restrict constants in field emulation to width ([#518](https://github.com/consensys/gnark/issues/518)) -- closes [#509](https://github.com/consensys/gnark/issues/509) api did not handle AssertIsLessOrEqual with constant as first param ([#511](https://github.com/consensys/gnark/issues/511)) +- restrict constants in field emulation to width ([#518](https://github.com/Consensys/gnark/issues/518)) +- closes [#509](https://github.com/Consensys/gnark/issues/509) api did not handle AssertIsLessOrEqual with constant as first param ([#511](https://github.com/Consensys/gnark/issues/511)) - remove profiling - used keyed struct fields, silence linter -- scs.MarkBoolean missing return w/ constant ([#491](https://github.com/consensys/gnark/issues/491)) -- allocate new variable in engine.MulAcc ([#482](https://github.com/consensys/gnark/issues/482)) -- update version ([#477](https://github.com/consensys/gnark/issues/477)) +- scs.MarkBoolean missing return w/ constant ([#491](https://github.com/Consensys/gnark/issues/491)) +- allocate new variable in engine.MulAcc ([#482](https://github.com/Consensys/gnark/issues/482)) +- update version ([#477](https://github.com/Consensys/gnark/issues/477)) - remove printfs - witness-related functions no longer return ptrs - reflect gkr changes in gnark-crypto @@ -1278,8 +1278,8 @@ - ELM03+Joye07 for emulated scalarMul - special E12 squaring in the second ML iteration - replace Add(Mul) by MulAdd -- async parallel plonk pr read ([#748](https://github.com/consensys/gnark/issues/748)) -- add a generalized version of binary selection ([#636](https://github.com/consensys/gnark/issues/636)) +- async parallel plonk pr read ([#748](https://github.com/Consensys/gnark/issues/748)) +- add a generalized version of binary selection ([#636](https://github.com/Consensys/gnark/issues/636)) - use ScalarMulAddOnly is ecrecover and ecmul precompiles - use ScalarMulAddOnly is ecrecover and ecmul precompiles - add frontend.WithCompressThreshold in compile test opts @@ -1294,10 +1294,10 @@ - ScalarMulBase for sw_bls12377 - optimize final exp (Fuentes et al.) - save 1 Select at each iteration in the emulated scalar mul -- reduce mem allocs in scs frontend ([#654](https://github.com/consensys/gnark/issues/654)) +- reduce mem allocs in scs frontend ([#654](https://github.com/Consensys/gnark/issues/654)) - special E24 squaring in the second ML iteration - ScalarMulBase for sw_bls24315 G1/G2 + KZG in-circuit -- plonk ccs serialization ([#557](https://github.com/consensys/gnark/issues/557)) +- plonk ccs serialization ([#557](https://github.com/Consensys/gnark/issues/557)) - **bls381-pairing:** optimize Frobenius and FrobeniusSquare - **bn254-pair:** MulByNonResidueInverse using hints - **bn254-pair:** optimize fields ops + cleaning @@ -1320,7 +1320,7 @@ - **sw_bn254:** use addchain/doubleAndAdd for fixed scalar mul ### Perf -- Improve MultiLin.Eval number of constraints ([#788](https://github.com/consensys/gnark/issues/788)) +- Improve MultiLin.Eval number of constraints ([#788](https://github.com/Consensys/gnark/issues/788)) ### Refactor - use select instead of lookup2 @@ -1328,7 +1328,7 @@ - inputs check are in a proper function - use gnark-crypto gate registries - apply suggested edits -- compactify commitment tests ([#728](https://github.com/consensys/gnark/issues/728)) +- compactify commitment tests ([#728](https://github.com/Consensys/gnark/issues/728)) - remove api from ScalarMulAddOnly arguments - reflect commitmentInfo changes in plonk - reflect changes in plonk prover @@ -1342,7 +1342,7 @@ - eliminate GetNbCommitments - groth16 and plonk tests to hollow circuits themselves - test utils to another file -- emulation parameters ([#696](https://github.com/consensys/gnark/issues/696)) +- emulation parameters ([#696](https://github.com/Consensys/gnark/issues/696)) - get the input length for pair lengths - end-to-end commitment tests - rename PI2 @@ -1381,7 +1381,7 @@ - make all hints private - unify calling interfaces - made some util func private -- expose all typed backends in gnark/backend (moved from internal/) ([#561](https://github.com/consensys/gnark/issues/561)) +- expose all typed backends in gnark/backend (moved from internal/) ([#561](https://github.com/Consensys/gnark/issues/561)) - minor code cleaning - move utils in mpcsetup; limit api surface - setup -> mpcsetup @@ -1398,8 +1398,8 @@ - use generator from gnark-crypto to init points - rename methods for getting tables - lazy compute the base tables on init -- plonk uses constraint/ and couple of fixes closes [#467](https://github.com/consensys/gnark/issues/467) ([#493](https://github.com/consensys/gnark/issues/493)) -- latest gnark-crypto, use FFT signature change with opts ([#485](https://github.com/consensys/gnark/issues/485)) +- plonk uses constraint/ and couple of fixes closes [#467](https://github.com/Consensys/gnark/issues/467) ([#493](https://github.com/Consensys/gnark/issues/493)) +- latest gnark-crypto, use FFT signature change with opts ([#485](https://github.com/Consensys/gnark/issues/485)) - make methods private - remove Commit from Compiler, make optional interface - some cleanup - bn254 only @@ -1415,7 +1415,7 @@ - **pairing-bn254:** remove dead code ### Refactor -- std/algebra ([#526](https://github.com/consensys/gnark/issues/526)) +- std/algebra ([#526](https://github.com/Consensys/gnark/issues/526)) ### Remove - unused func @@ -1493,61 +1493,61 @@ - **sw_emulated:** infinity as (0,0) edge-cases in ScalarMul ### Pull Requests -- Merge pull request [#814](https://github.com/consensys/gnark/issues/814) from Consensys/develop -- Merge pull request [#804](https://github.com/consensys/gnark/issues/804) from Consensys/feat/revert_staticcall -- Merge pull request [#796](https://github.com/consensys/gnark/issues/796) from Consensys/feat/calldata_pi_proof -- Merge pull request [#795](https://github.com/consensys/gnark/issues/795) from Consensys/feat/clean_compute_pi -- Merge pull request [#794](https://github.com/consensys/gnark/issues/794) from Consensys/feat/clean_hash_fr -- Merge pull request [#792](https://github.com/consensys/gnark/issues/792) from Consensys/perf/solidity-cached-array-index -- Merge pull request [#783](https://github.com/consensys/gnark/issues/783) from Consensys/perf/emulated-scalarMul -- Merge pull request [#775](https://github.com/consensys/gnark/issues/775) from Consensys/fix/plonk_audit_4-23 -- Merge pull request [#772](https://github.com/consensys/gnark/issues/772) from Consensys/perf/pairing-add0 -- Merge pull request [#760](https://github.com/consensys/gnark/issues/760) from Consensys/perf/emulated-scalarMul -- Merge pull request [#769](https://github.com/consensys/gnark/issues/769) from Consensys/fix/plonk_contract_i_768 -- Merge pull request [#762](https://github.com/consensys/gnark/issues/762) from Consensys/fix/i_761 -- Merge pull request [#758](https://github.com/consensys/gnark/issues/758) from Consensys/fix/plonk_audit_4-15 -- Merge pull request [#754](https://github.com/consensys/gnark/issues/754) from Consensys/fix/plonk_audit_4-5 -- Merge pull request [#756](https://github.com/consensys/gnark/issues/756) from Consensys/fix/plonk_audit_4-13 -- Merge pull request [#742](https://github.com/consensys/gnark/issues/742) from Consensys/fix/plonk_audit_4-4 -- Merge pull request [#744](https://github.com/consensys/gnark/issues/744) from Consensys/fix/plonk_audit_4-8 -- Merge pull request [#714](https://github.com/consensys/gnark/issues/714) from Consensys/perf/emulated-pairing -- Merge pull request [#698](https://github.com/consensys/gnark/issues/698) from Consensys/evm/ecpair -- Merge pull request [#726](https://github.com/consensys/gnark/issues/726) from Consensys/emulated/scalarMul -- Merge pull request [#708](https://github.com/consensys/gnark/issues/708) from Consensys/feat/fixed-pairing -- Merge pull request [#739](https://github.com/consensys/gnark/issues/739) from Consensys/fix/plonk_audit_4-9 -- Merge pull request [#736](https://github.com/consensys/gnark/issues/736) from Consensys/fix/plonk_audit_4-11 -- Merge pull request [#737](https://github.com/consensys/gnark/issues/737) from Consensys/feat/gkr-custom-gates -- Merge pull request [#443](https://github.com/consensys/gnark/issues/443) from Consensys/feat/gkr-api -- Merge pull request [#733](https://github.com/consensys/gnark/issues/733) from Consensys/refactor/gkr-notfrontend-api -- Merge pull request [#723](https://github.com/consensys/gnark/issues/723) from ConsenSys/fix/serialization -- Merge pull request [#702](https://github.com/consensys/gnark/issues/702) from ConsenSys/feat/g16-multicommits -- Merge pull request [#712](https://github.com/consensys/gnark/issues/712) from ConsenSys/fix/plonk-commit0 -- Merge pull request [#707](https://github.com/consensys/gnark/issues/707) from ConsenSys/perf/scalarMul-2chain -- Merge pull request [#706](https://github.com/consensys/gnark/issues/706) from ConsenSys/perf/scalarMul-2chain -- Merge pull request [#694](https://github.com/consensys/gnark/issues/694) from ConsenSys/feat/change_opening_order_kzg -- Merge pull request [#701](https://github.com/consensys/gnark/issues/701) from ConsenSys/fix/672 -- Merge pull request [#668](https://github.com/consensys/gnark/issues/668) from ConsenSys/feat/plonk-multicommit -- Merge pull request [#666](https://github.com/consensys/gnark/issues/666) from ConsenSys/feat/hint-naming-options -- Merge pull request [#661](https://github.com/consensys/gnark/issues/661) from ConsenSys/perf/ecdsa -- Merge pull request [#629](https://github.com/consensys/gnark/issues/629) from ConsenSys/feat/emulated/subgroup-check -- Merge pull request [#658](https://github.com/consensys/gnark/issues/658) from ConsenSys/perf/kzg-verify -- Merge pull request [#632](https://github.com/consensys/gnark/issues/632) from ConsenSys/refactor/kzg-srs-breakup-companion -- Merge pull request [#633](https://github.com/consensys/gnark/issues/633) from ConsenSys/plonk-commitment-info -- Merge pull request [#631](https://github.com/consensys/gnark/issues/631) from ConsenSys/feat/AddSafe -- Merge pull request [#625](https://github.com/consensys/gnark/issues/625) from aybehrouz/perf/mux -- Merge pull request [#613](https://github.com/consensys/gnark/issues/613) from ConsenSys/fix-605 -- Merge pull request [#586](https://github.com/consensys/gnark/issues/586) from ConsenSys/406-bsb22-commitments-plonk -- Merge pull request [#591](https://github.com/consensys/gnark/issues/591) from ConsenSys/feat/bls12-381-pairing -- Merge pull request [#594](https://github.com/consensys/gnark/issues/594) from ConsenSys/perf/bn254-FinalExp -- Merge pull request [#566](https://github.com/consensys/gnark/issues/566) from ConsenSys/perf/bn254-pairing -- Merge pull request [#563](https://github.com/consensys/gnark/issues/563) from ConsenSys/stage/bnb/groth16setup -- Merge pull request [#519](https://github.com/consensys/gnark/issues/519) from ConsenSys/refactor/remove-profiling -- Merge pull request [#514](https://github.com/consensys/gnark/issues/514) from ConsenSys/refactor/weierstrass-scalarmulbase -- Merge pull request [#506](https://github.com/consensys/gnark/issues/506) from ConsenSys/perf/kzg-in-circuit -- Merge pull request [#497](https://github.com/consensys/gnark/issues/497) from ConsenSys/perf/ecdsa -- Merge pull request [#503](https://github.com/consensys/gnark/issues/503) from ConsenSys/docs/emulated-select -- Merge pull request [#481](https://github.com/consensys/gnark/issues/481) from ConsenSys/refactor/commit-interface -- Merge pull request [#480](https://github.com/consensys/gnark/issues/480) from ConsenSys/feat/kvstore +- Merge pull request [#814](https://github.com/Consensys/gnark/issues/814) from Consensys/develop +- Merge pull request [#804](https://github.com/Consensys/gnark/issues/804) from Consensys/feat/revert_staticcall +- Merge pull request [#796](https://github.com/Consensys/gnark/issues/796) from Consensys/feat/calldata_pi_proof +- Merge pull request [#795](https://github.com/Consensys/gnark/issues/795) from Consensys/feat/clean_compute_pi +- Merge pull request [#794](https://github.com/Consensys/gnark/issues/794) from Consensys/feat/clean_hash_fr +- Merge pull request [#792](https://github.com/Consensys/gnark/issues/792) from Consensys/perf/solidity-cached-array-index +- Merge pull request [#783](https://github.com/Consensys/gnark/issues/783) from Consensys/perf/emulated-scalarMul +- Merge pull request [#775](https://github.com/Consensys/gnark/issues/775) from Consensys/fix/plonk_audit_4-23 +- Merge pull request [#772](https://github.com/Consensys/gnark/issues/772) from Consensys/perf/pairing-add0 +- Merge pull request [#760](https://github.com/Consensys/gnark/issues/760) from Consensys/perf/emulated-scalarMul +- Merge pull request [#769](https://github.com/Consensys/gnark/issues/769) from Consensys/fix/plonk_contract_i_768 +- Merge pull request [#762](https://github.com/Consensys/gnark/issues/762) from Consensys/fix/i_761 +- Merge pull request [#758](https://github.com/Consensys/gnark/issues/758) from Consensys/fix/plonk_audit_4-15 +- Merge pull request [#754](https://github.com/Consensys/gnark/issues/754) from Consensys/fix/plonk_audit_4-5 +- Merge pull request [#756](https://github.com/Consensys/gnark/issues/756) from Consensys/fix/plonk_audit_4-13 +- Merge pull request [#742](https://github.com/Consensys/gnark/issues/742) from Consensys/fix/plonk_audit_4-4 +- Merge pull request [#744](https://github.com/Consensys/gnark/issues/744) from Consensys/fix/plonk_audit_4-8 +- Merge pull request [#714](https://github.com/Consensys/gnark/issues/714) from Consensys/perf/emulated-pairing +- Merge pull request [#698](https://github.com/Consensys/gnark/issues/698) from Consensys/evm/ecpair +- Merge pull request [#726](https://github.com/Consensys/gnark/issues/726) from Consensys/emulated/scalarMul +- Merge pull request [#708](https://github.com/Consensys/gnark/issues/708) from Consensys/feat/fixed-pairing +- Merge pull request [#739](https://github.com/Consensys/gnark/issues/739) from Consensys/fix/plonk_audit_4-9 +- Merge pull request [#736](https://github.com/Consensys/gnark/issues/736) from Consensys/fix/plonk_audit_4-11 +- Merge pull request [#737](https://github.com/Consensys/gnark/issues/737) from Consensys/feat/gkr-custom-gates +- Merge pull request [#443](https://github.com/Consensys/gnark/issues/443) from Consensys/feat/gkr-api +- Merge pull request [#733](https://github.com/Consensys/gnark/issues/733) from Consensys/refactor/gkr-notfrontend-api +- Merge pull request [#723](https://github.com/Consensys/gnark/issues/723) from ConsenSys/fix/serialization +- Merge pull request [#702](https://github.com/Consensys/gnark/issues/702) from ConsenSys/feat/g16-multicommits +- Merge pull request [#712](https://github.com/Consensys/gnark/issues/712) from ConsenSys/fix/plonk-commit0 +- Merge pull request [#707](https://github.com/Consensys/gnark/issues/707) from ConsenSys/perf/scalarMul-2chain +- Merge pull request [#706](https://github.com/Consensys/gnark/issues/706) from ConsenSys/perf/scalarMul-2chain +- Merge pull request [#694](https://github.com/Consensys/gnark/issues/694) from ConsenSys/feat/change_opening_order_kzg +- Merge pull request [#701](https://github.com/Consensys/gnark/issues/701) from ConsenSys/fix/672 +- Merge pull request [#668](https://github.com/Consensys/gnark/issues/668) from ConsenSys/feat/plonk-multicommit +- Merge pull request [#666](https://github.com/Consensys/gnark/issues/666) from ConsenSys/feat/hint-naming-options +- Merge pull request [#661](https://github.com/Consensys/gnark/issues/661) from ConsenSys/perf/ecdsa +- Merge pull request [#629](https://github.com/Consensys/gnark/issues/629) from ConsenSys/feat/emulated/subgroup-check +- Merge pull request [#658](https://github.com/Consensys/gnark/issues/658) from ConsenSys/perf/kzg-verify +- Merge pull request [#632](https://github.com/Consensys/gnark/issues/632) from ConsenSys/refactor/kzg-srs-breakup-companion +- Merge pull request [#633](https://github.com/Consensys/gnark/issues/633) from ConsenSys/plonk-commitment-info +- Merge pull request [#631](https://github.com/Consensys/gnark/issues/631) from ConsenSys/feat/AddSafe +- Merge pull request [#625](https://github.com/Consensys/gnark/issues/625) from aybehrouz/perf/mux +- Merge pull request [#613](https://github.com/Consensys/gnark/issues/613) from ConsenSys/fix-605 +- Merge pull request [#586](https://github.com/Consensys/gnark/issues/586) from ConsenSys/406-bsb22-commitments-plonk +- Merge pull request [#591](https://github.com/Consensys/gnark/issues/591) from ConsenSys/feat/bls12-381-pairing +- Merge pull request [#594](https://github.com/Consensys/gnark/issues/594) from ConsenSys/perf/bn254-FinalExp +- Merge pull request [#566](https://github.com/Consensys/gnark/issues/566) from ConsenSys/perf/bn254-pairing +- Merge pull request [#563](https://github.com/Consensys/gnark/issues/563) from ConsenSys/stage/bnb/groth16setup +- Merge pull request [#519](https://github.com/Consensys/gnark/issues/519) from ConsenSys/refactor/remove-profiling +- Merge pull request [#514](https://github.com/Consensys/gnark/issues/514) from ConsenSys/refactor/weierstrass-scalarmulbase +- Merge pull request [#506](https://github.com/Consensys/gnark/issues/506) from ConsenSys/perf/kzg-in-circuit +- Merge pull request [#497](https://github.com/Consensys/gnark/issues/497) from ConsenSys/perf/ecdsa +- Merge pull request [#503](https://github.com/Consensys/gnark/issues/503) from ConsenSys/docs/emulated-select +- Merge pull request [#481](https://github.com/Consensys/gnark/issues/481) from ConsenSys/refactor/commit-interface +- Merge pull request [#480](https://github.com/Consensys/gnark/issues/480) from ConsenSys/feat/kvstore @@ -1558,7 +1558,7 @@ - update gnark-crypto dependency ### Pull Requests -- Merge pull request [#771](https://github.com/consensys/gnark/issues/771) from Consensys/release/v0.8.1 +- Merge pull request [#771](https://github.com/Consensys/gnark/issues/771) from Consensys/release/v0.8.1 @@ -1567,16 +1567,16 @@ - update to latest gnark-crypto - update to latest gnark-crypto - make linter happy remove deprecated call -- updated to feat/commitment branch on gnark-crypto ([#408](https://github.com/consensys/gnark/issues/408)) +- updated to feat/commitment branch on gnark-crypto ([#408](https://github.com/Consensys/gnark/issues/408)) - test only on go 1.18 for now - re-ran go generate -- update CI ([#318](https://github.com/consensys/gnark/issues/318)) +- update CI ([#318](https://github.com/Consensys/gnark/issues/318)) ### Ci -- fix slack integration + adds golanglint-ci ([#316](https://github.com/consensys/gnark/issues/316)) +- fix slack integration + adds golanglint-ci ([#316](https://github.com/Consensys/gnark/issues/316)) ### Clean -- remove deadcode and kill `api.Tag` and `api.Counter` ([#353](https://github.com/consensys/gnark/issues/353)) +- remove deadcode and kill `api.Tag` and `api.Counter` ([#353](https://github.com/Consensys/gnark/issues/353)) ### Docs - updated README.md @@ -1589,9 +1589,9 @@ - add method docs ### Feat -- added serialization header to CS and debug info to all constraints with -tags=debug ([#347](https://github.com/consensys/gnark/issues/347)) +- added serialization header to CS and debug info to all constraints with -tags=debug ([#347](https://github.com/Consensys/gnark/issues/347)) - checkpoint 3, computations are correct, some commitments are failing -- add cs.GetConstraint with examples, and pretty printer helpers ([#452](https://github.com/consensys/gnark/issues/452)) +- add cs.GetConstraint with examples, and pretty printer helpers ([#452](https://github.com/Consensys/gnark/issues/452)) - cleaned plonk constraints evaluation - code gen + cleaned code - update gnark version to v0.8.0 @@ -1600,29 +1600,29 @@ - Evalute is used instead of manually evaluatin - removed printings - fixed verifier -- add automatic non-native witness element limb constraining ([#446](https://github.com/consensys/gnark/issues/446)) +- add automatic non-native witness element limb constraining ([#446](https://github.com/Consensys/gnark/issues/446)) - cleaned code - addition of missing commitments and openings in vk and pk - checkpoint 2 - checkpoint refactor -- add ECDSA signature verification ([#372](https://github.com/consensys/gnark/issues/372)) -- adds `api.MAC(..)` ([#427](https://github.com/consensys/gnark/issues/427)) -- keccak-f permutation function ([#401](https://github.com/consensys/gnark/issues/401)) -- add debug.SymbolTable into constraint system for storage efficiency of debug info ([#421](https://github.com/consensys/gnark/issues/421)) -- split field in field emulation into Field and FieldAPI ([#395](https://github.com/consensys/gnark/issues/395)) +- add ECDSA signature verification ([#372](https://github.com/Consensys/gnark/issues/372)) +- adds `api.MAC(..)` ([#427](https://github.com/Consensys/gnark/issues/427)) +- keccak-f permutation function ([#401](https://github.com/Consensys/gnark/issues/401)) +- add debug.SymbolTable into constraint system for storage efficiency of debug info ([#421](https://github.com/Consensys/gnark/issues/421)) +- split field in field emulation into Field and FieldAPI ([#395](https://github.com/Consensys/gnark/issues/395)) - testing options and clearer errors -- add linear expression packing for R1CS ([#418](https://github.com/consensys/gnark/issues/418)) +- add linear expression packing for R1CS ([#418](https://github.com/Consensys/gnark/issues/418)) - merge develop -- add inherit circuit tag ([#387](https://github.com/consensys/gnark/issues/387)) +- add inherit circuit tag ([#387](https://github.com/Consensys/gnark/issues/387)) - add gnark tags - gkr verifier is NOT a witness object - some sumcheck experiments - poly functions and some tests - gkr verifier - some sumcheck experiments -- replaced full bit decomposition by rshift in emulated/assertIsEqual ([#354](https://github.com/consensys/gnark/issues/354)) +- replaced full bit decomposition by rshift in emulated/assertIsEqual ([#354](https://github.com/Consensys/gnark/issues/354)) - cleaned code -- add test.NoFuzzing() testing option ([#296](https://github.com/consensys/gnark/issues/296)) +- add test.NoFuzzing() testing option ([#296](https://github.com/Consensys/gnark/issues/296)) - map in snark - add fake API for emulated arithmetics - split add/mul/sub into cond and op @@ -1656,23 +1656,23 @@ - **std:** KZG verifier gadget bls24-315 (with static witness) ### Fix -- mark and output boolean ([#459](https://github.com/consensys/gnark/issues/459)) +- mark and output boolean ([#459](https://github.com/Consensys/gnark/issues/459)) - mimc pow7 - prover-verifier work with blinding -- handle recursive hints in level builder ([#441](https://github.com/consensys/gnark/issues/441)) +- handle recursive hints in level builder ([#441](https://github.com/Consensys/gnark/issues/441)) - verifier working \o/ -- pack full limbs for quotient ([#439](https://github.com/consensys/gnark/issues/439)) -- add shortcut for const input in MulConst ([#438](https://github.com/consensys/gnark/issues/438)) -- closes [#434](https://github.com/consensys/gnark/issues/434) returns a copy of the input slice when filtering groth16+commitment ([#435](https://github.com/consensys/gnark/issues/435)) +- pack full limbs for quotient ([#439](https://github.com/Consensys/gnark/issues/439)) +- add shortcut for const input in MulConst ([#438](https://github.com/Consensys/gnark/issues/438)) +- closes [#434](https://github.com/Consensys/gnark/issues/434) returns a copy of the input slice when filtering groth16+commitment ([#435](https://github.com/Consensys/gnark/issues/435)) - fix previous commit -- closes [#400](https://github.com/consensys/gnark/issues/400) path trimming correct, example with unix path separators +- closes [#400](https://github.com/Consensys/gnark/issues/400) path trimming correct, example with unix path separators - tests expected to fail -- engine.Println to take strings ([#419](https://github.com/consensys/gnark/issues/419)) +- engine.Println to take strings ([#419](https://github.com/Consensys/gnark/issues/419)) - verifier input building - idiotic load circuit bug - update test vector proofs to proper size, some bugs -- fix [#400](https://github.com/consensys/gnark/issues/400) with trim path handling in profile report ([#409](https://github.com/consensys/gnark/issues/409)) -- fixed Lagrange polynomials construction ([#389](https://github.com/consensys/gnark/issues/389)) +- fix [#400](https://github.com/Consensys/gnark/issues/400) with trim path handling in profile report ([#409](https://github.com/Consensys/gnark/issues/409)) +- fixed Lagrange polynomials construction ([#389](https://github.com/Consensys/gnark/issues/389)) - staticcheck - multi-fan-out input bug - update test vectors, hash finalevalproofs @@ -1681,13 +1681,13 @@ - TestTranscript works - Xor(var, constant) in scs corrected - simple sumcheck test passes -- IsZero throws panic on ([#367](https://github.com/consensys/gnark/issues/367)) -- fixes [#359](https://github.com/consensys/gnark/issues/359) missing fields in plonk serialized format ([#364](https://github.com/consensys/gnark/issues/364)) +- IsZero throws panic on ([#367](https://github.com/Consensys/gnark/issues/367)) +- fixes [#359](https://github.com/Consensys/gnark/issues/359) missing fields in plonk serialized format ([#364](https://github.com/Consensys/gnark/issues/364)) - Sumcheck verifier usable as circuit - InterpolateOnRange works even when it doesn't really have to "inerpolate" - extra nosec G404 in test file - minor typo -- misspelled ("decsribes" -> "describes") ([#339](https://github.com/consensys/gnark/issues/339)) +- misspelled ("decsribes" -> "describes") ([#339](https://github.com/Consensys/gnark/issues/339)) - remove leq overwrite - reduce element when init from const - fixed comments @@ -1724,18 +1724,18 @@ - fixed opening Merkle path - fixed vanilla plonk fri - removed unused debug function -- **emulated:** enforce widths of packed limbs ([#368](https://github.com/consensys/gnark/issues/368)) +- **emulated:** enforce widths of packed limbs ([#368](https://github.com/Consensys/gnark/issues/368)) - **nonnative:** off by one error - **plonk:** fixed generic verifier ### Fix -- minor typo ([#360](https://github.com/consensys/gnark/issues/360)) +- minor typo ([#360](https://github.com/Consensys/gnark/issues/360)) ### Perf -- more precomputation in plonk/iop ([#471](https://github.com/consensys/gnark/issues/471)) +- more precomputation in plonk/iop ([#471](https://github.com/Consensys/gnark/issues/471)) - mimc on bls12-377/fr uses x^17 as a permutation -- api.IsZero generate less constraints ([#356](https://github.com/consensys/gnark/issues/356)) -- minor improvments to big.Int test engine ([#344](https://github.com/consensys/gnark/issues/344)) +- api.IsZero generate less constraints ([#356](https://github.com/Consensys/gnark/issues/356)) +- minor improvments to big.Int test engine ([#344](https://github.com/Consensys/gnark/issues/344)) - allocate less in test engine - remove width enforcement in Reduce() - lazy reduction @@ -1746,19 +1746,19 @@ - update to latest gnark crypto - keeping up - gnark-crypto iop 1 -- clean up witness package, introduces clean `witness.Witness` interface ([#450](https://github.com/consensys/gnark/issues/450)) -- emulated clean up fixes [#448](https://github.com/consensys/gnark/issues/448) ([#449](https://github.com/consensys/gnark/issues/449)) +- clean up witness package, introduces clean `witness.Witness` interface ([#450](https://github.com/Consensys/gnark/issues/450)) +- emulated clean up fixes [#448](https://github.com/Consensys/gnark/issues/448) ([#449](https://github.com/Consensys/gnark/issues/449)) - reflect gnark-crypto gkr changes, debug pending -- add constraint package and improve memory management in frontend ([#412](https://github.com/consensys/gnark/issues/412)) +- add constraint package and improve memory management in frontend ([#412](https://github.com/Consensys/gnark/issues/412)) - use polynomial package -- std/math/nonnative -> std/math/emulated ([#345](https://github.com/consensys/gnark/issues/345)) +- std/math/nonnative -> std/math/emulated ([#345](https://github.com/Consensys/gnark/issues/345)) - remove in-method reductions - use field in schema leaf handler -- Compile(ecc.ID) -> Compile(field *big.Int) ([#328](https://github.com/consensys/gnark/issues/328)) +- Compile(ecc.ID) -> Compile(field *big.Int) ([#328](https://github.com/Consensys/gnark/issues/328)) - VerifyFri -> Verify ### Refactor -- remove geth dependency ([#440](https://github.com/consensys/gnark/issues/440)) +- remove geth dependency ([#440](https://github.com/Consensys/gnark/issues/440)) ### Style - clean up unused functions @@ -1801,7 +1801,7 @@ - add Goldilocks tests - add fake API tests - bench kzg verifier with plonk -- add test/solver_test.go ([#329](https://github.com/consensys/gnark/issues/329)) +- add test/solver_test.go ([#329](https://github.com/Consensys/gnark/issues/329)) - binary composition test - implement lookup2 test - implement constant test @@ -1810,22 +1810,22 @@ - implement select test ### Pull Requests -- Merge pull request [#469](https://github.com/consensys/gnark/issues/469) from ConsenSys/fix/mimc-pow7 -- Merge pull request [#451](https://github.com/consensys/gnark/issues/451) from ConsenSys/feat/iop_refactor -- Merge pull request [#455](https://github.com/consensys/gnark/issues/455) from ConsenSys/develop -- Merge pull request [#453](https://github.com/consensys/gnark/issues/453) from ConsenSys/mimx/nb-rounds-bls12377 -- Merge pull request [#393](https://github.com/consensys/gnark/issues/393) from ConsenSys/feat/gkr -- Merge pull request [#361](https://github.com/consensys/gnark/issues/361) from ConsenSys/feat/polynomial -- Merge pull request [#363](https://github.com/consensys/gnark/issues/363) from ConsenSys/fix/lde-0div -- Merge pull request [#362](https://github.com/consensys/gnark/issues/362) from ConsenSys/fix/mathrand -- Merge pull request [#250](https://github.com/consensys/gnark/issues/250) from ConsenSys/feat/plonk_generic -- Merge pull request [#325](https://github.com/consensys/gnark/issues/325) from ConsenSys/feat/emulated-api -- Merge pull request [#331](https://github.com/consensys/gnark/issues/331) from ConsenSys/perf/test-engine -- Merge pull request [#332](https://github.com/consensys/gnark/issues/332) from ConsenSys/refactor/schema-parsing -- Merge pull request [#334](https://github.com/consensys/gnark/issues/334) from ConsenSys/fix/nonnative-offbyone -- Merge pull request [#320](https://github.com/consensys/gnark/issues/320) from ConsenSys/perf/nonnative -- Merge pull request [#307](https://github.com/consensys/gnark/issues/307) from ConsenSys/feat/std/kzg-verifier -- Merge pull request [#302](https://github.com/consensys/gnark/issues/302) from ConsenSys/feat/nonnative-ff +- Merge pull request [#469](https://github.com/Consensys/gnark/issues/469) from ConsenSys/fix/mimc-pow7 +- Merge pull request [#451](https://github.com/Consensys/gnark/issues/451) from ConsenSys/feat/iop_refactor +- Merge pull request [#455](https://github.com/Consensys/gnark/issues/455) from ConsenSys/develop +- Merge pull request [#453](https://github.com/Consensys/gnark/issues/453) from ConsenSys/mimx/nb-rounds-bls12377 +- Merge pull request [#393](https://github.com/Consensys/gnark/issues/393) from ConsenSys/feat/gkr +- Merge pull request [#361](https://github.com/Consensys/gnark/issues/361) from ConsenSys/feat/polynomial +- Merge pull request [#363](https://github.com/Consensys/gnark/issues/363) from ConsenSys/fix/lde-0div +- Merge pull request [#362](https://github.com/Consensys/gnark/issues/362) from ConsenSys/fix/mathrand +- Merge pull request [#250](https://github.com/Consensys/gnark/issues/250) from ConsenSys/feat/plonk_generic +- Merge pull request [#325](https://github.com/Consensys/gnark/issues/325) from ConsenSys/feat/emulated-api +- Merge pull request [#331](https://github.com/Consensys/gnark/issues/331) from ConsenSys/perf/test-engine +- Merge pull request [#332](https://github.com/Consensys/gnark/issues/332) from ConsenSys/refactor/schema-parsing +- Merge pull request [#334](https://github.com/Consensys/gnark/issues/334) from ConsenSys/fix/nonnative-offbyone +- Merge pull request [#320](https://github.com/Consensys/gnark/issues/320) from ConsenSys/perf/nonnative +- Merge pull request [#307](https://github.com/Consensys/gnark/issues/307) from ConsenSys/feat/std/kzg-verifier +- Merge pull request [#302](https://github.com/Consensys/gnark/issues/302) from ConsenSys/feat/nonnative-ff @@ -1836,11 +1836,11 @@ ### Ci - updated github actions -- test against go1.17 and go1.18 ([#288](https://github.com/consensys/gnark/issues/288)) +- test against go1.17 and go1.18 ([#288](https://github.com/Consensys/gnark/issues/288)) ### Clean -- std/groth16 uses same notation as out-of-circuit groth16 ([#304](https://github.com/consensys/gnark/issues/304)) -- remove PairingContext and Extension objects from api calls in std/.../pairing ([#286](https://github.com/consensys/gnark/issues/286)) +- std/groth16 uses same notation as out-of-circuit groth16 ([#304](https://github.com/Consensys/gnark/issues/304)) +- remove PairingContext and Extension objects from api calls in std/.../pairing ([#286](https://github.com/Consensys/gnark/issues/286)) ### Docs - added security policy, gnark-announce and twitter link @@ -1854,18 +1854,18 @@ - implement PR suggestions in std/math/bits - disable logger in tests by default, unless debug tag present - adds std/math/bits/ToNAF -- added VerifyingKey.Assign methods in std/groth16 ([#306](https://github.com/consensys/gnark/issues/306)) +- added VerifyingKey.Assign methods in std/groth16 ([#306](https://github.com/Consensys/gnark/issues/306)) - add gnark/logger - remove offset shifts in plonk compile - remove post-compile offset id in R1CS builder - added internal/stats package - hint.NbOuputs should not be used at solve time, only at compile time - added ivokub suggestion on logging duration values -- adds gnark logger. closes [#202](https://github.com/consensys/gnark/issues/202) -- added ToTernary closes [#269](https://github.com/consensys/gnark/issues/269) +- adds gnark logger. closes [#202](https://github.com/Consensys/gnark/issues/202) +- added ToTernary closes [#269](https://github.com/Consensys/gnark/issues/269) - moved api.FromBinary to std/math/bits - add ToBinary in std/math/bits -- added std.GetHints for convenience. fixes [#264](https://github.com/consensys/gnark/issues/264). error message when hint is missing now has hint name +- added std.GetHints for convenience. fixes [#264](https://github.com/Consensys/gnark/issues/264). error message when hint is missing now has hint name - added NBits hint - make nboutputs of a hint explicit at compile time - **std:** added AssertIsTrit @@ -1875,11 +1875,11 @@ - fix previous commit - err instead of panic when recursively solving hints - add whitespace between vars in test.Println -- closes [#293](https://github.com/consensys/gnark/issues/293) and enables recursive hints solving +- closes [#293](https://github.com/Consensys/gnark/issues/293) and enables recursive hints solving - replace stats snippet signature with newVariable() instead of fixed variable - restored logger format - re generated stats -- fixes [#266](https://github.com/consensys/gnark/issues/266) by adding constant path in Lookup2 and Select +- fixes [#266](https://github.com/Consensys/gnark/issues/266) by adding constant path in Lookup2 and Select - incorrect handling of nbBits == 1 in api.ToBinary - gosec errors - uncomment fuzz part of test @@ -1896,7 +1896,7 @@ - delete dead code (TripleMillerLoop) - std/pairing have more consistent apis - std/pairing bls12377 api more coherent -- remove StaticHint wrapper, log duplicate hints ([#289](https://github.com/consensys/gnark/issues/289)) +- remove StaticHint wrapper, log duplicate hints ([#289](https://github.com/Consensys/gnark/issues/289)) - backend.WithOutput -> backend.WithCircuitLogger - remove all internal circuits from stats, keep important snippets only - move circuit_stats_test.go into internal/stats @@ -1927,23 +1927,23 @@ - code cleaning ### Test -- add failing test for [#293](https://github.com/consensys/gnark/issues/293) +- add failing test for [#293](https://github.com/Consensys/gnark/issues/293) ### Pull Requests -- Merge pull request [#298](https://github.com/consensys/gnark/issues/298) from ConsenSys/fix/hint-panic -- Merge pull request [#295](https://github.com/consensys/gnark/issues/295) from ConsenSys/fix/test-println -- Merge pull request [#294](https://github.com/consensys/gnark/issues/294) from ConsenSys/fix/recursivehhints -- Merge pull request [#291](https://github.com/consensys/gnark/issues/291) from ConsenSys/refactor/std/pairing -- Merge pull request [#281](https://github.com/consensys/gnark/issues/281) from ConsenSys/feat/logger -- Merge pull request [#280](https://github.com/consensys/gnark/issues/280) from ConsenSys/simplify-r1cs-compile -- Merge pull request [#279](https://github.com/consensys/gnark/issues/279) from ConsenSys/feat/statistics -- Merge pull request [#276](https://github.com/consensys/gnark/issues/276) from ConsenSys/feat-math-bits -- Merge pull request [#278](https://github.com/consensys/gnark/issues/278) from ConsenSys/perf-constant-lookup2 -- Merge pull request [#272](https://github.com/consensys/gnark/issues/272) from ConsenSys/refactor-hint -- Merge pull request [#275](https://github.com/consensys/gnark/issues/275) from ConsenSys/refactor-compiler-builder -- Merge pull request [#271](https://github.com/consensys/gnark/issues/271) from ConsenSys/refactor-compiled -- Merge pull request [#267](https://github.com/consensys/gnark/issues/267) from ConsenSys/perf/tEd-add -- Merge pull request [#265](https://github.com/consensys/gnark/issues/265) from ConsenSys/perf/SW-constScalarMul +- Merge pull request [#298](https://github.com/Consensys/gnark/issues/298) from ConsenSys/fix/hint-panic +- Merge pull request [#295](https://github.com/Consensys/gnark/issues/295) from ConsenSys/fix/test-println +- Merge pull request [#294](https://github.com/Consensys/gnark/issues/294) from ConsenSys/fix/recursivehhints +- Merge pull request [#291](https://github.com/Consensys/gnark/issues/291) from ConsenSys/refactor/std/pairing +- Merge pull request [#281](https://github.com/Consensys/gnark/issues/281) from ConsenSys/feat/logger +- Merge pull request [#280](https://github.com/Consensys/gnark/issues/280) from ConsenSys/simplify-r1cs-compile +- Merge pull request [#279](https://github.com/Consensys/gnark/issues/279) from ConsenSys/feat/statistics +- Merge pull request [#276](https://github.com/Consensys/gnark/issues/276) from ConsenSys/feat-math-bits +- Merge pull request [#278](https://github.com/Consensys/gnark/issues/278) from ConsenSys/perf-constant-lookup2 +- Merge pull request [#272](https://github.com/Consensys/gnark/issues/272) from ConsenSys/refactor-hint +- Merge pull request [#275](https://github.com/Consensys/gnark/issues/275) from ConsenSys/refactor-compiler-builder +- Merge pull request [#271](https://github.com/Consensys/gnark/issues/271) from ConsenSys/refactor-compiled +- Merge pull request [#267](https://github.com/Consensys/gnark/issues/267) from ConsenSys/perf/tEd-add +- Merge pull request [#265](https://github.com/Consensys/gnark/issues/265) from ConsenSys/perf/SW-constScalarMul @@ -1960,10 +1960,10 @@ ### Ci - updated github actions -- test against go1.17 and go1.18 ([#288](https://github.com/consensys/gnark/issues/288)) +- test against go1.17 and go1.18 ([#288](https://github.com/Consensys/gnark/issues/288)) ### Clean -- remove PairingContext and Extension objects from api calls in std/.../pairing ([#286](https://github.com/consensys/gnark/issues/286)) +- remove PairingContext and Extension objects from api calls in std/.../pairing ([#286](https://github.com/Consensys/gnark/issues/286)) ### Docs - updated README.md with same warning as in docs @@ -1979,25 +1979,25 @@ - hint.NbOuputs should not be used at solve time, only at compile time - remove post-compile offset id in R1CS builder - added internal/stats package -- added ToTernary closes [#269](https://github.com/consensys/gnark/issues/269) -- adds gnark logger. closes [#202](https://github.com/consensys/gnark/issues/202) +- added ToTernary closes [#269](https://github.com/Consensys/gnark/issues/269) +- adds gnark logger. closes [#202](https://github.com/Consensys/gnark/issues/202) - disable logger in tests by default, unless debug tag present - implement PR suggestions in std/math/bits - moved api.FromBinary to std/math/bits - add ToBinary in std/math/bits -- added std.GetHints for convenience. fixes [#264](https://github.com/consensys/gnark/issues/264). error message when hint is missing now has hint name +- added std.GetHints for convenience. fixes [#264](https://github.com/Consensys/gnark/issues/264). error message when hint is missing now has hint name - added NBits hint - make nboutputs of a hint explicit at compile time - **std:** added AssertIsTrit ### Fix - add whitespace between vars in test.Println -- closes [#293](https://github.com/consensys/gnark/issues/293) and enables recursive hints solving +- closes [#293](https://github.com/Consensys/gnark/issues/293) and enables recursive hints solving - replace stats snippet signature with newVariable() instead of fixed variable - move init() behind sync.Once. remove verbose option in stats binary - re generated stats - gosec errors -- fixes [#266](https://github.com/consensys/gnark/issues/266) by adding constant path in Lookup2 and Select +- fixes [#266](https://github.com/Consensys/gnark/issues/266) by adding constant path in Lookup2 and Select - uncomment fuzz part of test - std.GetHints() return bits.NNAF - incorrect handling of nbBits == 1 in api.ToBinary @@ -2012,7 +2012,7 @@ ### Refactor - std/pairing have more consistent apis - std/pairing bls12377 api more coherent -- remove StaticHint wrapper, log duplicate hints ([#289](https://github.com/consensys/gnark/issues/289)) +- remove StaticHint wrapper, log duplicate hints ([#289](https://github.com/Consensys/gnark/issues/289)) - backend.WithOutput -> backend.WithCircuitLogger - remove all internal circuits from stats, keep important snippets only - move circuit_stats_test.go into internal/stats @@ -2042,22 +2042,22 @@ - code cleaning ### Test -- add failing test for [#293](https://github.com/consensys/gnark/issues/293) +- add failing test for [#293](https://github.com/Consensys/gnark/issues/293) ### Pull Requests -- Merge pull request [#295](https://github.com/consensys/gnark/issues/295) from ConsenSys/fix/test-println -- Merge pull request [#294](https://github.com/consensys/gnark/issues/294) from ConsenSys/fix/recursivehhints -- Merge pull request [#291](https://github.com/consensys/gnark/issues/291) from ConsenSys/refactor/std/pairing -- Merge pull request [#281](https://github.com/consensys/gnark/issues/281) from ConsenSys/feat/logger -- Merge pull request [#280](https://github.com/consensys/gnark/issues/280) from ConsenSys/simplify-r1cs-compile -- Merge pull request [#279](https://github.com/consensys/gnark/issues/279) from ConsenSys/feat/statistics -- Merge pull request [#276](https://github.com/consensys/gnark/issues/276) from ConsenSys/feat-math-bits -- Merge pull request [#278](https://github.com/consensys/gnark/issues/278) from ConsenSys/perf-constant-lookup2 -- Merge pull request [#272](https://github.com/consensys/gnark/issues/272) from ConsenSys/refactor-hint -- Merge pull request [#275](https://github.com/consensys/gnark/issues/275) from ConsenSys/refactor-compiler-builder -- Merge pull request [#271](https://github.com/consensys/gnark/issues/271) from ConsenSys/refactor-compiled -- Merge pull request [#267](https://github.com/consensys/gnark/issues/267) from ConsenSys/perf/tEd-add -- Merge pull request [#265](https://github.com/consensys/gnark/issues/265) from ConsenSys/perf/SW-constScalarMul +- Merge pull request [#295](https://github.com/Consensys/gnark/issues/295) from ConsenSys/fix/test-println +- Merge pull request [#294](https://github.com/Consensys/gnark/issues/294) from ConsenSys/fix/recursivehhints +- Merge pull request [#291](https://github.com/Consensys/gnark/issues/291) from ConsenSys/refactor/std/pairing +- Merge pull request [#281](https://github.com/Consensys/gnark/issues/281) from ConsenSys/feat/logger +- Merge pull request [#280](https://github.com/Consensys/gnark/issues/280) from ConsenSys/simplify-r1cs-compile +- Merge pull request [#279](https://github.com/Consensys/gnark/issues/279) from ConsenSys/feat/statistics +- Merge pull request [#276](https://github.com/Consensys/gnark/issues/276) from ConsenSys/feat-math-bits +- Merge pull request [#278](https://github.com/Consensys/gnark/issues/278) from ConsenSys/perf-constant-lookup2 +- Merge pull request [#272](https://github.com/Consensys/gnark/issues/272) from ConsenSys/refactor-hint +- Merge pull request [#275](https://github.com/Consensys/gnark/issues/275) from ConsenSys/refactor-compiler-builder +- Merge pull request [#271](https://github.com/Consensys/gnark/issues/271) from ConsenSys/refactor-compiled +- Merge pull request [#267](https://github.com/Consensys/gnark/issues/267) from ConsenSys/perf/tEd-add +- Merge pull request [#265](https://github.com/Consensys/gnark/issues/265) from ConsenSys/perf/SW-constScalarMul @@ -2110,10 +2110,10 @@ - **tEd:** test scalarMul for all curves and schemes ### Pull Requests -- Merge pull request [#259](https://github.com/consensys/gnark/issues/259) from ConsenSys/perf-parallel-solver -- Merge pull request [#261](https://github.com/consensys/gnark/issues/261) from ConsenSys/feat/kzg_updated -- Merge pull request [#257](https://github.com/consensys/gnark/issues/257) from ConsenSys/perf/EdDSA -- Merge pull request [#253](https://github.com/consensys/gnark/issues/253) from ConsenSys/feat/fft_cosets +- Merge pull request [#259](https://github.com/Consensys/gnark/issues/259) from ConsenSys/perf-parallel-solver +- Merge pull request [#261](https://github.com/Consensys/gnark/issues/261) from ConsenSys/feat/kzg_updated +- Merge pull request [#257](https://github.com/Consensys/gnark/issues/257) from ConsenSys/perf/EdDSA +- Merge pull request [#253](https://github.com/Consensys/gnark/issues/253) from ConsenSys/feat/fft_cosets @@ -2131,7 +2131,7 @@ - mimc implem corresponds to ethereum implem ### Fix -- fixes [#255](https://github.com/consensys/gnark/issues/255) variable visibility inheritance regression +- fixes [#255](https://github.com/Consensys/gnark/issues/255) variable visibility inheritance regression - mod reduce input in solve with hint when coming from interface - counter was set with PLONK backend ID in R1CS - fixed conflicts @@ -2149,10 +2149,10 @@ - added r1cs solve benchmark ### Pull Requests -- Merge pull request [#256](https://github.com/consensys/gnark/issues/256) from ConsenSys/fix-bug-compile-visibility -- Merge pull request [#249](https://github.com/consensys/gnark/issues/249) from ConsenSys/perf-ccs-hint -- Merge pull request [#248](https://github.com/consensys/gnark/issues/248) from ConsenSys/perf-ccs-solver -- Merge pull request [#247](https://github.com/consensys/gnark/issues/247) from ConsenSys/fix/plonk_cbor +- Merge pull request [#256](https://github.com/Consensys/gnark/issues/256) from ConsenSys/fix-bug-compile-visibility +- Merge pull request [#249](https://github.com/Consensys/gnark/issues/249) from ConsenSys/perf-ccs-hint +- Merge pull request [#248](https://github.com/Consensys/gnark/issues/248) from ConsenSys/perf-ccs-solver +- Merge pull request [#247](https://github.com/Consensys/gnark/issues/247) from ConsenSys/fix/plonk_cbor @@ -2244,17 +2244,17 @@ - run marshalling tests as subtests ### Pull Requests -- Merge pull request [#244](https://github.com/consensys/gnark/issues/244) from ConsenSys/plonk-human-readable -- Merge pull request [#237](https://github.com/consensys/gnark/issues/237) from ConsenSys/ccs-get-constraints -- Merge pull request [#233](https://github.com/consensys/gnark/issues/233) from ConsenSys/feat/api_cmp -- Merge pull request [#235](https://github.com/consensys/gnark/issues/235) from ConsenSys/witness-public-api -- Merge pull request [#232](https://github.com/consensys/gnark/issues/232) from ConsenSys/cleanup-231-group-options -- Merge pull request [#230](https://github.com/consensys/gnark/issues/230) from ConsenSys/ccs-schema -- Merge pull request [#229](https://github.com/consensys/gnark/issues/229) from ConsenSys/ccs-issolved-api -- Merge pull request [#228](https://github.com/consensys/gnark/issues/228) from ConsenSys/witness-json -- Merge pull request [#226](https://github.com/consensys/gnark/issues/226) from ConsenSys/feat-circuit-schema -- Merge pull request [#227](https://github.com/consensys/gnark/issues/227) from ConsenSys/build-update-go1.17 -- Merge pull request [#222](https://github.com/consensys/gnark/issues/222) from ConsenSys/perf/std-sw-glv +- Merge pull request [#244](https://github.com/Consensys/gnark/issues/244) from ConsenSys/plonk-human-readable +- Merge pull request [#237](https://github.com/Consensys/gnark/issues/237) from ConsenSys/ccs-get-constraints +- Merge pull request [#233](https://github.com/Consensys/gnark/issues/233) from ConsenSys/feat/api_cmp +- Merge pull request [#235](https://github.com/Consensys/gnark/issues/235) from ConsenSys/witness-public-api +- Merge pull request [#232](https://github.com/Consensys/gnark/issues/232) from ConsenSys/cleanup-231-group-options +- Merge pull request [#230](https://github.com/Consensys/gnark/issues/230) from ConsenSys/ccs-schema +- Merge pull request [#229](https://github.com/Consensys/gnark/issues/229) from ConsenSys/ccs-issolved-api +- Merge pull request [#228](https://github.com/Consensys/gnark/issues/228) from ConsenSys/witness-json +- Merge pull request [#226](https://github.com/Consensys/gnark/issues/226) from ConsenSys/feat-circuit-schema +- Merge pull request [#227](https://github.com/Consensys/gnark/issues/227) from ConsenSys/build-update-go1.17 +- Merge pull request [#222](https://github.com/Consensys/gnark/issues/222) from ConsenSys/perf/std-sw-glv @@ -2275,8 +2275,8 @@ ### Feat - extended the Add test -- internal/parser handles interface values and outputs warning when a struct is non adressable [#169](https://github.com/consensys/gnark/issues/169) -- added explicit warning when parser encounters unadressable struct field [#169](https://github.com/consensys/gnark/issues/169) +- internal/parser handles interface values and outputs warning when a struct is non adressable [#169](https://github.com/Consensys/gnark/issues/169) +- added explicit warning when parser encounters unadressable struct field [#169](https://github.com/Consensys/gnark/issues/169) - addition of test for mul - lighter stack trace by default for circuits, more verbose when -tags=debug provided - added api.Tag and api.AddCounter to measure number of constraints in portion of circuit @@ -2297,7 +2297,7 @@ - cleaned frontend/ - code uses new Compile from compile.go - hint inptus LinearExpression -> interface -- closes [#197](https://github.com/consensys/gnark/issues/197) FromInterface supports uintXX and intXX types +- closes [#197](https://github.com/Consensys/gnark/issues/197) FromInterface supports uintXX and intXX types - extended add test - addition of Compile method on System interface - addition of tests in r1cs/ @@ -2331,7 +2331,7 @@ - use sr1cs debug representation - restored check unconstrained inputs when compiling - fixed staticcheck -- fixes [#168](https://github.com/consensys/gnark/issues/168) adds context to a non-deterministic compilation error in the Assert object +- fixes [#168](https://github.com/Consensys/gnark/issues/168) adds context to a non-deterministic compilation error in the Assert object - fixed staticheck - removed unused file - ran go generate @@ -2355,14 +2355,14 @@ - fixed assertIsEqual - fixed assertion (AssertIsEqual missing return) - fixed AssertIsBoolean in plonk (mul by constant failed) -- fixes [#169](https://github.com/consensys/gnark/issues/169) ensure frontend.Circuit methods are defined on pointer receiver +- fixes [#169](https://github.com/Consensys/gnark/issues/169) ensure frontend.Circuit methods are defined on pointer receiver - extended sub test - fixed Groth16 integration tests - restored bootloader - removed Compile() method in engine - fixed API missing methods - incorrect handling of hints in r1cs solver -- fixes [#178](https://github.com/consensys/gnark/issues/178) by adding cbor.MaxMapPairs options when reading R1CS +- fixes [#178](https://github.com/Consensys/gnark/issues/178) by adding cbor.MaxMapPairs options when reading R1CS - merge with develop branch - remove deadcode (csfuzz targets) - go:generate bw6633 and updated circuit stats @@ -2458,20 +2458,20 @@ - **lookup2:** add integration test ### Pull Requests -- Merge pull request [#192](https://github.com/consensys/gnark/issues/192) from ConsenSys/multi-hint -- Merge pull request [#220](https://github.com/consensys/gnark/issues/220) from ConsenSys/feat-from-interface -- Merge pull request [#217](https://github.com/consensys/gnark/issues/217) from ConsenSys/fix-internal-compiled -- Merge pull request [#191](https://github.com/consensys/gnark/issues/191) from ConsenSys/assert-subtests -- Merge pull request [#200](https://github.com/consensys/gnark/issues/200) from ConsenSys/refactor/frontend -- Merge pull request [#205](https://github.com/consensys/gnark/issues/205) from ConsenSys/fix/constant-mod-reduction -- Merge pull request [#186](https://github.com/consensys/gnark/issues/186) from ConsenSys/fix/plonk_constraints -- Merge pull request [#185](https://github.com/consensys/gnark/issues/185) from ConsenSys/feat/bw6-633 -- Merge pull request [#189](https://github.com/consensys/gnark/issues/189) from ConsenSys/lookup2 -- Merge pull request [#183](https://github.com/consensys/gnark/issues/183) from ivokub/hint-registry -- Merge pull request [#182](https://github.com/consensys/gnark/issues/182) from ConsenSys/std/pairing -- Merge pull request [#176](https://github.com/consensys/gnark/issues/176) from ConsenSys/feat-constraint-counter -- Merge pull request [#180](https://github.com/consensys/gnark/issues/180) from ConsenSys/refactor-variable-interface -- Merge pull request [#173](https://github.com/consensys/gnark/issues/173) from ConsenSys/feat-debug-tag +- Merge pull request [#192](https://github.com/Consensys/gnark/issues/192) from ConsenSys/multi-hint +- Merge pull request [#220](https://github.com/Consensys/gnark/issues/220) from ConsenSys/feat-from-interface +- Merge pull request [#217](https://github.com/Consensys/gnark/issues/217) from ConsenSys/fix-internal-compiled +- Merge pull request [#191](https://github.com/Consensys/gnark/issues/191) from ConsenSys/assert-subtests +- Merge pull request [#200](https://github.com/Consensys/gnark/issues/200) from ConsenSys/refactor/frontend +- Merge pull request [#205](https://github.com/Consensys/gnark/issues/205) from ConsenSys/fix/constant-mod-reduction +- Merge pull request [#186](https://github.com/Consensys/gnark/issues/186) from ConsenSys/fix/plonk_constraints +- Merge pull request [#185](https://github.com/Consensys/gnark/issues/185) from ConsenSys/feat/bw6-633 +- Merge pull request [#189](https://github.com/Consensys/gnark/issues/189) from ConsenSys/lookup2 +- Merge pull request [#183](https://github.com/Consensys/gnark/issues/183) from ivokub/hint-registry +- Merge pull request [#182](https://github.com/Consensys/gnark/issues/182) from ConsenSys/std/pairing +- Merge pull request [#176](https://github.com/Consensys/gnark/issues/176) from ConsenSys/feat-constraint-counter +- Merge pull request [#180](https://github.com/Consensys/gnark/issues/180) from ConsenSys/refactor-variable-interface +- Merge pull request [#173](https://github.com/Consensys/gnark/issues/173) from ConsenSys/feat-debug-tag @@ -2506,7 +2506,7 @@ - added UnsafeReadFrom for groth16 Proving and Verifying keys - GetKey now returns an ID of a primitive linear expression - added DivUnchecked. start factorizing some frontend.API with better Constant cases -- added post-compile check to ensure all inputs are constrained fixes [#163](https://github.com/consensys/gnark/issues/163) +- added post-compile check to ensure all inputs are constrained fixes [#163](https://github.com/Consensys/gnark/issues/163) - ignore zero coefficients for variable constraint check - added frontend.API interface - added fuzzing. div now takes 2 constraints @@ -2519,7 +2519,7 @@ - **std:** add bandersnatch ### Fix -- fixes [#155](https://github.com/consensys/gnark/issues/155) slow compiling with plonk frontend +- fixes [#155](https://github.com/Consensys/gnark/issues/155) slow compiling with plonk frontend - don't check if one wire is constrained - restore std/algebra/sw g1ScalarMul test circuit - bug in Select when parameters are constant @@ -2584,16 +2584,16 @@ - minor adjustements or better fuzzing ### Pull Requests -- Merge pull request [#159](https://github.com/consensys/gnark/issues/159) from ConsenSys/std/bandersnatch -- Merge pull request [#164](https://github.com/consensys/gnark/issues/164) from ConsenSys/perf-scs-compile -- Merge pull request [#161](https://github.com/consensys/gnark/issues/161) from ConsenSys/test-engine-with-hints -- Merge pull request [#162](https://github.com/consensys/gnark/issues/162) from ConsenSys/std/pairing -- Merge pull request [#160](https://github.com/consensys/gnark/issues/160) from ConsenSys/perf-unsafe-decoding -- Merge pull request [#156](https://github.com/consensys/gnark/issues/156) from ConsenSys/std/twistedEdwards -- Merge pull request [#151](https://github.com/consensys/gnark/issues/151) from ConsenSys/testable-circuits -- Merge pull request [#153](https://github.com/consensys/gnark/issues/153) from ConsenSys/fix/plonk_constraints_blowup -- Merge pull request [#146](https://github.com/consensys/gnark/issues/146) from ConsenSys/feat/ml-snark-pairing -- Merge pull request [#148](https://github.com/consensys/gnark/issues/148) from ConsenSys/perf-range-check +- Merge pull request [#159](https://github.com/Consensys/gnark/issues/159) from ConsenSys/std/bandersnatch +- Merge pull request [#164](https://github.com/Consensys/gnark/issues/164) from ConsenSys/perf-scs-compile +- Merge pull request [#161](https://github.com/Consensys/gnark/issues/161) from ConsenSys/test-engine-with-hints +- Merge pull request [#162](https://github.com/Consensys/gnark/issues/162) from ConsenSys/std/pairing +- Merge pull request [#160](https://github.com/Consensys/gnark/issues/160) from ConsenSys/perf-unsafe-decoding +- Merge pull request [#156](https://github.com/Consensys/gnark/issues/156) from ConsenSys/std/twistedEdwards +- Merge pull request [#151](https://github.com/Consensys/gnark/issues/151) from ConsenSys/testable-circuits +- Merge pull request [#153](https://github.com/Consensys/gnark/issues/153) from ConsenSys/fix/plonk_constraints_blowup +- Merge pull request [#146](https://github.com/Consensys/gnark/issues/146) from ConsenSys/feat/ml-snark-pairing +- Merge pull request [#148](https://github.com/Consensys/gnark/issues/148) from ConsenSys/perf-range-check @@ -2611,7 +2611,7 @@ ### Feat - added ToHTML on R1CS - cs.Println and debugInfo supported in groth16 and plonk -- add witness reconstruction methods. closes [#135](https://github.com/consensys/gnark/issues/135) +- add witness reconstruction methods. closes [#135](https://github.com/Consensys/gnark/issues/135) - added sanity check in frontend.Compile to ensure constraint validity - add witness.WriteSequence to export expected witness sequence - hintFunction now returns an error instead of panic @@ -2625,7 +2625,7 @@ - debug info is displayed when div by 0 happens (Groth16 only) - test circuit for AssertIsDifferent - added skelleton for hintFunctions in r1cs -- IsZero is now implemented with 3 constraints fixes [#132](https://github.com/consensys/gnark/issues/132) +- IsZero is now implemented with 3 constraints fixes [#132](https://github.com/Consensys/gnark/issues/132) - **frontend:** added cs.NewHint - **groth16:** added dummyInifinty counts for dummySetup accurate sizes generation of pk - **plonk:** isZero with advice wire OK, binaryDec NOK @@ -2636,7 +2636,7 @@ - hint functions use compiled.Term instead of variable IDs only - fix previous fix - remove debug stack trace from frontend error -- ProvingKey marshaling test with infinity flags, fixes [#141](https://github.com/consensys/gnark/issues/141) +- ProvingKey marshaling test with infinity flags, fixes [#141](https://github.com/Consensys/gnark/issues/141) - return empty slice when R1CS.Solve fails - remove references to assertions in html templates - sparseR1CS rebuilds hint map when deserializing @@ -2646,7 +2646,7 @@ - fix serialization test. ensure we init hints when reading R1CS - fixed error msg in Inverse, Div for groth16 fuzzer - initialize InfinityX in dummy setup -- can constraint linear expressions to be boolean fixes [#136](https://github.com/consensys/gnark/issues/136) +- can constraint linear expressions to be boolean fixes [#136](https://github.com/Consensys/gnark/issues/136) - BinaryDecomposition solving assumes bits are in L, which is fine - removed fmt.Println trace in setup - **eddsa:** addition of isOnCurve check @@ -2695,15 +2695,15 @@ - added circuit statistic non regression tests - added plonk path to integration_test.go - fix gofuzz compile error -- added test from [#136](https://github.com/consensys/gnark/issues/136) +- added test from [#136](https://github.com/Consensys/gnark/issues/136) ### Pull Requests -- Merge pull request [#142](https://github.com/consensys/gnark/issues/142) from ConsenSys/frontend-println-tests -- Merge pull request [#139](https://github.com/consensys/gnark/issues/139) from ConsenSys/cs-hint -- Merge pull request [#134](https://github.com/consensys/gnark/issues/134) from ConsenSys/is-zero -- Merge pull request [#130](https://github.com/consensys/gnark/issues/130) from ConsenSys/groth16-setup-filter-inf -- Merge pull request [#131](https://github.com/consensys/gnark/issues/131) from ConsenSys/fix/i_128 -- Merge pull request [#129](https://github.com/consensys/gnark/issues/129) from ConsenSys/fix/reduce_constraints_eddsa +- Merge pull request [#142](https://github.com/Consensys/gnark/issues/142) from ConsenSys/frontend-println-tests +- Merge pull request [#139](https://github.com/Consensys/gnark/issues/139) from ConsenSys/cs-hint +- Merge pull request [#134](https://github.com/Consensys/gnark/issues/134) from ConsenSys/is-zero +- Merge pull request [#130](https://github.com/Consensys/gnark/issues/130) from ConsenSys/groth16-setup-filter-inf +- Merge pull request [#131](https://github.com/Consensys/gnark/issues/131) from ConsenSys/fix/i_128 +- Merge pull request [#129](https://github.com/Consensys/gnark/issues/129) from ConsenSys/fix/reduce_constraints_eddsa @@ -2718,7 +2718,7 @@ - updated to msm-cpus branh of gnark-crypto - updated to latest gnark-crypto - updated to latest gnark-crypto -- updated to latest gnark crypto. fixes [#120](https://github.com/consensys/gnark/issues/120) +- updated to latest gnark crypto. fixes [#120](https://github.com/Consensys/gnark/issues/120) - updated to latest gnark-crypto - updated to latest gnark-crypto - run go mod tidy @@ -2774,7 +2774,7 @@ - added NewCS and NewPublicData on plonk package, with io.ReaderFrom and io.WriterTo unimplemented interfaces - blind of a, b, c OK for bn254 - added reference benchmarks for plonk -- added NbG1 and NbG2 apis on groth16 Proving and Verifying keys closes [#116](https://github.com/consensys/gnark/issues/116) +- added NbG1 and NbG2 apis on groth16 Proving and Verifying keys closes [#116](https://github.com/Consensys/gnark/issues/116) - call stack displayed when AssertIsEqual fails - gnarkd circuit data structure extension to support both groth16 and plonk - added PublicRaw marhsal methods, ignoring KZG for now @@ -2805,15 +2805,15 @@ - fixed conflicts - restored benchmark/main.go - avoid code gen for bw633 until feat/bw633 is merged -- invalid gnark struct tag options return error at compile time fixes [#111](https://github.com/consensys/gnark/issues/111) +- invalid gnark struct tag options return error at compile time fixes [#111](https://github.com/Consensys/gnark/issues/111) - kzg srs size +3 -- r1cs compilation is deterministic, fixes [#90](https://github.com/consensys/gnark/issues/90) -- fixes [#112](https://github.com/consensys/gnark/issues/112) +- r1cs compilation is deterministic, fixes [#90](https://github.com/Consensys/gnark/issues/90) +- fixes [#112](https://github.com/Consensys/gnark/issues/112) - removed unused error variable - make go vet happy -- use of doubling formula instead of add(x,x) fixes [#114](https://github.com/consensys/gnark/issues/114) +- use of doubling formula instead of add(x,x) fixes [#114](https://github.com/Consensys/gnark/issues/114) - updated go.mod -- go.mod points to gnark-crypto[@develop](https://github.com/develop), fixes [#96](https://github.com/consensys/gnark/issues/96) +- go.mod points to gnark-crypto[@develop](https://github.com/develop), fixes [#96](https://github.com/Consensys/gnark/issues/96) - SetupDummyCommitment calls with Proving and Verifying key in return - added BLS24_315 in plonk constructors - backend plonk bls24 process error @@ -2895,13 +2895,13 @@ - **gnarkd:** gRPC test run in parallel w multiple curves ### Pull Requests -- Merge pull request [#126](https://github.com/consensys/gnark/issues/126) from ConsenSys/develop -- Merge pull request [#124](https://github.com/consensys/gnark/issues/124) from ConsenSys/groth16-stats-pk-vk -- Merge pull request [#113](https://github.com/consensys/gnark/issues/113) from ConsenSys/feat/gnarkd/plonk -- Merge pull request [#117](https://github.com/consensys/gnark/issues/117) from ConsenSys/perf/recursive-proof -- Merge pull request [#108](https://github.com/consensys/gnark/issues/108) from ConsenSys/feat/plonk/clean_verifier -- Merge pull request [#104](https://github.com/consensys/gnark/issues/104) from ConsenSys/bls24-315 -- Merge pull request [#95](https://github.com/consensys/gnark/issues/95) from ConsenSys/fix/deterministic_r1cs +- Merge pull request [#126](https://github.com/Consensys/gnark/issues/126) from ConsenSys/develop +- Merge pull request [#124](https://github.com/Consensys/gnark/issues/124) from ConsenSys/groth16-stats-pk-vk +- Merge pull request [#113](https://github.com/Consensys/gnark/issues/113) from ConsenSys/feat/gnarkd/plonk +- Merge pull request [#117](https://github.com/Consensys/gnark/issues/117) from ConsenSys/perf/recursive-proof +- Merge pull request [#108](https://github.com/Consensys/gnark/issues/108) from ConsenSys/feat/plonk/clean_verifier +- Merge pull request [#104](https://github.com/Consensys/gnark/issues/104) from ConsenSys/bls24-315 +- Merge pull request [#95](https://github.com/Consensys/gnark/issues/95) from ConsenSys/fix/deterministic_r1cs @@ -2918,7 +2918,7 @@ - added integration fuzz test in backend/groth16/fuzz_test.go ### Doc -- fixed typo ([#63](https://github.com/consensys/gnark/issues/63)) in README.md +- fixed typo ([#63](https://github.com/Consensys/gnark/issues/63)) in README.md ### Docs - preparing v0.4.0 release with new README.md and CHANGELOG.md @@ -2939,7 +2939,7 @@ - updated go.mod (points to gnark-crypto[@hotfix](https://github.com/hotfix)/issue_36) - support for batch proofs opening at single point - **fft:** fft/fftInv now works on abitrary cosets (bounded by maxOrder) -- **gnarkd:** exposing gnark APIs through RPCs ([#54](https://github.com/consensys/gnark/issues/54)) +- **gnarkd:** exposing gnark APIs through RPCs ([#54](https://github.com/Consensys/gnark/issues/54)) - **gnarkd:** added optional TTL in CreateProveJobRequest - **gnarkd:** added CancelProveJob method - **gnarkd:** added ListProveJob method @@ -2959,15 +2959,15 @@ - **plonk:** addition of the permutation in the setup - **plonk:** H is split as h1+X**m*h2+X**2m*h3 - **plonk:** polynomial accumulating partial permutation OK (bn256) -- **plonk cs:** adding functionality to convert a constraint system to PLONK constraints ([#56](https://github.com/consensys/gnark/issues/56)) +- **plonk cs:** adding functionality to convert a constraint system to PLONK constraints ([#56](https://github.com/Consensys/gnark/issues/56)) ### Fix - cs.Println doesn't trigger panic anymore - fixed Groth16 snark circuit according to previous commit -- inverse and div in frontend had some variable ID offset issues ([#62](https://github.com/consensys/gnark/issues/62)) +- inverse and div in frontend had some variable ID offset issues ([#62](https://github.com/Consensys/gnark/issues/62)) - fixed snark circuit for bls377 pairing - removed dead function (getOneWire) in cs.go -- fixes [#88](https://github.com/consensys/gnark/issues/88) +- fixes [#88](https://github.com/Consensys/gnark/issues/88) - go mod update + fix bad import path with gofuzz build tag - bn256 -> bn254 - updated go.mod to latest gnark-crypto on develop @@ -2975,7 +2975,7 @@ - ensure that L.id=M[0].id and R.id=M[1].id in a sparse_r1c - added go.sum - removed unreachable code piece -- typo in readme.md fixes [#60](https://github.com/consensys/gnark/issues/60) +- typo in readme.md fixes [#60](https://github.com/Consensys/gnark/issues/60) - **fft:** fixed the ordering of cosets factor according to DIF/DIT - **gnarkd:** ListProveJob test didn't account for other test adding jobs to the queue - **plonk:** removed useless multiplication by L in the prover @@ -3025,19 +3025,19 @@ - added cs.Println must not panic base test ### Pull Requests -- Merge pull request [#94](https://github.com/consensys/gnark/issues/94) from ConsenSys/develop -- Merge pull request [#93](https://github.com/consensys/gnark/issues/93) from ConsenSys/hotfix/fft_groth16 -- Merge pull request [#92](https://github.com/consensys/gnark/issues/92) from ConsenSys/feat/fiat_shamir -- Merge pull request [#89](https://github.com/consensys/gnark/issues/89) from ConsenSys/fix/eddsa -- Merge pull request [#86](https://github.com/consensys/gnark/issues/86) from ConsenSys/docs/godoc -- Merge pull request [#65](https://github.com/consensys/gnark/issues/65) from ConsenSys/refactor/gnark-crypto -- Merge pull request [#64](https://github.com/consensys/gnark/issues/64) from ConsenSys/feat/plonk_prover -- Merge pull request [#58](https://github.com/consensys/gnark/issues/58) from ConsenSys/feat/fft_cosets -- Merge pull request [#57](https://github.com/consensys/gnark/issues/57) from ConsenSys/feature/gnarkd -- Merge pull request [#53](https://github.com/consensys/gnark/issues/53) from ConsenSys/serialization/witness -- Merge pull request [#51](https://github.com/consensys/gnark/issues/51) from ConsenSys/eddsa_cleanup -- Merge pull request [#46](https://github.com/consensys/gnark/issues/46) from ConsenSys/experimental/solidity -- Merge pull request [#48](https://github.com/consensys/gnark/issues/48) from ConsenSys/issue_45 +- Merge pull request [#94](https://github.com/Consensys/gnark/issues/94) from ConsenSys/develop +- Merge pull request [#93](https://github.com/Consensys/gnark/issues/93) from ConsenSys/hotfix/fft_groth16 +- Merge pull request [#92](https://github.com/Consensys/gnark/issues/92) from ConsenSys/feat/fiat_shamir +- Merge pull request [#89](https://github.com/Consensys/gnark/issues/89) from ConsenSys/fix/eddsa +- Merge pull request [#86](https://github.com/Consensys/gnark/issues/86) from ConsenSys/docs/godoc +- Merge pull request [#65](https://github.com/Consensys/gnark/issues/65) from ConsenSys/refactor/gnark-crypto +- Merge pull request [#64](https://github.com/Consensys/gnark/issues/64) from ConsenSys/feat/plonk_prover +- Merge pull request [#58](https://github.com/Consensys/gnark/issues/58) from ConsenSys/feat/fft_cosets +- Merge pull request [#57](https://github.com/Consensys/gnark/issues/57) from ConsenSys/feature/gnarkd +- Merge pull request [#53](https://github.com/Consensys/gnark/issues/53) from ConsenSys/serialization/witness +- Merge pull request [#51](https://github.com/Consensys/gnark/issues/51) from ConsenSys/eddsa_cleanup +- Merge pull request [#46](https://github.com/Consensys/gnark/issues/46) from ConsenSys/experimental/solidity +- Merge pull request [#48](https://github.com/Consensys/gnark/issues/48) from ConsenSys/issue_45 @@ -3068,9 +3068,9 @@ - updating to latest gurvy ### Pull Requests -- Merge pull request [#42](https://github.com/consensys/gnark/issues/42) from ConsenSys/linearexp -- Merge pull request [#41](https://github.com/consensys/gnark/issues/41) from AlexandreBelling/feature/cs-nb-constraints -- Merge pull request [#38](https://github.com/consensys/gnark/issues/38) from ConsenSys/hotfix/discard_secret +- Merge pull request [#42](https://github.com/Consensys/gnark/issues/42) from ConsenSys/linearexp +- Merge pull request [#41](https://github.com/Consensys/gnark/issues/41) from AlexandreBelling/feature/cs-nb-constraints +- Merge pull request [#38](https://github.com/Consensys/gnark/issues/38) from ConsenSys/hotfix/discard_secret @@ -3136,8 +3136,8 @@ - frontend.NewConstraintSystem is now private. ToR1CS() is private. test circuits moved to internal. gadgets and test circuits use frontend.Compile() ### Pull Requests -- Merge pull request [#26](https://github.com/consensys/gnark/issues/26) from ConsenSys/gadget_cleanup -- Merge pull request [#23](https://github.com/consensys/gnark/issues/23) from ConsenSys/tagless_refactor +- Merge pull request [#26](https://github.com/Consensys/gnark/issues/26) from ConsenSys/gadget_cleanup +- Merge pull request [#23](https://github.com/Consensys/gnark/issues/23) from ConsenSys/tagless_refactor @@ -3171,7 +3171,7 @@ - fix reference to large reference test circuit in groth16 - remove assertion when checking number of inputs and fix missing curve in testdata path - add point check infinity in assert -- VerifyingKey stores K in Affine, not Jacobian. Fixes [#18](https://github.com/consensys/gnark/issues/18) +- VerifyingKey stores K in Affine, not Jacobian. Fixes [#18](https://github.com/Consensys/gnark/issues/18) ### Integration_test - be nice with circleci, do not add large circuit into integration test @@ -3186,46 +3186,46 @@ - using big.Int in frontend to avoid build tags ### Pull Requests -- Merge pull request [#22](https://github.com/consensys/gnark/issues/22) from ConsenSys/refactor -- Merge pull request [#21](https://github.com/consensys/gnark/issues/21) from Mikerah/patch-1 +- Merge pull request [#22](https://github.com/Consensys/gnark/issues/22) from ConsenSys/refactor +- Merge pull request [#21](https://github.com/Consensys/gnark/issues/21) from Mikerah/patch-1 ## v0.1.0-alpha - 2020-03-06 ### Pull Requests -- Merge pull request [#11](https://github.com/consensys/gnark/issues/11) from nkeywal/exGadget -- Merge pull request [#8](https://github.com/consensys/gnark/issues/8) from ConsenSys/internal-curve-tests -- Merge pull request [#7](https://github.com/consensys/gnark/issues/7) from ConsenSys/develop Fixed [#6](https://github.com/consensys/gnark/issues/6) -- Merge pull request [#5](https://github.com/consensys/gnark/issues/5) from ConsenSys/go1.14_deps - - -[v0.11.0]: https://github.com/consensys/gnark/compare/v0.10.0...v0.11.0 -[v0.10.0]: https://github.com/consensys/gnark/compare/v0.9.1...v0.10.0 -[v0.9.1]: https://github.com/consensys/gnark/compare/v0.9.0...v0.9.1 -[v0.9.0]: https://github.com/consensys/gnark/compare/v0.9.0-alpha...v0.9.0 -[v0.9.0-alpha]: https://github.com/consensys/gnark/compare/v0.8.1...v0.9.0-alpha -[v0.8.1]: https://github.com/consensys/gnark/compare/v0.8.0...v0.8.1 -[v0.8.0]: https://github.com/consensys/gnark/compare/v0.7.1...v0.8.0 -[v0.7.1]: https://github.com/consensys/gnark/compare/v0.6.5...v0.7.1 -[v0.6.5]: https://github.com/consensys/gnark/compare/v0.7.0...v0.6.5 -[v0.7.0]: https://github.com/consensys/gnark/compare/v0.6.4...v0.7.0 -[v0.6.4]: https://github.com/consensys/gnark/compare/v0.6.3...v0.6.4 -[v0.6.3]: https://github.com/consensys/gnark/compare/v0.6.2...v0.6.3 -[v0.6.2]: https://github.com/consensys/gnark/compare/v0.6.1...v0.6.2 -[v0.6.1]: https://github.com/consensys/gnark/compare/v0.6.0...v0.6.1 -[v0.6.0]: https://github.com/consensys/gnark/compare/v0.5.2...v0.6.0 -[v0.5.2]: https://github.com/consensys/gnark/compare/v0.5.1...v0.5.2 -[v0.5.1]: https://github.com/consensys/gnark/compare/v0.5.0...v0.5.1 -[v0.5.0]: https://github.com/consensys/gnark/compare/v0.4.0...v0.5.0 -[v0.4.0]: https://github.com/consensys/gnark/compare/v0.3.8...v0.4.0 -[v0.3.8]: https://github.com/consensys/gnark/compare/v0.3.7...v0.3.8 -[v0.3.7]: https://github.com/consensys/gnark/compare/v0.3.6...v0.3.7 -[v0.3.6]: https://github.com/consensys/gnark/compare/v0.3.5...v0.3.6 -[v0.3.5]: https://github.com/consensys/gnark/compare/v0.3.4...v0.3.5 -[v0.3.4]: https://github.com/consensys/gnark/compare/v0.3.3...v0.3.4 -[v0.3.3]: https://github.com/consensys/gnark/compare/v0.3.1...v0.3.3 -[v0.3.1]: https://github.com/consensys/gnark/compare/v0.3.0...v0.3.1 -[v0.3.0]: https://github.com/consensys/gnark/compare/v0.3.0-alpha...v0.3.0 -[v0.3.0-alpha]: https://github.com/consensys/gnark/compare/v0.2.1-alpha...v0.3.0-alpha -[v0.2.1-alpha]: https://github.com/consensys/gnark/compare/v0.2.0-alpha...v0.2.1-alpha -[v0.2.0-alpha]: https://github.com/consensys/gnark/compare/v0.1.0-alpha...v0.2.0-alpha +- Merge pull request [#11](https://github.com/Consensys/gnark/issues/11) from nkeywal/exGadget +- Merge pull request [#8](https://github.com/Consensys/gnark/issues/8) from ConsenSys/internal-curve-tests +- Merge pull request [#7](https://github.com/Consensys/gnark/issues/7) from ConsenSys/develop Fixed [#6](https://github.com/Consensys/gnark/issues/6) +- Merge pull request [#5](https://github.com/Consensys/gnark/issues/5) from ConsenSys/go1.14_deps + + +[v0.11.0]: https://github.com/Consensys/gnark/compare/v0.10.0...v0.11.0 +[v0.10.0]: https://github.com/Consensys/gnark/compare/v0.9.1...v0.10.0 +[v0.9.1]: https://github.com/Consensys/gnark/compare/v0.9.0...v0.9.1 +[v0.9.0]: https://github.com/Consensys/gnark/compare/v0.9.0-alpha...v0.9.0 +[v0.9.0-alpha]: https://github.com/Consensys/gnark/compare/v0.8.1...v0.9.0-alpha +[v0.8.1]: https://github.com/Consensys/gnark/compare/v0.8.0...v0.8.1 +[v0.8.0]: https://github.com/Consensys/gnark/compare/v0.7.1...v0.8.0 +[v0.7.1]: https://github.com/Consensys/gnark/compare/v0.6.5...v0.7.1 +[v0.6.5]: https://github.com/Consensys/gnark/compare/v0.7.0...v0.6.5 +[v0.7.0]: https://github.com/Consensys/gnark/compare/v0.6.4...v0.7.0 +[v0.6.4]: https://github.com/Consensys/gnark/compare/v0.6.3...v0.6.4 +[v0.6.3]: https://github.com/Consensys/gnark/compare/v0.6.2...v0.6.3 +[v0.6.2]: https://github.com/Consensys/gnark/compare/v0.6.1...v0.6.2 +[v0.6.1]: https://github.com/Consensys/gnark/compare/v0.6.0...v0.6.1 +[v0.6.0]: https://github.com/Consensys/gnark/compare/v0.5.2...v0.6.0 +[v0.5.2]: https://github.com/Consensys/gnark/compare/v0.5.1...v0.5.2 +[v0.5.1]: https://github.com/Consensys/gnark/compare/v0.5.0...v0.5.1 +[v0.5.0]: https://github.com/Consensys/gnark/compare/v0.4.0...v0.5.0 +[v0.4.0]: https://github.com/Consensys/gnark/compare/v0.3.8...v0.4.0 +[v0.3.8]: https://github.com/Consensys/gnark/compare/v0.3.7...v0.3.8 +[v0.3.7]: https://github.com/Consensys/gnark/compare/v0.3.6...v0.3.7 +[v0.3.6]: https://github.com/Consensys/gnark/compare/v0.3.5...v0.3.6 +[v0.3.5]: https://github.com/Consensys/gnark/compare/v0.3.4...v0.3.5 +[v0.3.4]: https://github.com/Consensys/gnark/compare/v0.3.3...v0.3.4 +[v0.3.3]: https://github.com/Consensys/gnark/compare/v0.3.1...v0.3.3 +[v0.3.1]: https://github.com/Consensys/gnark/compare/v0.3.0...v0.3.1 +[v0.3.0]: https://github.com/Consensys/gnark/compare/v0.3.0-alpha...v0.3.0 +[v0.3.0-alpha]: https://github.com/Consensys/gnark/compare/v0.2.1-alpha...v0.3.0-alpha +[v0.2.1-alpha]: https://github.com/Consensys/gnark/compare/v0.2.0-alpha...v0.2.1-alpha +[v0.2.0-alpha]: https://github.com/Consensys/gnark/compare/v0.1.0-alpha...v0.2.0-alpha diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a85c402b49..39f29e9a65 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,7 +20,7 @@ you are agreeing to uphold this code. Please report unacceptable behavior. ### Reporting Bugs #### Before Submitting A Bug * Ensure the bug is not already reported by searching on GitHub under -[Issues](https://github.com/consensys/gnark/issues). +[Issues](https://github.com/Consensys/gnark/issues). #### How Do I Submit a (Good) Bug? * If you are unable to find an open issue addressing the problem, open a new one. Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or @@ -39,7 +39,7 @@ happens and under which conditions it normally happens. ### Suggesting Enhancements #### Before Submitting An Enhancement Suggestion -* [Search](https://github.com/consensys/gnark/issues) to see if the enhancement has already been +* [Search](https://github.com/Consensys/gnark/issues) to see if the enhancement has already been suggested. If it has, add a comment to the existing issue instead of opening a new one. #### How Do I Submit A (Good) Enhancement Suggestion? diff --git a/README.md b/README.md index 4412d608e3..229630ff94 100644 --- a/README.md +++ b/README.md @@ -198,7 +198,7 @@ Please use the following BibTeX to cite the most recent release. Youssef El Housni and Ivo Kubjas and Arya Tabaie}, - title = {ConsenSys/gnark: v0.11.0}, + title = {Consensys/gnark: v0.11.0}, month = sep, year = 2024, publisher = {Zenodo}, @@ -214,16 +214,16 @@ Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our [code of condu ## Versioning -We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/consensys/gnark/tags). +We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/Consensys/gnark/tags). ## License This project is licensed under the Apache 2 License - see the [LICENSE](LICENSE) file for details -[`gnark` Issues]: https://github.com/consensys/gnark/issues +[`gnark` Issues]: https://github.com/Consensys/gnark/issues [`gnark` Playground]: https://play.gnark.io [`gnark` User Documentation]: https://docs.gnark.consensys.net/ -[GitHub discussions]: https://github.com/ConsenSys/gnark/discussions +[GitHub discussions]: https://github.com/Consensys/gnark/discussions [Proving schemes and curves]: https://docs.gnark.consensys.net/Concepts/schemes_curves [`gnark-announce`]: https://groups.google.com/g/gnark-announce [@gnark_team]: https://twitter.com/gnark_team diff --git a/backend/backend.go b/backend/backend.go index 5bcfc7bc20..99aa45198d 100644 --- a/backend/backend.go +++ b/backend/backend.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Package backend implements Zero Knowledge Proof systems: it consumes circuit compiled with gnark/frontend. package backend diff --git a/backend/groth16/bls12-377/commitment_test.go b/backend/groth16/bls12-377/commitment_test.go index ddc5a295bd..cf4a19931e 100644 --- a/backend/groth16/bls12-377/commitment_test.go +++ b/backend/groth16/bls12-377/commitment_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/marshal.go b/backend/groth16/bls12-377/marshal.go index 3d0d9ea30b..e5072c7baf 100644 --- a/backend/groth16/bls12-377/marshal.go +++ b/backend/groth16/bls12-377/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/marshal_test.go b/backend/groth16/bls12-377/marshal_test.go index 4ad4a8719e..70a39cfeab 100644 --- a/backend/groth16/bls12-377/marshal_test.go +++ b/backend/groth16/bls12-377/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/mpcsetup/lagrange.go b/backend/groth16/bls12-377/mpcsetup/lagrange.go index 2d7043c9a6..b240155f12 100644 --- a/backend/groth16/bls12-377/mpcsetup/lagrange.go +++ b/backend/groth16/bls12-377/mpcsetup/lagrange.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/mpcsetup/marshal.go b/backend/groth16/bls12-377/mpcsetup/marshal.go index 35ceece58f..aab5af4057 100644 --- a/backend/groth16/bls12-377/mpcsetup/marshal.go +++ b/backend/groth16/bls12-377/mpcsetup/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/mpcsetup/marshal_test.go b/backend/groth16/bls12-377/mpcsetup/marshal_test.go index a025f0580d..af045351c1 100644 --- a/backend/groth16/bls12-377/mpcsetup/marshal_test.go +++ b/backend/groth16/bls12-377/mpcsetup/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/mpcsetup/phase1.go b/backend/groth16/bls12-377/mpcsetup/phase1.go index 573aaec996..724ac887b6 100644 --- a/backend/groth16/bls12-377/mpcsetup/phase1.go +++ b/backend/groth16/bls12-377/mpcsetup/phase1.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/mpcsetup/phase2.go b/backend/groth16/bls12-377/mpcsetup/phase2.go index e3816d65ca..bb4ab9a05e 100644 --- a/backend/groth16/bls12-377/mpcsetup/phase2.go +++ b/backend/groth16/bls12-377/mpcsetup/phase2.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/mpcsetup/setup.go b/backend/groth16/bls12-377/mpcsetup/setup.go index 683369c871..1796c00203 100644 --- a/backend/groth16/bls12-377/mpcsetup/setup.go +++ b/backend/groth16/bls12-377/mpcsetup/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/mpcsetup/setup_test.go b/backend/groth16/bls12-377/mpcsetup/setup_test.go index ca8cca346f..24204f31ca 100644 --- a/backend/groth16/bls12-377/mpcsetup/setup_test.go +++ b/backend/groth16/bls12-377/mpcsetup/setup_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/mpcsetup/utils.go b/backend/groth16/bls12-377/mpcsetup/utils.go index 978b2ecbde..a0757bc065 100644 --- a/backend/groth16/bls12-377/mpcsetup/utils.go +++ b/backend/groth16/bls12-377/mpcsetup/utils.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/prove.go b/backend/groth16/bls12-377/prove.go index 47c715ada3..282b7da3d0 100644 --- a/backend/groth16/bls12-377/prove.go +++ b/backend/groth16/bls12-377/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/setup.go b/backend/groth16/bls12-377/setup.go index 24efac699e..8b599d571e 100644 --- a/backend/groth16/bls12-377/setup.go +++ b/backend/groth16/bls12-377/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-377/verify.go b/backend/groth16/bls12-377/verify.go index 2a09746de9..ff95c7ec6b 100644 --- a/backend/groth16/bls12-377/verify.go +++ b/backend/groth16/bls12-377/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/commitment_test.go b/backend/groth16/bls12-381/commitment_test.go index 150dcccea6..087f68a6ff 100644 --- a/backend/groth16/bls12-381/commitment_test.go +++ b/backend/groth16/bls12-381/commitment_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/marshal.go b/backend/groth16/bls12-381/marshal.go index 57e0af99f3..9fbb9273cd 100644 --- a/backend/groth16/bls12-381/marshal.go +++ b/backend/groth16/bls12-381/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/marshal_test.go b/backend/groth16/bls12-381/marshal_test.go index 1f62e84659..6156c5c2a1 100644 --- a/backend/groth16/bls12-381/marshal_test.go +++ b/backend/groth16/bls12-381/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/mpcsetup/lagrange.go b/backend/groth16/bls12-381/mpcsetup/lagrange.go index efd77055e1..34d3b1d040 100644 --- a/backend/groth16/bls12-381/mpcsetup/lagrange.go +++ b/backend/groth16/bls12-381/mpcsetup/lagrange.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/mpcsetup/marshal.go b/backend/groth16/bls12-381/mpcsetup/marshal.go index 0aa64ea1f0..47c750583c 100644 --- a/backend/groth16/bls12-381/mpcsetup/marshal.go +++ b/backend/groth16/bls12-381/mpcsetup/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/mpcsetup/marshal_test.go b/backend/groth16/bls12-381/mpcsetup/marshal_test.go index b6db6846f1..7104c8eac5 100644 --- a/backend/groth16/bls12-381/mpcsetup/marshal_test.go +++ b/backend/groth16/bls12-381/mpcsetup/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/mpcsetup/phase1.go b/backend/groth16/bls12-381/mpcsetup/phase1.go index 14cef5f605..be297e477f 100644 --- a/backend/groth16/bls12-381/mpcsetup/phase1.go +++ b/backend/groth16/bls12-381/mpcsetup/phase1.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/mpcsetup/phase2.go b/backend/groth16/bls12-381/mpcsetup/phase2.go index ed42a69f9c..09610500c6 100644 --- a/backend/groth16/bls12-381/mpcsetup/phase2.go +++ b/backend/groth16/bls12-381/mpcsetup/phase2.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/mpcsetup/setup.go b/backend/groth16/bls12-381/mpcsetup/setup.go index dd568aa21e..64e42f4889 100644 --- a/backend/groth16/bls12-381/mpcsetup/setup.go +++ b/backend/groth16/bls12-381/mpcsetup/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/mpcsetup/setup_test.go b/backend/groth16/bls12-381/mpcsetup/setup_test.go index 0e9880b010..37a20a1d8f 100644 --- a/backend/groth16/bls12-381/mpcsetup/setup_test.go +++ b/backend/groth16/bls12-381/mpcsetup/setup_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/mpcsetup/utils.go b/backend/groth16/bls12-381/mpcsetup/utils.go index e29ec7ae32..6868c0278f 100644 --- a/backend/groth16/bls12-381/mpcsetup/utils.go +++ b/backend/groth16/bls12-381/mpcsetup/utils.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/prove.go b/backend/groth16/bls12-381/prove.go index 671092603e..fd3a54981b 100644 --- a/backend/groth16/bls12-381/prove.go +++ b/backend/groth16/bls12-381/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/setup.go b/backend/groth16/bls12-381/setup.go index bd0511a58e..9c4eb95927 100644 --- a/backend/groth16/bls12-381/setup.go +++ b/backend/groth16/bls12-381/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls12-381/verify.go b/backend/groth16/bls12-381/verify.go index fc7f40bfcc..798c093bde 100644 --- a/backend/groth16/bls12-381/verify.go +++ b/backend/groth16/bls12-381/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/commitment_test.go b/backend/groth16/bls24-315/commitment_test.go index 66bc8e7ebf..c8a3f1180c 100644 --- a/backend/groth16/bls24-315/commitment_test.go +++ b/backend/groth16/bls24-315/commitment_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/marshal.go b/backend/groth16/bls24-315/marshal.go index 2684cca417..72591f46cf 100644 --- a/backend/groth16/bls24-315/marshal.go +++ b/backend/groth16/bls24-315/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/marshal_test.go b/backend/groth16/bls24-315/marshal_test.go index 849c5f684e..ce91212511 100644 --- a/backend/groth16/bls24-315/marshal_test.go +++ b/backend/groth16/bls24-315/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/mpcsetup/lagrange.go b/backend/groth16/bls24-315/mpcsetup/lagrange.go index 01cf0bb7f4..68a642863b 100644 --- a/backend/groth16/bls24-315/mpcsetup/lagrange.go +++ b/backend/groth16/bls24-315/mpcsetup/lagrange.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/mpcsetup/marshal.go b/backend/groth16/bls24-315/mpcsetup/marshal.go index f670a7af74..7c994e08fe 100644 --- a/backend/groth16/bls24-315/mpcsetup/marshal.go +++ b/backend/groth16/bls24-315/mpcsetup/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/mpcsetup/marshal_test.go b/backend/groth16/bls24-315/mpcsetup/marshal_test.go index b7cd61c85a..ffd1631d71 100644 --- a/backend/groth16/bls24-315/mpcsetup/marshal_test.go +++ b/backend/groth16/bls24-315/mpcsetup/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/mpcsetup/phase1.go b/backend/groth16/bls24-315/mpcsetup/phase1.go index cefde6c90f..c61a807625 100644 --- a/backend/groth16/bls24-315/mpcsetup/phase1.go +++ b/backend/groth16/bls24-315/mpcsetup/phase1.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/mpcsetup/phase2.go b/backend/groth16/bls24-315/mpcsetup/phase2.go index 48939131d3..8d11d19a06 100644 --- a/backend/groth16/bls24-315/mpcsetup/phase2.go +++ b/backend/groth16/bls24-315/mpcsetup/phase2.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/mpcsetup/setup.go b/backend/groth16/bls24-315/mpcsetup/setup.go index 98fc63f1ad..26ca9fcc78 100644 --- a/backend/groth16/bls24-315/mpcsetup/setup.go +++ b/backend/groth16/bls24-315/mpcsetup/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/mpcsetup/setup_test.go b/backend/groth16/bls24-315/mpcsetup/setup_test.go index 25c8affc68..5a8b6d63de 100644 --- a/backend/groth16/bls24-315/mpcsetup/setup_test.go +++ b/backend/groth16/bls24-315/mpcsetup/setup_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/mpcsetup/utils.go b/backend/groth16/bls24-315/mpcsetup/utils.go index c86248ac16..0bd4cdd3cb 100644 --- a/backend/groth16/bls24-315/mpcsetup/utils.go +++ b/backend/groth16/bls24-315/mpcsetup/utils.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/prove.go b/backend/groth16/bls24-315/prove.go index cb846a9833..5c81871287 100644 --- a/backend/groth16/bls24-315/prove.go +++ b/backend/groth16/bls24-315/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/setup.go b/backend/groth16/bls24-315/setup.go index 7f8147b3c0..bb126cc3ed 100644 --- a/backend/groth16/bls24-315/setup.go +++ b/backend/groth16/bls24-315/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-315/verify.go b/backend/groth16/bls24-315/verify.go index 7680a54d1f..580ae2031f 100644 --- a/backend/groth16/bls24-315/verify.go +++ b/backend/groth16/bls24-315/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/commitment_test.go b/backend/groth16/bls24-317/commitment_test.go index 99a80407ea..d08a909c76 100644 --- a/backend/groth16/bls24-317/commitment_test.go +++ b/backend/groth16/bls24-317/commitment_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/marshal.go b/backend/groth16/bls24-317/marshal.go index d322edd46e..e42d864ef3 100644 --- a/backend/groth16/bls24-317/marshal.go +++ b/backend/groth16/bls24-317/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/marshal_test.go b/backend/groth16/bls24-317/marshal_test.go index 092b3beb4c..5803cfe5f6 100644 --- a/backend/groth16/bls24-317/marshal_test.go +++ b/backend/groth16/bls24-317/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/mpcsetup/lagrange.go b/backend/groth16/bls24-317/mpcsetup/lagrange.go index ea2c29edd3..ad78a233ad 100644 --- a/backend/groth16/bls24-317/mpcsetup/lagrange.go +++ b/backend/groth16/bls24-317/mpcsetup/lagrange.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/mpcsetup/marshal.go b/backend/groth16/bls24-317/mpcsetup/marshal.go index 6e1ebfc02c..19706282c7 100644 --- a/backend/groth16/bls24-317/mpcsetup/marshal.go +++ b/backend/groth16/bls24-317/mpcsetup/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/mpcsetup/marshal_test.go b/backend/groth16/bls24-317/mpcsetup/marshal_test.go index 0224685d65..15c39e9e1d 100644 --- a/backend/groth16/bls24-317/mpcsetup/marshal_test.go +++ b/backend/groth16/bls24-317/mpcsetup/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/mpcsetup/phase1.go b/backend/groth16/bls24-317/mpcsetup/phase1.go index 72e61e9977..774f1a6aa8 100644 --- a/backend/groth16/bls24-317/mpcsetup/phase1.go +++ b/backend/groth16/bls24-317/mpcsetup/phase1.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/mpcsetup/phase2.go b/backend/groth16/bls24-317/mpcsetup/phase2.go index d3037cc3d3..5521eadb9b 100644 --- a/backend/groth16/bls24-317/mpcsetup/phase2.go +++ b/backend/groth16/bls24-317/mpcsetup/phase2.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/mpcsetup/setup.go b/backend/groth16/bls24-317/mpcsetup/setup.go index f90fea816c..c4620fb3c8 100644 --- a/backend/groth16/bls24-317/mpcsetup/setup.go +++ b/backend/groth16/bls24-317/mpcsetup/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/mpcsetup/setup_test.go b/backend/groth16/bls24-317/mpcsetup/setup_test.go index 750ab1e0cf..98e466aa90 100644 --- a/backend/groth16/bls24-317/mpcsetup/setup_test.go +++ b/backend/groth16/bls24-317/mpcsetup/setup_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/mpcsetup/utils.go b/backend/groth16/bls24-317/mpcsetup/utils.go index 877fef7fad..69dbbdefac 100644 --- a/backend/groth16/bls24-317/mpcsetup/utils.go +++ b/backend/groth16/bls24-317/mpcsetup/utils.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/prove.go b/backend/groth16/bls24-317/prove.go index 55a4a39a14..d0e4c44adc 100644 --- a/backend/groth16/bls24-317/prove.go +++ b/backend/groth16/bls24-317/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/setup.go b/backend/groth16/bls24-317/setup.go index c8db3321c2..9b42e4e305 100644 --- a/backend/groth16/bls24-317/setup.go +++ b/backend/groth16/bls24-317/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bls24-317/verify.go b/backend/groth16/bls24-317/verify.go index d01ad203e9..75ab20a555 100644 --- a/backend/groth16/bls24-317/verify.go +++ b/backend/groth16/bls24-317/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/commitment_test.go b/backend/groth16/bn254/commitment_test.go index 9f29b5d3bb..62054a12ad 100644 --- a/backend/groth16/bn254/commitment_test.go +++ b/backend/groth16/bn254/commitment_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/marshal.go b/backend/groth16/bn254/marshal.go index 5005269eba..a7c314e9e3 100644 --- a/backend/groth16/bn254/marshal.go +++ b/backend/groth16/bn254/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/marshal_test.go b/backend/groth16/bn254/marshal_test.go index 65ded1d4bf..2ced93651b 100644 --- a/backend/groth16/bn254/marshal_test.go +++ b/backend/groth16/bn254/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/mpcsetup/lagrange.go b/backend/groth16/bn254/mpcsetup/lagrange.go index 886e489248..b41b6596ac 100644 --- a/backend/groth16/bn254/mpcsetup/lagrange.go +++ b/backend/groth16/bn254/mpcsetup/lagrange.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/mpcsetup/marshal.go b/backend/groth16/bn254/mpcsetup/marshal.go index 08cb2ae3d1..e2c26d591d 100644 --- a/backend/groth16/bn254/mpcsetup/marshal.go +++ b/backend/groth16/bn254/mpcsetup/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/mpcsetup/marshal_test.go b/backend/groth16/bn254/mpcsetup/marshal_test.go index 386e3faf66..317e58737a 100644 --- a/backend/groth16/bn254/mpcsetup/marshal_test.go +++ b/backend/groth16/bn254/mpcsetup/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/mpcsetup/phase1.go b/backend/groth16/bn254/mpcsetup/phase1.go index a912a473aa..18ffdd0647 100644 --- a/backend/groth16/bn254/mpcsetup/phase1.go +++ b/backend/groth16/bn254/mpcsetup/phase1.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/mpcsetup/phase2.go b/backend/groth16/bn254/mpcsetup/phase2.go index 3fcafb30da..9ec35d37a9 100644 --- a/backend/groth16/bn254/mpcsetup/phase2.go +++ b/backend/groth16/bn254/mpcsetup/phase2.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/mpcsetup/setup.go b/backend/groth16/bn254/mpcsetup/setup.go index 4946e9f597..27fd034903 100644 --- a/backend/groth16/bn254/mpcsetup/setup.go +++ b/backend/groth16/bn254/mpcsetup/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/mpcsetup/setup_test.go b/backend/groth16/bn254/mpcsetup/setup_test.go index 63b717cac4..4621926b8c 100644 --- a/backend/groth16/bn254/mpcsetup/setup_test.go +++ b/backend/groth16/bn254/mpcsetup/setup_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/mpcsetup/utils.go b/backend/groth16/bn254/mpcsetup/utils.go index e3b47d1121..66a7edaa4a 100644 --- a/backend/groth16/bn254/mpcsetup/utils.go +++ b/backend/groth16/bn254/mpcsetup/utils.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/prove.go b/backend/groth16/bn254/prove.go index 5f0d413133..d7eb7d4ba3 100644 --- a/backend/groth16/bn254/prove.go +++ b/backend/groth16/bn254/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/setup.go b/backend/groth16/bn254/setup.go index 0af907355a..b4f4ba9eca 100644 --- a/backend/groth16/bn254/setup.go +++ b/backend/groth16/bn254/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bn254/verify.go b/backend/groth16/bn254/verify.go index bc9f1bcc5a..eadaedd522 100644 --- a/backend/groth16/bn254/verify.go +++ b/backend/groth16/bn254/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT @@ -150,7 +139,7 @@ func Verify(proof *Proof, vk *VerifyingKey, publicWitness fr.Vector, opts ...bac // ExportSolidity writes a solidity Verifier contract on provided writer. // This is an experimental feature and gnark solidity generator as not been thoroughly tested. // -// See https://github.com/ConsenSys/gnark-tests for example usage. +// See https://github.com/Consensys/gnark-tests for example usage. func (vk *VerifyingKey) ExportSolidity(w io.Writer, exportOpts ...solidity.ExportOption) error { cfg, err := solidity.NewExportConfig(exportOpts...) log := logger.Logger() diff --git a/backend/groth16/bw6-633/commitment_test.go b/backend/groth16/bw6-633/commitment_test.go index fa5eaf36b5..85f61bbc73 100644 --- a/backend/groth16/bw6-633/commitment_test.go +++ b/backend/groth16/bw6-633/commitment_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/marshal.go b/backend/groth16/bw6-633/marshal.go index 48b6ff1490..910af8e614 100644 --- a/backend/groth16/bw6-633/marshal.go +++ b/backend/groth16/bw6-633/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/marshal_test.go b/backend/groth16/bw6-633/marshal_test.go index e85f3eefcf..6f79f856da 100644 --- a/backend/groth16/bw6-633/marshal_test.go +++ b/backend/groth16/bw6-633/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/mpcsetup/lagrange.go b/backend/groth16/bw6-633/mpcsetup/lagrange.go index 4584c3964a..3a50fc463e 100644 --- a/backend/groth16/bw6-633/mpcsetup/lagrange.go +++ b/backend/groth16/bw6-633/mpcsetup/lagrange.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/mpcsetup/marshal.go b/backend/groth16/bw6-633/mpcsetup/marshal.go index 4955ec6d92..9c4cc27acb 100644 --- a/backend/groth16/bw6-633/mpcsetup/marshal.go +++ b/backend/groth16/bw6-633/mpcsetup/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/mpcsetup/marshal_test.go b/backend/groth16/bw6-633/mpcsetup/marshal_test.go index fd7fa474d2..a0ac908332 100644 --- a/backend/groth16/bw6-633/mpcsetup/marshal_test.go +++ b/backend/groth16/bw6-633/mpcsetup/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/mpcsetup/phase1.go b/backend/groth16/bw6-633/mpcsetup/phase1.go index fa91cc5025..43d1af3a0a 100644 --- a/backend/groth16/bw6-633/mpcsetup/phase1.go +++ b/backend/groth16/bw6-633/mpcsetup/phase1.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/mpcsetup/phase2.go b/backend/groth16/bw6-633/mpcsetup/phase2.go index cdf0bb7578..10160fc8ea 100644 --- a/backend/groth16/bw6-633/mpcsetup/phase2.go +++ b/backend/groth16/bw6-633/mpcsetup/phase2.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/mpcsetup/setup.go b/backend/groth16/bw6-633/mpcsetup/setup.go index 35bfdca0e9..811e75da67 100644 --- a/backend/groth16/bw6-633/mpcsetup/setup.go +++ b/backend/groth16/bw6-633/mpcsetup/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/mpcsetup/setup_test.go b/backend/groth16/bw6-633/mpcsetup/setup_test.go index fa51d16fe2..18c1e27454 100644 --- a/backend/groth16/bw6-633/mpcsetup/setup_test.go +++ b/backend/groth16/bw6-633/mpcsetup/setup_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/mpcsetup/utils.go b/backend/groth16/bw6-633/mpcsetup/utils.go index 7a2979c53c..858e911e30 100644 --- a/backend/groth16/bw6-633/mpcsetup/utils.go +++ b/backend/groth16/bw6-633/mpcsetup/utils.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/prove.go b/backend/groth16/bw6-633/prove.go index a4a6153c45..680600b9b7 100644 --- a/backend/groth16/bw6-633/prove.go +++ b/backend/groth16/bw6-633/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/setup.go b/backend/groth16/bw6-633/setup.go index a569df46fb..f7bf9f778f 100644 --- a/backend/groth16/bw6-633/setup.go +++ b/backend/groth16/bw6-633/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-633/verify.go b/backend/groth16/bw6-633/verify.go index 79ce6b0295..24d2f97a45 100644 --- a/backend/groth16/bw6-633/verify.go +++ b/backend/groth16/bw6-633/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/commitment_test.go b/backend/groth16/bw6-761/commitment_test.go index 323b82f097..f93f2eaffd 100644 --- a/backend/groth16/bw6-761/commitment_test.go +++ b/backend/groth16/bw6-761/commitment_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/marshal.go b/backend/groth16/bw6-761/marshal.go index 4aebb1deb1..a3d2b2db97 100644 --- a/backend/groth16/bw6-761/marshal.go +++ b/backend/groth16/bw6-761/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/marshal_test.go b/backend/groth16/bw6-761/marshal_test.go index 36e299d5c2..5925e607d1 100644 --- a/backend/groth16/bw6-761/marshal_test.go +++ b/backend/groth16/bw6-761/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/mpcsetup/lagrange.go b/backend/groth16/bw6-761/mpcsetup/lagrange.go index 145271ddcd..d90e04b4f6 100644 --- a/backend/groth16/bw6-761/mpcsetup/lagrange.go +++ b/backend/groth16/bw6-761/mpcsetup/lagrange.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/mpcsetup/marshal.go b/backend/groth16/bw6-761/mpcsetup/marshal.go index d1a071aa5d..27477cd27b 100644 --- a/backend/groth16/bw6-761/mpcsetup/marshal.go +++ b/backend/groth16/bw6-761/mpcsetup/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/mpcsetup/marshal_test.go b/backend/groth16/bw6-761/mpcsetup/marshal_test.go index 89650992c2..2b202dd536 100644 --- a/backend/groth16/bw6-761/mpcsetup/marshal_test.go +++ b/backend/groth16/bw6-761/mpcsetup/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/mpcsetup/phase1.go b/backend/groth16/bw6-761/mpcsetup/phase1.go index 07af196d3f..9d3257052e 100644 --- a/backend/groth16/bw6-761/mpcsetup/phase1.go +++ b/backend/groth16/bw6-761/mpcsetup/phase1.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/mpcsetup/phase2.go b/backend/groth16/bw6-761/mpcsetup/phase2.go index cb0c6f9768..ef9d99afc2 100644 --- a/backend/groth16/bw6-761/mpcsetup/phase2.go +++ b/backend/groth16/bw6-761/mpcsetup/phase2.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/mpcsetup/setup.go b/backend/groth16/bw6-761/mpcsetup/setup.go index 9008fd26b0..c16abc93b2 100644 --- a/backend/groth16/bw6-761/mpcsetup/setup.go +++ b/backend/groth16/bw6-761/mpcsetup/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/mpcsetup/setup_test.go b/backend/groth16/bw6-761/mpcsetup/setup_test.go index 83994ca73d..4156903579 100644 --- a/backend/groth16/bw6-761/mpcsetup/setup_test.go +++ b/backend/groth16/bw6-761/mpcsetup/setup_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/mpcsetup/utils.go b/backend/groth16/bw6-761/mpcsetup/utils.go index dfdd1e8a97..c6df8a75ff 100644 --- a/backend/groth16/bw6-761/mpcsetup/utils.go +++ b/backend/groth16/bw6-761/mpcsetup/utils.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/prove.go b/backend/groth16/bw6-761/prove.go index 53de1f477a..48fceb29bc 100644 --- a/backend/groth16/bw6-761/prove.go +++ b/backend/groth16/bw6-761/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/setup.go b/backend/groth16/bw6-761/setup.go index aeb2483c14..59943fb933 100644 --- a/backend/groth16/bw6-761/setup.go +++ b/backend/groth16/bw6-761/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/bw6-761/verify.go b/backend/groth16/bw6-761/verify.go index a00e52d69c..81b54ece39 100644 --- a/backend/groth16/bw6-761/verify.go +++ b/backend/groth16/bw6-761/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/groth16/groth16.go b/backend/groth16/groth16.go index a56b5730a3..426621e2f6 100644 --- a/backend/groth16/groth16.go +++ b/backend/groth16/groth16.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Package groth16 implements Groth16 Zero Knowledge Proof system (aka zkSNARK). // diff --git a/backend/plonk/bls12-377/marshal.go b/backend/plonk/bls12-377/marshal.go index 90ad763897..5ab5d97804 100644 --- a/backend/plonk/bls12-377/marshal.go +++ b/backend/plonk/bls12-377/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls12-377/marshal_test.go b/backend/plonk/bls12-377/marshal_test.go index 6179b0527f..e523566bde 100644 --- a/backend/plonk/bls12-377/marshal_test.go +++ b/backend/plonk/bls12-377/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls12-377/prove.go b/backend/plonk/bls12-377/prove.go index f4ee3fd2f3..acf19b7722 100644 --- a/backend/plonk/bls12-377/prove.go +++ b/backend/plonk/bls12-377/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls12-377/setup.go b/backend/plonk/bls12-377/setup.go index 933d0e9038..10ece24e94 100644 --- a/backend/plonk/bls12-377/setup.go +++ b/backend/plonk/bls12-377/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls12-377/verify.go b/backend/plonk/bls12-377/verify.go index 9dd652cc0e..70aed2752b 100644 --- a/backend/plonk/bls12-377/verify.go +++ b/backend/plonk/bls12-377/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls12-381/marshal.go b/backend/plonk/bls12-381/marshal.go index af019887bd..368d611439 100644 --- a/backend/plonk/bls12-381/marshal.go +++ b/backend/plonk/bls12-381/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls12-381/marshal_test.go b/backend/plonk/bls12-381/marshal_test.go index 900ab941f4..6df71fc31a 100644 --- a/backend/plonk/bls12-381/marshal_test.go +++ b/backend/plonk/bls12-381/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls12-381/prove.go b/backend/plonk/bls12-381/prove.go index 4541252745..aa023214ce 100644 --- a/backend/plonk/bls12-381/prove.go +++ b/backend/plonk/bls12-381/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls12-381/setup.go b/backend/plonk/bls12-381/setup.go index 16bc19bb53..ef2a721bb4 100644 --- a/backend/plonk/bls12-381/setup.go +++ b/backend/plonk/bls12-381/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls12-381/verify.go b/backend/plonk/bls12-381/verify.go index 97006ffa6f..ccaf735fdb 100644 --- a/backend/plonk/bls12-381/verify.go +++ b/backend/plonk/bls12-381/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls24-315/marshal.go b/backend/plonk/bls24-315/marshal.go index 2ec858fb7b..12ef5b14ac 100644 --- a/backend/plonk/bls24-315/marshal.go +++ b/backend/plonk/bls24-315/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls24-315/marshal_test.go b/backend/plonk/bls24-315/marshal_test.go index 52ce8d71c4..b941db9dda 100644 --- a/backend/plonk/bls24-315/marshal_test.go +++ b/backend/plonk/bls24-315/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls24-315/prove.go b/backend/plonk/bls24-315/prove.go index 2aac05cb74..e27e54835e 100644 --- a/backend/plonk/bls24-315/prove.go +++ b/backend/plonk/bls24-315/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls24-315/setup.go b/backend/plonk/bls24-315/setup.go index 7a6a4b5ac9..8784290e96 100644 --- a/backend/plonk/bls24-315/setup.go +++ b/backend/plonk/bls24-315/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls24-315/verify.go b/backend/plonk/bls24-315/verify.go index 2a646df122..992059492f 100644 --- a/backend/plonk/bls24-315/verify.go +++ b/backend/plonk/bls24-315/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls24-317/marshal.go b/backend/plonk/bls24-317/marshal.go index 21e55f7e75..05635202cf 100644 --- a/backend/plonk/bls24-317/marshal.go +++ b/backend/plonk/bls24-317/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls24-317/marshal_test.go b/backend/plonk/bls24-317/marshal_test.go index 7e95c5b42e..4924957689 100644 --- a/backend/plonk/bls24-317/marshal_test.go +++ b/backend/plonk/bls24-317/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls24-317/prove.go b/backend/plonk/bls24-317/prove.go index 20d3eeb389..8e8ea8df92 100644 --- a/backend/plonk/bls24-317/prove.go +++ b/backend/plonk/bls24-317/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls24-317/setup.go b/backend/plonk/bls24-317/setup.go index 212657f6a0..7330742508 100644 --- a/backend/plonk/bls24-317/setup.go +++ b/backend/plonk/bls24-317/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bls24-317/verify.go b/backend/plonk/bls24-317/verify.go index a5d7049753..bbdf4728a8 100644 --- a/backend/plonk/bls24-317/verify.go +++ b/backend/plonk/bls24-317/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bn254/marshal.go b/backend/plonk/bn254/marshal.go index 4f128ae2ab..9639b8381d 100644 --- a/backend/plonk/bn254/marshal.go +++ b/backend/plonk/bn254/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bn254/marshal_test.go b/backend/plonk/bn254/marshal_test.go index 2a193872cf..6a734d3677 100644 --- a/backend/plonk/bn254/marshal_test.go +++ b/backend/plonk/bn254/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bn254/prove.go b/backend/plonk/bn254/prove.go index 08e431cca7..16979d0697 100644 --- a/backend/plonk/bn254/prove.go +++ b/backend/plonk/bn254/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bn254/setup.go b/backend/plonk/bn254/setup.go index 0b01ec1cf0..fa78238a49 100644 --- a/backend/plonk/bn254/setup.go +++ b/backend/plonk/bn254/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bn254/verify.go b/backend/plonk/bn254/verify.go index c42e1aeb66..4a6cf9450a 100644 --- a/backend/plonk/bn254/verify.go +++ b/backend/plonk/bn254/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT @@ -394,7 +383,7 @@ func deriveRandomness(fs *fiatshamir.Transcript, challenge string, points ...*cu // ExportSolidity exports the verifying key to a solidity smart contract. // -// See https://github.com/ConsenSys/gnark-tests for example usage. +// See https://github.com/Consensys/gnark-tests for example usage. // // Code has not been audited and is provided as-is, we make no guarantees or warranties to its safety and reliability. func (vk *VerifyingKey) ExportSolidity(w io.Writer, exportOpts ...solidity.ExportOption) error { diff --git a/backend/plonk/bw6-633/marshal.go b/backend/plonk/bw6-633/marshal.go index 73d1828266..f58907cdcd 100644 --- a/backend/plonk/bw6-633/marshal.go +++ b/backend/plonk/bw6-633/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bw6-633/marshal_test.go b/backend/plonk/bw6-633/marshal_test.go index 9804f8466e..e56771ae72 100644 --- a/backend/plonk/bw6-633/marshal_test.go +++ b/backend/plonk/bw6-633/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bw6-633/prove.go b/backend/plonk/bw6-633/prove.go index 30b0b64ab4..38a92087d7 100644 --- a/backend/plonk/bw6-633/prove.go +++ b/backend/plonk/bw6-633/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bw6-633/setup.go b/backend/plonk/bw6-633/setup.go index 03622060e3..7f5f330692 100644 --- a/backend/plonk/bw6-633/setup.go +++ b/backend/plonk/bw6-633/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bw6-633/verify.go b/backend/plonk/bw6-633/verify.go index c9e1f1928e..dda81e2f6b 100644 --- a/backend/plonk/bw6-633/verify.go +++ b/backend/plonk/bw6-633/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bw6-761/marshal.go b/backend/plonk/bw6-761/marshal.go index f3d2f3417d..4020f66c4b 100644 --- a/backend/plonk/bw6-761/marshal.go +++ b/backend/plonk/bw6-761/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bw6-761/marshal_test.go b/backend/plonk/bw6-761/marshal_test.go index cc6aa3c406..06804132df 100644 --- a/backend/plonk/bw6-761/marshal_test.go +++ b/backend/plonk/bw6-761/marshal_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bw6-761/prove.go b/backend/plonk/bw6-761/prove.go index 0635e1473a..f727c9938c 100644 --- a/backend/plonk/bw6-761/prove.go +++ b/backend/plonk/bw6-761/prove.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bw6-761/setup.go b/backend/plonk/bw6-761/setup.go index b9cd13daed..0db3df792c 100644 --- a/backend/plonk/bw6-761/setup.go +++ b/backend/plonk/bw6-761/setup.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/bw6-761/verify.go b/backend/plonk/bw6-761/verify.go index 23522a2dca..9feb1d0c30 100644 --- a/backend/plonk/bw6-761/verify.go +++ b/backend/plonk/bw6-761/verify.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/backend/plonk/plonk.go b/backend/plonk/plonk.go index 6b19ef1545..2f5c0b4582 100644 --- a/backend/plonk/plonk.go +++ b/backend/plonk/plonk.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Package plonk implements PLONK Zero Knowledge Proof system. // diff --git a/backend/witness/witness.go b/backend/witness/witness.go index 5436fc75dd..384b3cd883 100644 --- a/backend/witness/witness.go +++ b/backend/witness/witness.go @@ -1,4 +1,4 @@ -// Copyright 2020 ConsenSys Software Inc. +// Copyright 2020-2024 Consensys Software Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/constraint/bls12-377/coeff.go b/constraint/bls12-377/coeff.go index 9ec1f2a3d7..9b7f671ca6 100644 --- a/constraint/bls12-377/coeff.go +++ b/constraint/bls12-377/coeff.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls12-377/gkr.go b/constraint/bls12-377/gkr.go index ffb369fcac..e344e35ae1 100644 --- a/constraint/bls12-377/gkr.go +++ b/constraint/bls12-377/gkr.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls12-377/marshal.go b/constraint/bls12-377/marshal.go index ea13e57dad..4f1931cce3 100644 --- a/constraint/bls12-377/marshal.go +++ b/constraint/bls12-377/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls12-377/r1cs_test.go b/constraint/bls12-377/r1cs_test.go index 9883601a4a..ba0b594841 100644 --- a/constraint/bls12-377/r1cs_test.go +++ b/constraint/bls12-377/r1cs_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls12-377/solver.go b/constraint/bls12-377/solver.go index 2838d62d8f..c2114a3fb9 100644 --- a/constraint/bls12-377/solver.go +++ b/constraint/bls12-377/solver.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls12-377/system.go b/constraint/bls12-377/system.go index d7420aa421..17db4166ef 100644 --- a/constraint/bls12-377/system.go +++ b/constraint/bls12-377/system.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls12-381/coeff.go b/constraint/bls12-381/coeff.go index 1739672e54..b45dd7097b 100644 --- a/constraint/bls12-381/coeff.go +++ b/constraint/bls12-381/coeff.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls12-381/gkr.go b/constraint/bls12-381/gkr.go index 8480ebb6e8..3c25df9812 100644 --- a/constraint/bls12-381/gkr.go +++ b/constraint/bls12-381/gkr.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls12-381/marshal.go b/constraint/bls12-381/marshal.go index ea13e57dad..4f1931cce3 100644 --- a/constraint/bls12-381/marshal.go +++ b/constraint/bls12-381/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls12-381/r1cs_test.go b/constraint/bls12-381/r1cs_test.go index 5a1e5a7c31..c14bc4da39 100644 --- a/constraint/bls12-381/r1cs_test.go +++ b/constraint/bls12-381/r1cs_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls12-381/solver.go b/constraint/bls12-381/solver.go index 2b34205362..394d57b3d7 100644 --- a/constraint/bls12-381/solver.go +++ b/constraint/bls12-381/solver.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls12-381/system.go b/constraint/bls12-381/system.go index a27133a240..9fb08791a2 100644 --- a/constraint/bls12-381/system.go +++ b/constraint/bls12-381/system.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-315/coeff.go b/constraint/bls24-315/coeff.go index 83d5fe1f43..0c0a050ccd 100644 --- a/constraint/bls24-315/coeff.go +++ b/constraint/bls24-315/coeff.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-315/gkr.go b/constraint/bls24-315/gkr.go index 8205771038..2ed05f8783 100644 --- a/constraint/bls24-315/gkr.go +++ b/constraint/bls24-315/gkr.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-315/marshal.go b/constraint/bls24-315/marshal.go index ea13e57dad..4f1931cce3 100644 --- a/constraint/bls24-315/marshal.go +++ b/constraint/bls24-315/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-315/r1cs_test.go b/constraint/bls24-315/r1cs_test.go index 6a48dbc3f5..3f5eed79d2 100644 --- a/constraint/bls24-315/r1cs_test.go +++ b/constraint/bls24-315/r1cs_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-315/solver.go b/constraint/bls24-315/solver.go index f67e5f9ee1..d20ea682f8 100644 --- a/constraint/bls24-315/solver.go +++ b/constraint/bls24-315/solver.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-315/system.go b/constraint/bls24-315/system.go index cccd0e606c..b6b4d9c7ad 100644 --- a/constraint/bls24-315/system.go +++ b/constraint/bls24-315/system.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-317/coeff.go b/constraint/bls24-317/coeff.go index 88c7138581..09ef7d6fae 100644 --- a/constraint/bls24-317/coeff.go +++ b/constraint/bls24-317/coeff.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-317/gkr.go b/constraint/bls24-317/gkr.go index 0894277205..5cdb3eb92f 100644 --- a/constraint/bls24-317/gkr.go +++ b/constraint/bls24-317/gkr.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-317/marshal.go b/constraint/bls24-317/marshal.go index ea13e57dad..4f1931cce3 100644 --- a/constraint/bls24-317/marshal.go +++ b/constraint/bls24-317/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-317/r1cs_test.go b/constraint/bls24-317/r1cs_test.go index 6c4bc3deb0..fad8775797 100644 --- a/constraint/bls24-317/r1cs_test.go +++ b/constraint/bls24-317/r1cs_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-317/solver.go b/constraint/bls24-317/solver.go index d07747acd9..4e99951081 100644 --- a/constraint/bls24-317/solver.go +++ b/constraint/bls24-317/solver.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bls24-317/system.go b/constraint/bls24-317/system.go index 16c70457e0..244aa6788d 100644 --- a/constraint/bls24-317/system.go +++ b/constraint/bls24-317/system.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bn254/coeff.go b/constraint/bn254/coeff.go index f3a6f2d140..4fd171463c 100644 --- a/constraint/bn254/coeff.go +++ b/constraint/bn254/coeff.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bn254/gkr.go b/constraint/bn254/gkr.go index 10de1207eb..5efed6e822 100644 --- a/constraint/bn254/gkr.go +++ b/constraint/bn254/gkr.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bn254/marshal.go b/constraint/bn254/marshal.go index ea13e57dad..4f1931cce3 100644 --- a/constraint/bn254/marshal.go +++ b/constraint/bn254/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bn254/r1cs_test.go b/constraint/bn254/r1cs_test.go index 98b1786581..d417bf886f 100644 --- a/constraint/bn254/r1cs_test.go +++ b/constraint/bn254/r1cs_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bn254/solver.go b/constraint/bn254/solver.go index 9f59979c46..84d63b1b55 100644 --- a/constraint/bn254/solver.go +++ b/constraint/bn254/solver.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bn254/system.go b/constraint/bn254/system.go index abf6fa2038..11ac0a89f3 100644 --- a/constraint/bn254/system.go +++ b/constraint/bn254/system.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-633/coeff.go b/constraint/bw6-633/coeff.go index fe3ce57616..c89649b488 100644 --- a/constraint/bw6-633/coeff.go +++ b/constraint/bw6-633/coeff.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-633/gkr.go b/constraint/bw6-633/gkr.go index 41d58f19d5..fa8e83258c 100644 --- a/constraint/bw6-633/gkr.go +++ b/constraint/bw6-633/gkr.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-633/marshal.go b/constraint/bw6-633/marshal.go index ea13e57dad..4f1931cce3 100644 --- a/constraint/bw6-633/marshal.go +++ b/constraint/bw6-633/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-633/r1cs_test.go b/constraint/bw6-633/r1cs_test.go index 1fc0ce531a..99a66adb9d 100644 --- a/constraint/bw6-633/r1cs_test.go +++ b/constraint/bw6-633/r1cs_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-633/solver.go b/constraint/bw6-633/solver.go index 4b6f647cde..ea55e75db7 100644 --- a/constraint/bw6-633/solver.go +++ b/constraint/bw6-633/solver.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-633/system.go b/constraint/bw6-633/system.go index e0f3d874cf..9398bb81df 100644 --- a/constraint/bw6-633/system.go +++ b/constraint/bw6-633/system.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-761/coeff.go b/constraint/bw6-761/coeff.go index ba271c7e89..9539b65d02 100644 --- a/constraint/bw6-761/coeff.go +++ b/constraint/bw6-761/coeff.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-761/gkr.go b/constraint/bw6-761/gkr.go index 585af422d4..6e05fe8a90 100644 --- a/constraint/bw6-761/gkr.go +++ b/constraint/bw6-761/gkr.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-761/marshal.go b/constraint/bw6-761/marshal.go index ea13e57dad..4f1931cce3 100644 --- a/constraint/bw6-761/marshal.go +++ b/constraint/bw6-761/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-761/r1cs_test.go b/constraint/bw6-761/r1cs_test.go index 45e3e0b0ad..d3bbd12c27 100644 --- a/constraint/bw6-761/r1cs_test.go +++ b/constraint/bw6-761/r1cs_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-761/solver.go b/constraint/bw6-761/solver.go index edfc3f53d7..03634315d8 100644 --- a/constraint/bw6-761/solver.go +++ b/constraint/bw6-761/solver.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/bw6-761/system.go b/constraint/bw6-761/system.go index 089322639b..9f382fe12e 100644 --- a/constraint/bw6-761/system.go +++ b/constraint/bw6-761/system.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/linear_expression.go b/constraint/linear_expression.go index 20fb9e9986..2f5ee970a2 100644 --- a/constraint/linear_expression.go +++ b/constraint/linear_expression.go @@ -1,16 +1,5 @@ -// Copyright 2021 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package constraint diff --git a/constraint/log.go b/constraint/log.go index 2447c215d7..485e7ecc19 100644 --- a/constraint/log.go +++ b/constraint/log.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package constraint diff --git a/constraint/r1cs.go b/constraint/r1cs.go index b58ff95d40..e0019046dc 100644 --- a/constraint/r1cs.go +++ b/constraint/r1cs.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package constraint diff --git a/constraint/r1cs_sparse.go b/constraint/r1cs_sparse.go index 742521e9d5..ddab38bd10 100644 --- a/constraint/r1cs_sparse.go +++ b/constraint/r1cs_sparse.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package constraint diff --git a/constraint/term.go b/constraint/term.go index 799fb4f7a3..72b846d7b3 100644 --- a/constraint/term.go +++ b/constraint/term.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package constraint diff --git a/constraint/tinyfield/coeff.go b/constraint/tinyfield/coeff.go index 73f8c0c5b0..643f7e870a 100644 --- a/constraint/tinyfield/coeff.go +++ b/constraint/tinyfield/coeff.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/tinyfield/marshal.go b/constraint/tinyfield/marshal.go index ea13e57dad..4f1931cce3 100644 --- a/constraint/tinyfield/marshal.go +++ b/constraint/tinyfield/marshal.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/tinyfield/r1cs_test.go b/constraint/tinyfield/r1cs_test.go index 425f6e3f2b..f91e8c31a2 100644 --- a/constraint/tinyfield/r1cs_test.go +++ b/constraint/tinyfield/r1cs_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/tinyfield/solver.go b/constraint/tinyfield/solver.go index 84e920572d..f87f880ffd 100644 --- a/constraint/tinyfield/solver.go +++ b/constraint/tinyfield/solver.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/constraint/tinyfield/system.go b/constraint/tinyfield/system.go index e8671cea2e..0d741a1dd4 100644 --- a/constraint/tinyfield/system.go +++ b/constraint/tinyfield/system.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by gnark DO NOT EDIT diff --git a/examples/cubic/cubic.go b/examples/cubic/cubic.go index 934a75a074..83d936fed9 100644 --- a/examples/cubic/cubic.go +++ b/examples/cubic/cubic.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package cubic diff --git a/examples/cubic/cubic_test.go b/examples/cubic/cubic_test.go index d30439662b..07a644829c 100644 --- a/examples/cubic/cubic_test.go +++ b/examples/cubic/cubic_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package cubic diff --git a/examples/exponentiate/exponentiate.go b/examples/exponentiate/exponentiate.go index 622b99edf2..6994175429 100644 --- a/examples/exponentiate/exponentiate.go +++ b/examples/exponentiate/exponentiate.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package exponentiate diff --git a/examples/exponentiate/exponentiate_test.go b/examples/exponentiate/exponentiate_test.go index f9f6ec773e..53d439028b 100644 --- a/examples/exponentiate/exponentiate_test.go +++ b/examples/exponentiate/exponentiate_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package exponentiate diff --git a/examples/mimc/mimc.go b/examples/mimc/mimc.go index e16916156f..b94fde80b3 100644 --- a/examples/mimc/mimc.go +++ b/examples/mimc/mimc.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package mimc diff --git a/examples/mimc/mimc_test.go b/examples/mimc/mimc_test.go index 5583193bf6..937df0d2ca 100644 --- a/examples/mimc/mimc_test.go +++ b/examples/mimc/mimc_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package mimc diff --git a/examples/plonk/main.go b/examples/plonk/main.go index ac28303cf5..2a83435c01 100644 --- a/examples/plonk/main.go +++ b/examples/plonk/main.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package main diff --git a/examples/rollup/account.go b/examples/rollup/account.go index ad6b92b48c..60cfb18f46 100644 --- a/examples/rollup/account.go +++ b/examples/rollup/account.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package rollup diff --git a/examples/rollup/account_test.go b/examples/rollup/account_test.go index fa844a7717..186cb3a4fa 100644 --- a/examples/rollup/account_test.go +++ b/examples/rollup/account_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package rollup diff --git a/examples/rollup/circuit.go b/examples/rollup/circuit.go index 6651a87440..ff5a3ad267 100644 --- a/examples/rollup/circuit.go +++ b/examples/rollup/circuit.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package rollup diff --git a/examples/rollup/circuit_test.go b/examples/rollup/circuit_test.go index 656f137e84..f3dffa6b56 100644 --- a/examples/rollup/circuit_test.go +++ b/examples/rollup/circuit_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package rollup diff --git a/examples/rollup/error.go b/examples/rollup/error.go index ebf8504a1f..28a16dac20 100644 --- a/examples/rollup/error.go +++ b/examples/rollup/error.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package rollup diff --git a/examples/rollup/operator.go b/examples/rollup/operator.go index d906a1a9b4..c39ad124c0 100644 --- a/examples/rollup/operator.go +++ b/examples/rollup/operator.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package rollup diff --git a/examples/rollup/rollup_test.go b/examples/rollup/rollup_test.go index bbf30110a0..057fd7e1c3 100644 --- a/examples/rollup/rollup_test.go +++ b/examples/rollup/rollup_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package rollup diff --git a/examples/rollup/transfer.go b/examples/rollup/transfer.go index 7507b357d3..19a9192de1 100644 --- a/examples/rollup/transfer.go +++ b/examples/rollup/transfer.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package rollup diff --git a/frontend/api.go b/frontend/api.go index b3f218c526..a09bce9299 100644 --- a/frontend/api.go +++ b/frontend/api.go @@ -1,18 +1,5 @@ -/* -Copyright © 2021 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package frontend diff --git a/frontend/circuit.go b/frontend/circuit.go index a0ae6eed51..4b1ff4f916 100644 --- a/frontend/circuit.go +++ b/frontend/circuit.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package frontend diff --git a/frontend/cs/r1cs/api.go b/frontend/cs/r1cs/api.go index 095ee6e528..e754aa14da 100644 --- a/frontend/cs/r1cs/api.go +++ b/frontend/cs/r1cs/api.go @@ -1,30 +1,18 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package r1cs import ( "errors" "fmt" - "github.com/consensys/gnark/internal/hints" "path/filepath" "reflect" "runtime" "strings" + "github.com/consensys/gnark/internal/hints" + "github.com/consensys/gnark/internal/utils" "github.com/consensys/gnark/debug" diff --git a/frontend/cs/r1cs/api_assertions.go b/frontend/cs/r1cs/api_assertions.go index cae64710d8..34ad3558ef 100644 --- a/frontend/cs/r1cs/api_assertions.go +++ b/frontend/cs/r1cs/api_assertions.go @@ -1,18 +1,5 @@ -/* -Copyright © 2021 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package r1cs diff --git a/frontend/cs/r1cs/builder.go b/frontend/cs/r1cs/builder.go index bb0ac3c50c..c4961bdec4 100644 --- a/frontend/cs/r1cs/builder.go +++ b/frontend/cs/r1cs/builder.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package r1cs diff --git a/frontend/cs/r1cs/r1cs_test.go b/frontend/cs/r1cs/r1cs_test.go index 4999c13bbf..22d08f0487 100644 --- a/frontend/cs/r1cs/r1cs_test.go +++ b/frontend/cs/r1cs/r1cs_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2021 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package r1cs diff --git a/frontend/cs/scs/api.go b/frontend/cs/scs/api.go index 58ed49cfc8..3d9e202f2e 100644 --- a/frontend/cs/scs/api.go +++ b/frontend/cs/scs/api.go @@ -1,18 +1,5 @@ -/* -Copyright © 2021 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package scs diff --git a/frontend/cs/scs/api_assertions.go b/frontend/cs/scs/api_assertions.go index dc183f3876..cd12857c00 100644 --- a/frontend/cs/scs/api_assertions.go +++ b/frontend/cs/scs/api_assertions.go @@ -1,18 +1,5 @@ -/* -Copyright © 2021 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package scs diff --git a/frontend/cs/scs/builder.go b/frontend/cs/scs/builder.go index db029b2259..261da99dfa 100644 --- a/frontend/cs/scs/builder.go +++ b/frontend/cs/scs/builder.go @@ -1,18 +1,5 @@ -/* -Copyright © 2021 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package scs diff --git a/frontend/schema/field.go b/frontend/schema/field.go index eba65f5dfa..3fbf3c98ee 100644 --- a/frontend/schema/field.go +++ b/frontend/schema/field.go @@ -1,18 +1,5 @@ -/* -Copyright © 2022 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package schema diff --git a/frontend/schema/schema.go b/frontend/schema/schema.go index 277dd3305c..7a945976e7 100644 --- a/frontend/schema/schema.go +++ b/frontend/schema/schema.go @@ -1,18 +1,5 @@ -/* -Copyright © 2022 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package schema diff --git a/frontend/schema/schema_test.go b/frontend/schema/schema_test.go index 23a3bfb27e..a397e484ec 100644 --- a/frontend/schema/schema_test.go +++ b/frontend/schema/schema_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2022 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package schema diff --git a/frontend/variable.go b/frontend/variable.go index 82d33fbc90..c0f7603c9a 100644 --- a/frontend/variable.go +++ b/frontend/variable.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package frontend diff --git a/go.mod b/go.mod index 2b2a34cd6e..fbf26d48f9 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ toolchain go1.22.6 require ( github.com/bits-and-blooms/bitset v1.14.2 github.com/blang/semver/v4 v4.0.0 - github.com/consensys/bavard v0.1.22 + github.com/consensys/bavard v0.1.24 github.com/consensys/compress v0.2.5 github.com/consensys/gnark-crypto v0.14.1-0.20241122181107-03e007d865c0 github.com/fxamacker/cbor/v2 v2.7.0 diff --git a/go.sum b/go.sum index 9f971f37cf..e4a0449401 100644 --- a/go.sum +++ b/go.sum @@ -57,12 +57,10 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/consensys/bavard v0.1.22 h1:Uw2CGvbXSZWhqK59X0VG/zOjpTFuOMcPLStrp1ihI0A= -github.com/consensys/bavard v0.1.22/go.mod h1:k/zVjHHC4B+PQy1Pg7fgvG3ALicQw540Crag8qx+dZs= +github.com/consensys/bavard v0.1.24 h1:Lfe+bjYbpaoT7K5JTFoMi5wo9V4REGLvQQbHmatoN2I= +github.com/consensys/bavard v0.1.24/go.mod h1:k/zVjHHC4B+PQy1Pg7fgvG3ALicQw540Crag8qx+dZs= github.com/consensys/compress v0.2.5 h1:gJr1hKzbOD36JFsF1AN8lfXz1yevnJi1YolffY19Ntk= github.com/consensys/compress v0.2.5/go.mod h1:pyM+ZXiNUh7/0+AUjUf9RKUM6vSH7T/fsn5LLS0j1Tk= -github.com/consensys/gnark-crypto v0.14.1-0.20241010154951-6638408a49f3 h1:jVatckGR1s3OHs4QnGsppX+w2P3eedlWxi7ZFq56rjA= -github.com/consensys/gnark-crypto v0.14.1-0.20241010154951-6638408a49f3/go.mod h1:F/hJyWBcTr1sWeifAKfEN3aVb3G4U5zheEC8IbWQun4= github.com/consensys/gnark-crypto v0.14.1-0.20241122181107-03e007d865c0 h1:uFZaZWG0FOoiFN3fAQzH2JXDuybdNwiJzBujy81YtU4= github.com/consensys/gnark-crypto v0.14.1-0.20241122181107-03e007d865c0/go.mod h1:F/hJyWBcTr1sWeifAKfEN3aVb3G4U5zheEC8IbWQun4= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= diff --git a/integration_test.go b/integration_test.go index 3909dd4161..fbc35b4cfc 100644 --- a/integration_test.go +++ b/integration_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package gnark_test diff --git a/internal/generator/backend/main.go b/internal/generator/backend/main.go index 38ed29bc5e..d5c8ae0045 100644 --- a/internal/generator/backend/main.go +++ b/internal/generator/backend/main.go @@ -12,7 +12,7 @@ import ( "github.com/consensys/gnark-crypto/field/generator/config" ) -const copyrightHolder = "ConsenSys Software Inc." +const copyrightHolder = "Consensys Software Inc." var bgen = bavard.NewBatchGenerator(copyrightHolder, 2020, "gnark") diff --git a/internal/generator/backend/template/zkpschemes/groth16/groth16.verify.go.tmpl b/internal/generator/backend/template/zkpschemes/groth16/groth16.verify.go.tmpl index 97e953a7d6..06abd155e7 100644 --- a/internal/generator/backend/template/zkpschemes/groth16/groth16.verify.go.tmpl +++ b/internal/generator/backend/template/zkpschemes/groth16/groth16.verify.go.tmpl @@ -136,7 +136,7 @@ func Verify(proof *Proof, vk *VerifyingKey, publicWitness fr.Vector, opts ...bac // ExportSolidity writes a solidity Verifier contract on provided writer. // This is an experimental feature and gnark solidity generator as not been thoroughly tested. // -// See https://github.com/ConsenSys/gnark-tests for example usage. +// See https://github.com/Consensys/gnark-tests for example usage. func (vk *VerifyingKey) ExportSolidity(w io.Writer, exportOpts ...solidity.ExportOption) error { cfg, err := solidity.NewExportConfig(exportOpts...) log := logger.Logger() diff --git a/internal/generator/backend/template/zkpschemes/plonk/plonk.verify.go.tmpl b/internal/generator/backend/template/zkpschemes/plonk/plonk.verify.go.tmpl index f7368f4726..8cae28969e 100644 --- a/internal/generator/backend/template/zkpschemes/plonk/plonk.verify.go.tmpl +++ b/internal/generator/backend/template/zkpschemes/plonk/plonk.verify.go.tmpl @@ -379,7 +379,7 @@ func deriveRandomness(fs *fiatshamir.Transcript, challenge string, points ...*cu {{if eq .Curve "BN254"}} // ExportSolidity exports the verifying key to a solidity smart contract. // -// See https://github.com/ConsenSys/gnark-tests for example usage. +// See https://github.com/Consensys/gnark-tests for example usage. // // Code has not been audited and is provided as-is, we make no guarantees or warranties to its safety and reliability. func (vk *VerifyingKey) ExportSolidity(w io.Writer, exportOpts ...solidity.ExportOption) error { diff --git a/internal/tinyfield/arith.go b/internal/tinyfield/arith.go index 958a22ceb5..02aedba1ff 100644 --- a/internal/tinyfield/arith.go +++ b/internal/tinyfield/arith.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 ConsenSys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by consensys/gnark-crypto DO NOT EDIT diff --git a/internal/tinyfield/doc.go b/internal/tinyfield/doc.go index b113dd2a67..a8b6fce697 100644 --- a/internal/tinyfield/doc.go +++ b/internal/tinyfield/doc.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 ConsenSys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by consensys/gnark-crypto DO NOT EDIT diff --git a/internal/tinyfield/element.go b/internal/tinyfield/element.go index 5b3bce6659..5d7e45ae33 100644 --- a/internal/tinyfield/element.go +++ b/internal/tinyfield/element.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 ConsenSys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by consensys/gnark-crypto DO NOT EDIT diff --git a/internal/tinyfield/element_ops_purego.go b/internal/tinyfield/element_ops_purego.go index 614d8717ca..609d9cbd78 100644 --- a/internal/tinyfield/element_ops_purego.go +++ b/internal/tinyfield/element_ops_purego.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 ConsenSys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by consensys/gnark-crypto DO NOT EDIT diff --git a/internal/tinyfield/element_test.go b/internal/tinyfield/element_test.go index 85dcdcd893..64d9667a54 100644 --- a/internal/tinyfield/element_test.go +++ b/internal/tinyfield/element_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 ConsenSys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by consensys/gnark-crypto DO NOT EDIT diff --git a/internal/tinyfield/vector.go b/internal/tinyfield/vector.go index 703832e720..6b045db8cd 100644 --- a/internal/tinyfield/vector.go +++ b/internal/tinyfield/vector.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 ConsenSys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by consensys/gnark-crypto DO NOT EDIT diff --git a/internal/tinyfield/vector_test.go b/internal/tinyfield/vector_test.go index fc02cc1279..d17149d308 100644 --- a/internal/tinyfield/vector_test.go +++ b/internal/tinyfield/vector_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys Software Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 ConsenSys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Code generated by consensys/gnark-crypto DO NOT EDIT diff --git a/internal/utils/convert.go b/internal/utils/convert.go index 3bc19c6758..488e58f712 100644 --- a/internal/utils/convert.go +++ b/internal/utils/convert.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package utils diff --git a/internal/utils/convert_test.go b/internal/utils/convert_test.go index 727223e919..e2459bf0d4 100644 --- a/internal/utils/convert_test.go +++ b/internal/utils/convert_test.go @@ -1,16 +1,5 @@ -// Copyright 2020 ConsenSys AG -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package utils diff --git a/io/io.go b/io/io.go index 3d6847f35e..a2a0a37d86 100644 --- a/io/io.go +++ b/io/io.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Package io offers serialization interfaces for gnark objects. package io diff --git a/std/accumulator/merkle/verify.go b/std/accumulator/merkle/verify.go index 3ec92412d6..f9cdd42e1f 100644 --- a/std/accumulator/merkle/verify.go +++ b/std/accumulator/merkle/verify.go @@ -26,21 +26,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Package merkle provides a ZKP-circuit function to verify merkle proofs. package merkle diff --git a/std/accumulator/merkle/verify_test.go b/std/accumulator/merkle/verify_test.go index 3a5a74fec2..03966b33d2 100644 --- a/std/accumulator/merkle/verify_test.go +++ b/std/accumulator/merkle/verify_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package merkle diff --git a/std/algebra/native/fields_bls12377/e12.go b/std/algebra/native/fields_bls12377/e12.go index 147a530119..13396c6d79 100644 --- a/std/algebra/native/fields_bls12377/e12.go +++ b/std/algebra/native/fields_bls12377/e12.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls12377 diff --git a/std/algebra/native/fields_bls12377/e12_test.go b/std/algebra/native/fields_bls12377/e12_test.go index 774e9c0841..bf10906813 100644 --- a/std/algebra/native/fields_bls12377/e12_test.go +++ b/std/algebra/native/fields_bls12377/e12_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls12377 diff --git a/std/algebra/native/fields_bls12377/e2.go b/std/algebra/native/fields_bls12377/e2.go index 1a8390367c..3dcc1e84e8 100644 --- a/std/algebra/native/fields_bls12377/e2.go +++ b/std/algebra/native/fields_bls12377/e2.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls12377 diff --git a/std/algebra/native/fields_bls12377/e2_test.go b/std/algebra/native/fields_bls12377/e2_test.go index a21cfb4067..87e76aa05d 100644 --- a/std/algebra/native/fields_bls12377/e2_test.go +++ b/std/algebra/native/fields_bls12377/e2_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls12377 diff --git a/std/algebra/native/fields_bls12377/e6.go b/std/algebra/native/fields_bls12377/e6.go index b9af8c4f41..bde75bfe21 100644 --- a/std/algebra/native/fields_bls12377/e6.go +++ b/std/algebra/native/fields_bls12377/e6.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls12377 diff --git a/std/algebra/native/fields_bls12377/e6_test.go b/std/algebra/native/fields_bls12377/e6_test.go index 9024377490..5b7a2b0844 100644 --- a/std/algebra/native/fields_bls12377/e6_test.go +++ b/std/algebra/native/fields_bls12377/e6_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls12377 diff --git a/std/algebra/native/fields_bls24315/e12.go b/std/algebra/native/fields_bls24315/e12.go index 2c9897c338..15f54381fc 100644 --- a/std/algebra/native/fields_bls24315/e12.go +++ b/std/algebra/native/fields_bls24315/e12.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls24315 diff --git a/std/algebra/native/fields_bls24315/e12_test.go b/std/algebra/native/fields_bls24315/e12_test.go index 8768000aeb..88da510cd2 100644 --- a/std/algebra/native/fields_bls24315/e12_test.go +++ b/std/algebra/native/fields_bls24315/e12_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls24315 diff --git a/std/algebra/native/fields_bls24315/e2.go b/std/algebra/native/fields_bls24315/e2.go index 396c20707a..f104264bd3 100644 --- a/std/algebra/native/fields_bls24315/e2.go +++ b/std/algebra/native/fields_bls24315/e2.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls24315 diff --git a/std/algebra/native/fields_bls24315/e24.go b/std/algebra/native/fields_bls24315/e24.go index 5a68c67d22..e7c4609466 100644 --- a/std/algebra/native/fields_bls24315/e24.go +++ b/std/algebra/native/fields_bls24315/e24.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls24315 diff --git a/std/algebra/native/fields_bls24315/e24_test.go b/std/algebra/native/fields_bls24315/e24_test.go index 9201188bc0..cf0a632c93 100644 --- a/std/algebra/native/fields_bls24315/e24_test.go +++ b/std/algebra/native/fields_bls24315/e24_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls24315 diff --git a/std/algebra/native/fields_bls24315/e2_test.go b/std/algebra/native/fields_bls24315/e2_test.go index a5419ddb9f..9523989a0d 100644 --- a/std/algebra/native/fields_bls24315/e2_test.go +++ b/std/algebra/native/fields_bls24315/e2_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls24315 diff --git a/std/algebra/native/fields_bls24315/e4.go b/std/algebra/native/fields_bls24315/e4.go index 0bd78e2820..e0df040a05 100644 --- a/std/algebra/native/fields_bls24315/e4.go +++ b/std/algebra/native/fields_bls24315/e4.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls24315 diff --git a/std/algebra/native/fields_bls24315/e4_test.go b/std/algebra/native/fields_bls24315/e4_test.go index be1daa3fff..6585e824e1 100644 --- a/std/algebra/native/fields_bls24315/e4_test.go +++ b/std/algebra/native/fields_bls24315/e4_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fields_bls24315 diff --git a/std/algebra/native/sw_bls12377/g1.go b/std/algebra/native/sw_bls12377/g1.go index 84f038607a..8d777c5bc6 100644 --- a/std/algebra/native/sw_bls12377/g1.go +++ b/std/algebra/native/sw_bls12377/g1.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls12377 diff --git a/std/algebra/native/sw_bls12377/g1_test.go b/std/algebra/native/sw_bls12377/g1_test.go index af34f7256c..6c148b61e4 100644 --- a/std/algebra/native/sw_bls12377/g1_test.go +++ b/std/algebra/native/sw_bls12377/g1_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls12377 diff --git a/std/algebra/native/sw_bls12377/g2.go b/std/algebra/native/sw_bls12377/g2.go index 3b8e273dc5..a0ef28a670 100644 --- a/std/algebra/native/sw_bls12377/g2.go +++ b/std/algebra/native/sw_bls12377/g2.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls12377 diff --git a/std/algebra/native/sw_bls12377/g2_test.go b/std/algebra/native/sw_bls12377/g2_test.go index bd471b5b28..e5d3afda68 100644 --- a/std/algebra/native/sw_bls12377/g2_test.go +++ b/std/algebra/native/sw_bls12377/g2_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls12377 diff --git a/std/algebra/native/sw_bls12377/pairing.go b/std/algebra/native/sw_bls12377/pairing.go index 9cd1ce851b..c19c0fcd7f 100644 --- a/std/algebra/native/sw_bls12377/pairing.go +++ b/std/algebra/native/sw_bls12377/pairing.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls12377 diff --git a/std/algebra/native/sw_bls12377/pairing_test.go b/std/algebra/native/sw_bls12377/pairing_test.go index 1956764d2a..6fa2b099d9 100644 --- a/std/algebra/native/sw_bls12377/pairing_test.go +++ b/std/algebra/native/sw_bls12377/pairing_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls12377 diff --git a/std/algebra/native/sw_bls12377/precomputations.go b/std/algebra/native/sw_bls12377/precomputations.go index 6ae5613328..05309c5c44 100644 --- a/std/algebra/native/sw_bls12377/precomputations.go +++ b/std/algebra/native/sw_bls12377/precomputations.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls12377 diff --git a/std/algebra/native/sw_bls24315/g1.go b/std/algebra/native/sw_bls24315/g1.go index 062dbf23ab..73c71b4fc7 100644 --- a/std/algebra/native/sw_bls24315/g1.go +++ b/std/algebra/native/sw_bls24315/g1.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls24315 diff --git a/std/algebra/native/sw_bls24315/g1_test.go b/std/algebra/native/sw_bls24315/g1_test.go index af24836f40..4f442e3b6d 100644 --- a/std/algebra/native/sw_bls24315/g1_test.go +++ b/std/algebra/native/sw_bls24315/g1_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls24315 diff --git a/std/algebra/native/sw_bls24315/g2.go b/std/algebra/native/sw_bls24315/g2.go index ed74bec16f..c3f7938b10 100644 --- a/std/algebra/native/sw_bls24315/g2.go +++ b/std/algebra/native/sw_bls24315/g2.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls24315 diff --git a/std/algebra/native/sw_bls24315/g2_test.go b/std/algebra/native/sw_bls24315/g2_test.go index 26bc2db463..a127051ee3 100644 --- a/std/algebra/native/sw_bls24315/g2_test.go +++ b/std/algebra/native/sw_bls24315/g2_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls24315 diff --git a/std/algebra/native/sw_bls24315/pairing.go b/std/algebra/native/sw_bls24315/pairing.go index 50d741f602..ba1134540e 100644 --- a/std/algebra/native/sw_bls24315/pairing.go +++ b/std/algebra/native/sw_bls24315/pairing.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls24315 diff --git a/std/algebra/native/sw_bls24315/pairing_test.go b/std/algebra/native/sw_bls24315/pairing_test.go index 6f4ed72d97..dc01c14314 100644 --- a/std/algebra/native/sw_bls24315/pairing_test.go +++ b/std/algebra/native/sw_bls24315/pairing_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls24315 diff --git a/std/algebra/native/sw_bls24315/precomputations.go b/std/algebra/native/sw_bls24315/precomputations.go index d0c5eb3227..192356970e 100644 --- a/std/algebra/native/sw_bls24315/precomputations.go +++ b/std/algebra/native/sw_bls24315/precomputations.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package sw_bls24315 diff --git a/std/algebra/native/twistededwards/curve_test.go b/std/algebra/native/twistededwards/curve_test.go index 1aee963405..73349f010f 100644 --- a/std/algebra/native/twistededwards/curve_test.go +++ b/std/algebra/native/twistededwards/curve_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package twistededwards diff --git a/std/algebra/native/twistededwards/point.go b/std/algebra/native/twistededwards/point.go index 4b17d61a26..741a2347eb 100644 --- a/std/algebra/native/twistededwards/point.go +++ b/std/algebra/native/twistededwards/point.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package twistededwards diff --git a/std/algebra/native/twistededwards/twistededwards.go b/std/algebra/native/twistededwards/twistededwards.go index 20c0de3aba..4da37e64eb 100644 --- a/std/algebra/native/twistededwards/twistededwards.go +++ b/std/algebra/native/twistededwards/twistededwards.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package twistededwards diff --git a/std/fiat-shamir/transcript.go b/std/fiat-shamir/transcript.go index 5951e88b22..82dc8f1461 100644 --- a/std/fiat-shamir/transcript.go +++ b/std/fiat-shamir/transcript.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fiatshamir diff --git a/std/fiat-shamir/transcript_test.go b/std/fiat-shamir/transcript_test.go index bea2dc252a..f95db9230e 100644 --- a/std/fiat-shamir/transcript_test.go +++ b/std/fiat-shamir/transcript_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package fiatshamir diff --git a/std/hash/hash.go b/std/hash/hash.go index 24854c577f..d537e7f56b 100644 --- a/std/hash/hash.go +++ b/std/hash/hash.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Package hash provides an interface that hash functions (as gadget) should implement. package hash diff --git a/std/hash/mimc/encrypt.go b/std/hash/mimc/encrypt.go index 78efcfaf81..5e8c6f12a7 100644 --- a/std/hash/mimc/encrypt.go +++ b/std/hash/mimc/encrypt.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package mimc diff --git a/std/hash/mimc/mimc.go b/std/hash/mimc/mimc.go index 1d6fa4d35c..69ff66191b 100644 --- a/std/hash/mimc/mimc.go +++ b/std/hash/mimc/mimc.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package mimc diff --git a/std/hash/mimc/mimc_test.go b/std/hash/mimc/mimc_test.go index 6739be9359..e698a95f62 100644 --- a/std/hash/mimc/mimc_test.go +++ b/std/hash/mimc/mimc_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package mimc diff --git a/std/math/emulated/element_test.go b/std/math/emulated/element_test.go index a711dda068..510d3d6a96 100644 --- a/std/math/emulated/element_test.go +++ b/std/math/emulated/element_test.go @@ -845,7 +845,7 @@ func TestIssue348UnconstrainedLimbs(t *testing.T) { // for freshly initialised elements (using NewElement, or directly by // constructing the structure), we do not automatically enforce the widths. // - // The bug is tracked in https://github.com/ConsenSys/gnark/issues/348 + // The bug is tracked in https://github.com/Consensys/gnark/issues/348 a := big.NewInt(5) b, _ := new(big.Int).SetString("21888242871839275222246405745257275088548364400416034343698204186575808495612", 10) assert := test.NewAssert(t) diff --git a/std/signature/eddsa/eddsa_test.go b/std/signature/eddsa/eddsa_test.go index 0022bc23e9..1553cd8a05 100644 --- a/std/signature/eddsa/eddsa_test.go +++ b/std/signature/eddsa/eddsa_test.go @@ -1,18 +1,5 @@ -/* -Copyright © 2020 ConsenSys - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package eddsa diff --git a/test/assert.go b/test/assert.go index a5ed71214a..253690b072 100644 --- a/test/assert.go +++ b/test/assert.go @@ -1,18 +1,5 @@ -/* -Copyright © 2021 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package test diff --git a/test/assert_options.go b/test/assert_options.go index 570b3bbaa9..4828b274ab 100644 --- a/test/assert_options.go +++ b/test/assert_options.go @@ -133,7 +133,7 @@ func NoTestEngine() TestingOption { // When the tags are set; this requires gnark-solidity-checker to be installed, which in turns // requires solc and abigen to be reachable in the PATH. // -// See https://github.com/ConsenSys/gnark-solidity-checker for more details. +// See https://github.com/Consensys/gnark-solidity-checker for more details. func NoSolidityChecks() TestingOption { return func(opt *testingConfig) error { opt.checkSolidity = false diff --git a/test/doc.go b/test/doc.go index 3574ff5271..65ccf8e59a 100644 --- a/test/doc.go +++ b/test/doc.go @@ -1,18 +1,5 @@ -/* -Copyright © 2021 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. // Package test provides components or functions to help test and fuzz gnark circuits. package test diff --git a/test/engine.go b/test/engine.go index 38182d8811..fd84ab4eea 100644 --- a/test/engine.go +++ b/test/engine.go @@ -1,18 +1,5 @@ -/* -Copyright © 2021 ConsenSys Software Inc. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ +// Copyright 2020-2024 Consensys Software Inc. +// Licensed under the Apache License, Version 2.0. See the LICENSE file for details. package test diff --git a/version_test.go b/version_test.go index f3dde520a1..eff83afb34 100644 --- a/version_test.go +++ b/version_test.go @@ -12,9 +12,9 @@ import ( func TestVersion(t *testing.T) { assert := require.New(t) // git describe --abbrev=0 --> doesn't work on CI - // git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags https://github.com/consensys/gnark-crypto '*.*.*' + // git -c 'versionsort.suffix=-' ls-remote --exit-code --refs --sort='version:refname' --tags https://github.com/Consensys/gnark-crypto '*.*.*' cmd := exec.Command("git", "-c", "versionsort.suffix=-", "ls-remote", "--exit-code", "--refs", "--sort=version:refname", - "--tags", "https://github.com/ConsenSys/gnark", "*.*.*") + "--tags", "https://github.com/Consensys/gnark", "*.*.*") stdout, err := cmd.Output() assert.NoError(err)