Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 29 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 17613490 | 424 days ago | IN | 0 ETH | 0.00129614 | ||||
Approve | 17548618 | 433 days ago | IN | 0 ETH | 0.00056849 | ||||
Approve | 17542898 | 434 days ago | IN | 0 ETH | 0.00112525 | ||||
Approve | 17536660 | 435 days ago | IN | 0 ETH | 0.00087913 | ||||
Renounce Ownersh... | 17536616 | 435 days ago | IN | 0 ETH | 0.00038232 | ||||
Approve | 17536606 | 435 days ago | IN | 0 ETH | 0.00076048 | ||||
Change Sell Limi... | 17536598 | 435 days ago | IN | 0 ETH | 0.00043702 | ||||
Change Buy Limit | 17536596 | 435 days ago | IN | 0 ETH | 0.00040206 | ||||
Change Sell Fees | 17536556 | 435 days ago | IN | 0 ETH | 0.00165943 | ||||
Approve | 17536532 | 435 days ago | IN | 0 ETH | 0.0018618 | ||||
Approve | 17536532 | 435 days ago | IN | 0 ETH | 0.0018618 | ||||
Approve | 17536532 | 435 days ago | IN | 0 ETH | 0.0018618 | ||||
Approve | 17536532 | 435 days ago | IN | 0 ETH | 0.0018618 | ||||
Enable Trading | 17536531 | 435 days ago | IN | 0 ETH | 0.00060273 | ||||
Approve | 17536529 | 435 days ago | IN | 0 ETH | 0.00107331 | ||||
Approve | 17536529 | 435 days ago | IN | 0 ETH | 0.00107331 | ||||
Approve | 17536529 | 435 days ago | IN | 0 ETH | 0.00107331 | ||||
Approve | 17536528 | 435 days ago | IN | 0 ETH | 0.0019042 | ||||
Approve | 17536528 | 435 days ago | IN | 0 ETH | 0.0019042 | ||||
Approve | 17536528 | 435 days ago | IN | 0 ETH | 0.00111358 | ||||
Approve | 17536528 | 435 days ago | IN | 0 ETH | 0.0019042 | ||||
Approve | 17536527 | 435 days ago | IN | 0 ETH | 0.00109596 | ||||
Approve | 17536527 | 435 days ago | IN | 0 ETH | 0.00109596 | ||||
Approve | 17536527 | 435 days ago | IN | 0 ETH | 0.00189123 | ||||
Approve | 17536527 | 435 days ago | IN | 0 ETH | 0.00189123 |
Latest 21 internal transactions
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
17545243 | 434 days ago | 0.00034471 ETH | ||||
17545243 | 434 days ago | 0.00034471 ETH | ||||
17545243 | 434 days ago | 0.00069075 ETH | ||||
17545243 | 434 days ago | 0.00138151 ETH | ||||
17545243 | 434 days ago | 0.00207226 ETH | ||||
17538763 | 435 days ago | 0.00039967 ETH | ||||
17538763 | 435 days ago | 0.00039967 ETH | ||||
17538763 | 435 days ago | 0.00080116 ETH | ||||
17538763 | 435 days ago | 0.00160233 ETH | ||||
17538763 | 435 days ago | 0.00240349 ETH | ||||
17536765 | 435 days ago | 0.00031862 ETH | ||||
17536765 | 435 days ago | 0.00031862 ETH | ||||
17536765 | 435 days ago | 0.00063833 ETH | ||||
17536765 | 435 days ago | 0.00127666 ETH | ||||
17536765 | 435 days ago | 0.001915 ETH | ||||
17536649 | 435 days ago | 0.00185081 ETH | ||||
17536649 | 435 days ago | 0.00185081 ETH | ||||
17536649 | 435 days ago | 0.00373715 ETH | ||||
17536649 | 435 days ago | 0.00747431 ETH | ||||
17536649 | 435 days ago | 0.01121147 ETH | ||||
17530312 | 436 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Contract Name:
Yakuza
Compiler Version
v0.8.18+commit.87f61d96
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
/******* Yakuza is not just an organization; it is a mindset, a call to those who dare to walk the path less traveled. Translating to the "extreme path" in Japanese, Yakuza emerges during moments of unparalleled turbulence and uncertainty. By becoming a member of Yakuza, you receive rewards in the greatest crypto asset in existence, the one and only Bitcoin ($BTC). Yakuza is not just an organization; it is a mindset, a call to those who dare to walk the path less traveled. Translating to the "extreme path" in Japanese, Yakuza emerges during moments of unparalleled turbulence and uncertainty. By becoming a member of Yakuza, you receive rewards in the greatest crypto asset in existence, the one and only Bitcoin ($BTC). Join Yakuza and embrace the extreme path, and in return you will reap the $BTC that you sow! Website: https://yakuza.finance/ Twitter: https://twitter.com/YakuzaEth_Token Telegram: https://t.me/YakuzaEth ********/ //SPDX-License-Identifier: MIT pragma solidity ^0.8.14; import "@openzeppelin/contracts/access/Ownable.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol"; import "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol"; pragma solidity ^0.8.7; interface IDividendDistributor { function setDistributionCriteria( uint256 _minPeriod, uint256 _minDistribution ) external; function setShare(address shareholder, uint256 amount) external; function deposit(uint256 amount) external; function process(uint256 gas) external; function purge(address receiver) external; } contract DividendDistributor is IDividendDistributor { address public _token; struct Share { uint256 amount; uint256 totalExcluded; uint256 totalRealised; } IERC20 public REWARD; 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 * 60; uint256 public minDistribution = 1 * (10**3); uint256 currentIndex; bool initialized; modifier onlyToken() { require(msg.sender == _token); _; } constructor(address rewardToken) { _token = msg.sender; REWARD = IERC20(rewardToken); } receive() external payable {} function setDistributionCriteria( uint256 _minPeriod, uint256 _minDistribution ) external override onlyToken { minPeriod = _minPeriod; minDistribution = _minDistribution; } function purge(address receiver) external override onlyToken { uint256 balance = REWARD.balanceOf(address(this)); REWARD.transfer(receiver, balance); } 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 - (shares[shareholder].amount)) + amount; shares[shareholder].amount = amount; shares[shareholder].totalExcluded = getCumulativeDividends( shares[shareholder].amount ); } function deposit(uint256 amount) external override onlyToken { totalDividends = totalDividends + amount; dividendsPerShare = dividendsPerShare + ((dividendsPerShareAccuracyFactor * amount) / 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 + (gasLeft - 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 + amount; REWARD.transfer(shareholder, amount); shareholderClaims[shareholder] = block.timestamp; shares[shareholder].totalRealised = shares[shareholder].totalRealised + 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 - shareholderTotalExcluded; } function getHolderDetails(address holder) public view returns ( uint256 lastClaim, uint256 unpaidEarning, uint256 totalReward, uint256 holderIndex ) { lastClaim = shareholderClaims[holder]; unpaidEarning = getUnpaidEarnings(holder); totalReward = shares[holder].totalRealised; holderIndex = shareholderIndexes[holder]; } function getCumulativeDividends(uint256 share) internal view returns (uint256) { return (share * dividendsPerShare) / (dividendsPerShareAccuracyFactor); } function getLastProcessedIndex() external view returns (uint256) { return currentIndex; } function getNumberOfTokenHolders() external view returns (uint256) { return shareholders.length; } function getShareHoldersList() external view returns (address[] memory) { return shareholders; } function totalDistributedRewards() external view returns (uint256) { return totalDistributed; } 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(); delete shareholderIndexes[shareholder]; } } contract Yakuza is IERC20, Ownable { address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; address public REWARD = 0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599; // WBTC string constant _name = unicode"Yakuza ヤクザ"; string constant _symbol = "Yakuza"; uint8 constant _decimals = 9; uint256 _totalSupply = 21000000 * (10**_decimals); // One hundred billions mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isDividendExempt; mapping(address => bool) public isBlacklisted; mapping(address => bool) public isMaxBuyLimitExcluded; mapping(address => bool) public isMaxSellLimitExcluded; mapping(address => bool) public isAuthorized; address public marketingWallet; address public buyBackWallet; address public lpReceiver; // Fees uint256 public rewardFee = 3; uint256 public buyLiquidityFee = 0; uint256 public buyBuyBackFee = 0; uint256 public buyMarketingFee = 2; uint256 public buyTotalFee = 5; uint256 public sellLiquidityFee = 0; uint256 public sellBuyBackFee = 0; uint256 public sellMarketingFee = 40; uint256 public sellTotalFee = 40; uint256 public swapLiquidityFee = 1; uint256 public swapBuyBackFee = 1; uint256 public swapMarketingFee = 2; uint256 public swapTotalFee = 7; IUniswapV2Router02 public router; address public pair; DividendDistributor public dividendTracker; uint256 distributorGas = 500000; uint256 public maxSellLimit = (_totalSupply * 1) / 100; uint256 public maxBuyLimit = (_totalSupply * 1) / 100; bool public isSellCoolDownEnabled = true; uint256 public sellCoolDownTime = 15 minutes; uint256 public lastSwapTime; uint256 public swapThreshold = (_totalSupply * 1) / 10000; // 0.001% of supply bool public contractSwapEnabled = true; bool public isTradeEnabled = false; bool inContractSwap; modifier swapping() { inContractSwap = true; _; inContractSwap = false; } event SetIsDividendExempt(address holder, bool status); event SetIsFeeExempt(address holder, bool status); event AddAuthorizedWallet(address holder, bool status); event SetDoContractSwap(bool status); event DoContractSwap(uint256 amount, uint256 time); event ChangeDistributionCriteria( uint256 minPeriod, uint256 minDistribution ); event AutoLiquify(uint256 amountBNB, uint256 amountBOG); constructor() { router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); pair = IUniswapV2Factory(router.factory()).createPair( router.WETH(), address(this) ); _allowances[address(this)][address(router)] = type(uint256).max; dividendTracker = new DividendDistributor(REWARD); marketingWallet = 0x26c44cF2A78ba50038D0cEaf56C35b57ae723865; buyBackWallet = 0x26c44cF2A78ba50038D0cEaf56C35b57ae723865; lpReceiver = 0x26c44cF2A78ba50038D0cEaf56C35b57ae723865; address deployer = 0x26c44cF2A78ba50038D0cEaf56C35b57ae723865; isFeeExempt[deployer] = true; isFeeExempt[address(this)] = true; isFeeExempt[marketingWallet] = true; isFeeExempt[buyBackWallet] = true; isFeeExempt[lpReceiver] = true; isDividendExempt[deployer] = true; isDividendExempt[pair] = true; isDividendExempt[address(this)] = true; isDividendExempt[ZERO] = true; isDividendExempt[DEAD] = true; isDividendExempt[lpReceiver] = true; isDividendExempt[buyBackWallet] = true; isDividendExempt[marketingWallet] = true; isAuthorized[deployer] = true; isAuthorized[pair] = true; isAuthorized[address(this)] = true; isAuthorized[ZERO] = true; isAuthorized[DEAD] = true; isAuthorized[lpReceiver] = true; isAuthorized[buyBackWallet] = true; isAuthorized[marketingWallet] = true; isMaxBuyLimitExcluded[deployer] = true; isMaxSellLimitExcluded[deployer] = true; _balances[deployer] = _totalSupply; emit Transfer(address(0), deployer, _totalSupply); } receive() external payable {} function totalSupply() external view override returns (uint256) { return _totalSupply; } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function getHolderDetails(address holder) public view returns ( uint256, uint256, uint256, uint256 ) { return dividendTracker.getHolderDetails(holder); } function getLastProcessedIndex() public view returns (uint256) { return dividendTracker.getLastProcessedIndex(); } function getNumberOfTokenHolders() public view returns (uint256) { return dividendTracker.getNumberOfTokenHolders(); } function totalDistributedRewards() public view returns (uint256) { return dividendTracker.totalDistributedRewards(); } 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 _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } 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] != type(uint256).max) { require( _allowances[sender][msg.sender] >= amount, "Insufficient Allowance" ); _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } function _transferFrom( address sender, address recipient, uint256 amount ) internal returns (bool) { require( !isBlacklisted[sender] && !isBlacklisted[recipient], "Blacklisted users" ); if (!isTradeEnabled) require(isAuthorized[sender], "Trading disabled"); if (inContractSwap) { return _basicTransfer(sender, recipient, amount); } if (shouldDoContractSwap()) { doContractSwap(); } { if ( sender == pair && !isMaxBuyLimitExcluded[recipient] && maxBuyLimit != 0 ) require(amount <= maxBuyLimit, "Max buy limit exceeded"); if ( recipient == pair && !isMaxSellLimitExcluded[sender] && maxSellLimit != 0 ) require(amount <= maxSellLimit, "Max sell limit exceeded"); } require(_balances[sender] >= amount, "Insufficient Balance"); _balances[sender] = _balances[sender] - amount; uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient] + amountReceived; if (!isDividendExempt[sender]) { try dividendTracker.setShare(sender, _balances[sender]) {} catch {} } if (!isDividendExempt[recipient]) { try dividendTracker.setShare(recipient, _balances[recipient]) {} catch {} } try dividendTracker.process(distributorGas) {} catch {} emit Transfer(sender, recipient, amountReceived); return true; } function takeFee( address sender, address recipient, uint256 amount ) internal returns (uint256) { uint256 feeToken; if (recipient == pair) feeToken = (amount * sellTotalFee) / 100; else feeToken = (amount * buyTotalFee) / 100; _balances[address(this)] = _balances[address(this)] + feeToken; emit Transfer(sender, address(this), feeToken); return (amount - feeToken); } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { require(_balances[sender] >= amount, "Insufficient Balance"); _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + amount; emit Transfer(sender, recipient, amount); return true; } function shouldTakeFee(address sender, address to) internal view returns (bool) { if (isFeeExempt[sender] || isFeeExempt[to]) { return false; } else { return true; } } function shouldDoContractSwap() internal view returns (bool) { return (msg.sender != pair && !inContractSwap && contractSwapEnabled && (lastSwapTime + sellCoolDownTime) <= block.timestamp && _balances[address(this)] >= swapThreshold); } // Claim manually function ___claimRewards(bool tryAll) public { dividendTracker.claimDividend(); if (tryAll) { try dividendTracker.process(distributorGas) {} catch {} } } // Clear the queue manually function claimProcess() public { try dividendTracker.process(distributorGas) {} catch {} } function isRewardExcluded(address _wallet) public view returns (bool) { return isDividendExempt[_wallet]; } function isFeeExcluded(address _wallet) public view returns (bool) { return isFeeExempt[_wallet]; } function doContractSwap() internal swapping { uint256 contractTokenBalance = _balances[address(this)]; uint256 tokensToLp = (contractTokenBalance * swapLiquidityFee) / swapTotalFee; uint256 tokensToReward = (contractTokenBalance * rewardFee) / swapTotalFee; uint256 buyBackAndMarketingFee = swapBuyBackFee + swapMarketingFee; uint256 tokensToSwap = contractTokenBalance - tokensToLp - tokensToReward; if (tokensToReward > 0) { swapTokensForTokens(tokensToReward, REWARD); uint256 swappedRewardTokens = IERC20(REWARD).balanceOf( address(this) ); IERC20(REWARD).transfer( address(dividendTracker), swappedRewardTokens ); try dividendTracker.deposit(swappedRewardTokens) {} catch {} } if (tokensToSwap > 0 && buyBackAndMarketingFee > 0) { swapTokensForEth(tokensToSwap); uint256 swappedTokens = address(this).balance; uint256 tokensForMarketing = (swappedTokens * swapMarketingFee) / buyBackAndMarketingFee; uint256 tokensForBuyBack = swappedTokens - tokensForMarketing; if (tokensForMarketing > 0) payable(marketingWallet).transfer(tokensForMarketing); if (tokensForBuyBack > 0) payable(buyBackWallet).transfer(tokensForBuyBack); } if (tokensToLp > 0) swapAndLiquify(tokensToLp); lastSwapTime = block.timestamp; } // All tax wallets receive BUSD instead of BNB function swapTokensForTokens(uint256 tokenAmount, address tokenToSwap) private { address[] memory path = new address[](3); path[0] = address(this); path[1] = router.WETH(); path[2] = tokenToSwap; _approve(address(this), address(router), tokenAmount); router.swapExactTokensForTokensSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of tokens path, address(this), block.timestamp ); } function swapAndLiquify(uint256 tokens) private { // split the contract balance into halves uint256 half = tokens / 2; uint256 otherHalf = tokens - half; // capture the contract's current ETH balance. // this is so that we can capture exactly the amount of ETH that the // swap creates, and not make the liquidity event include any ETH that // has been manually sent to the contract uint256 initialBalance = address(this).balance; // swap tokens for ETH swapTokensForEth(half); // <- this breaks the ETH -> HATE swap when swap+liquify is triggered // how much ETH did we just swap into? uint256 newBalance = address(this).balance - initialBalance; // add liquidity to uniswap addLiquidity(otherHalf, newBalance); emit AutoLiquify(newBalance, otherHalf); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable lpReceiver, block.timestamp ); } function setIsDividendExempt(address holder, bool exempt) external onlyOwner { require( holder != address(this) && holder != pair, "can not add pair and token address as share holder" ); isDividendExempt[holder] = exempt; if (exempt) { dividendTracker.setShare(holder, 0); } else { dividendTracker.setShare(holder, _balances[holder]); } emit SetIsDividendExempt(holder, exempt); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; emit SetIsFeeExempt(holder, exempt); } function setDoContractSwap(bool _enabled) external onlyOwner { contractSwapEnabled = _enabled; emit SetDoContractSwap(_enabled); } function blackListWallets(address _wallet, bool _status) external onlyOwner { isBlacklisted[_wallet] = _status; } function setDistributionCriteria( uint256 _minPeriod, uint256 _minDistribution ) external onlyOwner { dividendTracker.setDistributionCriteria(_minPeriod, _minDistribution); emit ChangeDistributionCriteria(_minPeriod, _minDistribution); } function setDistributorSettings(uint256 gas) external onlyOwner { require(gas < 750000); distributorGas = gas; } function changeMarketingWallet(address _wallet) external onlyOwner { marketingWallet = _wallet; } function changeBuyBackWallet(address _wallet) external onlyOwner { buyBackWallet = _wallet; } function changeLPWallet(address _wallet) external onlyOwner { lpReceiver = _wallet; } function changeBuyFees( uint256 _liquidityFee, uint256 _buyBackFee, uint256 _marketingFee ) external onlyOwner { buyLiquidityFee = _liquidityFee; buyBuyBackFee = _buyBackFee; buyMarketingFee = _marketingFee; buyTotalFee = rewardFee + _liquidityFee + _buyBackFee + _marketingFee; require(buyTotalFee <= 15, "Total fees can not greater than 15%"); } function changeSellFees( uint256 _liquidityFee, uint256 _buyBackFee, uint256 _marketingFee ) external onlyOwner { sellLiquidityFee = _liquidityFee; sellBuyBackFee = _buyBackFee; sellMarketingFee = _marketingFee; sellTotalFee = rewardFee + _liquidityFee + _buyBackFee + _marketingFee; require(sellTotalFee <= 40, "Total fees can not greater than 15%"); } function changeSwapFees( uint256 _liquidityFee, uint256 _buyBackFee, uint256 _marketingFee ) external onlyOwner { swapLiquidityFee = _liquidityFee; swapBuyBackFee = _buyBackFee; swapMarketingFee = _marketingFee; swapTotalFee = rewardFee + _liquidityFee + _buyBackFee + _marketingFee; require(swapTotalFee <= 15, "Total fees can not greater than 15%"); } function setSellCollDown(bool _status, uint256 _coolDownTime) external onlyOwner { isSellCoolDownEnabled = _status; sellCoolDownTime = _coolDownTime; } function changeSellLimit(uint256 _limit) external onlyOwner { if (_limit > 0) require( _limit >= 100 * 10**6 * 10**_decimals, "Limit can not less than 250 million" ); maxSellLimit = _limit; } function changeBuyLimit(uint256 _limit) external onlyOwner { if (_limit > 0) require( _limit >= 2100000 * 10**_decimals, "Limit can not less than 2.1 million" ); maxBuyLimit = _limit; } function excludeFromMaxSell(address _wallet, bool _status) external onlyOwner { isMaxSellLimitExcluded[_wallet] = _status; } function excludeFromMaxBuy(address _wallet, bool _status) external onlyOwner { isMaxBuyLimitExcluded[_wallet] = _status; } function enableTrading() external onlyOwner { isTradeEnabled = true; } function setAuthorizedWallets(address _wallet, bool _status) external onlyOwner { isAuthorized[_wallet] = _status; } function rescueEth() external onlyOwner { uint256 balance = address(this).balance; require(balance > 0, "No enough ETH to transfer"); payable(msg.sender).transfer(balance); } function purgeBeforeSwitch() public onlyOwner { dividendTracker.purge(msg.sender); } function depositRewards(uint256 _rewardAmount) external onlyOwner { IERC20(REWARD).transferFrom( msg.sender, address(dividendTracker), _rewardAmount ); try dividendTracker.deposit(_rewardAmount) {} catch {} } }
pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; }
pragma solidity >=0.6.2; import './IUniswapV2Router01.sol'; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"AddAuthorizedWallet","type":"event"},{"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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"minPeriod","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"minDistribution","type":"uint256"}],"name":"ChangeDistributionCriteria","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"DoContractSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SetDoContractSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SetIsDividendExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"holder","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SetIsFeeExempt","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":"REWARD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"tryAll","type":"bool"}],"name":"___claimRewards","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"blackListWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyBackWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBuyBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"changeBuyBackWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buyBackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"changeBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"changeBuyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"changeLPWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buyBackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"changeSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"changeSellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buyBackFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"changeSwapFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimProcess","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractSwapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_rewardAmount","type":"uint256"}],"name":"depositRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dividendTracker","outputs":[{"internalType":"contract DividendDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"excludeFromMaxSell","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"name":"getHolderDetails","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLastProcessedIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNumberOfTokenHolders","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","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":"_wallet","type":"address"}],"name":"isFeeExcluded","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":"","type":"address"}],"name":"isMaxBuyLimitExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMaxSellLimitExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"isRewardExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSellCoolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isTradeEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastSwapTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purgeBeforeSwitch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellBuyBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellCoolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"setAuthorizedWallets","outputs":[],"stateMutability":"nonpayable","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":"bool","name":"_enabled","type":"bool"}],"name":"setDoContractSwap","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":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"},{"internalType":"uint256","name":"_coolDownTime","type":"uint256"}],"name":"setSellCollDown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBuyBackFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTotalFee","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":"totalDistributedRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b031990811661dead17909155600280548216905560038054909116732260fac5e5542a773aa44fbcfedf7c193bc2c599179055620000506009600a620007a0565b62000060906301406f40620007b8565b60045560036010556000601155600060125560026013556005601455600060155560006016556028601755602860185560016019556001601a556002601b556007601c556207a12060205560646004546001620000be9190620007b8565b620000ca9190620007d2565b60215560646004546001620000e09190620007b8565b620000ec9190620007d2565b6022556023805460ff1916600190811790915561038460245560045461271091620001189190620007b8565b620001249190620007d2565b6026556027805461ffff191660011790553480156200014257600080fd5b506200014e336200062d565b601d80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001b3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d99190620007f5565b6001600160a01b031663c9c65396601d60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002619190620007f5565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af1158015620002ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d49190620007f5565b601e80546001600160a01b0319166001600160a01b03928316179055306000908152600660209081526040808320601d5485168452909152908190206000199055600354905191169062000328906200067d565b6001600160a01b039091168152602001604051809103906000f08015801562000355573d6000803e3d6000fd5b50601f80546001600160a01b03199081166001600160a01b0393841617909155600d80547326c44cf2a78ba50038d0ceaf56c35b57ae72386590831681178255600e8054841682178155600f805490941682178455600760209081527f7edc10c5070027c04d241c2d0c3587e0714fd98b58196c1a7fd41ffd7f270ad5805460ff1990811660019081179092553060008181526040808220805485168617905588548b168252808220805485168617905586548b168252808220805485168617905589548b1682528082208054851686179055600886527f82fa9ca25fa7020d056aa541e2e83e40b94e05b6b4807acaee3ad358695a24158054851686179055601e80548c16835281832080548616871790558383528183208054861687179055600280548d168452828420805487168817905586548d16845282842080548716881790558b548d168452828420805487168817905588548d16845282842080548716881790558a548d1684528284208054871688179055600c88527fc313b74046ad5dc0a76842991de194f552ec3466e90745cca1b639adb3adf4f8805487168817905590548c1683528183208054861687179055928252808220805485168617905591548a168152818120805484168517905583548a1681528181208054841685179055975489168852808820805483168417905593548816875283872080548216831790559454909616855281852080548516871790558285527fc1889c2ce48afe67877d73da316bdd3378857e6e6e71a71342a3137bc1cbdcdc80548516871790557f98e8457c8d48919d41a8aec87d03f248d341ef2ebae9c69afcb326cd10e7af738054909416909517909255600454600585527ff7099c21735c69b1943f06491fb4b0c1dd44f22fdd9d5ea5925eeae9a60f774d8190559151918252928392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000820565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610eee80620039da83390190565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006e2578160001904821115620006c657620006c66200068b565b80851615620006d457918102915b93841c9390800290620006a6565b509250929050565b600082620006fb575060016200079a565b816200070a575060006200079a565b81600181146200072357600281146200072e576200074e565b60019150506200079a565b60ff8411156200074257620007426200068b565b50506001821b6200079a565b5060208310610133831016604e8410600b841016171562000773575081810a6200079a565b6200077f8383620006a1565b80600019048211156200079657620007966200068b565b0290505b92915050565b6000620007b160ff841683620006ea565b9392505050565b80820281158282048414176200079a576200079a6200068b565b600082620007f057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200080857600080fd5b81516001600160a01b0381168114620007b157600080fd5b6131aa80620008306000396000f3fe6080604052600436106104555760003560e01c80638b4242671161023f578063ce31a06b11610139578063eaaa848b116100b6578063f708a64f1161007a578063f708a64f14610d79578063f887ea4014610d99578063fdb78c0e14610db9578063fe575a8714610dd3578063fe9fbb8014610e0357600080fd5b8063eaaa848b14610d01578063f0327afc14610d17578063f11a24d314610d2d578063f2fde38b14610d43578063f637434214610d6357600080fd5b8063dd62ed3e116100fd578063dd62ed3e14610c50578063e04192ce14610c96578063e53c30b014610cb6578063e7841ec014610ccc578063e94668dc14610ce157600080fd5b8063ce31a06b14610bc6578063ce54149414610bdb578063d47b654d14610bfb578063d559230614610c1b578063d695bb2714610c3b57600080fd5b8063a7418106116101c7578063bb85c6d11161018b578063bb85c6d114610b13578063bca238aa14610b33578063c1987bac14610b6c578063cab34c0814610b86578063cd7b33ab14610ba657600080fd5b8063a741810614610a7e578063a7cfaa5214610a9e578063a87df83214610abe578063a8aa1b3114610ad3578063a9059cbb14610af357600080fd5b80638da5cb5b1161020e5780638da5cb5b146109db57806392136913146109f957806395d89b4114610a0f5780639d1944f514610a3e578063a3d14e7214610a5e57600080fd5b80638b424267146109665780638bdf67f21461097c5780638c52c6c81461099c5780638d38a127146109bc57600080fd5b80632d48e896116103505780635fe4bea8116102d8578063715018a61161029c578063715018a6146108f057806375f0a874146109055780637bce5a04146109255780637c9e770e1461093b5780638a8c523c1461095157600080fd5b80635fe4bea814610859578063652e2f041461086e578063658d4b7f146108845780636aa5b37f146108a457806370a08231146108ba57600080fd5b8063399bec451161031f578063399bec45146107895780633f4218e0146107b95780634355855a146107e957806351c7d04714610819578063571ac8b01461083957600080fd5b80632d48e89614610717578063313ce567146107375780633683685a146107535780633705b3921461077357600080fd5b806318160ddd116103de5780631fe70a98116103a25780631fe70a981461068b57806323b872dd146106a1578063276a0630146106c15780632c1f5216146106d75780632c256f7d146106f757600080fd5b806318160ddd146105cf5780631a221dbb146105e45780631cd348c0146105fa5780631de5a11f146106325780631f0c57fc1461066b57600080fd5b8063095ea7b311610425578063095ea7b31461052257806309bbedde146105425780630a05cd01146105575780630dd87157146105975780630eda7275146105ad57600080fd5b8062afb325146104615780630445b6671461048a57806306fdde03146104a0578063072bc7db146104e257600080fd5b3661045c57005b600080fd5b34801561046d57600080fd5b5061047760185481565b6040519081526020015b60405180910390f35b34801561049657600080fd5b5061047760265481565b3480156104ac57600080fd5b5060408051808201909152601081526f2cb0b5babd309071c1d271c157f1c15b60811b60208201525b6040516104819190612c87565b3480156104ee57600080fd5b506105126104fd366004612cea565b600a6020526000908152604090205460ff1681565b6040519015158152602001610481565b34801561052e57600080fd5b5061051261053d366004612d07565b610e33565b34801561054e57600080fd5b50610477610ea0565b34801561056357600080fd5b50610577610572366004612cea565b610f13565b604080519485526020850193909352918301526060820152608001610481565b3480156105a357600080fd5b5061047760255481565b3480156105b957600080fd5b506105cd6105c8366004612d33565b610f97565b005b3480156105db57600080fd5b50600454610477565b3480156105f057600080fd5b5061047760165481565b34801561060657600080fd5b50600e5461061a906001600160a01b031681565b6040516001600160a01b039091168152602001610481565b34801561063e57600080fd5b5061051261064d366004612cea565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561067757600080fd5b50600f5461061a906001600160a01b031681565b34801561069757600080fd5b5061047760125481565b3480156106ad57600080fd5b506105126106bc366004612d4c565b611024565b3480156106cd57600080fd5b5061047760195481565b3480156106e357600080fd5b50601f5461061a906001600160a01b031681565b34801561070357600080fd5b506105cd610712366004612d8d565b611125565b34801561072357600080fd5b506105cd610732366004612db9565b61118c565b34801561074357600080fd5b5060405160098152602001610481565b34801561075f57600080fd5b506105cd61076e366004612de9565b611238565b34801561077f57600080fd5b5061047760145481565b34801561079557600080fd5b506105126107a4366004612cea565b600b6020526000908152604090205460ff1681565b3480156107c557600080fd5b506105126107d4366004612cea565b60076020526000908152604090205460ff1681565b3480156107f557600080fd5b50610512610804366004612cea565b60086020526000908152604090205460ff1681565b34801561082557600080fd5b506105cd610834366004612e22565b61126b565b34801561084557600080fd5b50610512610854366004612cea565b61128a565b34801561086557600080fd5b506105cd611298565b34801561087a57600080fd5b5061047760215481565b34801561089057600080fd5b506105cd61089f366004612de9565b6112ff565b3480156108b057600080fd5b5061047760225481565b3480156108c657600080fd5b506104776108d5366004612cea565b6001600160a01b031660009081526005602052604090205490565b3480156108fc57600080fd5b506105cd611363565b34801561091157600080fd5b50600d5461061a906001600160a01b031681565b34801561093157600080fd5b5061047760135481565b34801561094757600080fd5b50610477601b5481565b34801561095d57600080fd5b506105cd611377565b34801561097257600080fd5b5061047760105481565b34801561098857600080fd5b506105cd610997366004612d33565b611390565b3480156109a857600080fd5b506105cd6109b7366004612de9565b611475565b3480156109c857600080fd5b5060275461051290610100900460ff1681565b3480156109e757600080fd5b506000546001600160a01b031661061a565b348015610a0557600080fd5b5061047760175481565b348015610a1b57600080fd5b5060408051808201909152600681526559616b757a6160d01b60208201526104d5565b348015610a4a57600080fd5b506105cd610a59366004612d33565b6114a8565b348015610a6a57600080fd5b506105cd610a79366004612d8d565b6114c4565b348015610a8a57600080fd5b506105cd610a99366004612cea565b611526565b348015610aaa57600080fd5b506105cd610ab9366004612e40565b611550565b348015610aca57600080fd5b506104776115f6565b348015610adf57600080fd5b50601e5461061a906001600160a01b031681565b348015610aff57600080fd5b50610512610b0e366004612d07565b611640565b348015610b1f57600080fd5b506105cd610b2e366004612cea565b61164d565b348015610b3f57600080fd5b50610512610b4e366004612cea565b6001600160a01b031660009081526007602052604090205460ff1690565b348015610b7857600080fd5b506023546105129060ff1681565b348015610b9257600080fd5b5060035461061a906001600160a01b031681565b348015610bb257600080fd5b506105cd610bc1366004612d8d565b611677565b348015610bd257600080fd5b506105cd6116d9565b348015610be757600080fd5b506105cd610bf6366004612e40565b61175c565b348015610c0757600080fd5b506105cd610c16366004612de9565b6117ab565b348015610c2757600080fd5b506105cd610c36366004612de9565b6117de565b348015610c4757600080fd5b506105cd611811565b348015610c5c57600080fd5b50610477610c6b366004612e5d565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610ca257600080fd5b506105cd610cb1366004612cea565b61187b565b348015610cc257600080fd5b50610477601c5481565b348015610cd857600080fd5b506104776118a5565b348015610ced57600080fd5b506105cd610cfc366004612d33565b6118ef565b348015610d0d57600080fd5b50610477601a5481565b348015610d2357600080fd5b5061047760245481565b348015610d3957600080fd5b5061047760115481565b348015610d4f57600080fd5b506105cd610d5e366004612cea565b611976565b348015610d6f57600080fd5b5061047760155481565b348015610d8557600080fd5b506105cd610d94366004612de9565b6119ec565b348015610da557600080fd5b50601d5461061a906001600160a01b031681565b348015610dc557600080fd5b506027546105129060ff1681565b348015610ddf57600080fd5b50610512610dee366004612cea565b60096020526000908152604090205460ff1681565b348015610e0f57600080fd5b50610512610e1e366004612cea565b600c6020526000908152604090205460ff1681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e8e9086815260200190565b60405180910390a35060015b92915050565b601f54604080516304ddf6ef60e11b815290516000926001600160a01b0316916309bbedde9160048083019260209291908290030181865afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e9190612e8b565b905090565b601f54604051630a05cd0160e01b81526001600160a01b0383811660048301526000928392839283921690630a05cd0190602401608060405180830381865afa158015610f64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f889190612ea4565b93509350935093509193509193565b610f9f611bd1565b801561101f57610fb16009600a612fd4565b610fbf906305f5e100612fe3565b81101561101f5760405162461bcd60e51b815260206004820152602360248201527f4c696d69742063616e206e6f74206c657373207468616e20323530206d696c6c60448201526234b7b760e91b60648201526084015b60405180910390fd5b602155565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914611110576001600160a01b03841660009081526006602090815260408083203384529091529020548211156110bc5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401611016565b6001600160a01b03841660009081526006602090815260408083203384529091529020546110eb908390612ffa565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61111b848484611c2b565b90505b9392505050565b61112d611bd1565b6019839055601a829055601b8190556010548190839061114e90869061300d565b611158919061300d565b611162919061300d565b601c819055600f10156111875760405162461bcd60e51b815260040161101690613020565b505050565b611194611bd1565b601f546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e89690604401600060405180830381600087803b1580156111e157600080fd5b505af11580156111f5573d6000803e3d6000fd5b505060408051858152602081018590527ff422aed0b19de56e7aa427c6fd0d5706c88ab222f9058aaa4ffaa0e279b46fc693500190505b60405180910390a15050565b611240611bd1565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b611273611bd1565b6023805460ff191692151592909217909155602455565b6000610e9a82600019610e33565b6112a0611bd1565b601f5460405163a6871bc360e01b81523360048201526001600160a01b039091169063a6871bc390602401600060405180830381600087803b1580156112e557600080fd5b505af11580156112f9573d6000803e3d6000fd5b50505050565b611307611bd1565b6001600160a01b038216600081815260076020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d69910161122c565b61136b611bd1565b6113756000612152565b565b61137f611bd1565b6027805461ff001916610100179055565b611398611bd1565b600354601f546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018490529116906323b872dd906064016020604051808303816000875af11580156113f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114179190613063565b50601f5460405163b6b55f2560e01b8152600481018390526001600160a01b039091169063b6b55f25906024015b600060405180830381600087803b15801561145f57600080fd5b505af1925050508015611470575060015b505b50565b61147d611bd1565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6114b0611bd1565b620b71b081106114bf57600080fd5b602055565b6114cc611bd1565b601583905560168290556017819055601054819083906114ed90869061300d565b6114f7919061300d565b611501919061300d565b6018819055602810156111875760405162461bcd60e51b815260040161101690613020565b61152e611bd1565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b601f60009054906101000a90046001600160a01b03166001600160a01b031663f0fc6bca6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115a057600080fd5b505af11580156115b4573d6000803e3d6000fd5b50505050801561147257601f546020546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916114459160040190815260200190565b601f546040805163543efc1960e11b815290516000926001600160a01b03169163a87df8329160048083019260209291908290030181865afa158015610eea573d6000803e3d6000fd5b600061111e338484611c2b565b611655611bd1565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b61167f611bd1565b601183905560128290556013819055601054819083906116a090869061300d565b6116aa919061300d565b6116b4919061300d565b6014819055600f10156111875760405162461bcd60e51b815260040161101690613020565b6116e1611bd1565b478061172f5760405162461bcd60e51b815260206004820152601960248201527f4e6f20656e6f7567682045544820746f207472616e73666572000000000000006044820152606401611016565b604051339082156108fc029083906000818181858888f19350505050158015611470573d6000803e3d6000fd5b611764611bd1565b6027805460ff19168215159081179091556040519081527f0d537fcb73bb9654441eb9bd03c28d4b833e5a2da1f53bf422424cb01bc80fc79060200160405180910390a150565b6117b3611bd1565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6117e6611bd1565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b601f546020546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916118499160040190815260200190565b600060405180830381600087803b15801561186357600080fd5b505af1925050508015611874575060015b1561137557565b611883611bd1565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b601f546040805163039e107b60e61b815290516000926001600160a01b03169163e7841ec09160048083019260209291908290030181865afa158015610eea573d6000803e3d6000fd5b6118f7611bd1565b8015611971576119096009600a612fd4565b6119169062200b20612fe3565b8110156119715760405162461bcd60e51b815260206004820152602360248201527f4c696d69742063616e206e6f74206c657373207468616e20322e31206d696c6c60448201526234b7b760e91b6064820152608401611016565b602255565b61197e611bd1565b6001600160a01b0381166119e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611016565b61147281612152565b6119f4611bd1565b6001600160a01b0382163014801590611a1b5750601e546001600160a01b03838116911614155b611a825760405162461bcd60e51b815260206004820152603260248201527f63616e206e6f7420616464207061697220616e6420746f6b656e20616464726560448201527139b99030b99039b430b932903437b63232b960711b6064820152608401611016565b6001600160a01b0382166000908152600860205260409020805460ff19168215801591909117909155611b1a57601f54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401600060405180830381600087803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b50505050611b91565b601f546001600160a01b0383811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611b7857600080fd5b505af1158015611b8c573d6000803e3d6000fd5b505050505b604080516001600160a01b038416815282151560208201527fad3666dd545175260bd4a82a50e0b189b968d227adfefd0df46a3e2fa2d5eafe910161122c565b6000546001600160a01b031633146113755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611016565b6001600160a01b03831660009081526009602052604081205460ff16158015611c6d57506001600160a01b03831660009081526009602052604090205460ff16155b611cad5760405162461bcd60e51b8152602060048201526011602482015270426c61636b6c697374656420757365727360781b6044820152606401611016565b602754610100900460ff16611d17576001600160a01b0384166000908152600c602052604090205460ff16611d175760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b6044820152606401611016565b60275462010000900460ff1615611d3a57611d338484846121a2565b905061111e565b611d426122bb565b15611d4f57611d4f61232b565b601e546001600160a01b038581169116148015611d8557506001600160a01b0383166000908152600a602052604090205460ff16155b8015611d92575060225415155b15611de257602254821115611de25760405162461bcd60e51b815260206004820152601660248201527513585e08189d5e481b1a5b5a5d08195e18d95959195960521b6044820152606401611016565b601e546001600160a01b038481169116148015611e1857506001600160a01b0384166000908152600b602052604090205460ff16155b8015611e25575060215415155b15611e7c57602154821115611e7c5760405162461bcd60e51b815260206004820152601760248201527f4d61782073656c6c206c696d69742065786365656465640000000000000000006044820152606401611016565b6001600160a01b038416600090815260056020526040902054821115611edb5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401611016565b6001600160a01b038416600090815260056020526040902054611eff908390612ffa565b6001600160a01b038516600090815260056020526040812091909155611f258585612611565b611f2f5782611f3a565b611f3a858585612665565b6001600160a01b038516600090815260056020526040902054909150611f6190829061300d565b6001600160a01b0380861660009081526005602090815260408083209490945591881681526008909152205460ff1661200557601f546001600160a01b0386811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611ff257600080fd5b505af1925050508015612003575060015b505b6001600160a01b03841660009081526008602052604090205460ff1661209657601f546001600160a01b0385811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561208357600080fd5b505af1925050508015612094575060015b505b601f546020546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916120ce9160040190815260200190565b600060405180830381600087803b1580156120e857600080fd5b505af19250505080156120f9575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161213f91815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600560205260408120548211156122015760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401611016565b6001600160a01b038416600090815260056020526040902054612225908390612ffa565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461225590839061300d565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122a99086815260200190565b60405180910390a35060019392505050565b601e546000906001600160a01b031633148015906122e2575060275462010000900460ff16155b80156122f0575060275460ff165b801561230b575042602454602554612308919061300d565b11155b8015610f0e57505060265430600090815260056020526040902054101590565b6027805462ff000019166201000017905530600090815260056020526040812054601c5460195491929161235f9084612fe3565b6123699190613080565b90506000601c546010548461237e9190612fe3565b6123889190613080565b90506000601b54601a5461239c919061300d565b90506000826123ab8587612ffa565b6123b59190612ffa565b90508215612517576003546123d49084906001600160a01b0316612745565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561241d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124419190612e8b565b600354601f5460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af1158015612498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bc9190613063565b50601f5460405163b6b55f2560e01b8152600481018390526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b15801561250357600080fd5b505af1925050508015612514575060015b50505b6000811180156125275750600082115b156125eb57612535816128d6565b601b54479060009084906125499084612fe3565b6125539190613080565b905060006125618284612ffa565b905081156125a557600d546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156125a3573d6000803e3d6000fd5b505b80156125e757600e546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156125e5573d6000803e3d6000fd5b505b5050505b83156125fa576125fa84612a30565b50504260255550506027805462ff00001916905550565b6001600160a01b03821660009081526007602052604081205460ff168061265057506001600160a01b03821660009081526007602052604090205460ff165b1561265d57506000610e9a565b506001610e9a565b601e5460009081906001600160a01b03908116908516036126a1576064601854846126909190612fe3565b61269a9190613080565b90506126be565b6064601454846126b19190612fe3565b6126bb9190613080565b90505b306000908152600560205260409020546126d990829061300d565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061272a9085815260200190565b60405180910390a361273c8184612ffa565b95945050505050565b6040805160038082526080820190925260009160208201606080368337019050509050308160008151811061277c5761277c6130a2565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156127d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f991906130b8565b8160018151811061280c5761280c6130a2565b60200260200101906001600160a01b031690816001600160a01b0316815250508181600281518110612840576128406130a2565b6001600160a01b039283166020918202929092010152601d546128669130911685612aaf565b601d54604051635c11d79560e01b81526001600160a01b0390911690635c11d7959061289f9086906000908690309042906004016130d5565b600060405180830381600087803b1580156128b957600080fd5b505af11580156128cd573d6000803e3d6000fd5b50505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061290b5761290b6130a2565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061298891906130b8565b8160018151811061299b5761299b6130a2565b6001600160a01b039283166020918202929092010152601d546129c19130911684612aaf565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906129fa9085906000908690309042906004016130d5565b600060405180830381600087803b158015612a1457600080fd5b505af1158015612a28573d6000803e3d6000fd5b505050505050565b6000612a3d600283613080565b90506000612a4b8284612ffa565b905047612a57836128d6565b6000612a638247612ffa565b9050612a6f8382612bd3565b60408051828152602081018590527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506910160405180910390a15050505050565b6001600160a01b038316612b115760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401611016565b6001600160a01b038216612b725760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401611016565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b601d54612beb9030906001600160a01b031684612aaf565b601d54600f5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612c5b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c809190613146565b5050505050565b600060208083528351808285015260005b81811015612cb457858101830151858201604001528201612c98565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461147257600080fd5b600060208284031215612cfc57600080fd5b813561111e81612cd5565b60008060408385031215612d1a57600080fd5b8235612d2581612cd5565b946020939093013593505050565b600060208284031215612d4557600080fd5b5035919050565b600080600060608486031215612d6157600080fd5b8335612d6c81612cd5565b92506020840135612d7c81612cd5565b929592945050506040919091013590565b600080600060608486031215612da257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612dcc57600080fd5b50508035926020909101359150565b801515811461147257600080fd5b60008060408385031215612dfc57600080fd5b8235612e0781612cd5565b91506020830135612e1781612ddb565b809150509250929050565b60008060408385031215612e3557600080fd5b8235612d2581612ddb565b600060208284031215612e5257600080fd5b813561111e81612ddb565b60008060408385031215612e7057600080fd5b8235612e7b81612cd5565b91506020830135612e1781612cd5565b600060208284031215612e9d57600080fd5b5051919050565b60008060008060808587031215612eba57600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612f2b578160001904821115612f1157612f11612eda565b80851615612f1e57918102915b93841c9390800290612ef5565b509250929050565b600082612f4257506001610e9a565b81612f4f57506000610e9a565b8160018114612f655760028114612f6f57612f8b565b6001915050610e9a565b60ff841115612f8057612f80612eda565b50506001821b610e9a565b5060208310610133831016604e8410600b8410161715612fae575081810a610e9a565b612fb88383612ef0565b8060001904821115612fcc57612fcc612eda565b029392505050565b600061111e60ff841683612f33565b8082028115828204841417610e9a57610e9a612eda565b81810381811115610e9a57610e9a612eda565b80820180821115610e9a57610e9a612eda565b60208082526023908201527f546f74616c20666565732063616e206e6f742067726561746572207468616e2060408201526231352560e81b606082015260800190565b60006020828403121561307557600080fd5b815161111e81612ddb565b60008261309d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156130ca57600080fd5b815161111e81612cd5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131255784516001600160a01b031683529383019391830191600101613100565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561315b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220adf92739e3c78383734e0aa68065334de2ee950ec25f9e30a35685383367b48e64736f6c6343000812003360806040526ec097ce7bc90715b34b9f1000000000600a55603c600b556103e8600c5534801561002e57600080fd5b50604051610eee380380610eee83398101604081905261004d91610080565b60008054336001600160a01b031991821617909155600180549091166001600160a01b03929092169190911790556100b0565b60006020828403121561009257600080fd5b81516001600160a01b03811681146100a957600080fd5b9392505050565b610e2f806100bf6000396000f3fe6080604052600436106101395760003560e01c8063a87df832116100ab578063e7841ec01161006f578063e7841ec01461037f578063ecd0c0c314610394578063efca2eed146103b4578063f0fc6bca146103ca578063ffb2c479146103df578063ffd49c84146103ff57600080fd5b8063a87df832146102a5578063b6b55f25146102ba578063cab34c08146102da578063ce7c2ac214610312578063e2d2e2191461036957600080fd5b80632d48e896116100fd5780632d48e896146102015780633a98ef39146102215780634fab0ae81461023757806360379e131461024d578063997664d71461026f578063a6871bc31461028557600080fd5b806309bbedde146101455780630a05cd011461016957806311ce023d146101a957806314b6ca96146101bf57806328fd3198146101e157600080fd5b3661014057005b600080fd5b34801561015157600080fd5b506002545b6040519081526020015b60405180910390f35b34801561017557600080fd5b50610189610184366004610c30565b610415565b604080519485526020850193909352918301526060820152608001610160565b3480156101b557600080fd5b50610156600a5481565b3480156101cb57600080fd5b506101df6101da366004610c52565b61046e565b005b3480156101ed57600080fd5b506101566101fc366004610c30565b6105e6565b34801561020d57600080fd5b506101df61021c366004610c7c565b610671565b34801561022d57600080fd5b5061015660065481565b34801561024357600080fd5b50610156600c5481565b34801561025957600080fd5b50610262610693565b6040516101609190610c9e565b34801561027b57600080fd5b5061015660075481565b34801561029157600080fd5b506101df6102a0366004610c30565b6106f5565b3480156102b157600080fd5b50600854610156565b3480156102c657600080fd5b506101df6102d5366004610ceb565b6107f7565b3480156102e657600080fd5b506001546102fa906001600160a01b031681565b6040516001600160a01b039091168152602001610160565b34801561031e57600080fd5b5061034e61032d366004610c30565b60056020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610160565b34801561037557600080fd5b5061015660095481565b34801561038b57600080fd5b50600d54610156565b3480156103a057600080fd5b506000546102fa906001600160a01b031681565b3480156103c057600080fd5b5061015660085481565b3480156103d657600080fd5b506101df61084d565b3480156103eb57600080fd5b506101df6103fa366004610ceb565b610858565b34801561040b57600080fd5b50610156600b5481565b6001600160a01b03811660009081526004602052604081205490808061043a856105e6565b6001600160a01b03909516600090815260056020908152604080832060020154600390925290912054949690949350915050565b6000546001600160a01b0316331461048557600080fd5b6001600160a01b038216600090815260056020526040902054156104ac576104ac8261095c565b6000811180156104d257506001600160a01b038216600090815260056020526040902054155b1561053857600280546001600160a01b0384166000818152600360205260408120839055600183018455929092527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0180546001600160a01b031916909117905561056b565b8015801561055d57506001600160a01b03821660009081526005602052604090205415155b1561056b5761056b82610a7c565b6001600160a01b038216600090815260056020526040902054600654829161059291610d1a565b61059c9190610d2d565b6006556001600160a01b03821660009081526005602052604090208190556105c381610bac565b6001600160a01b0390921660009081526005602052604090206001019190915550565b6001600160a01b038116600090815260056020526040812054810361060d57506000919050565b6001600160a01b03821660009081526005602052604081205461062f90610bac565b6001600160a01b03841660009081526005602052604090206001015490915080821161065f575060009392505050565b6106698183610d1a565b949350505050565b6000546001600160a01b0316331461068857600080fd5b600b91909155600c55565b606060028054806020026020016040519081016040528092919081815260200182805480156106eb57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106cd575b5050505050905090565b6000546001600160a01b0316331461070c57600080fd5b6001546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015610755573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107799190610d40565b60015460405163a9059cbb60e01b81526001600160a01b0385811660048301526024820184905292935091169063a9059cbb906044016020604051808303816000875af11580156107ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f29190610d59565b505050565b6000546001600160a01b0316331461080e57600080fd5b8060075461081c9190610d2d565b600755600654600a54610830908390610d7b565b61083a9190610d92565b6009546108479190610d2d565b60095550565b6108563361095c565b565b6000546001600160a01b0316331461086f57600080fd5b600254600081900361087f575050565b6000805a905060005b848310801561089657508381105b156109555783600d54106108aa576000600d555b6108dc6002600d54815481106108c2576108c2610db4565b6000918252602090912001546001600160a01b0316610bcf565b15610913576109136002600d54815481106108f9576108f9610db4565b6000918252602090912001546001600160a01b031661095c565b5a61091e9083610d1a565b6109289084610d2d565b92505a600d8054919350600061093d83610dca565b9190505550808061094d90610dca565b915050610888565b5050505050565b6001600160a01b038116600090815260056020526040812054900361097e5750565b6000610989826105e6565b90508015610a78578060085461099f9190610d2d565b60085560015460405163a9059cbb60e01b81526001600160a01b038481166004830152602482018490529091169063a9059cbb906044016020604051808303816000875af11580156109f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a199190610d59565b506001600160a01b03821660009081526004602090815260408083204290556005909152902060020154610a4e908290610d2d565b6001600160a01b03831660009081526005602052604090206002810191909155546105c390610bac565b5050565b60028054610a8c90600190610d1a565b81548110610a9c57610a9c610db4565b60009182526020808320909101546001600160a01b0384811684526003909252604090922054600280549290931692918110610ada57610ada610db4565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918316815260039182905260408120546002805491939291610b2690600190610d1a565b81548110610b3657610b36610db4565b60009182526020808320909101546001600160a01b031683528201929092526040019020556002805480610b6c57610b6c610de3565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b0392909216815260039091526040812055565b6000600a5460095483610bbf9190610d7b565b610bc99190610d92565b92915050565b600b546001600160a01b03821660009081526004602052604081205490914291610bf99190610d2d565b108015610bc95750600c54610c0d836105e6565b1192915050565b80356001600160a01b0381168114610c2b57600080fd5b919050565b600060208284031215610c4257600080fd5b610c4b82610c14565b9392505050565b60008060408385031215610c6557600080fd5b610c6e83610c14565b946020939093013593505050565b60008060408385031215610c8f57600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b81811015610cdf5783516001600160a01b031683529284019291840191600101610cba565b50909695505050505050565b600060208284031215610cfd57600080fd5b5035919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610bc957610bc9610d04565b80820180821115610bc957610bc9610d04565b600060208284031215610d5257600080fd5b5051919050565b600060208284031215610d6b57600080fd5b81518015158114610c4b57600080fd5b8082028115828204841417610bc957610bc9610d04565b600082610daf57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201610ddc57610ddc610d04565b5060010190565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220c21f0e791affa2d617357ac505a22939330330c2e2f1116b1749ace2b2c7d89664736f6c63430008120033
Deployed Bytecode
0x6080604052600436106104555760003560e01c80638b4242671161023f578063ce31a06b11610139578063eaaa848b116100b6578063f708a64f1161007a578063f708a64f14610d79578063f887ea4014610d99578063fdb78c0e14610db9578063fe575a8714610dd3578063fe9fbb8014610e0357600080fd5b8063eaaa848b14610d01578063f0327afc14610d17578063f11a24d314610d2d578063f2fde38b14610d43578063f637434214610d6357600080fd5b8063dd62ed3e116100fd578063dd62ed3e14610c50578063e04192ce14610c96578063e53c30b014610cb6578063e7841ec014610ccc578063e94668dc14610ce157600080fd5b8063ce31a06b14610bc6578063ce54149414610bdb578063d47b654d14610bfb578063d559230614610c1b578063d695bb2714610c3b57600080fd5b8063a7418106116101c7578063bb85c6d11161018b578063bb85c6d114610b13578063bca238aa14610b33578063c1987bac14610b6c578063cab34c0814610b86578063cd7b33ab14610ba657600080fd5b8063a741810614610a7e578063a7cfaa5214610a9e578063a87df83214610abe578063a8aa1b3114610ad3578063a9059cbb14610af357600080fd5b80638da5cb5b1161020e5780638da5cb5b146109db57806392136913146109f957806395d89b4114610a0f5780639d1944f514610a3e578063a3d14e7214610a5e57600080fd5b80638b424267146109665780638bdf67f21461097c5780638c52c6c81461099c5780638d38a127146109bc57600080fd5b80632d48e896116103505780635fe4bea8116102d8578063715018a61161029c578063715018a6146108f057806375f0a874146109055780637bce5a04146109255780637c9e770e1461093b5780638a8c523c1461095157600080fd5b80635fe4bea814610859578063652e2f041461086e578063658d4b7f146108845780636aa5b37f146108a457806370a08231146108ba57600080fd5b8063399bec451161031f578063399bec45146107895780633f4218e0146107b95780634355855a146107e957806351c7d04714610819578063571ac8b01461083957600080fd5b80632d48e89614610717578063313ce567146107375780633683685a146107535780633705b3921461077357600080fd5b806318160ddd116103de5780631fe70a98116103a25780631fe70a981461068b57806323b872dd146106a1578063276a0630146106c15780632c1f5216146106d75780632c256f7d146106f757600080fd5b806318160ddd146105cf5780631a221dbb146105e45780631cd348c0146105fa5780631de5a11f146106325780631f0c57fc1461066b57600080fd5b8063095ea7b311610425578063095ea7b31461052257806309bbedde146105425780630a05cd01146105575780630dd87157146105975780630eda7275146105ad57600080fd5b8062afb325146104615780630445b6671461048a57806306fdde03146104a0578063072bc7db146104e257600080fd5b3661045c57005b600080fd5b34801561046d57600080fd5b5061047760185481565b6040519081526020015b60405180910390f35b34801561049657600080fd5b5061047760265481565b3480156104ac57600080fd5b5060408051808201909152601081526f2cb0b5babd309071c1d271c157f1c15b60811b60208201525b6040516104819190612c87565b3480156104ee57600080fd5b506105126104fd366004612cea565b600a6020526000908152604090205460ff1681565b6040519015158152602001610481565b34801561052e57600080fd5b5061051261053d366004612d07565b610e33565b34801561054e57600080fd5b50610477610ea0565b34801561056357600080fd5b50610577610572366004612cea565b610f13565b604080519485526020850193909352918301526060820152608001610481565b3480156105a357600080fd5b5061047760255481565b3480156105b957600080fd5b506105cd6105c8366004612d33565b610f97565b005b3480156105db57600080fd5b50600454610477565b3480156105f057600080fd5b5061047760165481565b34801561060657600080fd5b50600e5461061a906001600160a01b031681565b6040516001600160a01b039091168152602001610481565b34801561063e57600080fd5b5061051261064d366004612cea565b6001600160a01b031660009081526008602052604090205460ff1690565b34801561067757600080fd5b50600f5461061a906001600160a01b031681565b34801561069757600080fd5b5061047760125481565b3480156106ad57600080fd5b506105126106bc366004612d4c565b611024565b3480156106cd57600080fd5b5061047760195481565b3480156106e357600080fd5b50601f5461061a906001600160a01b031681565b34801561070357600080fd5b506105cd610712366004612d8d565b611125565b34801561072357600080fd5b506105cd610732366004612db9565b61118c565b34801561074357600080fd5b5060405160098152602001610481565b34801561075f57600080fd5b506105cd61076e366004612de9565b611238565b34801561077f57600080fd5b5061047760145481565b34801561079557600080fd5b506105126107a4366004612cea565b600b6020526000908152604090205460ff1681565b3480156107c557600080fd5b506105126107d4366004612cea565b60076020526000908152604090205460ff1681565b3480156107f557600080fd5b50610512610804366004612cea565b60086020526000908152604090205460ff1681565b34801561082557600080fd5b506105cd610834366004612e22565b61126b565b34801561084557600080fd5b50610512610854366004612cea565b61128a565b34801561086557600080fd5b506105cd611298565b34801561087a57600080fd5b5061047760215481565b34801561089057600080fd5b506105cd61089f366004612de9565b6112ff565b3480156108b057600080fd5b5061047760225481565b3480156108c657600080fd5b506104776108d5366004612cea565b6001600160a01b031660009081526005602052604090205490565b3480156108fc57600080fd5b506105cd611363565b34801561091157600080fd5b50600d5461061a906001600160a01b031681565b34801561093157600080fd5b5061047760135481565b34801561094757600080fd5b50610477601b5481565b34801561095d57600080fd5b506105cd611377565b34801561097257600080fd5b5061047760105481565b34801561098857600080fd5b506105cd610997366004612d33565b611390565b3480156109a857600080fd5b506105cd6109b7366004612de9565b611475565b3480156109c857600080fd5b5060275461051290610100900460ff1681565b3480156109e757600080fd5b506000546001600160a01b031661061a565b348015610a0557600080fd5b5061047760175481565b348015610a1b57600080fd5b5060408051808201909152600681526559616b757a6160d01b60208201526104d5565b348015610a4a57600080fd5b506105cd610a59366004612d33565b6114a8565b348015610a6a57600080fd5b506105cd610a79366004612d8d565b6114c4565b348015610a8a57600080fd5b506105cd610a99366004612cea565b611526565b348015610aaa57600080fd5b506105cd610ab9366004612e40565b611550565b348015610aca57600080fd5b506104776115f6565b348015610adf57600080fd5b50601e5461061a906001600160a01b031681565b348015610aff57600080fd5b50610512610b0e366004612d07565b611640565b348015610b1f57600080fd5b506105cd610b2e366004612cea565b61164d565b348015610b3f57600080fd5b50610512610b4e366004612cea565b6001600160a01b031660009081526007602052604090205460ff1690565b348015610b7857600080fd5b506023546105129060ff1681565b348015610b9257600080fd5b5060035461061a906001600160a01b031681565b348015610bb257600080fd5b506105cd610bc1366004612d8d565b611677565b348015610bd257600080fd5b506105cd6116d9565b348015610be757600080fd5b506105cd610bf6366004612e40565b61175c565b348015610c0757600080fd5b506105cd610c16366004612de9565b6117ab565b348015610c2757600080fd5b506105cd610c36366004612de9565b6117de565b348015610c4757600080fd5b506105cd611811565b348015610c5c57600080fd5b50610477610c6b366004612e5d565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610ca257600080fd5b506105cd610cb1366004612cea565b61187b565b348015610cc257600080fd5b50610477601c5481565b348015610cd857600080fd5b506104776118a5565b348015610ced57600080fd5b506105cd610cfc366004612d33565b6118ef565b348015610d0d57600080fd5b50610477601a5481565b348015610d2357600080fd5b5061047760245481565b348015610d3957600080fd5b5061047760115481565b348015610d4f57600080fd5b506105cd610d5e366004612cea565b611976565b348015610d6f57600080fd5b5061047760155481565b348015610d8557600080fd5b506105cd610d94366004612de9565b6119ec565b348015610da557600080fd5b50601d5461061a906001600160a01b031681565b348015610dc557600080fd5b506027546105129060ff1681565b348015610ddf57600080fd5b50610512610dee366004612cea565b60096020526000908152604090205460ff1681565b348015610e0f57600080fd5b50610512610e1e366004612cea565b600c6020526000908152604090205460ff1681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e8e9086815260200190565b60405180910390a35060015b92915050565b601f54604080516304ddf6ef60e11b815290516000926001600160a01b0316916309bbedde9160048083019260209291908290030181865afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e9190612e8b565b905090565b601f54604051630a05cd0160e01b81526001600160a01b0383811660048301526000928392839283921690630a05cd0190602401608060405180830381865afa158015610f64573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f889190612ea4565b93509350935093509193509193565b610f9f611bd1565b801561101f57610fb16009600a612fd4565b610fbf906305f5e100612fe3565b81101561101f5760405162461bcd60e51b815260206004820152602360248201527f4c696d69742063616e206e6f74206c657373207468616e20323530206d696c6c60448201526234b7b760e91b60648201526084015b60405180910390fd5b602155565b6001600160a01b038316600090815260066020908152604080832033845290915281205460001914611110576001600160a01b03841660009081526006602090815260408083203384529091529020548211156110bc5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401611016565b6001600160a01b03841660009081526006602090815260408083203384529091529020546110eb908390612ffa565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b61111b848484611c2b565b90505b9392505050565b61112d611bd1565b6019839055601a829055601b8190556010548190839061114e90869061300d565b611158919061300d565b611162919061300d565b601c819055600f10156111875760405162461bcd60e51b815260040161101690613020565b505050565b611194611bd1565b601f546040516316a4744b60e11b815260048101849052602481018390526001600160a01b0390911690632d48e89690604401600060405180830381600087803b1580156111e157600080fd5b505af11580156111f5573d6000803e3d6000fd5b505060408051858152602081018590527ff422aed0b19de56e7aa427c6fd0d5706c88ab222f9058aaa4ffaa0e279b46fc693500190505b60405180910390a15050565b611240611bd1565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b611273611bd1565b6023805460ff191692151592909217909155602455565b6000610e9a82600019610e33565b6112a0611bd1565b601f5460405163a6871bc360e01b81523360048201526001600160a01b039091169063a6871bc390602401600060405180830381600087803b1580156112e557600080fd5b505af11580156112f9573d6000803e3d6000fd5b50505050565b611307611bd1565b6001600160a01b038216600081815260076020908152604091829020805460ff19168515159081179091558251938452908301527f1b92447bfc74f86a82293c184341926a5888220bc498dde33efabf7c3d796d69910161122c565b61136b611bd1565b6113756000612152565b565b61137f611bd1565b6027805461ff001916610100179055565b611398611bd1565b600354601f546040516323b872dd60e01b81523360048201526001600160a01b039182166024820152604481018490529116906323b872dd906064016020604051808303816000875af11580156113f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114179190613063565b50601f5460405163b6b55f2560e01b8152600481018390526001600160a01b039091169063b6b55f25906024015b600060405180830381600087803b15801561145f57600080fd5b505af1925050508015611470575060015b505b50565b61147d611bd1565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6114b0611bd1565b620b71b081106114bf57600080fd5b602055565b6114cc611bd1565b601583905560168290556017819055601054819083906114ed90869061300d565b6114f7919061300d565b611501919061300d565b6018819055602810156111875760405162461bcd60e51b815260040161101690613020565b61152e611bd1565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b601f60009054906101000a90046001600160a01b03166001600160a01b031663f0fc6bca6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156115a057600080fd5b505af11580156115b4573d6000803e3d6000fd5b50505050801561147257601f546020546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916114459160040190815260200190565b601f546040805163543efc1960e11b815290516000926001600160a01b03169163a87df8329160048083019260209291908290030181865afa158015610eea573d6000803e3d6000fd5b600061111e338484611c2b565b611655611bd1565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b61167f611bd1565b601183905560128290556013819055601054819083906116a090869061300d565b6116aa919061300d565b6116b4919061300d565b6014819055600f10156111875760405162461bcd60e51b815260040161101690613020565b6116e1611bd1565b478061172f5760405162461bcd60e51b815260206004820152601960248201527f4e6f20656e6f7567682045544820746f207472616e73666572000000000000006044820152606401611016565b604051339082156108fc029083906000818181858888f19350505050158015611470573d6000803e3d6000fd5b611764611bd1565b6027805460ff19168215159081179091556040519081527f0d537fcb73bb9654441eb9bd03c28d4b833e5a2da1f53bf422424cb01bc80fc79060200160405180910390a150565b6117b3611bd1565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6117e6611bd1565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b601f546020546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916118499160040190815260200190565b600060405180830381600087803b15801561186357600080fd5b505af1925050508015611874575060015b1561137557565b611883611bd1565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b601f546040805163039e107b60e61b815290516000926001600160a01b03169163e7841ec09160048083019260209291908290030181865afa158015610eea573d6000803e3d6000fd5b6118f7611bd1565b8015611971576119096009600a612fd4565b6119169062200b20612fe3565b8110156119715760405162461bcd60e51b815260206004820152602360248201527f4c696d69742063616e206e6f74206c657373207468616e20322e31206d696c6c60448201526234b7b760e91b6064820152608401611016565b602255565b61197e611bd1565b6001600160a01b0381166119e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611016565b61147281612152565b6119f4611bd1565b6001600160a01b0382163014801590611a1b5750601e546001600160a01b03838116911614155b611a825760405162461bcd60e51b815260206004820152603260248201527f63616e206e6f7420616464207061697220616e6420746f6b656e20616464726560448201527139b99030b99039b430b932903437b63232b960711b6064820152608401611016565b6001600160a01b0382166000908152600860205260409020805460ff19168215801591909117909155611b1a57601f54604051630a5b654b60e11b81526001600160a01b03848116600483015260006024830152909116906314b6ca9690604401600060405180830381600087803b158015611afd57600080fd5b505af1158015611b11573d6000803e3d6000fd5b50505050611b91565b601f546001600160a01b0383811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611b7857600080fd5b505af1158015611b8c573d6000803e3d6000fd5b505050505b604080516001600160a01b038416815282151560208201527fad3666dd545175260bd4a82a50e0b189b968d227adfefd0df46a3e2fa2d5eafe910161122c565b6000546001600160a01b031633146113755760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611016565b6001600160a01b03831660009081526009602052604081205460ff16158015611c6d57506001600160a01b03831660009081526009602052604090205460ff16155b611cad5760405162461bcd60e51b8152602060048201526011602482015270426c61636b6c697374656420757365727360781b6044820152606401611016565b602754610100900460ff16611d17576001600160a01b0384166000908152600c602052604090205460ff16611d175760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b6044820152606401611016565b60275462010000900460ff1615611d3a57611d338484846121a2565b905061111e565b611d426122bb565b15611d4f57611d4f61232b565b601e546001600160a01b038581169116148015611d8557506001600160a01b0383166000908152600a602052604090205460ff16155b8015611d92575060225415155b15611de257602254821115611de25760405162461bcd60e51b815260206004820152601660248201527513585e08189d5e481b1a5b5a5d08195e18d95959195960521b6044820152606401611016565b601e546001600160a01b038481169116148015611e1857506001600160a01b0384166000908152600b602052604090205460ff16155b8015611e25575060215415155b15611e7c57602154821115611e7c5760405162461bcd60e51b815260206004820152601760248201527f4d61782073656c6c206c696d69742065786365656465640000000000000000006044820152606401611016565b6001600160a01b038416600090815260056020526040902054821115611edb5760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401611016565b6001600160a01b038416600090815260056020526040902054611eff908390612ffa565b6001600160a01b038516600090815260056020526040812091909155611f258585612611565b611f2f5782611f3a565b611f3a858585612665565b6001600160a01b038516600090815260056020526040902054909150611f6190829061300d565b6001600160a01b0380861660009081526005602090815260408083209490945591881681526008909152205460ff1661200557601f546001600160a01b0386811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b158015611ff257600080fd5b505af1925050508015612003575060015b505b6001600160a01b03841660009081526008602052604090205460ff1661209657601f546001600160a01b0385811660008181526005602052604090819020549051630a5b654b60e11b8152600481019290925260248201529116906314b6ca9690604401600060405180830381600087803b15801561208357600080fd5b505af1925050508015612094575060015b505b601f546020546040516001624d3b8760e01b031981526001600160a01b039092169163ffb2c479916120ce9160040190815260200190565b600060405180830381600087803b1580156120e857600080fd5b505af19250505080156120f9575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161213f91815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600560205260408120548211156122015760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742042616c616e636560601b6044820152606401611016565b6001600160a01b038416600090815260056020526040902054612225908390612ffa565b6001600160a01b03808616600090815260056020526040808220939093559085168152205461225590839061300d565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122a99086815260200190565b60405180910390a35060019392505050565b601e546000906001600160a01b031633148015906122e2575060275462010000900460ff16155b80156122f0575060275460ff165b801561230b575042602454602554612308919061300d565b11155b8015610f0e57505060265430600090815260056020526040902054101590565b6027805462ff000019166201000017905530600090815260056020526040812054601c5460195491929161235f9084612fe3565b6123699190613080565b90506000601c546010548461237e9190612fe3565b6123889190613080565b90506000601b54601a5461239c919061300d565b90506000826123ab8587612ffa565b6123b59190612ffa565b90508215612517576003546123d49084906001600160a01b0316612745565b6003546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa15801561241d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124419190612e8b565b600354601f5460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb906044016020604051808303816000875af1158015612498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bc9190613063565b50601f5460405163b6b55f2560e01b8152600481018390526001600160a01b039091169063b6b55f2590602401600060405180830381600087803b15801561250357600080fd5b505af1925050508015612514575060015b50505b6000811180156125275750600082115b156125eb57612535816128d6565b601b54479060009084906125499084612fe3565b6125539190613080565b905060006125618284612ffa565b905081156125a557600d546040516001600160a01b039091169083156108fc029084906000818181858888f193505050501580156125a3573d6000803e3d6000fd5b505b80156125e757600e546040516001600160a01b039091169082156108fc029083906000818181858888f193505050501580156125e5573d6000803e3d6000fd5b505b5050505b83156125fa576125fa84612a30565b50504260255550506027805462ff00001916905550565b6001600160a01b03821660009081526007602052604081205460ff168061265057506001600160a01b03821660009081526007602052604090205460ff165b1561265d57506000610e9a565b506001610e9a565b601e5460009081906001600160a01b03908116908516036126a1576064601854846126909190612fe3565b61269a9190613080565b90506126be565b6064601454846126b19190612fe3565b6126bb9190613080565b90505b306000908152600560205260409020546126d990829061300d565b30600081815260056020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061272a9085815260200190565b60405180910390a361273c8184612ffa565b95945050505050565b6040805160038082526080820190925260009160208201606080368337019050509050308160008151811061277c5761277c6130a2565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156127d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127f991906130b8565b8160018151811061280c5761280c6130a2565b60200260200101906001600160a01b031690816001600160a01b0316815250508181600281518110612840576128406130a2565b6001600160a01b039283166020918202929092010152601d546128669130911685612aaf565b601d54604051635c11d79560e01b81526001600160a01b0390911690635c11d7959061289f9086906000908690309042906004016130d5565b600060405180830381600087803b1580156128b957600080fd5b505af11580156128cd573d6000803e3d6000fd5b50505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061290b5761290b6130a2565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612964573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061298891906130b8565b8160018151811061299b5761299b6130a2565b6001600160a01b039283166020918202929092010152601d546129c19130911684612aaf565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac947906129fa9085906000908690309042906004016130d5565b600060405180830381600087803b158015612a1457600080fd5b505af1158015612a28573d6000803e3d6000fd5b505050505050565b6000612a3d600283613080565b90506000612a4b8284612ffa565b905047612a57836128d6565b6000612a638247612ffa565b9050612a6f8382612bd3565b60408051828152602081018590527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506910160405180910390a15050505050565b6001600160a01b038316612b115760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401611016565b6001600160a01b038216612b725760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401611016565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b601d54612beb9030906001600160a01b031684612aaf565b601d54600f5460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af1158015612c5b573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612c809190613146565b5050505050565b600060208083528351808285015260005b81811015612cb457858101830151858201604001528201612c98565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461147257600080fd5b600060208284031215612cfc57600080fd5b813561111e81612cd5565b60008060408385031215612d1a57600080fd5b8235612d2581612cd5565b946020939093013593505050565b600060208284031215612d4557600080fd5b5035919050565b600080600060608486031215612d6157600080fd5b8335612d6c81612cd5565b92506020840135612d7c81612cd5565b929592945050506040919091013590565b600080600060608486031215612da257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612dcc57600080fd5b50508035926020909101359150565b801515811461147257600080fd5b60008060408385031215612dfc57600080fd5b8235612e0781612cd5565b91506020830135612e1781612ddb565b809150509250929050565b60008060408385031215612e3557600080fd5b8235612d2581612ddb565b600060208284031215612e5257600080fd5b813561111e81612ddb565b60008060408385031215612e7057600080fd5b8235612e7b81612cd5565b91506020830135612e1781612cd5565b600060208284031215612e9d57600080fd5b5051919050565b60008060008060808587031215612eba57600080fd5b505082516020840151604085015160609095015191969095509092509050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115612f2b578160001904821115612f1157612f11612eda565b80851615612f1e57918102915b93841c9390800290612ef5565b509250929050565b600082612f4257506001610e9a565b81612f4f57506000610e9a565b8160018114612f655760028114612f6f57612f8b565b6001915050610e9a565b60ff841115612f8057612f80612eda565b50506001821b610e9a565b5060208310610133831016604e8410600b8410161715612fae575081810a610e9a565b612fb88383612ef0565b8060001904821115612fcc57612fcc612eda565b029392505050565b600061111e60ff841683612f33565b8082028115828204841417610e9a57610e9a612eda565b81810381811115610e9a57610e9a612eda565b80820180821115610e9a57610e9a612eda565b60208082526023908201527f546f74616c20666565732063616e206e6f742067726561746572207468616e2060408201526231352560e81b606082015260800190565b60006020828403121561307557600080fd5b815161111e81612ddb565b60008261309d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156130ca57600080fd5b815161111e81612cd5565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156131255784516001600160a01b031683529383019391830191600101613100565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561315b57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220adf92739e3c78383734e0aa68065334de2ee950ec25f9e30a35685383367b48e64736f6c63430008120033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 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.