32 Commits

Author SHA1 Message Date
Mark Spanbroek
edee270eca vault: rename Lock -> Fund 2025-03-04 09:36:00 +01:00
Mark Spanbroek
2900bed8fd vault: rename Fund -> FundId 2025-03-04 09:36:00 +01:00
Mark Spanbroek
62aea75295 vault: freezeFund() instead of burnFund() 2025-03-04 09:36:00 +01:00
Mark Spanbroek
6db1a5fb3a vault: only allow account holder to withdraw for itself 2025-03-04 09:36:00 +01:00
Mark Spanbroek
95a698c574 vault: allow for multiple accounts for one account holder 2025-03-04 09:36:00 +01:00
Mark Spanbroek
4c46f2d1a0 vault: pausing and unpausing 2025-03-04 09:36:00 +01:00
Mark Spanbroek
81032965f4 vault: update documentation 2025-03-04 09:36:00 +01:00
Mark Spanbroek
43cd44330b vault: add documentation 2025-03-04 09:36:00 +01:00
Mark Spanbroek
b7b1e8c25b vault: cleanup 2025-03-04 09:36:00 +01:00
Mark Spanbroek
ad6df66768 vault: burn part of designated tokens 2025-03-04 09:36:00 +01:00
Mark Spanbroek
3ff331b883 vault: rename burn -> burnAccount, burnAll -> burnFund 2025-03-04 09:36:00 +01:00
Mark Spanbroek
13d590d67b vault: do not expose Lock internals on public api 2025-03-04 09:36:00 +01:00
Mark Spanbroek
bbdd614579 vault: burn entire fund 2025-03-04 09:36:00 +01:00
Mark Spanbroek
4533c82011 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-03-04 09:36:00 +01:00
Mark Spanbroek
026609e3c7 vault: remove _getAccount()
- no longer calculate flow updates when not needed
- use account.update(timestamp) where needed
- use _getBalance() to view current balance
2025-03-04 09:36:00 +01:00
Mark Spanbroek
450e5308d9 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-03-04 09:36:00 +01:00
Mark Spanbroek
297ec7f6b3 vault: cleanup 2025-03-04 09:36:00 +01:00
Mark Spanbroek
68d93fa5b5 vault: rename balance -> account 2025-03-04 09:36:00 +01:00
Mark Spanbroek
fdc642b1df vault: rename context -> fund 2025-03-04 09:36:00 +01:00
Mark Spanbroek
f64c373e8f vault: reorder functions
in roughly chronological order
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
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
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