ERC777 introduces the concept of Operators, which creates a whole new world of possibilities for managing how/who/when a user’s tokens are transferred. Are there any plans to implement a standards library for operators? I could imaging generic examples for subscriptions for example, or off-chain verification via signing.
The subscription operator sounds very interesting. Were you thinking of these as default operators, or operators that each user could register for themselves?
I was also thinking we could provide send/receive hooks that people could use. But these sounds like they will be less generic so I’m not sure if they’ll really be a good fit for OpenZeppelin.
@Dennison could you expand a bit on the subscription example? Off-chain signing sounds great, though we’d have to include some sort of nonce to prevent replay attacks.
The most useful operator for us is an operator which allows to collect deposits from many different accounts in one go without the accounts paying gas as described here: https://www.wealdtech.com/articles/understanding-erc777-token-operator-contracts/
The bulk send + etherless transfer. This is very useful for a system with different deposit addresses for each user like crypto exchanges.
Maybe should take those and extend/improve them: https://github.com/wealdtech/wealdtech-solidity/tree/master/contracts/tokenoperator
However the idea of operators from what I understood is not only to have a common code in open zeppelin but to DEPLOY a common library and use it from different contracts. So the question is if OpenZeppelin will also deploy a common implementation.
Hm, interesting! I don’t think we’ve considered this, though it could certainly be possible. We’d have to think of a way to distribute these addresses, among other things.