drips-network / contracts

💧 Drips Protocol Smart Contracts
https://www.drips.network
GNU General Public License v3.0
60 stars 18 forks source link

Stop allowing anybody to collect for anybody else in `AddressApp` and accept the address to send funds to. #204

Closed CodeSandwich closed 2 years ago

CodeSandwich commented 2 years ago

In the current design the funds are forced to be collected into the address which the user ID is based on which is very inflexible. Also the timing of the transfers may be unexpected for the user.

We should stop allowing anybody to call collect for anybody else in AddressApp. We should also allow passing the address to send funds to.

This may be useful with the introduction of Caller, because it allows sending funds to a smart contract, which may then perform some actions with the collected tokens. It also may work well with cold wallets authorizing other addresses to perform calls on their behalf.

gh0stwheel commented 2 years ago

This makes sense to me.

While the idea of allowing anybody to call collect() is nice in theory, I don't think that the practical need for it is clear-cut enough to justify the potential issues and tradeoffs that you've pointed out.

I agree with the change you've suggested. We can come back to the idea of allowing anybody to call collect() in a future version of the AddressApp or a future version of Drips.