minime/contracts/TokenController.sol

28 lines
1.3 KiB
Solidity
Raw Normal View History

2023-09-12 14:22:43 +00:00
// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
/// @dev The token controller contract must implement these functions
2023-09-12 14:22:43 +00:00
abstract contract TokenController {
/// @notice Called when `_owner` sends ether to the MiniMe Token contract
/// @param _owner The address that sent the ether to create tokens
/// @return True if the ether is accepted, false if it throws
2023-09-12 14:22:43 +00:00
function proxyPayment(address _owner) virtual public payable returns(bool);
/// @notice Notifies the controller about a token transfer allowing the
/// controller to react if desired
/// @param _from The origin of the transfer
/// @param _to The destination of the transfer
/// @param _amount The amount of the transfer
/// @return False if the controller does not authorize the transfer
2023-09-12 14:22:43 +00:00
function onTransfer(address _from, address _to, uint _amount) virtual public returns(bool);
/// @notice Notifies the controller about an approval allowing the
/// controller to react if desired
/// @param _owner The address that calls `approve()`
/// @param _spender The spender in the `approve()` call
/// @param _amount The amount in the `approve()` call
/// @return False if the controller does not authorize the approval
2023-09-12 14:22:43 +00:00
function onApprove(address _owner, address _spender, uint _amount) virtual public
returns(bool);
}