32 Commits

Author SHA1 Message Date
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
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