31 lines
750 B
Solidity
31 lines
750 B
Solidity
// SPDX-License-Identifier: MIT
|
|
pragma solidity 0.8.10;
|
|
import "@openzeppelin/contracts/access/Ownable.sol";
|
|
|
|
contract Approval is Ownable {
|
|
mapping(address => bool) private approvalLists;
|
|
|
|
/**
|
|
* @dev Allow operation to reverse signature.
|
|
*/
|
|
function addApprovalList(address user) external onlyOwner {
|
|
require(!approvalLists[user], "MinterFactory: Invalid user address");
|
|
approvalLists[user] = true;
|
|
}
|
|
|
|
/**
|
|
* @dev Remove operation from approval list.
|
|
*/
|
|
function removeApprovalList(address user) external onlyOwner {
|
|
approvalLists[user] = false;
|
|
}
|
|
|
|
modifier approvaled() {
|
|
require(
|
|
_msgSender() == address(this) || approvalLists[_msgSender()],
|
|
"Must be valid approval list"
|
|
);
|
|
_;
|
|
}
|
|
}
|