277 Commits

Author SHA1 Message Date
Mark Spanbroek
d38e0f5954 make functions private 2024-03-13 15:25:59 +01:00
Mark Spanbroek
b676b245d6 Improve argument names 2024-03-13 15:25:59 +01:00
Mark Spanbroek
235f11a863 Primes are named as in EIP-197 2024-03-13 15:25:59 +01:00
Mark Spanbroek
a4777bade5 Reordering, formatting 2024-03-13 15:25:59 +01:00
Mark Spanbroek
c7687c5b83 Remove library 2024-03-13 15:25:59 +01:00
Mark Spanbroek
3840e2bf92 Remove unnecessary if-statement 2024-03-13 15:25:59 +01:00
Mark Spanbroek
949909fd98 Simpify pairing check 2024-03-13 15:25:59 +01:00
Mark Spanbroek
601ed18455 Verifier returns false when one of the operations fails 2024-03-13 15:25:59 +01:00
Mark Spanbroek
c495770679 Pairing check returns boolean success and outcome 2024-03-13 15:25:59 +01:00
Mark Spanbroek
a97a598b0e Add and multiply return bool success 2024-03-13 15:25:59 +01:00
Mark Spanbroek
111ed0826c Rename addition -> add, scalarMul -> multiply 2024-03-13 15:25:59 +01:00
Mark Spanbroek
91388096c1 Fix: size in bytes of input and output were too high 2024-03-13 15:25:59 +01:00
Mark Spanbroek
80dfa41e32 Remove calls to invalid()
Gas estimation seems to work just fine without them?
2024-03-13 15:25:59 +01:00
Mark Spanbroek
f413f1ea64 Represent elements from field F_{p^2} as real + i * imag
Reason: Circom and Ethereum EIP-197 both represent these
elements as arrays of two elements, but they do it in
reverse order of each other. This change makes it explicit
which number is the real part, and which number is the
imaginary part.
2024-02-21 10:42:41 +01:00
Mark Spanbroek
6c9f797f40 Explicit getters for token and config
Implicit getters have slightly different semantics when
it comes to ABI encoding their results.
2024-02-06 12:27:40 +01:00
Mark Spanbroek
ec803adb3d Test verifier accepts any proof, except all 0 values 2024-01-31 15:45:01 +01:00
Adam Uhlíř
331bc56e8f
feat: zkey hash in marketplace config (#81) 2024-01-30 06:36:27 +01:00
Mark Spanbroek
903cdf3541 Refactor verifier contract: formatting 2024-01-25 13:08:10 +01:00
Mark Spanbroek
70b22b241f Refactor verifier contract: remove unnecessary conversions 2024-01-25 13:08:10 +01:00
Mark Spanbroek
65655e3646 Refactor verifier contract: Formatting 2024-01-25 13:08:10 +01:00
Mark Spanbroek
676f4fc85e Refactor verifier contract: use structs from Groth16.sol 2024-01-25 13:08:10 +01:00
Mark Spanbroek
dc0c2b7956 Refactor verifier contract: remove dead code 2024-01-25 13:08:10 +01:00
Mark Spanbroek
90c821fb61 Refactor verifier contract: remove unnecessary conversions 2024-01-25 13:08:10 +01:00
Mark Spanbroek
a066b6a007 Refactor verifier contract: fix linter warnings 2024-01-25 13:08:10 +01:00
Mark Spanbroek
6baf80d6f4 Refactor verifier contract: remove preprocessing 2024-01-25 13:08:10 +01:00
Mark Spanbroek
c0ca508a6b Refactor verifier contract: public input as dynamic array 2024-01-25 13:08:10 +01:00
Mark Spanbroek
39a2d56a63 Refactor verifier contract: verification key as parameter 2024-01-25 13:08:10 +01:00
Mark Spanbroek
f2869ff94f Refactor verifier contract: X -> x, Y -> y 2024-01-25 13:08:10 +01:00
Mark Spanbroek
d30dff1781 Refactor verifier contract: set verifying key in constructor 2024-01-25 13:08:10 +01:00
Mark Spanbroek
ef32ad9c1b Refactor verifier contract: fix typo 2024-01-25 13:08:10 +01:00
Mark Spanbroek
296447724a Refactor verifier contract: extract constants 2024-01-25 13:08:10 +01:00
Mark Spanbroek
b2509e4257 Refactor verifier contract: formatting 2024-01-25 13:08:10 +01:00
Mark Spanbroek
f3e2186ec2 Update solidity to 0.8.23 2024-01-25 13:08:10 +01:00
Mark Spanbroek
33614ee218 Calculate public inputs for ZK proof verificition 2024-01-25 13:08:10 +01:00
Mark Spanbroek
1b3b258ccc Conversion between little and big endian 2024-01-25 13:08:10 +01:00
Mark Spanbroek
38411c27ca Move submitProof() function to Marketplace 2024-01-25 13:08:10 +01:00
Mark Spanbroek
e6a918fed9 Submit proof as Groth16Proof struct 2024-01-25 13:08:10 +01:00
Mark Spanbroek
ae03690d51 Submit proof as field elements, not bytes 2024-01-25 13:08:10 +01:00
Mark Spanbroek
534f8cbf51 Cleanup verifier template 2024-01-25 13:08:10 +01:00
Mark Spanbroek
1af40f1790 Read proof from file in test 2024-01-25 13:08:10 +01:00
Mark Spanbroek
bf64de7e50 Update to solidity 0.8.8 2024-01-25 13:08:10 +01:00
Mark Spanbroek
3e3f2307d8 Remove GPL'ed verifier, replace by MIT verifier 2024-01-25 13:08:10 +01:00
Mark Spanbroek
e1657acdd0 Stub out zk proof verification in marketplace tests 2024-01-25 13:08:10 +01:00
Mark Spanbroek
e59f0f961e Submit proofs as array of bytes 2024-01-25 13:08:10 +01:00
Mark Spanbroek
d29a259090 Fix linter warnings 2024-01-25 13:08:10 +01:00
Mark Spanbroek
327ae14112 Formatting with prettier 2024-01-25 13:08:10 +01:00
Mark Spanbroek
db124ddbd9 Re-arrange marketplace constructor parameters
first configuration, then contracts that we depend on
2024-01-25 13:08:10 +01:00
Adam Uhlíř
0d9b67bb31 feat: verifier integration 2024-01-25 13:08:10 +01:00
Eric
b5f33992b6
Increase pointer by 67 blocks each time the period is increased (#75)
* Increase pointer by 67 instead of 64 for each period

Use a prime number to ensure that we don't get cycles
where we're looking at the same hash four periods
from now.

---------

Co-authored-by: Mark Spanbroek <mark@spanbroek.net>
2023-12-15 10:02:03 +11:00
Adam Uhlíř
87461f6b83
fix: check expiration is before request end (#77) 2023-12-05 11:18:43 +01:00