Currently, when completing a withdrawal, funds are immediately sent to the user as soon as they're available (so a potential immediate withdrawal at Manager.withdraw time, then once per each Account.finishPendingWithdrawal). This is fine for direct interactions with the smart contracts, but can lead wallet users to confusion when they see their withdrawn CELO appear in their wallet across multiple transactions spread over time.
Instead, we could keep an account of how much CELO is withdrawable by each address, and allow funds to be sent to the beneficiary at their request, e.g. after an entire withdrawal finishes.
Currently, when completing a withdrawal, funds are immediately sent to the user as soon as they're available (so a potential immediate withdrawal at
Manager.withdraw
time, then once per eachAccount.finishPendingWithdrawal
). This is fine for direct interactions with the smart contracts, but can lead wallet users to confusion when they see their withdrawn CELO appear in their wallet across multiple transactions spread over time.Instead, we could keep an account of how much CELO is withdrawable by each address, and allow funds to be sent to the beneficiary at their request, e.g. after an entire withdrawal finishes.