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