Commit Graph

437 Commits

Author SHA1 Message Date
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 862ea56e8b Formatting 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 61be76da0e Add preprocessing to generate verification contract 2024-01-25 13:08:10 +01:00
Mark Spanbroek c08e8be8f9 Add verification keys and example proof for local deployment 2024-01-25 13:08:10 +01:00
Mark Spanbroek 6b8d3ca83b MIT licensed version of solidity Groth16 verifier
Copied from 2e9be76932/templates/verifier_original.sol
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
Mark Spanbroek b625f0d519 Merkle root is 32 bytes 2023-11-22 14:43:11 +01:00
Mark Spanbroek efafa43910 Remove PoR parameters, add merkle root for storage proofs 2023-11-22 14:43:11 +01:00
Adam Uhlíř 14e453ac31
feat: partial payouts for cancelled requests (#69) 2023-10-16 11:14:02 +02:00
Mark Spanbroek 1854dfba99 Redeployed on taiko test net after rebase 2023-09-13 15:05:08 +02:00
Mark Spanbroek ed4717e5ea Fix hardhat error "invalid account" 2023-09-13 15:05:08 +02:00
Mark Spanbroek ffcc0e5ee6 Deployed on taiko test net 2023-09-13 15:05:08 +02:00
Mark Spanbroek 0e89d293e4 [taiko] Add RPC endpoint for Taiko test net 2023-09-13 15:05:08 +02:00
Slava 12b595b8d9
Add reusable workflow for Docker (codex-storage/cs-codex-dist-tests/issues/42) (#67) 2023-08-17 06:05:52 +03:00
Slava 49da1f9b30
chore: Bump Node version (#66) 2023-08-16 11:31:41 +02:00
Ben Bierens ac38d7f837
chore: update dependencies (#64)
Co-authored-by: Veaceslav Doina <20563034+veaceslavdoina@users.noreply.github.com>
2023-08-10 13:20:29 +02:00
Slava b4e4897a37
Add Docker builds for Dist-Tests (#63)
https://github.com/codex-storage/cs-codex-dist-tests/issues/34
2023-07-21 11:08:29 +03:00
Slava d082dc71be
Update Docker workflow (#62) 2023-07-11 19:36:21 +03:00
Eric Mastro 230e7276e2
Support slot queue (#61)
* feat: add request expiry to StorageRequested event

* add slot index to SlotFreed event

* copy slotIndex before delete for emit

* Update tests
2023-06-22 06:18:33 +10:00
Mark Spanbroek 6801f2c009 [fuzzing] document `npm run fuzz` in readme 2023-06-19 14:58:47 +02:00
markspanbroek 96aa98c734 [fuzzing] Use correct hashbang
Co-authored-by: Adam Uhlíř <adam@uhlir.dev>
2023-06-19 14:58:47 +02:00
Mark Spanbroek f530bc5081 [fuzzing] Only use docker image on x86_64 machines
The echidna docker image does not support ARM
Macs, for example.
2023-06-19 14:58:47 +02:00
Mark Spanbroek b396f13359 [fuzzing] Fix CI 2023-06-19 14:58:47 +02:00
Mark Spanbroek 05ef48bf7f [fuzzing] Add suggestions for a long test run 2023-06-19 14:58:47 +02:00
Mark Spanbroek d4fc6bbf7c [fuzzing] update to Echidna 2.2.0 2023-06-19 14:58:47 +02:00
Mark Spanbroek a7dd840eaa [fuzzing] transfers out of the contract should always pass
When a transfer of tokens from the contract fails, then the
fuzzer has found a bug. Changing `require` to `assert`
ensures that the fuzzer considers this a test failure.
2023-06-19 14:58:47 +02:00
Mark Spanbroek 03e5546121 [marketplace] formatting 2023-06-19 14:58:47 +02:00
Mark Spanbroek 42d4778dcc [fuzzing] compile contracts before invoking docker
Ensures that `npm run fuzz` will succeed whether or
not the contracts were compiled beforehand.
2023-06-19 14:58:47 +02:00
Mark Spanbroek c1b412c589 [fuzzing] allow fuzz.sh to be called from any directory 2023-06-19 14:58:47 +02:00
Mark Spanbroek 25f52c72b1 [ci] Run fuzzing in CI 2023-06-19 14:58:47 +02:00
Mark Spanbroek 3390e21071 [fuzzing] Enable fuzzing for Marketplace
Replaces runtime invariant checks with fuzzing tests,
simplifying the contract code and lowering gas costs.
2023-06-19 14:58:47 +02:00
benbierens d57cfc69cd Fix "invalid value undefined" in hardhat configuration 2023-06-19 10:49:40 +02:00
Eric Mastro c7b69893a1 only mint tokens when on local hardhat network 2023-06-19 10:49:40 +02:00