Mark Spanbroek
fdc642b1df
vault: rename context -> fund
2025-03-04 09:36:00 +01:00
Mark Spanbroek
6e531f2087
vault: only allow deposit, transfer, etc when locked
2025-03-04 09:36:00 +01:00
Mark Spanbroek
3864559d85
vault: reorder tests
2025-03-04 09:36:00 +01:00
Mark Spanbroek
33b61f1bf6
vault: cleanup
2025-03-04 09:36:00 +01:00
Mark Spanbroek
f26cb9c04d
vault: delete lock all tokens are withdrawn or burned
2025-03-04 09:36:00 +01:00
Mark Spanbroek
140917eed3
vault: document setAutomine()
2025-03-04 09:36:00 +01:00
Mark Spanbroek
d0b8f961b2
vault: disallow designating of flowing tokens
2025-03-04 09:36:00 +01:00
Mark Spanbroek
4c6c68f9d9
vault: fix flaky time sensitive tests
...
Ensures that setting of lock and starting of
flow happen in the same block.
Therefore hardhat cannot occasionally increase
the timestamp between the two operations.
This makes predicting the balances over time
much easier.
2025-03-04 09:36:00 +01:00
Mark Spanbroek
a0e3a51b37
vault: cannot burn flowing tokens
2025-03-04 09:36:00 +01:00
Mark Spanbroek
82d490c8d0
vault: disallow transfer of flowing tokens
2025-03-04 09:36:00 +01:00
Mark Spanbroek
687c78a56f
vault: simplify example flow rates in test
2025-03-04 09:36:00 +01:00
Mark Spanbroek
9cb049d6a4
vault: allow flows to be diverted to others
2025-03-04 09:36:00 +01:00
Mark Spanbroek
220b648758
vault: change flows over time
2025-03-04 09:36:00 +01:00
Mark Spanbroek
41005cf42c
vault: make tests a bit more robust
2025-03-04 09:36:00 +01:00
Mark Spanbroek
eff9cc1acb
vault: reject negative flows
2025-03-04 09:36:00 +01:00
Mark Spanbroek
db8b06a51b
vault: flow to multiple recipients
...
- changes balance from uint256 -> uint128
so that entire Balance can be read or written
with a single operation
- moves Lock to library
- simplifies lock checks
2025-03-04 09:36:00 +01:00
Mark Spanbroek
4f880bb08a
vault: improve naming of public functions
2025-03-04 09:36:00 +01:00
Mark Spanbroek
a18fbb8899
vault: allow automine to be disabled in time sensitive tests
2025-03-04 09:36:00 +01:00
Mark Spanbroek
dc4e277a20
vault: do not allow flow when lock already expired
2025-03-04 09:36:00 +01:00
Mark Spanbroek
b270a0355f
vault: reject flow when insufficient tokens available
2025-03-04 09:36:00 +01:00
Mark Spanbroek
f8fb23a8dd
vault: stop flowing when lock expires
2025-03-04 09:36:00 +01:00
Mark Spanbroek
40e6f1cdcc
vault: designate tokens that flow
2025-03-04 09:36:00 +01:00
Mark Spanbroek
7403886283
vault: flow tokens from one recipient to the other
2025-03-04 09:36:00 +01:00
Mark Spanbroek
606cfc4c1e
vault: allow recipient to withdraw
2025-03-04 09:36:00 +01:00
Mark Spanbroek
b64b65a692
vault: further test for locks
2025-03-04 09:36:00 +01:00
Mark Spanbroek
cbbcad5166
vault: remove duplication in tests
2025-03-04 09:36:00 +01:00
Mark Spanbroek
6dbbdb5bd3
vault: simplify test setup
2025-03-04 09:36:00 +01:00
Mark Spanbroek
16a8b020bc
vault: lock is deleted upon withdrawal
2025-03-04 09:36:00 +01:00
Mark Spanbroek
caf86d184e
vault: lock up tokens until expiry time
2025-03-04 09:36:00 +01:00
Mark Spanbroek
e1f914726b
vault: designate tokens for a single recipient
2025-03-04 09:36:00 +01:00
Mark Spanbroek
7018f9ef22
vault: transfer tokens from one recipient to the other
2025-03-04 09:36:00 +01:00
Mark Spanbroek
eb1b821346
vault: burning funds
2025-03-04 09:36:00 +01:00
Mark Spanbroek
230e2140eb
vault: change data structure to be recipient oriented
2025-03-04 09:36:00 +01:00
Mark Spanbroek
d8049faf22
vault: deposit and withdraw
2025-03-04 09:36:00 +01:00
Mark Spanbroek
e4ff7b6c78
marketplace: fix more flaky tests
2025-03-04 08:58:10 +01:00
Mark Spanbroek
69e97bd21d
marketplace: fix flaky tests
2025-03-04 08:58:10 +01:00
Mark Spanbroek
e31e39f22c
simplify time-based logic in tests, and fix requestEnd()
...
- use the `allowBlocksWithSameTimestamp` hardhat option
- remove block time gymnastics from marketplace tests
- fix erroneous implementation of requestEnd() which
surfaced because of the the improved tests
2025-03-04 08:58:10 +01:00
Adam Uhlíř
c00152e621
perf: optimizing parameters sizing ( #207 )
...
* perf: optimizing parameters sizing
* chore: feedback
Co-authored-by: markspanbroek <mark@spanbroek.net>
* style: formatting
* perf: more optimizations
* chore: fixes
* chore: fix certora spec
* chore: more fixes for certora spec
* chore: more and more fixes for certora spec
* fix: ends type
* test(certora): timestamp conversion
* test(certora): timestamp conversion again
* test(certora): timestamp conversion revert to assert_uint64
* test(certora): timestamp with mathint
* test(certora): timestamp back with uint64 with require
* Add missing configuration
* Fix previous merge
* Update StorageRequested to use int64 for expiry
* requestDurationLimit => uint64
---------
Co-authored-by: markspanbroek <mark@spanbroek.net>
Co-authored-by: Arnaud <arnaud@status.im>
Co-authored-by: Eric <5089238+emizzle@users.noreply.github.com>
2025-02-20 16:54:41 +11:00
Adam Uhlíř
ff82c26b36
feat: request duration limit ( #206 )
...
* feat: request duration limit
* Merge master and use custom error
* Remove slashCriterion
---------
Co-authored-by: Arnaud <arnaud@status.im>
2025-02-18 15:27:47 +01:00
Arnaud
0f2012b144
Change the cid from string to bytes ( #214 )
...
* Change the cid from string to bytes
* Fix content definition
* Fix cid invalid test
2025-02-13 13:03:45 +00:00
Arnaud
51bae145fc
Reward validator when marking missing proof ( #209 )
2025-01-27 11:33:23 +01:00
Arnaud
6753d20b17
Remove missing proof leniency ( #210 )
2025-01-27 10:14:53 +00:00
Arnaud
78c15710f3
Remove the mapping _probabilities ( #215 )
...
* Remove the mapping _probabilities
* Fix the slot propability calculation test by filling slot only instead of requiring proofs
* Remove custom errorr Proofs_InvalidProbability not used anymore
2025-01-27 10:02:27 +00:00
Marcin Czenko
e74d3397a1
Feat: price per byte ( #208 )
...
* changes reward => pricePerByte
* collateral => collateralPerByte
* updates tests
* introduces AskHelpers to compute price and collateral per slot
* adds public view function returning currentCollateral for the slot
* updates names for price and collateral
* uses pricePerSlotPerSecond in maxPriceHelper
* adds collateralPerSlot helper
* makes sure that the intended use of the <<currentCollateral>> view function is demonstrated in tests
* formatting
* fix comment
* mints more tokens so that it can be used with contracts tests in nim-codex
* Renaming <<collateral>> and <<reward>> to <<collateralPerByte>> and <<pricePerBytePerSecond>> respectively (merged in the meantime to the master)
2025-01-24 15:28:29 +01:00
Arnaud
d04acafde2
Add request validations ( #213 )
...
* Add request validations
* Apply custom errors
2025-01-24 12:49:06 +01:00
Arnaud
604d4c87eb
Reject when probability is 0 ( #212 )
...
* Reject when probability is 0
* Apply custom error
2025-01-24 10:13:45 +01:00
Arnaud
bfa5a78b4f
Verify than secondsPerPeriod cannot be zero ( #211 )
...
* Assert than secondsPerPeriod cannot be zero
* Apply custom error
2025-01-24 09:22:21 +01:00
r4bbit
02e3b8d22b
refactor(Marketplace): Use custom errors instead of string messages ( #141 )
...
Co-authored-by: Adam Uhlíř <adam@uhlir.dev>
2025-01-15 14:11:40 +01:00
Adam Uhlíř
dfab6102e7
feat: repair reward ( #193 )
2024-12-12 18:39:42 +01:00
Eric
1ce3d10fa2
fix(slot-reservations): ensure slot is free ( #196 )
...
Ensure that the slot state is free before allowing reservations
2024-10-30 15:48:37 +11:00