Eric Mastro
c14de10672
WIP: fix proof expected result
2022-06-15 17:38:08 +10:00
Eric Mastro
e6a99a0716
change test description
2022-06-15 17:37:03 +10:00
Eric Mastro
9241899044
WIP: rebase, add tests, update tests
...
Add correct proof in tests, but it’s not pairing correctly. Needs investigation.
Add tests to test for input reverts for proof verification.
Update verifyproof to test for equal array bounds in proof inputs.
Fix _isOnCurve parameter order.
2022-06-15 17:29:47 +10:00
Eric Mastro
fcd5da0e67
WIP: add further curve checks, compiler optimiser
...
- Add require checks for curve parameters and relevant tests.
- Add compiler optimisation to prevent Storage.sol from being too large to deploy.
2022-06-08 15:17:35 +10:00
Eric Mastro
f684b9a1c0
WiP: more test cases added for BN254
...
Just need real proof test cases to be included.
2022-06-08 15:16:58 +10:00
Eric Mastro
c0be4e9b1d
WIP: reorg curves, use witnet as base
...
Now that curve ops are transactions, need to change up tests so that we can verify the result somehow? https://docs.ethers.io/v5/api/contract/contract/#Contract--write
2022-06-08 15:16:08 +10:00
Eric Mastro
32ff556691
WIP: Add test for verifier
...
Needs valid values to test points that exist on the curve as well as a valid proof. Waiting on https://github.com/status-im/nim-codex/pull/101 to get valid values.
TODO: Convert Bn254.sol contract to a generic witnet EllipticCurve.sol contract and fill in values as needed for the Bn254 curve.
2022-06-08 15:15:05 +10:00
Eric Mastro
976ae66cab
WIP: reorg to allow for more curves
...
Current tests are failing because ECMUL is not a valid opcode in hardhat. Exploring alternatives.
2022-06-08 15:15:05 +10:00
Eric Mastro
98c2555036
chore: clean up
...
- Move bulk of verification to curves/Bn254Proofs.sol
- remove all unneeded structs and add Proof struct
- bring in point `isOnCurve` check so that we can use solidity compiler 0.8.x
- remove all other Bn254 library deps
- changed proof type from bool to Proof
- add Bn254 test file (uncalled yet)
TODO:
- update Proofs test such that verifyProof test is called (need to generate proof using https://github.com/status-im/nim-codex/pull/76 )
- call Bn254 tests from test harness
2022-06-08 15:06:53 +10:00
Eric Mastro
b03a415fb9
WIP: cleanup
2022-06-08 15:04:59 +10:00
Eric Mastro
cbe4024c6f
WIP: Change to passing PublicKey.key in sig verification
2022-06-08 15:04:59 +10:00
Eric Mastro
36c84f58b6
WIP: Swap over to AltBn254 solidity lib
...
Still need to figure out how to stringify TauZero and verify the signature.
2022-06-08 15:04:59 +10:00
Eric Mastro
1d4f9729b0
WIP: Got further without pairings
...
Likely use a diff lib to have a better solidity api
2022-06-08 15:04:59 +10:00
Eric Mastro
aa9d976dd4
WIP: more work but still not finished
2022-06-08 15:04:59 +10:00
Eric Mastro
c0969815a1
WIP: type conversions, start moving verifyProof
...
- Add type conversions from BLS12-381 to BN254
- start moving verifyProof over to BN254 in solidity
2022-06-08 15:04:58 +10:00
Mark Spanbroek
2bf01da728
[proofs] Submitting proof emits event containing proof
2022-04-12 09:04:29 +02:00
Mark Spanbroek
7cbb717de7
Fix tests that weren't running
2022-04-12 09:04:29 +02:00
Mark Spanbroek
6aa2894521
[marketplace] Use dynamically sized arrays for PoR
...
ABI encoding sometimes fails on large byte arrays of fixed size.
2022-04-11 12:10:57 +02:00
Mark Spanbroek
b145e66a68
[storage] add getRequest() and getOffer()
2022-04-11 12:10:57 +02:00
Mark Spanbroek
169a446769
Enable solidity optimizer
...
Contract size was becoming too large without optimization.
2022-04-11 12:10:57 +02:00
Mark Spanbroek
b8ce6c3682
[marketplace] Add erasure coding and PoR attributes to request
2022-04-11 12:10:57 +02:00
Mark Spanbroek
29b5775951
[proofs] willProofBeRequired() predicts proof requirement
2022-04-05 11:36:31 +02:00
Mark Spanbroek
111dce58e8
[proofs] Test that pointer increases by one every block
2022-04-05 11:36:31 +02:00
Mark Spanbroek
81c7dcd25a
Disallow finishing of contract that wasn't started
2022-03-22 12:41:13 +01:00
Mark Spanbroek
c606b455d6
Disallow starting an offer that was not selected
2022-03-22 12:41:13 +01:00
Mark Spanbroek
0587c2d585
Fix filename in Windows
2022-03-22 10:53:13 +01:00
Mark Spanbroek
2a745d7abe
Fix flaky test
...
Ensure that when we check whether a proof is required,
the pointer isn't about to wrap.
2022-03-15 17:01:04 +01:00
Mark Spanbroek
438fb605c0
Ensure local ethereum node has at least 256 blocks
...
Storage contract cannot be deployed when block height
is less than 256 blocks.
2022-03-15 17:01:04 +01:00
Mark Spanbroek
29698fee71
Fix tests after OpenZeppelin update
2022-03-15 17:01:04 +01:00
Mark Spanbroek
c79059e470
npm update
2022-03-15 17:01:04 +01:00
Mark Spanbroek
743d1cdb07
Update Readme now that storage requests and offers are on-chain
2022-03-15 10:17:55 +01:00
Mark Spanbroek
3fd7c756d9
Fix flaky tests
...
By ensuring that there's enough blocks left
for submitting a proof.
2022-03-15 10:01:12 +01:00
Mark Spanbroek
f8ddc4a2f6
Add getChallenge() to Storage contract
2022-03-15 10:01:12 +01:00
Mark Spanbroek
fd55afcc5a
Make pointer downtime configurable
2022-03-15 10:01:12 +01:00
Mark Spanbroek
476956c4d5
Replace pointer duos with pointer downtime design
2022-03-15 10:01:12 +01:00
Mark Spanbroek
241fcf10a5
Unlock host collateral at end of contract
2022-03-15 10:01:12 +01:00
Mark Spanbroek
f4d895113f
Fix flaky test
2022-03-15 10:01:12 +01:00
Mark Spanbroek
bb14732ddc
Remove mine*() testing functions
2022-03-15 10:01:12 +01:00
Mark Spanbroek
6d726fc2cc
Require a block height of at least 256
2022-03-15 10:01:12 +01:00
Mark Spanbroek
fd06bc00b3
Move periodOf(), periodStart(), periodEnd() into time module
2022-03-15 10:01:12 +01:00
Mark Spanbroek
07d0e33789
Disable solhint about relying on timestamp
2022-03-15 10:01:12 +01:00
Mark Spanbroek
78eaaa7812
Replace Proof implementation with new design
...
More info: https://github.com/status-im/dagger-research/pull/66
2022-03-15 10:01:12 +01:00
Mark Spanbroek
22e8ea50e2
Add EVM snapshots including time for tests
2022-03-15 10:01:12 +01:00
Mark Spanbroek
ee4683e50c
Add proof probability to Request
2022-03-15 10:01:12 +01:00
Mark Spanbroek
036a214427
Proof period and proof timeout are network constants now
2022-03-15 10:01:12 +01:00
Mark Spanbroek
c181195487
Temporarily disable test
2022-03-15 10:01:12 +01:00
Mark Spanbroek
e818d70b85
Remove Contracts in favor of Marketplace
2022-03-15 10:01:12 +01:00
Mark Spanbroek
7e7134b99d
Allow events to be filtered by request id
2022-03-15 10:01:12 +01:00
Mark Spanbroek
c835ac1cc4
Emit event when offer is selected
2022-03-15 10:01:12 +01:00
Mark Spanbroek
05fbd244e2
Formatting
2022-03-15 10:01:12 +01:00