r4bbit
0acb522fe7
chore(certora): add invariant that paid slots always have a finished or cancelled request
2024-08-23 14:01:43 +02:00
r4bbit
a1229b5af3
chore(certora): introduce invariant that finished slots always belong to finished requests
2024-08-23 14:01:43 +02:00
r4bbit
5b5a3c9e2e
chore(certora): introduce invariant that failed requests are always ended
2024-08-23 14:01:43 +02:00
r4bbit
7ce7a5dda0
chore(certora): add invariant that cancelled requests are always expired
2024-08-23 14:01:43 +02:00
r4bbit
ebdf9ed366
fix(certora): fix rule that missed slots == number of issed periods
2024-08-23 14:01:43 +02:00
Andrea Franz
92ab1e50dd
chore(certora): set MarketplaceHarness as parametric_contract config value
2024-08-19 14:07:05 +02:00
Eric
73a2ca0bd3
feat: adds an optional `payoutAddress` to allow payouts to be paid to separate address ( #144 )
...
* initial commit for splitting payouts
Collateral goes to slot's host address, while reward payouts go to the slot's host payoutAddress
* Add fillSlot overload to make payoutAddress "optional"
* add tests for payoutAddress
* add doc to patchFillSlotOverloads
* formatting
* remove optional payoutAddress parameter
* Move payoutAddress to freeSlot
- remove payoutAddress parameter from `fillSlot`
- remove `payoutAddress` from slot struct and storage
- add payoutAddress parameter to `freeSlot`, preventing the need for storage
* formatting
* update certora spec to match updated function signature
* Add withdrawAddress to withdrawFunds
- prevent erc20 msg.sender blacklisting
* Update tests for paying out to withdrawAddress
* formatting
* Add collateralRecipient
* refactor: change withdrawFunds and freeSlot overloads
- `withdrawFunds` now has an option withdrawRecipient parameter
- `freeSlot` now has two optional parameters: rewardRecipient, and collateralRecipient. Both or none must be specified.
* update certora spec for new sigs
2024-08-19 17:09:48 +10:00
Andrea Franz
29f39d52c7
chore(certora): slot's missed periods count should be equal to the count of slot's missing periods set to true ( #155 )
2024-08-15 12:51:14 +02:00
r4bbit
a27da9738a
chore(certora): verify SlotState and RequestState changes count
...
This adds a rule to formally verify that the `SlotState` and
`RequestState` of any given `Slot` or `Request` does not change more
than once per function call.
Closes #129
2024-08-14 11:10:16 +02:00
Eric
ed428767b3
chore: add `downtimeProduct` configuration parameter ( #138 )
...
* add `downtimeProduct` configuration parameter
* formatting
2024-08-14 15:50:32 +10:00
r4bbit
1d36256230
chore(certora): add invariant that proofs cant be missing when in period
...
This invariant verifies that any given proof cannot be marked as missing
if the slot period has not passed yet.
2024-08-13 09:39:29 +02:00
r4bbit
e04f8ae909
chore(certora): add invariant that totalSupply is sumOfBalances
...
This invariant ensures that the total supply of the used token in the
contract is always greater equal to the sum of all balances within the
token combined.
2024-08-12 15:55:45 +02:00
r4bbit
2e3f775a0d
chore: formally verify request state changes
...
This commit adds CVL rule that formally verifies the state changes of
any given request in relation to the functions of the contract that can
cause them.
Closes #128
2024-08-12 15:26:59 +02:00
Adam Uhlíř
fe8da1013d
docs: proofs comments ( #118 )
...
Co-authored-by: Eric <5089238+emizzle@users.noreply.github.com>
Co-authored-by: markspanbroek <mark@spanbroek.net>
2024-08-08 09:35:35 +00:00
Slava
74b1a9efb7
Add codex_testnet deployment artifacts ( #145 )
...
https://github.com/codex-storage/infra-codex/issues/186
2024-08-07 18:58:31 +03:00
r4bbit
0f596e639a
chore(ci): update certora-cli version in CI tasks
...
This updates `certora-cli` to the latest version (at the time of the
commit, this was 7.10.1).
2024-08-06 11:01:24 +02:00
Slava
bbd57ab876
Add Codex Devnet and Testnet networks ( #135 )
...
* Add Codex Devnet and Testnet networks (#112 )
* Add circuit assets for Codex Devnet and Testnet (#112 )
2024-08-06 08:37:40 +03:00
r4bbit
e62ebf6b0e
fix: ensure requestStorage() reverts if maxSlotloss > slots ( #140 )
2024-08-05 10:58:51 +02:00
Slava
8b3761c1a7
ci: add ci job concurrency ( #136 )
...
* ci: add ci job concurrency
* ci: update actions to the latest major versions
2024-08-01 07:51:52 +03:00
r4bbit
688a8ed929
Set up certora and implement first rules ( #122 )
...
Co-authored-by: 0xb337r007 <0xe4e5@proton.me>
Co-authored-by: Adam Uhlíř <adam@uhlir.dev>
2024-07-24 18:50:18 +02:00
Giuliano Mega
7ad26688a3
update circuit assets to latest version for hardhat and dist test net ( #121 )
2024-07-17 16:39:15 -03:00
Slava
924d192de1
ci: update actions to the latest major versions ( #120 )
2024-06-14 13:53:18 +02:00
Adam Uhlíř
57e8cd5013
feat: expiry specified as duration ( #99 )
2024-05-06 15:13:32 +02:00
Jaremy Creechley
4d9320a582
Update .tool-versions ( #94 )
2024-03-20 13:09:32 +00:00
Ben Bierens
a58427e496
Updates dist-test circuit ( #96 )
...
* Updates dist-test circuit
* Removes unused example-proofs for dist-tests
2024-03-18 13:33:28 +01:00
Mark Spanbroek
8ecc5bfc66
readme: update todo list, we have actual proofs
2024-03-13 15:28:49 +01:00
Mark Spanbroek
53999c74d3
Provide all gas to precompiles
...
Rationale: subtracting 2000 from the provided gas seems
arbitrary, and doesn't provide any benefits. Whether
verify() fails with an out-of-gas error, or returns
'false', in both cases the proof is not verified.
Co-Authored-By: Balazs Komuves <bkomuves@gmail.com>
2024-03-13 15:25:59 +01:00
Mark Spanbroek
84eba26f76
Document that group elements are checked by precompiles
...
Co-Authored-By: Balazs Komuves <bkomuves@gmail.com>
2024-03-13 15:25:59 +01:00
Mark Spanbroek
c55b34fc76
uint -> uint256
...
Co-Authored-By: Balazs Komuves <bkomuves@gmail.com>
2024-03-13 15:25:59 +01:00
Mark Spanbroek
3b6f7b8ec7
Rename _Q -> _R
...
Using 'r' for the size of the scalar field is
standard practice.
Co-Authored-By: Balazs Komuves <bkomuves@gmail.com>
2024-03-13 15:25:59 +01:00
Mark Spanbroek
ab1b91fe49
Return false when incorrect amount of public inputs
2024-03-13 15:25:59 +01:00
Mark Spanbroek
bd489c7f9a
Groth16Verifier implements its interface
2024-03-13 15:25:59 +01:00
Mark Spanbroek
f9637f192b
Rename: vkX -> combination
2024-03-13 15:25:59 +01:00
Mark Spanbroek
a4ce10f4de
One less addition
2024-03-13 15:25:59 +01:00
Mark Spanbroek
df58f2d3db
Formatting
2024-03-13 15:25:59 +01:00
Mark Spanbroek
576254423e
Return false when public inputs are invalid
2024-03-13 15:25:59 +01:00
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
Ben Bierens
c3d7db3456
from the codex-storage-proofs-circuits commit 066bd73a0bdebc813a231035ea50e1c91f139f2a ( #92 )
2024-03-08 12:56:26 +01:00