You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
1.2 KiB
35 lines
1.2 KiB
// SPDX-License-Identifier: MIT
|
|
// OpenZeppelin Contracts (last updated v5.0.0) (interfaces/IERC777Sender.sol)
|
|
|
|
pragma solidity ^0.8.20;
|
|
|
|
/**
|
|
* @dev Interface of the ERC-777 Tokens Sender standard as defined in the ERC.
|
|
*
|
|
* {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[ERC-1820 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;
|
|
}
|
|
|