Implementing ERC777 Receive Hooks / Missing ERC777 Guides

Hi @Yorkemartin,

One of the biggest issues with ERC20 is the approve/transferFrom two transaction workflow. There has been several attempts at a lightweight standard to implement an approve and call mechanism. ERC777 solves this with hooks. There is potential for a standard based on DAI’s permit (Add ERC20 permit() function)

I see ERC777 as a powerful upgrade to ERC20. Though reentrancy is something to be very aware of (e.g. Uniswap V1: https://blog.openzeppelin.com/exploiting-uniswap-from-reentrancy-to-actual-profit/)

PoolTogether uses ERC777 and you could look at the audit report and PoolTogether’s audit disclosures.

@miohtama decided to go with ERC777. (see their thoughts: Emerging standards and recommendations for approveAndCall, transferAndCall EIP-777 and so on)

I put together a Simple ERC777 token example and also an OpenZeppelin Contracts 3 example: Simple ERC777 token example using OpenZeppelin Contracts 3.x

@madness thanks again for the detailed input to the discussion :pray:.

1 Like