文件 1 的 1:SFTreasuryAllowanceReseter.sol
pragma solidity 0.6.7;
abstract contract StabilityFeeTreasuryLike {
function getAllowance(address) virtual public view returns (uint256, uint256);
function setTotalAllowance(address, uint256) virtual external;
}
contract SFTreasuryAllowanceReseter {
StabilityFeeTreasuryLike public treasury;
event ResetTotalAllowance(address account);
constructor(address treasury_) public {
require(treasury_ != address(0), "SFTreasuryAllowanceReseter/null-treasury");
treasury = StabilityFeeTreasuryLike(treasury_);
}
function resetTotalAllowance(address account) external {
(, uint perBlockAllowance) = treasury.getAllowance(account);
require(perBlockAllowance > 0, "SFTreasuryAllowanceReseter/null-per-block-allowance");
treasury.setTotalAllowance(account, uint(-1));
emit ResetTotalAllowance(account);
}
}
{
"compilationTarget": {
"contracts/SFTreasuryAllowanceReseter.sol": "SFTreasuryAllowanceReseter"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": true,
"runs": 200
},
"remappings": []
}