Override transfer behavior and enforce sender has TRANSFER_ROLE#3
Conversation
ADS-1326 Change BuilderCodes transferability rules
Per insight from nick.prince, it would be preferable to Base Build if Builder Codes were default non-transferable. This would help mitigate risks on compliance, engineering, and secondary markets/farming. However, there are still cases where transferability is desired. As a middle ground, the proposed mechanism is to introduce a new role, This new role would NOT be able to unilaterally take assets from BuilderCode owners. Code owners would have to give approvals to Transfer Agents (most likely smart contracts) and then execute through them (enforcing any custom logic we need) to move their token. Things like transferring from a personal EOA to a team Safe would be an exception we would want some ability to offer. Importantly, this middle ground would NOT require us to upgrade BuilderCodes to enable custom transfer logic. This gives us a safer/easier path to customizing transfer rules over time. Eventually we may consider a hard upgrade to BuilderCodes once we identify a clear and stable transferability ruleset. |
| /// @param to The to address | ||
| /// @param codeSeed The seed for generating the code | ||
| /// @param payoutAddress The payout address | ||
| function test_approveTransferAgentToTransferToken(address from, address to, uint256 codeSeed, address payoutAddress) |
There was a problem hiding this comment.
Example of how we can add transferability rules modularly with new smart contracts.
34a8bc9 to
74385b8
Compare
Read more context here