Hi @mrwillis
I have updated my Simple ERC777 token example to include a recipient contract.
The recipient contract needs to implement the tokensReceived
function from IERC777Recipient.sol.
The recipient contract also needs to register with the ERC1820 registry that it is an interface implementer of ERC777TokensRecipient
_erc1820.setInterfaceImplementer(address(this), TOKENS_RECIPIENT_INTERFACE_HASH, address(this));