Commit Graph

15 Commits

Author SHA1 Message Date
r4bbit faeb808d41 fix(certora): fix invariant that requests are started when slots filled 2024-08-23 14:01:43 +02:00
r4bbit 7c542e72b6 chore(certora); add rule to verify slot is failed or free when request
has failed
2024-08-23 14:01:43 +02:00
r4bbit 7dc5566cd9 chore(certora): add invariant that cancelled slots always belong to cancelled requests 2024-08-23 14:01:43 +02:00
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
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
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
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