Add Prettier for linting and fix Solhint config (#2697)
Co-authored-by: Francisco Giordano <frangio.1@gmail.com>
This commit is contained in:
@ -17,11 +17,20 @@ import "../../../utils/Address.sol";
|
||||
library SafeERC20 {
|
||||
using Address for address;
|
||||
|
||||
function safeTransfer(IERC20 token, address to, uint256 value) internal {
|
||||
function safeTransfer(
|
||||
IERC20 token,
|
||||
address to,
|
||||
uint256 value
|
||||
) internal {
|
||||
_callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value));
|
||||
}
|
||||
|
||||
function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal {
|
||||
function safeTransferFrom(
|
||||
IERC20 token,
|
||||
address from,
|
||||
address to,
|
||||
uint256 value
|
||||
) internal {
|
||||
_callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value));
|
||||
}
|
||||
|
||||
@ -32,23 +41,35 @@ library SafeERC20 {
|
||||
* Whenever possible, use {safeIncreaseAllowance} and
|
||||
* {safeDecreaseAllowance} instead.
|
||||
*/
|
||||
function safeApprove(IERC20 token, address spender, uint256 value) internal {
|
||||
function safeApprove(
|
||||
IERC20 token,
|
||||
address spender,
|
||||
uint256 value
|
||||
) internal {
|
||||
// safeApprove should only be called when setting an initial allowance,
|
||||
// or when resetting it to zero. To increase and decrease it, use
|
||||
// 'safeIncreaseAllowance' and 'safeDecreaseAllowance'
|
||||
// solhint-disable-next-line max-line-length
|
||||
require((value == 0) || (token.allowance(address(this), spender) == 0),
|
||||
require(
|
||||
(value == 0) || (token.allowance(address(this), spender) == 0),
|
||||
"SafeERC20: approve from non-zero to non-zero allowance"
|
||||
);
|
||||
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value));
|
||||
}
|
||||
|
||||
function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal {
|
||||
function safeIncreaseAllowance(
|
||||
IERC20 token,
|
||||
address spender,
|
||||
uint256 value
|
||||
) internal {
|
||||
uint256 newAllowance = token.allowance(address(this), spender) + value;
|
||||
_callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance));
|
||||
}
|
||||
|
||||
function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal {
|
||||
function safeDecreaseAllowance(
|
||||
IERC20 token,
|
||||
address spender,
|
||||
uint256 value
|
||||
) internal {
|
||||
unchecked {
|
||||
uint256 oldAllowance = token.allowance(address(this), spender);
|
||||
require(oldAllowance >= value, "SafeERC20: decreased allowance below zero");
|
||||
@ -69,8 +90,8 @@ library SafeERC20 {
|
||||
// the target address contains contract code and also asserts for success in the low-level call.
|
||||
|
||||
bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed");
|
||||
if (returndata.length > 0) { // Return data is optional
|
||||
// solhint-disable-next-line max-line-length
|
||||
if (returndata.length > 0) {
|
||||
// Return data is optional
|
||||
require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed");
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,16 +15,19 @@ contract TokenTimelock {
|
||||
using SafeERC20 for IERC20;
|
||||
|
||||
// ERC20 basic token contract being held
|
||||
IERC20 immutable private _token;
|
||||
IERC20 private immutable _token;
|
||||
|
||||
// beneficiary of tokens after they are released
|
||||
address immutable private _beneficiary;
|
||||
address private immutable _beneficiary;
|
||||
|
||||
// timestamp when token release is enabled
|
||||
uint256 immutable private _releaseTime;
|
||||
uint256 private immutable _releaseTime;
|
||||
|
||||
constructor (IERC20 token_, address beneficiary_, uint256 releaseTime_) {
|
||||
// solhint-disable-next-line not-rely-on-time
|
||||
constructor(
|
||||
IERC20 token_,
|
||||
address beneficiary_,
|
||||
uint256 releaseTime_
|
||||
) {
|
||||
require(releaseTime_ > block.timestamp, "TokenTimelock: release time is before current time");
|
||||
_token = token_;
|
||||
_beneficiary = beneficiary_;
|
||||
@ -56,7 +59,6 @@ contract TokenTimelock {
|
||||
* @notice Transfers tokens held by timelock to beneficiary.
|
||||
*/
|
||||
function release() public virtual {
|
||||
// solhint-disable-next-line not-rely-on-time
|
||||
require(block.timestamp >= releaseTime(), "TokenTimelock: current time is before release time");
|
||||
|
||||
uint256 amount = token().balanceOf(address(this));
|
||||
|
||||
Reference in New Issue
Block a user