More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 784 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer | 20408358 | 203 days ago | IN | 0 ETH | 0.0000376 | ||||
Transfer | 20408358 | 203 days ago | IN | 0 ETH | 0.00004381 | ||||
Approve | 19386148 | 346 days ago | IN | 0 ETH | 0.00168587 | ||||
Transfer | 19062333 | 392 days ago | IN | 0 ETH | 0.00060613 | ||||
Approve | 18374070 | 488 days ago | IN | 0 ETH | 0.00035271 | ||||
Transfer Ownersh... | 18251564 | 505 days ago | IN | 0 ETH | 0.00060969 | ||||
Approve | 17773000 | 572 days ago | IN | 0 ETH | 0.00137596 | ||||
Approve | 17575664 | 600 days ago | IN | 0 ETH | 0.0005755 | ||||
Transfer | 17535464 | 605 days ago | IN | 0 ETH | 0.0007415 | ||||
Transfer | 17531649 | 606 days ago | IN | 0 ETH | 0.00098605 | ||||
Transfer | 17470427 | 615 days ago | IN | 0 ETH | 0.00060262 | ||||
Approve | 17468978 | 615 days ago | IN | 0 ETH | 0.0003841 | ||||
Approve | 17468964 | 615 days ago | IN | 0 ETH | 0.00037544 | ||||
Transfer | 17248388 | 646 days ago | IN | 0 ETH | 0.00272985 | ||||
Transfer | 17246219 | 646 days ago | IN | 0 ETH | 0.00401548 | ||||
Approve | 17225355 | 649 days ago | IN | 0 ETH | 0.00603002 | ||||
Transfer | 17201753 | 652 days ago | IN | 0 ETH | 0.00473493 | ||||
Approve | 17178277 | 656 days ago | IN | 0 ETH | 0.00272595 | ||||
Approve | 17170529 | 657 days ago | IN | 0 ETH | 0.00323722 | ||||
Transfer | 17162014 | 658 days ago | IN | 0 ETH | 0.00188184 | ||||
Transfer | 17161882 | 658 days ago | IN | 0 ETH | 0.00139687 | ||||
Transfer | 17160534 | 658 days ago | IN | 0 ETH | 0.00401414 | ||||
Approve | 17146571 | 660 days ago | IN | 0 ETH | 0.00194842 | ||||
Approve | 17146342 | 660 days ago | IN | 0 ETH | 0.00199037 | ||||
Transfer | 17146304 | 660 days ago | IN | 0 ETH | 0.0020417 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
17078322 | 670 days ago | 0.66229016 ETH | ||||
16901400 | 695 days ago | 0.01646172 ETH | ||||
16901400 | 695 days ago | 0.01646172 ETH | ||||
16877485 | 698 days ago | 0.02028561 ETH | ||||
16877485 | 698 days ago | 0.02028561 ETH | ||||
16872581 | 699 days ago | 0.02764941 ETH | ||||
16872581 | 699 days ago | 0.02764941 ETH | ||||
16872328 | 699 days ago | 0.03646139 ETH | ||||
16872328 | 699 days ago | 0.04167016 ETH | ||||
16872075 | 699 days ago | 0.46019213 ETH | ||||
16872075 | 699 days ago | 0.52593386 ETH | ||||
16871417 | 699 days ago | 0.54364839 ETH | ||||
16871417 | 699 days ago | 0.62131245 ETH | ||||
16871112 | 699 days ago | 0.57626619 ETH | ||||
16871112 | 699 days ago | 0.65858993 ETH | ||||
16870846 | 699 days ago | 0.58689373 ETH | ||||
16870846 | 699 days ago | 0.67073569 ETH | ||||
16870477 | 699 days ago | 0.0000223 ETH | ||||
16870477 | 699 days ago | 0.04109143 ETH | ||||
16870477 | 699 days ago | 0.16436572 ETH | ||||
16870477 | 699 days ago | 0.32873145 ETH | ||||
16870477 | 699 days ago | 0.61637148 ETH | ||||
16870475 | 699 days ago | 0.0000223 ETH | ||||
16870475 | 699 days ago | 0.04109143 ETH | ||||
16870475 | 699 days ago | 0.16436572 ETH |
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x7F7056a6...ee127B3C8 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
LUNATICS
Compiler Version
v0.8.15+commit.e14f2714
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: MIT pragma solidity 0.8.15; // SAFEMATH LIBRARY // This version of SafeMath should only be used with Solidity 0.8 or later library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } abstract contract Auth { address internal owner; mapping(address => bool) internal authorizations; constructor(address _owner) { owner = _owner; authorizations[_owner] = true; } /** * Function modifier to require caller to be contract owner */ modifier onlyOwner() { require(isOwner(msg.sender), "Not owner"); _; } /** * Function modifier to require caller to be authorized */ modifier authorized() { require(isAuthorized(msg.sender), "Not authorized"); _; } /** * Authorize address. Owner only */ function authorize(address adr) public onlyOwner { authorizations[adr] = true; } /** * Remove address' authorization. Owner only */ function unauthorize(address adr) public onlyOwner { authorizations[adr] = false; } /** * Check if address is owner */ function isOwner(address account) public view returns (bool) { return account == owner; } /** * Return address' authorization status */ function isAuthorized(address adr) public view returns (bool) { return authorizations[adr]; } /** * Transfer ownership to new address. Caller must be owner. Leaves old owner authorized */ function transferOwnership(address payable adr) public onlyOwner { owner = adr; authorizations[adr] = true; emit OwnershipTransferred(adr); } event OwnershipTransferred(address owner); } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IDividendDistributor { function setDistributionCriteria( uint256 _minPeriod, uint256 _minDistribution ) external; function setShare(address shareholder, uint256 amount) external; function deposit() external payable; function process(uint256 gas) external; } contract DividendDistributor is IDividendDistributor { using SafeMath for uint256; address _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IERC20 LUNC_WORMHOLE = IERC20(0xbd31EA8212119f94A611FA969881CBa3EA06Fa3d); //mainnet address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; //mainnet IDEXRouter router; address[] shareholders; mapping(address => uint256) shareholderIndexes; mapping(address => uint256) shareholderClaims; mapping(address => Share) public shares; uint256 public totalShares; uint256 public totalDividends; uint256 public totalDistributed; uint256 public dividendsPerShare; uint256 public dividendsPerShareAccuracyFactor = 10**36; uint256 public minPeriod = 1 hours; uint256 public minDistribution = 1 * (10**18); uint256 currentIndex; bool initialized; modifier initialization() { require(!initialized); _; initialized = true; } modifier onlyToken() { require(msg.sender == _token); _; } constructor(address _router) { router = _router != address(0) ? IDEXRouter(_router) : IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _token = msg.sender; } function setDistributionCriteria( uint256 _minPeriod, uint256 _minDistribution ) external override onlyToken { minPeriod = _minPeriod; minDistribution = _minDistribution; } function setShare(address shareholder, uint256 amount) external override onlyToken { if (shares[shareholder].amount > 0) { distributeDividend(shareholder); } if (amount > 0 && shares[shareholder].amount == 0) { addShareholder(shareholder); } else if (amount == 0 && shares[shareholder].amount > 0) { removeShareholder(shareholder); } totalShares = totalShares.sub(shares[shareholder].amount).add(amount); shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } function deposit() external payable override onlyToken { uint256 balanceBefore = LUNC_WORMHOLE.balanceOf(address(this)); address[] memory path = new address[](2); path[0] = WETH; path[1] = address(LUNC_WORMHOLE); router.swapExactETHForTokensSupportingFeeOnTransferTokens{ value: msg.value }(0, path, address(this), block.timestamp); uint256 amount = LUNC_WORMHOLE.balanceOf(address(this)).sub( balanceBefore ); totalDividends = totalDividends.add(amount); dividendsPerShare = dividendsPerShare.add( dividendsPerShareAccuracyFactor.mul(amount).div(totalShares) ); } function process(uint256 gas) external override onlyToken { uint256 shareholderCount = shareholders.length; if (shareholderCount == 0) { return; } uint256 gasUsed = 0; uint256 gasLeft = gasleft(); uint256 iterations = 0; while (gasUsed < gas && iterations < shareholderCount) { if (currentIndex >= shareholderCount) { currentIndex = 0; } if (shouldDistribute(shareholders[currentIndex])) { distributeDividend(shareholders[currentIndex]); } gasUsed = gasUsed.add(gasLeft.sub(gasleft())); gasLeft = gasleft(); currentIndex++; iterations++; } } function shouldDistribute(address shareholder) internal view returns (bool) { return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution; } function distributeDividend(address shareholder) internal { if (shares[shareholder].amount == 0) { return; } uint256 amount = getUnpaidEarnings(shareholder); if (amount > 0) { totalDistributed = totalDistributed.add(amount); LUNC_WORMHOLE.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder] .totalRealised .add(amount); shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } } function claimDividend() external { distributeDividend(msg.sender); } function getUnpaidEarnings(address shareholder) public view returns (uint256) { if (shares[shareholder].amount == 0) { return 0; } uint256 shareholderTotalDividends = getCumulativeDividends( shares[shareholder].amount ); uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded; if (shareholderTotalDividends <= shareholderTotalExcluded) { return 0; } return shareholderTotalDividends.sub(shareholderTotalExcluded); } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor); } function addShareholder(address shareholder) internal { shareholderIndexes[shareholder] = shareholders.length; shareholders.push(shareholder); } function removeShareholder(address shareholder) internal { shareholders[shareholderIndexes[shareholder]] = shareholders[ shareholders.length - 1 ]; shareholderIndexes[ shareholders[shareholders.length - 1] ] = shareholderIndexes[shareholder]; shareholders.pop(); } } contract LUNATICS is IERC20, Auth { using SafeMath for uint256; uint256 public constant MASK = type(uint128).max; address LUNC_WORMHOLE = 0xbd31EA8212119f94A611FA969881CBa3EA06Fa3d; //mainnet address public WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; //mainnet address constant DEAD = 0x000000000000000000000000000000000000dEaD; address constant ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "Lunatics"; string constant _symbol = "LunaT"; uint8 constant _decimals = 9; uint256 _totalSupply = 1_00_000_000_000 * (10**_decimals); mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isDividendExempt; uint256 liquidityFee = 100; uint256 reflectionFee = 300; uint256 marketingFee = 300; uint256 burnFee = 100; uint256 totalFee = 800; uint256 feeDenominator = 10000; address public marketingFeeReceiver; IDEXRouter public router; address public pair; bool public tradingEnabled = false; DividendDistributor distributor; address public distributorAddress; uint256 distributorGas = 500000; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 2000; // 0.005% bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor() Auth(msg.sender) { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); _allowances[address(this)][address(router)] = _totalSupply; WETH = router.WETH(); distributor = new DividendDistributor( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); distributorAddress = address(distributor); isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isFeeExempt[DEAD] = true; isFeeExempt[ZERO] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[DEAD] = true; isFeeExempt[ZERO] = true; marketingFeeReceiver = 0x5bc9cF0933adFeFC9F5ea55E294c4Cd580b97Dfd; approve(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D, _totalSupply); approve(address(pair), _totalSupply); _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, _totalSupply); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom( address sender, address recipient, uint256 amount ) external override returns (bool) { if (_allowances[sender][msg.sender] != _totalSupply) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] .sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { if (!isOwner(sender)) { require(tradingEnabled, "Trading is disabled"); } if (inSwap) { return _basicTransfer(sender, recipient, amount); } if(sender != pair && recipient != pair) { return _basicTransfer(sender, recipient, amount); } if (shouldSwapBack()) { swapBack(); } _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount; _balances[recipient] = _balances[recipient].add(amountReceived); if (!isDividendExempt[sender]) { try distributor.setShare(sender, _balances[sender]) {} catch {} } if (!isDividendExempt[recipient]) { try distributor.setShare(recipient, _balances[recipient]) {} catch {} } try distributor.process(distributorGas) {} catch {} emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] = _balances[sender].sub( amount, "Insufficient Balance" ); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee(address sender, address recipient) internal view returns (bool) { if(isFeeExempt[sender] || isFeeExempt[recipient]){return false;} else{return true;} } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount.mul(totalFee - burnFee).div(feeDenominator); uint256 burnFeeAmount = amount.mul(burnFee).div(feeDenominator); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); _balances[DEAD] = _balances[DEAD].add(burnFeeAmount); emit Transfer(sender, DEAD, burnFeeAmount); return amount.sub(feeAmount + burnFeeAmount); } function setIsFeeExempt(address wallet, bool value) external authorized { isFeeExempt[wallet] = value; } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 amountToLiquify = swapThreshold .mul(liquidityFee) .div(totalFee) .div(2); uint256 amountToSwap = swapThreshold.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance.sub(balanceBefore); uint256 totalETHFee = totalFee.sub(liquidityFee.div(2)); uint256 amountETHLiquidity = amountETH .mul(liquidityFee) .div(totalETHFee) .div(2); uint256 amountETHReflection = amountETH.mul(reflectionFee).div( totalETHFee ); uint256 amountETHMarketing = amountETH.mul(marketingFee).div( totalETHFee ); try distributor.deposit{value: amountETHReflection}() {} catch {} payable(marketingFeeReceiver).transfer(amountETHMarketing); if (amountToLiquify > 0) { router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, owner, block.timestamp ); emit AutoLiquify(amountETHLiquidity, amountToLiquify); } } // Trading once enabled, can't be disabled function enableTrading() external onlyOwner { tradingEnabled = true; } function setIsDividendExempt(address holder, bool exempt) external authorized { require(holder != address(this) && holder != pair); isDividendExempt[holder] = exempt; if (exempt) { distributor.setShare(holder, 0); } else { distributor.setShare(holder, _balances[holder]); } } function setFees( uint256 _liquidityFee, uint256 _reflectionFee, uint256 _marketingFee, uint256 _burnFee ) external authorized { liquidityFee = _liquidityFee; reflectionFee = _reflectionFee; marketingFee = _marketingFee; burnFee = _burnFee; totalFee = _liquidityFee.add(_reflectionFee).add(_marketingFee).add( burnFee ); require(totalFee <= 2500, "Fees must be less than 25%"); } function setFeeReceivers(address _marketingFeeReceiver) external authorized { marketingFeeReceiver = _marketingFeeReceiver; } function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized { swapEnabled = _enabled; swapThreshold = _amount; } function setDistributionCriteria( uint256 _minPeriod, uint256 _minDistribution ) external authorized { distributor.setDistributionCriteria(_minPeriod, _minDistribution); } function setDistributorSettings(uint256 gas) external authorized { require(gas < 750000, "Inappropriate gas amount"); distributorGas = gas; } function clearStuckBalance() external authorized { uint256 amountETH = address(this).balance; payable(msg.sender).transfer(amountETH); } function clearStuckTokens(address _tokenContract) public authorized { require( _tokenContract != address(this), "Cannot withdraw native token" ); IERC20 tokenContract = IERC20(_tokenContract); tokenContract.transfer( msg.sender, tokenContract.balanceOf(address(this)) ); } event AutoLiquify(uint256 amountETH, uint256 amount); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MASK","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenContract","type":"address"}],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isDividendExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_reflectionFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_burnFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Deployed Bytecode
0x60806040526004361061021e5760003560e01c8063893d20e811610123578063dd62ed3e116100ab578063f0b37c041161006f578063f0b37c04146106c4578063f2fde38b146106e4578063f708a64f14610704578063f887ea4014610724578063fe9fbb801461074457600080fd5b8063dd62ed3e146105fa578063df20fd4914610640578063e01bb68814610660578063e91f214e14610680578063e96fada2146106a457600080fd5b8063a51af4c5116100f2578063a51af4c51461055a578063a8aa1b311461057a578063a9059cbb1461059a578063ad5c4648146105ba578063b6a5d7de146105da57600080fd5b8063893d20e8146104c55780638a8c523c146104f757806395d89b411461050c5780639d1944f51461053a57600080fd5b8063364333f4116101a6578063571ac8b011610175578063571ac8b014610415578063658d4b7f146104355780636ddd1713146104555780636fcba3771461046f57806370a082311461048f57600080fd5b8063364333f41461037f5780633f4218e0146103945780634355855a146103c45780634ada218b146103f457600080fd5b806323b872dd116101ed57806323b872dd146102d25780632d48e896146102f25780632f54bf6e14610314578063313ce56714610343578063346cc7be1461035f57600080fd5b80630445b6671461022a57806306fdde0314610253578063095ea7b31461028d57806318160ddd146102bd57600080fd5b3661022557005b600080fd5b34801561023657600080fd5b5061024060165481565b6040519081526020015b60405180910390f35b34801561025f57600080fd5b506040805180820190915260088152674c756e617469637360c01b60208201525b60405161024a9190611984565b34801561029957600080fd5b506102ad6102a83660046119f1565b610764565b604051901515815260200161024a565b3480156102c957600080fd5b50600454610240565b3480156102de57600080fd5b506102ad6102ed366004611a1d565b6107d1565b3480156102fe57600080fd5b5061031261030d366004611a5e565b610895565b005b34801561032057600080fd5b506102ad61032f366004611a80565b6000546001600160a01b0391821691161490565b34801561034f57600080fd5b506040516009815260200161024a565b34801561036b57600080fd5b5061031261037a366004611a80565b61092d565b34801561038b57600080fd5b50610312610a92565b3480156103a057600080fd5b506102ad6103af366004611a80565b60076020526000908152604090205460ff1681565b3480156103d057600080fd5b506102ad6103df366004611a80565b60086020526000908152604090205460ff1681565b34801561040057600080fd5b506011546102ad90600160a01b900460ff1681565b34801561042157600080fd5b506102ad610430366004611a80565b610aea565b34801561044157600080fd5b50610312610450366004611aab565b610af8565b34801561046157600080fd5b506015546102ad9060ff1681565b34801561047b57600080fd5b5061031261048a366004611ae4565b610b48565b34801561049b57600080fd5b506102406104aa366004611a80565b6001600160a01b031660009081526005602052604090205490565b3480156104d157600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161024a565b34801561050357600080fd5b50610312610bf3565b34801561051857600080fd5b50604080518082019091526005815264131d5b985560da1b6020820152610280565b34801561054657600080fd5b50610312610555366004611b16565b610c32565b34801561056657600080fd5b506013546104df906001600160a01b031681565b34801561058657600080fd5b506011546104df906001600160a01b031681565b3480156105a657600080fd5b506102ad6105b53660046119f1565b610cae565b3480156105c657600080fd5b506003546104df906001600160a01b031681565b3480156105e657600080fd5b506103126105f5366004611a80565b610cbb565b34801561060657600080fd5b50610240610615366004611b2f565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561064c57600080fd5b5061031261065b366004611b5d565b610d0c565b34801561066c57600080fd5b5061031261067b366004611a80565b610d48565b34801561068c57600080fd5b506102406fffffffffffffffffffffffffffffffff81565b3480156106b057600080fd5b50600f546104df906001600160a01b031681565b3480156106d057600080fd5b506103126106df366004611a80565b610d8f565b3480156106f057600080fd5b506103126106ff366004611a80565b610dda565b34801561071057600080fd5b5061031261071f366004611aab565b610e70565b34801561073057600080fd5b506010546104df906001600160a01b031681565b34801561075057600080fd5b506102ad61075f366004611a80565b610f74565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107bf9086815260200190565b60405180910390a35060015b92915050565b6004546001600160a01b0384166000908152600660209081526040808320338452909152812054909114610880576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461085b918490610f92565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61088b848484610fbe565b90505b9392505050565b61089e33610f74565b6108c35760405162461bcd60e51b81526004016108ba90611b7b565b60405180910390fd5b6012546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e896906044015b600060405180830381600087803b15801561091157600080fd5b505af1158015610925573d6000803e3d6000fd5b505050505050565b61093633610f74565b6109525760405162461bcd60e51b81526004016108ba90611b7b565b306001600160a01b038216036109aa5760405162461bcd60e51b815260206004820152601c60248201527f43616e6e6f74207769746864726177206e617469766520746f6b656e0000000060448201526064016108ba565b6040516370a0823160e01b815230600482015281906001600160a01b0382169063a9059cbb90339083906370a0823190602401602060405180830381865afa1580156109fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a1e9190611ba3565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610a69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8d9190611bbc565b505050565b610a9b33610f74565b610ab75760405162461bcd60e51b81526004016108ba90611b7b565b6040514790339082156108fc029083906000818181858888f19350505050158015610ae6573d6000803e3d6000fd5b5050565b60006107cb82600454610764565b610b0133610f74565b610b1d5760405162461bcd60e51b81526004016108ba90611b7b565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b610b5133610f74565b610b6d5760405162461bcd60e51b81526004016108ba90611b7b565b6009849055600a839055600b829055600c819055610b9781610b9184818888611322565b90611322565b600d8190556109c41015610bed5760405162461bcd60e51b815260206004820152601a60248201527f46656573206d757374206265206c657373207468616e2032352500000000000060448201526064016108ba565b50505050565b6000546001600160a01b03163314610c1d5760405162461bcd60e51b81526004016108ba90611bd9565b6011805460ff60a01b1916600160a01b179055565b610c3b33610f74565b610c575760405162461bcd60e51b81526004016108ba90611b7b565b620b71b08110610ca95760405162461bcd60e51b815260206004820152601860248201527f496e617070726f7072696174652067617320616d6f756e74000000000000000060448201526064016108ba565b601455565b600061088e338484610fbe565b6000546001600160a01b03163314610ce55760405162461bcd60e51b81526004016108ba90611bd9565b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b610d1533610f74565b610d315760405162461bcd60e51b81526004016108ba90611b7b565b6015805460ff191692151592909217909155601655565b610d5133610f74565b610d6d5760405162461bcd60e51b81526004016108ba90611b7b565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610db95760405162461bcd60e51b81526004016108ba90611bd9565b6001600160a01b03166000908152600160205260409020805460ff19169055565b6000546001600160a01b03163314610e045760405162461bcd60e51b81526004016108ba90611bd9565b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff191690921790915591519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163910160405180910390a150565b610e7933610f74565b610e955760405162461bcd60e51b81526004016108ba90611b7b565b6001600160a01b0382163014801590610ebc57506011546001600160a01b03838116911614155b610ec557600080fd5b6001600160a01b0382166000908152600860205260409020805460ff19168215801591909117909155610f2b57601254604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca96906044016108f7565b6012546001600160a01b0383811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca96906044016108f7565b6001600160a01b031660009081526001602052604090205460ff1690565b60008184841115610fb65760405162461bcd60e51b81526004016108ba9190611984565b505050900390565b600080546001600160a01b0385811691161461102357601154600160a01b900460ff166110235760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81a5cc8191a5cd8589b1959606a1b60448201526064016108ba565b60175460ff16156110405761103984848461132e565b905061088e565b6011546001600160a01b0385811691161480159061106c57506011546001600160a01b03848116911614155b1561107c5761103984848461132e565b611084611402565b1561109157611091611453565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546110e3918490610f92565b6001600160a01b03851660009081526005602052604081209190915561110985856117ad565b611113578261111d565b61111d8584611801565b6001600160a01b0385166000908152600560205260409020549091506111439082611322565b6001600160a01b0380861660009081526005602090815260408083209490945591881681526008909152205460ff166111e7576012546001600160a01b0386811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b1580156111d457600080fd5b505af19250505080156111e5575060015b505b6001600160a01b03841660009081526008602052604090205460ff16611278576012546001600160a01b0385811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561126557600080fd5b505af1925050508015611276575060015b505b6012546014546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916112b09160040190815260200190565b600060405180830381600087803b1580156112ca57600080fd5b505af19250505080156112db575060015b50836001600160a01b0316856001600160a01b0316600080516020611d388339815191528360405161130f91815260200190565b60405180910390a3506001949350505050565b600061088e8284611c12565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038616600090815260059091529182205461137f918490610f92565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546113ae9083611322565b6001600160a01b038085166000818152600560205260409081902093909355915190861690600080516020611d38833981519152906113f09086815260200190565b60405180910390a35060019392505050565b6011546000906001600160a01b03163314801590611423575060175460ff16155b8015611431575060155460ff165b801561144e57506016543060009081526005602052604090205410155b905090565b6017805460ff19166001179055600d54600954601654600092611486926002926114809291839190611960565b9061196c565b9050600061149f8260165461197890919063ffffffff16565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106114d9576114d9611c2a565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061150a5761150a611c2a565b6001600160a01b03928316602091820292909201015260105460405163791ac94760e01b81524792919091169063791ac94790611554908690600090879030904290600401611c40565b600060405180830381600087803b15801561156e57600080fd5b505af1158015611582573d6000803e3d6000fd5b50505050600061159b824761197890919063ffffffff16565b905060006115c16115b8600260095461196c90919063ffffffff16565b600d5490611978565b905060006115e36002611480846114806009548861196090919063ffffffff16565b9050600061160083611480600a548761196090919063ffffffff16565b9050600061161d84611480600b548861196090919063ffffffff16565b9050601260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561166f57600080fd5b505af193505050508015611681575060015b50600f546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156116bc573d6000803e3d6000fd5b508815611798576010546000805460405163f305d71960e01b8152306004820152602481018d90526044810183905260648101929092526001600160a01b0390811660848301524260a48301529091169063f305d71990859060c40160606040518083038185885af1158015611736573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061175b9190611cb1565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506017805460ff1916905550505050505050565b6001600160a01b03821660009081526007602052604081205460ff16806117ec57506001600160a01b03821660009081526007602052604090205460ff165b156117f9575060006107cb565b5060016107cb565b600080611824600e54611480600c54600d5461181d9190611cdf565b8690611960565b90506000611843600e54611480600c548761196090919063ffffffff16565b306000908152600560205260409020549091506118609083611322565b30600081815260056020526040908190209290925590516001600160a01b03871690600080516020611d388339815191529061189f9086815260200190565b60405180910390a361dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba546118de9082611322565b61dead600081905260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba919091556040516001600160a01b03871690600080516020611d388339815191529061193b9085815260200190565b60405180910390a36119576119508284611c12565b8590611978565b95945050505050565b600061088e8284611cf6565b600061088e8284611d15565b600061088e8284611cdf565b600060208083528351808285015260005b818110156119b157858101830151858201604001528201611995565b818111156119c3576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b03811681146119ee57600080fd5b50565b60008060408385031215611a0457600080fd5b8235611a0f816119d9565b946020939093013593505050565b600080600060608486031215611a3257600080fd5b8335611a3d816119d9565b92506020840135611a4d816119d9565b929592945050506040919091013590565b60008060408385031215611a7157600080fd5b50508035926020909101359150565b600060208284031215611a9257600080fd5b813561088e816119d9565b80151581146119ee57600080fd5b60008060408385031215611abe57600080fd5b8235611ac9816119d9565b91506020830135611ad981611a9d565b809150509250929050565b60008060008060808587031215611afa57600080fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215611b2857600080fd5b5035919050565b60008060408385031215611b4257600080fd5b8235611b4d816119d9565b91506020830135611ad9816119d9565b60008060408385031215611b7057600080fd5b8235611a0f81611a9d565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b600060208284031215611bb557600080fd5b5051919050565b600060208284031215611bce57600080fd5b815161088e81611a9d565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008219821115611c2557611c25611bfc565b500190565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611c905784516001600160a01b031683529383019391830191600101611c6b565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215611cc657600080fd5b8351925060208401519150604084015190509250925092565b600082821015611cf157611cf1611bfc565b500390565b6000816000190483118215151615611d1057611d10611bfc565b500290565b600082611d3257634e487b7160e01b600052601260045260246000fd5b50049056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220b60a622e1c3b4f9cbd8a51c22c68719c398d1a6d2a3b0b5524550492262afaeb64736f6c634300080f0033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.