12345678910111213141516171819202122232425262728293031323334 |
- // SPDX-License-Identifier: MIT
- pragma solidity ^0.8.19;
- /**
- * @dev Interface of the ERC777TokensSender standard as defined in the EIP.
- *
- * {IERC777} Token holders can be notified of operations performed on their
- * tokens by having a contract implement this interface (contract holders can be
- * their own implementer) and registering it on the
- * https://eips.ethereum.org/EIPS/eip-1820[ERC1820 global registry].
- *
- * See {IERC1820Registry} and {IERC1820Implementer}.
- */
- interface IERC777Sender {
- /**
- * @dev Called by an {IERC777} token contract whenever a registered holder's
- * (`from`) tokens are about to be moved or destroyed. The type of operation
- * is conveyed by `to` being the zero address or not.
- *
- * This call occurs _before_ the token contract's state is updated, so
- * {IERC777-balanceOf}, etc., can be used to query the pre-operation state.
- *
- * This function may revert to prevent the operation from being executed.
- */
- function tokensToSend(
- address operator,
- address from,
- address to,
- uint256 amount,
- bytes calldata userData,
- bytes calldata operatorData
- ) external;
- }
|