21 Commits

Author SHA1 Message Date
Mark Spanbroek
0915fa33f1 vault: do not expose Lock internals on public api 2025-02-06 16:33:03 +01:00
Mark Spanbroek
94fd9a0f17 vault: burn entire fund 2025-02-06 16:33:03 +01:00
Mark Spanbroek
8b2d726a2f vault: prevent approval hijacking
- transfer ERC20 funds into the vault from the
  controller, not from the user
- prevents an attacker from hijacking a user's
  ERC20 approval to move tokens into a part of
  the vault that is controlled by the attacker
2025-02-06 16:33:03 +01:00
Mark Spanbroek
a2af8c0512 vault: remove _getAccount()
- no longer calculate flow updates when not needed
- use account.update(timestamp) where needed
- use _getBalance() to view current balance
2025-02-06 16:33:03 +01:00
Mark Spanbroek
523544a4e8 vault: split flow into incoming and outgoing
- no need to deal with signed integers anymore
- allows flow to self to designate tokens over time
2025-02-06 16:33:03 +01:00
Mark Spanbroek
f4cfcd3767 vault: cleanup 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
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
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
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