29 Commits

Author SHA1 Message Date
Mark Spanbroek
28ad5ced18 vault: disallow designating of flowing tokens 2025-01-30 14:12:42 +01:00
Mark Spanbroek
b988db9bd3 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-01-30 14:12:42 +01:00
Mark Spanbroek
0cc8f6c73f 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-01-30 12:57:06 +01:00
Mark Spanbroek
ef51834740 vault: cannot burn flowing tokens 2025-01-28 16:10:03 +01:00
Mark Spanbroek
7e1e71d25e vault: disallow transfer of flowing tokens 2025-01-28 15:56:53 +01:00
Mark Spanbroek
c16673e2d6 vault: simplify example flow rates in test 2025-01-28 15:55:50 +01:00
Mark Spanbroek
715bbfe174 vault: allow flows to be diverted to others 2025-01-28 15:22:47 +01:00
Mark Spanbroek
bb7c66629b vault: change flows over time 2025-01-28 14:58:14 +01:00
Mark Spanbroek
ac52545574 vault: make tests a bit more robust 2025-01-28 10:36:52 +01:00
Mark Spanbroek
e8fd8f9db5 vault: reject negative flows 2025-01-28 10:33:54 +01:00
Mark Spanbroek
8ff26ca577 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-01-28 10:31:39 +01:00
Mark Spanbroek
3767d9afba vault: improve naming of public functions 2025-01-28 10:22:17 +01:00
Mark Spanbroek
ae160498ca vault: allow automine to be disabled in time sensitive tests 2025-01-28 10:16:37 +01:00
Mark Spanbroek
cf875eb0d7 vault: do not allow flow when lock already expired 2025-01-23 15:05:07 +01:00
Mark Spanbroek
38f3a73c8f vault: reject flow when insufficient tokens available 2025-01-23 14:28:17 +01:00
Mark Spanbroek
d9452a7ac2 vault: stop flowing when lock expires 2025-01-23 14:20:17 +01:00
Mark Spanbroek
b3fbc19bf5 vault: designate tokens that flow 2025-01-22 15:58:34 +01:00
Mark Spanbroek
f59ec3d5e2 vault: flow tokens from one recipient to the other 2025-01-22 15:07:51 +01:00
Mark Spanbroek
922121e659 vault: allow recipient to withdraw 2025-01-22 11:59:51 +01:00
Mark Spanbroek
834255c871 vault: further test for locks 2025-01-22 11:59:51 +01:00
Mark Spanbroek
572ada3c83 vault: remove duplication in tests 2025-01-22 11:59:51 +01:00
Mark Spanbroek
9dd5d7bc5f vault: simplify test setup 2025-01-22 11:59:51 +01:00
Mark Spanbroek
bd9d88443c vault: lock is deleted upon withdrawal 2025-01-22 11:59:51 +01:00
Mark Spanbroek
bfd3c43555 vault: lock up tokens until expiry time 2025-01-22 11:59:51 +01:00
Mark Spanbroek
43f310518f vault: designate tokens for a single recipient 2025-01-22 11:59:51 +01:00
Mark Spanbroek
2412eb092e vault: transfer tokens from one recipient to the other 2025-01-22 11:59:51 +01:00
Mark Spanbroek
69b2b4fd90 vault: burning funds 2025-01-22 11:59:51 +01:00
Mark Spanbroek
7e6bc18b19 vault: change data structure to be recipient oriented 2025-01-22 11:59:51 +01:00
Mark Spanbroek
5a2e183610 vault: deposit and withdraw 2025-01-22 11:59:51 +01:00