507 Commits

Author SHA1 Message Date
Mark Spanbroek
b09f742944 vault: formatting 2025-02-06 16:33:03 +01:00
Mark Spanbroek
95b9ca6fc6 vault: reordering 2025-02-06 16:33:03 +01:00
Mark Spanbroek
8f6190b371 vault: simplify _getAccount() 2025-02-06 16:33:03 +01:00
Mark Spanbroek
374bced5f5 vault: _getAccount updates to the latest timestamp 2025-02-06 16:33:03 +01:00
Mark Spanbroek
c8704cc3af vault: combine account and flow mappings 2025-02-06 16:33:03 +01:00
Mark Spanbroek
56cd4bcfc5 vault: rename balance -> account 2025-02-06 16:33:03 +01:00
Mark Spanbroek
707ec5f55c vault: rename context -> fund 2025-02-06 16:33:03 +01:00
Mark Spanbroek
10839ce532 vault: reorder functions
in roughly chronological order
2025-02-06 16:33:03 +01:00
Mark Spanbroek
2fecf2e741 vault: only allow deposit, transfer, etc when locked 2025-02-06 16:33:03 +01:00
Mark Spanbroek
77d7d5769a vault: reorder tests 2025-02-06 16:33:03 +01:00
Mark Spanbroek
0bd63eafd8 vault: cleanup 2025-02-06 16:33:03 +01:00
Mark Spanbroek
de3a847d7b vault: delete lock all tokens are withdrawn or burned 2025-02-06 16:33:03 +01:00
Mark Spanbroek
217bef591e vault: document setAutomine() 2025-02-06 16:33:03 +01:00
Mark Spanbroek
9aecbd54d9 vault: disallow designating of flowing tokens 2025-02-06 16:33:03 +01:00
Mark Spanbroek
f90f02cd6d 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-02-06 16:33:03 +01:00
Mark Spanbroek
63109b813b vault: delete flow when burning or withdrawing 2025-02-06 16:33:03 +01:00
Mark Spanbroek
85537cdb49 vault: cannot burn flowing tokens 2025-02-06 16:33:03 +01:00
Mark Spanbroek
a120cdf2ab vault: disallow transfer of flowing tokens 2025-02-06 16:33:03 +01:00
Mark Spanbroek
9f22c56026 vault: simplify example flow rates in test 2025-02-06 16:33:03 +01:00
Mark Spanbroek
e9b346a122 vault: allow flows to be diverted to others 2025-02-06 16:33:03 +01:00
Mark Spanbroek
d35cc00841 vault: check Lock invariant before writing 2025-02-06 16:33:03 +01:00
Mark Spanbroek
421a1eb5ba vault: change flows over time 2025-02-06 16:33:03 +01:00
Mark Spanbroek
82467f101d vault: make tests a bit more robust 2025-02-06 16:33:03 +01:00
Mark Spanbroek
9105a3530a vault: reject negative flows 2025-02-06 16:33:03 +01:00
Mark Spanbroek
8ee4512080 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-02-06 16:33:03 +01:00
Mark Spanbroek
9d213993e8 vault: improve naming of public functions 2025-02-06 16:33:03 +01:00
Mark Spanbroek
6417d5b608 vault: allow automine to be disabled in time sensitive tests 2025-02-06 16:33:03 +01:00
Mark Spanbroek
482ff9a57a vault: do not allow flow when lock already expired 2025-02-06 16:33:03 +01:00
Mark Spanbroek
c6ea2b6bd7 vault: reject flow when insufficient tokens available 2025-02-06 16:33:03 +01:00
Mark Spanbroek
27c7ee32c0 vault: stop flowing when lock expires 2025-02-06 16:33:03 +01:00
Mark Spanbroek
2831546544 vault: use custom operators to improve readability 2025-02-06 16:33:03 +01:00
Mark Spanbroek
be59d77a5f vault: move flow accumulation calculation into VaultBase 2025-02-06 16:33:03 +01:00
Mark Spanbroek
cf750b032c vault: designate tokens that flow 2025-02-06 16:33:03 +01:00
Mark Spanbroek
cf30fa35d6 vault: flow tokens from one recipient to the other 2025-02-06 16:33:03 +01:00
Mark Spanbroek
bfc7a8bb19 vault: allow recipient to withdraw 2025-02-06 16:33:03 +01:00
Mark Spanbroek
0afc5bf19e vault: further test for locks 2025-02-06 16:33:03 +01:00
Mark Spanbroek
2eaec23b41 vault: remove duplication in tests 2025-02-06 16:33:03 +01:00
Mark Spanbroek
fbfe599241 vault: simplify test setup 2025-02-06 16:33:03 +01:00
Mark Spanbroek
84c31418b3 vault: lock is deleted upon withdrawal 2025-02-06 16:33:03 +01:00
Mark Spanbroek
a29778de61 vault: lock up tokens until expiry time 2025-02-06 16:33:03 +01:00
Mark Spanbroek
0dfe60dab9 vault: designate tokens for a single recipient 2025-02-06 16:33:03 +01:00
Mark Spanbroek
3a23ab7a40 vault: transfer tokens from one recipient to the other 2025-02-06 16:33:03 +01:00
Mark Spanbroek
bff9a05e4f vault: burning funds 2025-02-06 16:33:03 +01:00
Mark Spanbroek
1a7b0b5c17 vault: change data structure to be recipient oriented 2025-02-06 16:33:03 +01:00
Mark Spanbroek
2d469dc6d1 vault: deposit and withdraw 2025-02-06 16:33:03 +01:00
Mark Spanbroek
20a32c1d90 update prettier-plugin-solidity to 1.4.2 2025-02-06 16:31:36 +01:00
Mark Spanbroek
f060529519 update solhint to 5.0.5 2025-02-06 16:31:36 +01:00
Mark Spanbroek
cf96d1a79d update solidity to version 0.8.28 2025-02-06 15:54:41 +01:00
Mark Spanbroek
bc934ba970 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-02-06 15:51:07 +01:00
Arnaud
51bae145fc
Reward validator when marking missing proof (#209) 2025-01-27 11:33:23 +01:00