becrypto/contracts/utils/Approval.sol
2022-08-16 16:00:49 +08:00

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"
);
_;
}
}