1Hive/redemptions-app

refactor redeem()

Closed this issue · 0 comments

Based on the conversation here: 1Hive/dandelion-voting-app#5 (comment)

If we want redemptions to behave well with the dissent oracle, we cannot allow redemptions through forwarders.

We have essentially two options here, we can expose two redeem() functions and roles, one allowing direct redemption (not through forwarders) and one allowing redemption more generally.

Or we can simply adjust our implementation to only allow redemption directly.

The only compelling case I can think of for redeeming through a forwarder is with something like Tollgate where a fee could be imposed on redeeming. But I think thats probably not that important to support, and it may make sense in the future to just create a configurable penalty parameter in redemptions, to discourage exit.

So my suggestion is to simply update the redeem function to only support direct redemption. (This essentially discards the work we did to support forwarders through signatures/and recovery which is an interesting pattern, but 🤷‍♂️) I think that was a more important requirement when we thought we would be implementing the dissent logic in a forwarder and not in an ACL oracle.