ERC-20
DeFi
Overview
Max Total Supply
21,000,000,000 BUSHI
Holders
1,136 (0.00%)
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ERC20BABYUSH1
Compiler Version
v0.8.14+commit.80d49f37
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT // ,ƒ ,╗Γ ╚╔, \, // ██L ▓▐▌ ▓▌╬Γ ▀█ // ██▌▒, ╚▓▀▓ ╬█ß▌ ,@╟██ // ▐███/▒w▓╦█▓@g╖ ╓g╥▓█╦▓╔╫\███▌ // '█████▄ █████▓▄@w╤¢▄╬███▓█,╓█████' // █████████▀▀▄▓██▓▄▀▀█████████` // ╙████████▄▓▄▄▓▄████████▀ // ▄████▓▓██▀▀██▓▓████▄ // ███╣█████▌╬▓▐█████Ñ▀██ // ╘▓▀██]▓▓▓▓╝████┘ // ╚╣████████▌╝ // ▀████▀` // ╫╬╬╬╬╬╬@╗ ,╬╬╬╖ ╫╬╬╬╬╬╬@╗ ╙╬╬╖ @╬╝ ╬╬ ╬╬ ,@╬╬╣╬╬@, ╬╬ ╬╬U ╟╬╬ // ║╢╣,,,╓╢╬ ,╣╢ ╣╢┐ ║╢╣,,,╓╢╬ ╨╢@╓╬╣╜ ╢╢ ╢╢ ╟╢╢╖╖,``` ╢╢U,,,,╢╢U ╟╢╢ // ║╢╣╜╜╜╨║@ ,╣╢Ç,]╢╢, ║╢╣╜╜╜╨╢@ `╢╢╣ ╢╢ ]╢╢ ╙╙╩╩╣╢@ ╢╢╨╨╨╨╨╢╢U ╟╢╢ // ║╢╣╦╦╦@╢╢ ╣╢╜╜╜╜╨╢╢ ║╢╣╦╦╦@╢╢ ╢╢[ ╚╢╣╦╦@╬╢╝ ╚╢╬╦╗╦╬╢╝ ╢╢ ╢╢U ╟╢╢ // ╢ ╓╢╜╙╢╖ ║╢ ╢╢, ╢L ╢╢╖ @╜╙╚N ╢╜╙╙╢ ╢[ ║[ ╢ ║[ ║╢╙╙╢╖ ╢ ╢ ]╢╖ ╢ // ╓ ║ ╢[ ,║ ║╢ ║ ╙╢╢L ╢╣╓║╖ ,╙╙╢@ ║╜╙╙╢ ╢[ ║[ ║ ║[ ║║╝╢╢ ║ ║ ]║╙╢╢║ // `╙╙╜ `╙╙" ╙' ╙ ╙ "╜ ╙ `╙╙╙ ╙╙╙╙` ╙╙╙` ╙╙╙╙ ╙╙╙╙'╙╙ ╙" ╙╙╙ ╙ `╙ // Is an improved fork token with // the function of a passive staking protocol // on the Ethereum network Mainnet, // which is launched for the purpose // of Continue the BULLISH trend // https://babyushi.com/ // https://twitter.com/babyushieth // https://t.me/babyushiengchat // https://t.me/babyushieng // Rewards 8% // BuyBack 3% // AutoLp 1% // Marketing 8% pragma solidity ^0.8.14; import './interfaces/RewardsTracker.sol'; import './interfaces/Ownable.sol'; import './interfaces/IDex.sol'; import './interfaces/IERC20.sol'; import './interfaces/ERC20.sol'; library Address { function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, 'Address: insufficient balance'); (bool success, ) = recipient.call{value: amount}(''); require(success, 'Address: unable to send value, recipient may have reverted'); } } contract ERC20BABYUSH1 is ERC20, Ownable, RewardsTracker { using Address for address payable; IRouter public router; address public pair; bool private swapping; bool public antiBotSystem; bool public swapEnabled = true; address public marketingWallet = 0xdE747aeF6E223601352aD01A9115D34b7a333c04; address public buybackWallet = 0x5e901ca79A5CDe2804772910Fa3eC7eAC651F147; uint256 public swapTokensAtAmount = 10_000_000 * 10**18; uint256 public maxWalletAmount = 105_000_000 * 10**18; uint256 public gasLimit = 300_000; uint256 public goldenHourStart; struct Taxes { uint64 rewards; uint64 marketing; uint64 buyback; uint64 lp; } Taxes public buyTaxes = Taxes(8, 8, 3, 1); Taxes public sellTaxes = Taxes(8, 8, 3, 1); uint256 public totalBuyTax = 20; uint256 public totalSellTax = 20; mapping(address => bool) public _isExcludedFromFees; mapping(address => bool) public antiBot; mapping(address => bool) public isPair; /////////////// // Events // /////////////// event ExcludeFromFees(address indexed account, bool isExcluded); event ExcludeMultipleAccountsFromFees(address[] accounts, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event GasForProcessingUpdated(uint256 indexed newValue, uint256 indexed oldValue); event SendDividends(uint256 tokensSwapped, uint256 amount); event ProcessedDividendTracker( uint256 iterations, uint256 claims, uint256 lastProcessedIndex, bool indexed automatic, uint256 gas, address indexed processor ); constructor(address _router, address _rewardToken) ERC20('BUSHI', 'BUSHI') RewardsTracker(_router, _rewardToken) { router = IRouter(_router); pair = IFactory(router.factory()).createPair(address(this), router.WETH()); isPair[pair] = true; minBalanceForRewards = 210_000 * 10**18; claimDelay = 1 hours; // exclude from receiving dividends excludedFromDividends[address(this)] = true; excludedFromDividends[owner()] = true; excludedFromDividends[address(0xdead)] = true; excludedFromDividends[address(_router)] = true; excludedFromDividends[address(pair)] = true; // exclude from paying fees or having max transaction amount _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[marketingWallet] = true; _isExcludedFromFees[buybackWallet] = true; antiBotSystem = true; antiBot[address(this)] = true; antiBot[owner()] = true; antiBot[marketingWallet] = true; antiBot[buybackWallet] = true; // _mint is an internal function in ERC20.sol that is only called here, // and CANNOT be called ever again _mint(owner(), 21e9 * (10**18)); } receive() external payable {} /// @notice Manual claim the dividends function claim() external { super._processAccount(payable(msg.sender)); } function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner { IERC20(tokenAddress).transfer(owner(), amount); } function rescueETH() external onlyOwner { uint256 ETHbalance = address(this).balance; payable(owner()).sendValue(ETHbalance); } function updateRouter(address newRouter) external onlyOwner { router = IRouter(newRouter); } ///////////////////////////////// // Exclude / Include functions // ///////////////////////////////// function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFees[accounts[i]] = excluded; } emit ExcludeMultipleAccountsFromFees(accounts, excluded); } /////////////////////// // Setter Functions // /////////////////////// function setRewardToken(address newToken) external onlyOwner { super._setRewardToken(newToken); } function startGoldenHour() external onlyOwner { goldenHourStart = block.timestamp; } function setMarketingWallet(address newWallet) external onlyOwner { marketingWallet = newWallet; } function setBuybackWallet(address newWallet) external onlyOwner { buybackWallet = newWallet; } function setClaimDelay(uint256 amountInSeconds) external onlyOwner { claimDelay = amountInSeconds; } function setSwapTokensAtAmount(uint256 amount) external onlyOwner { swapTokensAtAmount = amount * 10**18; } function setBuyTaxes( uint64 _rewards, uint64 _marketing, uint64 _buyback, uint64 _lp ) external onlyOwner { buyTaxes = Taxes(_rewards, _marketing, _buyback, _lp); totalBuyTax = _rewards + _marketing + _buyback + _lp; } function setSellTaxes( uint64 _rewards, uint64 _marketing, uint64 _buyback, uint64 _lp ) external onlyOwner { sellTaxes = Taxes(_rewards, _marketing, _buyback, _lp); totalSellTax = _rewards + _marketing + _buyback + _lp; } function setMaxWallet(uint256 maxWalletPercentage) external onlyOwner { maxWalletAmount = (maxWalletPercentage * totalSupply()) / 1000; } function setGasLimit(uint256 newGasLimit) external onlyOwner { gasLimit = newGasLimit; //QWxsIHJpZ2h0cyBiZWxvbmcgdG8gQkFZVVNISS4gQ29weWluZyBhIGNvbnRyYWN0IGlzIGEgdmlvbGF0aW9uIGFuZCBzdWdnZXN0cyB0aGF0IHdob2V2ZXIgZGlkIGl0IGhhcyBzbW9vdGhpZXMgaW5zdGVhZCBvZiBicmFpbnMu } function setSwapEnabled(bool _enabled) external onlyOwner { swapEnabled = _enabled; } function setMinBalanceForRewards(uint256 minBalance) external onlyOwner { minBalanceForRewards = minBalance * 10**18; } function setAntiBotStatus(bool value) external onlyOwner { _setAntiBotStatus(value); } function _setAntiBotStatus(bool value) internal { antiBotSystem = value; } function addAntiBot(address _address) external onlyOwner { _addAntiBot(_address); } function addMultipleAntiBot(address[] memory _addresses) external onlyOwner { for (uint256 i = 0; i < _addresses.length; i++) { _addAntiBot(_addresses[i]); } } function _addAntiBot(address _address) internal { antiBot[_address] = true; } function removeMultipleAntiBot(address[] memory _addresses) external onlyOwner { for (uint256 i = 0; i < _addresses.length; i++) { _removeAntiBot(_addresses[i]); } } function _removeAntiBot(address _address) internal { antiBot[_address] = false; } /// @dev Set new pairs created due to listing in new DEX function setPair(address newPair, bool value) external onlyOwner { _setPair(newPair, value); } function _setPair(address newPair, bool value) private { isPair[newPair] = value; if (value) { excludedFromDividends[newPair] = true; } } //////////////////////// // Transfer Functions // //////////////////////// function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), 'ERC20: transfer from the zero address'); require(to != address(0), 'ERC20: transfer to the zero address'); require(amount > 0, 'Transfer amount must be greater than zero'); if (antiBotSystem) { require(antiBot[tx.origin], 'Address is bot'); } if (!_isExcludedFromFees[from] && !_isExcludedFromFees[to] && !swapping) { if (!isPair[to]) { require(balanceOf(to) + amount <= maxWalletAmount, 'You are exceeding maxWallet'); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && !swapping && swapEnabled && !isPair[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] && totalSellTax > 0 ) { swapping = true; swapAndLiquify(swapTokensAtAmount); swapping = false; } bool takeFee = !swapping; if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } if (!isPair[to] && !isPair[from]) takeFee = false; if (takeFee) { uint256 feeAmt; if (isPair[to]) feeAmt = (amount * totalSellTax) / 100; else if (isPair[from]) { if (block.timestamp < goldenHourStart + 1 hours) feeAmt = (amount * (buyTaxes.lp + buyTaxes.buyback)) / 100; else feeAmt = (amount * totalBuyTax) / 100; } amount = amount - feeAmt; super._transfer(from, address(this), feeAmt); } super._transfer(from, to, amount); super.setBalance(from, balanceOf(from)); super.setBalance(to, balanceOf(to)); if (!swapping) { super.autoDistribute(gasLimit); } } function swapAndLiquify(uint256 tokens) private { // Split the contract balance into halves uint256 denominator = totalSellTax * 2; uint256 tokensToAddLiquidityWith = (tokens * sellTaxes.lp) / denominator; uint256 toSwap = tokens - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance = deltaBalance / (denominator - sellTaxes.lp); uint256 bnbToAddLiquidityWith = unitBalance * sellTaxes.lp; if (bnbToAddLiquidityWith > 0) { // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, bnbToAddLiquidityWith); } // Send ETH to marketing uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if (marketingAmt > 0) { payable(marketingWallet).sendValue(marketingAmt); } // Send ETH to buyback uint256 buybackAmt = unitBalance * 2 * sellTaxes.buyback; if (buybackAmt > 0) { payable(buybackWallet).sendValue(buybackAmt); } // Send ETH to rewards uint256 dividends = unitBalance * 2 * sellTaxes.rewards; if (dividends > 0) super._distributeDividends(dividends); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function swapTokensForETH(uint256 tokenAmount) private { 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, // QWxsIHJpZ2h0cyBiZWxvbmcgdG8gQkFZVVNISS4gQ29weWluZyBhIGNvbnRyYWN0IGlzIGEgdmlvbGF0aW9uIGFuZCBzdWdnZXN0cyB0aGF0IHdob2V2ZXIgZGlkIGl0IGhhcyBzbW9vdGhpZXMgaW5zdGVhZCBvZiBicmFpbnMu address(this), block.timestamp ); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "./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); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; import "./Ownable.sol"; import "./IDex.sol"; import "./IERC20.sol"; /// @title RewardsTracker /// @author FreezyEx (https://github.com/FreezyEx) /// @dev A contract that allows anyone to pay and distribute ethers to users as shares. /// @notice This contract is based on erc1726 by Roger-Wu (https://github.com/Roger-Wu/erc1726-dividend-paying-token) contract RewardsTracker is Ownable { mapping(address => uint256) public userShares; mapping(address => int256) internal magnifiedDividendCorrections; mapping(address => uint256) internal withdrawnDividends; mapping(address => bool) public excludedFromDividends; mapping(address => uint256) public lastClaimTime; mapping(address => uint256) public elegibleUsersIndex; mapping(address => bool ) public isElegible; address[] elegibleUsers; IRouter public rewardRouter; address public rewardToken; uint256 constant internal magnitude = 2**128; uint256 internal magnifiedDividendPerShare; uint256 public totalDividends; uint256 public totalDividendsWithdrawn; uint256 public totalShares; uint256 public minBalanceForRewards; uint256 public claimDelay; uint256 public currentIndex; event ExcludeFromDividends(address indexed account, bool value); event Claim(address indexed account, uint256 amount); event DividendWithdrawn(address indexed to, uint256 weiAmount); constructor(address _router, address _rewardToken) { rewardRouter = IRouter(_router); rewardToken = _rewardToken; } function excludeFromDividends(address account, bool value) external onlyOwner { require(excludedFromDividends[account] != value); excludedFromDividends[account] = value; if(value == true){ _setBalance(account, 0); } else{ _setBalance(account, userShares[account]); } emit ExcludeFromDividends(account, value); } function _setRewardToken(address newToken) internal{ rewardToken = newToken; } function getAccount(address account) public view returns (uint256 withdrawableUserDividends, uint256 totalUserDividends, uint256 lastUserClaimTime, uint256 withdrawnUserDividends) { withdrawableUserDividends = withdrawableDividendOf(account); totalUserDividends = accumulativeDividendOf(account); lastUserClaimTime = lastClaimTime[account]; withdrawnUserDividends = withdrawnDividends[account]; } function setBalance(address account, uint256 newBalance) internal { if(excludedFromDividends[account]) { return; } _setBalance(account, newBalance); } function _setMinBalanceForRewards(uint256 newMinBalance) internal { minBalanceForRewards = newMinBalance; } function autoDistribute(uint256 gasAvailable) public { uint256 size = elegibleUsers.length; if(size == 0) return; uint256 gasSpent = 0; uint256 gasLeft = gasleft(); uint256 lastIndex = currentIndex; uint256 iterations = 0; while(gasSpent < gasAvailable && iterations < size){ if(lastIndex >= size){ lastIndex = 0; } address account = elegibleUsers[lastIndex]; if(lastClaimTime[account] + claimDelay < block.timestamp){ _processAccount(account); } lastIndex++; iterations++; gasSpent += gasLeft - gasleft(); gasLeft = gasleft(); } currentIndex = lastIndex; } function _processAccount(address account) internal returns(bool){ uint256 amount = _withdrawDividendOfUser(account); if(amount > 0) { lastClaimTime[account] = block.timestamp; emit Claim(account, amount); return true; } return false; } function distributeDividends() external payable { if (msg.value > 0) { _distributeDividends(msg.value); } } function _distributeDividends(uint256 amount) internal { require(totalShares > 0); magnifiedDividendPerShare = magnifiedDividendPerShare + (amount * magnitude / totalShares); totalDividends= totalDividends + amount; } function _withdrawDividendOfUser(address user) internal returns (uint256) { uint256 _withdrawableDividend = withdrawableDividendOf(user); if (_withdrawableDividend > 0) { withdrawnDividends[user] += _withdrawableDividend; totalDividendsWithdrawn += _withdrawableDividend; emit DividendWithdrawn(user, _withdrawableDividend); (bool success) = swapEthForCustomToken(user, _withdrawableDividend); if(!success) { (bool secondSuccess,) = payable(user).call{value: _withdrawableDividend, gas: 3000}(""); if(!secondSuccess) { withdrawnDividends[user] -= _withdrawableDividend; totalDividendsWithdrawn -= _withdrawableDividend; return 0; } } return _withdrawableDividend; } return 0; } function swapEthForCustomToken(address user, uint256 amt) internal returns (bool) { address[] memory path = new address[](2); path[0] = rewardRouter.WETH(); path[1] = rewardToken; try rewardRouter.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amt}(0, path, user, block.timestamp) { return true; } catch { return false; } } function dividendOf(address _owner) public view returns(uint256) { return withdrawableDividendOf(_owner); } function withdrawableDividendOf(address _owner) public view returns(uint256) { return accumulativeDividendOf(_owner) - withdrawnDividends[_owner]; } function withdrawnDividendOf(address _owner) public view returns(uint256) { return withdrawnDividends[_owner]; } function accumulativeDividendOf(address _owner) public view returns(uint256) { return uint256(int256(magnifiedDividendPerShare * userShares[_owner]) + magnifiedDividendCorrections[_owner]) / magnitude; } function addShares(address account, uint256 value) internal { userShares[account] += value; totalShares += value; magnifiedDividendCorrections[account] = magnifiedDividendCorrections[account] - int256(magnifiedDividendPerShare * value); } function removeShares(address account, uint256 value) internal { userShares[account] -= value; totalShares -= value; magnifiedDividendCorrections[account] = magnifiedDividendCorrections[account] + int256(magnifiedDividendPerShare * value); } function _setBalance(address account, uint256 newBalance) internal { uint256 currentBalance = userShares[account]; if(currentBalance > 0) { _processAccount(account); } if(newBalance < minBalanceForRewards && isElegible[account]){ isElegible[account] = false; elegibleUsers[elegibleUsersIndex[account]] = elegibleUsers[elegibleUsers.length - 1]; elegibleUsersIndex[elegibleUsers[elegibleUsers.length - 1]] = elegibleUsersIndex[account]; elegibleUsers.pop(); removeShares(account, currentBalance); } else{ if(userShares[account] == 0){ isElegible[account] = true; elegibleUsersIndex[account] = elegibleUsers.length; elegibleUsers.push(account); } if(newBalance > currentBalance) { uint256 mintAmount = newBalance - currentBalance; addShares(account, mintAmount); } else if(newBalance < currentBalance) { uint256 burnAmount = currentBalance - newBalance; removeShares(account, burnAmount); } } } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.10; interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); function getPair(address tokenA, address tokenB) external view returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( 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; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, 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 `sender` to `recipient` 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 sender, address recipient, uint256 amount ) external returns (bool); /** * @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 Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (token/ERC20/ERC20.sol) pragma solidity ^0.8.0; import "./IERC20.sol"; import "./Context.sol"; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin Contracts guidelines: functions revert * instead returning `false` on failure. This behavior is nonetheless * conventional and does not conflict with the expectations of ERC20 * applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The default value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5.05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `to` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on * `transferFrom`. This is semantically equivalent to an infinite approval. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * NOTE: Does not update the allowance if the current allowance * is the maximum `uint256`. * * Requirements: * * - `from` and `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. * - the caller must have allowance for ``from``'s tokens of at least * `amount`. */ function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } /** * @dev Moves `amount` of tokens from `from` to `to`. * * This internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `from` must have a balance of at least `amount`. */ function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; // Overflow not possible: the sum of all balances is capped by totalSupply, and the sum is preserved by // decrementing then incrementing. _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { // Overflow not possible: balance + amount is at most totalSupply + amount, which is checked above. _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; // Overflow not possible: amount <= accountBalance <= totalSupply. _totalSupply -= amount; } emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ 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); } /** * @dev Updates `owner` s allowance for `spender` based on spent `amount`. * * Does not update the allowance amount in case of infinite allowance. * Revert if not enough allowance is available. * * Might emit an {Approval} event. */ function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * has been transferred to `to`. * - when `from` is zero, `amount` tokens have been minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens have been burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} }
// 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 }, "metadata": { "bytecodeHash": "none" }, "evmVersion": "istanbul", "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"address","name":"_rewardToken","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"DividendWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"value","type":"bool"}],"name":"ExcludeFromDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"accounts","type":"address[]"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeMultipleAccountsFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"newValue","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"oldValue","type":"uint256"}],"name":"GasForProcessingUpdated","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":"uint256","name":"iterations","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"claims","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"lastProcessedIndex","type":"uint256"},{"indexed":true,"internalType":"bool","name":"automatic","type":"bool"},{"indexed":false,"internalType":"uint256","name":"gas","type":"uint256"},{"indexed":true,"internalType":"address","name":"processor","type":"address"}],"name":"ProcessedDividendTracker","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"SendDividends","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"accumulativeDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"addMultipleAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"antiBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiBotSystem","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"uint256","name":"gasAvailable","type":"uint256"}],"name":"autoDistribute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTaxes","outputs":[{"internalType":"uint64","name":"rewards","type":"uint64"},{"internalType":"uint64","name":"marketing","type":"uint64"},{"internalType":"uint64","name":"buyback","type":"uint64"},{"internalType":"uint64","name":"lp","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buybackWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"distributeDividends","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"dividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"elegibleUsersIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromDividends","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromDividends","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gasLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getAccount","outputs":[{"internalType":"uint256","name":"withdrawableUserDividends","type":"uint256"},{"internalType":"uint256","name":"totalUserDividends","type":"uint256"},{"internalType":"uint256","name":"lastUserClaimTime","type":"uint256"},{"internalType":"uint256","name":"withdrawnUserDividends","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goldenHourStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isElegible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastClaimTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minBalanceForRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":[{"internalType":"address[]","name":"_addresses","type":"address[]"}],"name":"removeMultipleAntiBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardRouter","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint64","name":"rewards","type":"uint64"},{"internalType":"uint64","name":"marketing","type":"uint64"},{"internalType":"uint64","name":"buyback","type":"uint64"},{"internalType":"uint64","name":"lp","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setAntiBotStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"_rewards","type":"uint64"},{"internalType":"uint64","name":"_marketing","type":"uint64"},{"internalType":"uint64","name":"_buyback","type":"uint64"},{"internalType":"uint64","name":"_lp","type":"uint64"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setBuybackWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountInSeconds","type":"uint256"}],"name":"setClaimDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newGasLimit","type":"uint256"}],"name":"setGasLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletPercentage","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minBalance","type":"uint256"}],"name":"setMinBalanceForRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newToken","type":"address"}],"name":"setRewardToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"_rewards","type":"uint64"},{"internalType":"uint64","name":"_marketing","type":"uint64"},{"internalType":"uint64","name":"_buyback","type":"uint64"},{"internalType":"uint64","name":"_lp","type":"uint64"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startGoldenHour","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividends","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalDividendsWithdrawn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalShares","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","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"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"}],"name":"updateRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"withdrawableDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"withdrawnDividendOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6018805460ff60b01b1916600160b01b179055601980546001600160a01b031990811673de747aef6e223601352ad01a9115d34b7a333c0417909155601a8054909116735e901ca79a5cde2804772910fa3ec7eac651f1471790556a084595161401484a000000601b556a56da9d67d20d7709000000601c55620493e0601d556008608081905260a0819052600360c0819052600160e08190527801000000000000000300000000000000080000000000000008601f81905561018060405261010084905261012093909352610140919091526101605260205560146021819055602255348015620000f057600080fd5b5060405162003d3738038062003d37833981016040819052620001139162000751565b604080518082018252600580825264425553484960d81b6020808401828152855180870190965292855284015281518593859392909162000157916003916200068e565b5080516200016d9060049060208401906200068e565b5050506200018a620001846200057260201b60201c565b62000576565b600e80546001600160a01b03199081166001600160a01b0394851617909155600f80548216928416929092179091556017805490911691841691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000204573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022a919062000789565b6001600160a01b031663c9c6539630601760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b3919062000789565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000301573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000327919062000789565b601880546001600160a01b0319166001600160a01b039290921691821790556000908152602560209081526040808320805460ff199081166001908117909255692c781f708c509f400000601455610e106015553085526009938490529184208054909216811790915591620003a56005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905560099093527f960b1051749987b45b5679007fff577a1c2f763ec21c15a6c5eb19307500378580548516600190811790915586821684528284208054861682179055601854909116835290822080549093168117909255602390620004406005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff199687161790553080825260238552838220805487166001908117909155601954841683528483208054881682179055601a54909316825283822080548716841790556018805460ff60a81b1916600160a81b179055815260249384905291822080549094168117909355620004e56005546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601954821681526024909352818320805485166001908117909155601a549091168352912080549092161790556200056a620005576005546001600160a01b031690565b6b43dacaf91c1a84ff08000000620005c8565b505062000811565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620006235760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060026000828254620006379190620007ae565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b8280546200069c90620007d5565b90600052602060002090601f016020900481019282620006c057600085556200070b565b82601f10620006db57805160ff19168380011785556200070b565b828001600101855582156200070b579182015b828111156200070b578251825591602001919060010190620006ee565b50620007199291506200071d565b5090565b5b808211156200071957600081556001016200071e565b80516001600160a01b03811681146200074c57600080fd5b919050565b600080604083850312156200076557600080fd5b620007708362000734565b9150620007806020840162000734565b90509250929050565b6000602082840312156200079c57600080fd5b620007a78262000734565b9392505050565b60008219821115620007d057634e487b7160e01b600052601160045260246000fd5b500190565b600181811c90821680620007ea57607f821691505b6020821081036200080b57634e487b7160e01b600052602260045260246000fd5b50919050565b61351680620008216000396000f3fe6080604052600436106104405760003560e01c806386a22eff11610234578063c851cc321161012e578063e5e31b13116100b6578063f68016b71161007a578063f68016b714610da2578063f7c618c114610db8578063f887ea4014610dd8578063f904513b14610df8578063fbcbc0f114610e0d57600080fd5b8063e5e31b1314610cd2578063ee7d72b414610d02578063f2fde38b14610d22578063f6362d5f14610d42578063f66895a314610d6357600080fd5b8063de69b3aa116100fd578063de69b3aa14610c1f578063deab8aea14610c4c578063e01af92c14610c6c578063e0bf7fd114610c8c578063e2f4560514610cbc57600080fd5b8063c851cc3214610b9f578063d05cdbe514610bbf578063dcab514014610bdf578063dd62ed3e14610bff57600080fd5b8063a457c2d7116101bc578063aafd847a11610180578063aafd847a14610adc578063afa4f3b214610b12578063b77cf9c614610b32578063c024666814610b5f578063c492f04614610b7f57600080fd5b8063a457c2d714610a46578063a8aa1b3114610a66578063a8b9d24014610a86578063a9059cbb14610aa6578063aa4bde2814610ac657600080fd5b806391b89fba1161020357806391b89fba146109b557806395d89b41146109d5578063997664d7146109ea578063997836d414610a005780639e1e066114610a3057600080fd5b806386a22eff146109375780638aee8127146109575780638cd4426d146109775780638da5cb5b1461099757600080fd5b806339509351116103455780635d0044ca116102cd578063715018a611610291578063715018a61461085057806375f0a874146108655780637cb610de1461088557806381bd0881146108a5578063864701a5146108c557600080fd5b80635d0044ca146107995780635d098b38146107b95780636ddd1713146107d957806370a08231146107fa57806370cbe56c1461083057600080fd5b806346469afb1161031457806346469afb146106f05780634e71d92d146107065780634e7b827f1461071b5780635561e1f61461074b5780635a3bb9891461076157600080fd5b8063395093511461066a5780633a1920f71461068a5780633a98ef39146106aa5780633fa1410f146106c057600080fd5b80631c8ec299116103c857806326987b601161039757806326987b60146105e257806327ce0147146105f85780632a8ddc9b146106185780632de322271461062e578063313ce5671461064e57600080fd5b80631c8ec299146105775780631d0adc071461058d57806320800a00146105ad57806323b872dd146105c257600080fd5b806312c656401161040f57806312c65640146104d157806314fa7dbb146104f157806317c6d7481461052c57806318160ddd1461054c5780631bff78981461056157600080fd5b806303c833021461044c5780630483f7a01461045657806306fdde0314610476578063095ea7b3146104a157600080fd5b3661044757005b600080fd5b610454610e4d565b005b34801561046257600080fd5b50610454610471366004612e0e565b610e5e565b34801561048257600080fd5b5061048b610f3e565b6040516104989190612e47565b60405180910390f35b3480156104ad57600080fd5b506104c16104bc366004612e9c565b610fd0565b6040519015158152602001610498565b3480156104dd57600080fd5b506104546104ec366004612ede565b610fea565b3480156104fd57600080fd5b5061051e61050c366004612fa2565b600b6020526000908152604090205481565b604051908152602001610498565b34801561053857600080fd5b50610454610547366004612fc6565b611052565b34801561055857600080fd5b5060025461051e565b34801561056d57600080fd5b5061051e60225481565b34801561058357600080fd5b5061051e60155481565b34801561059957600080fd5b506104546105a8366004612fa2565b611131565b3480156105b957600080fd5b5061045461115b565b3480156105ce57600080fd5b506104c16105dd366004612fdf565b61118c565b3480156105ee57600080fd5b5061051e60165481565b34801561060457600080fd5b5061051e610613366004612fa2565b6111b0565b34801561062457600080fd5b5061051e601e5481565b34801561063a57600080fd5b50610454610649366004612fa2565b6111fb565b34801561065a57600080fd5b5060405160128152602001610498565b34801561067657600080fd5b506104c1610685366004612e9c565b61120c565b34801561069657600080fd5b506104546106a5366004612fc6565b61122e565b3480156106b657600080fd5b5061051e60135481565b3480156106cc57600080fd5b506104c16106db366004612fa2565b60246020526000908152604090205460ff1681565b3480156106fc57600080fd5b5061051e60215481565b34801561071257600080fd5b5061045461123b565b34801561072757600080fd5b506104c1610736366004612fa2565b60096020526000908152604090205460ff1681565b34801561075757600080fd5b5061051e60145481565b34801561076d57600080fd5b50600e54610781906001600160a01b031681565b6040516001600160a01b039091168152602001610498565b3480156107a557600080fd5b506104546107b4366004612fc6565b611244565b3480156107c557600080fd5b506104546107d4366004612fa2565b611272565b3480156107e557600080fd5b506018546104c190600160b01b900460ff1681565b34801561080657600080fd5b5061051e610815366004612fa2565b6001600160a01b031660009081526020819052604090205490565b34801561083c57600080fd5b5061045461084b366004612fc6565b61129c565b34801561085c57600080fd5b506104546112bc565b34801561087157600080fd5b50601954610781906001600160a01b031681565b34801561089157600080fd5b506104546108a0366004612ede565b6112ce565b3480156108b157600080fd5b506104546108c0366004613037565b611316565b3480156108d157600080fd5b50601f54610904906001600160401b0380821691600160401b8104821691600160801b8204811691600160c01b90041684565b604080516001600160401b0395861681529385166020850152918416918301919091529091166060820152608001610498565b34801561094357600080fd5b50610454610952366004612e0e565b6113cc565b34801561096357600080fd5b50610454610972366004612fa2565b6113de565b34801561098357600080fd5b50610454610992366004612e9c565b611404565b3480156109a357600080fd5b506005546001600160a01b0316610781565b3480156109c157600080fd5b5061051e6109d0366004612fa2565b6114a3565b3480156109e157600080fd5b5061048b6114ae565b3480156109f657600080fd5b5061051e60115481565b348015610a0c57600080fd5b506104c1610a1b366004612fa2565b600c6020526000908152604090205460ff1681565b348015610a3c57600080fd5b5061051e60125481565b348015610a5257600080fd5b506104c1610a61366004612e9c565b6114bd565b348015610a7257600080fd5b50601854610781906001600160a01b031681565b348015610a9257600080fd5b5061051e610aa1366004612fa2565b61153d565b348015610ab257600080fd5b506104c1610ac1366004612e9c565b611569565b348015610ad257600080fd5b5061051e601c5481565b348015610ae857600080fd5b5061051e610af7366004612fa2565b6001600160a01b031660009081526008602052604090205490565b348015610b1e57600080fd5b50610454610b2d366004612fc6565b611577565b348015610b3e57600080fd5b5061051e610b4d366004612fa2565b600a6020526000908152604090205481565b348015610b6b57600080fd5b50610454610b7a366004612e0e565b611597565b348015610b8b57600080fd5b50610454610b9a36600461308b565b6115f7565b348015610bab57600080fd5b50610454610bba366004612fa2565b6116b1565b348015610bcb57600080fd5b50610454610bda366004613110565b6116db565b348015610beb57600080fd5b50610454610bfa366004613037565b6116fd565b348015610c0b57600080fd5b5061051e610c1a36600461312d565b6117af565b348015610c2b57600080fd5b5061051e610c3a366004612fa2565b60066020526000908152604090205481565b348015610c5857600080fd5b50601a54610781906001600160a01b031681565b348015610c7857600080fd5b50610454610c87366004613110565b6117da565b348015610c9857600080fd5b506104c1610ca7366004612fa2565b60236020526000908152604090205460ff1681565b348015610cc857600080fd5b5061051e601b5481565b348015610cde57600080fd5b506104c1610ced366004612fa2565b60256020526000908152604090205460ff1681565b348015610d0e57600080fd5b50610454610d1d366004612fc6565b611800565b348015610d2e57600080fd5b50610454610d3d366004612fa2565b61180d565b348015610d4e57600080fd5b506018546104c190600160a81b900460ff1681565b348015610d6f57600080fd5b50602054610904906001600160401b0380821691600160401b8104821691600160801b8204811691600160c01b90041684565b348015610dae57600080fd5b5061051e601d5481565b348015610dc457600080fd5b50600f54610781906001600160a01b031681565b348015610de457600080fd5b50601754610781906001600160a01b031681565b348015610e0457600080fd5b50610454611883565b348015610e1957600080fd5b50610e2d610e28366004612fa2565b611891565b604080519485526020850193909352918301526060820152608001610498565b3415610e5c57610e5c346118dc565b565b610e6661192a565b6001600160a01b03821660009081526009602052604090205481151560ff909116151503610e9357600080fd5b6001600160a01b0382166000908152600960205260409020805460ff1916821515908117909155600103610ed157610ecc826000611984565b610ef5565b6001600160a01b038216600090815260066020526040902054610ef5908390611984565b816001600160a01b03167fa3c7c11b2e12c4144b09a7813f3393ba646392788638998c97be8da908cf04be82604051610f32911515815260200190565b60405180910390a25050565b606060038054610f4d9061315b565b80601f0160208091040260200160405190810160405280929190818152602001828054610f799061315b565b8015610fc65780601f10610f9b57610100808354040283529160200191610fc6565b820191906000526020600020905b815481529060010190602001808311610fa957829003601f168201915b5050505050905090565b600033610fde818585611bf0565b60019150505b92915050565b610ff261192a565b60005b815181101561104e5761103c82828151811061101357611013613195565b60200260200101516001600160a01b03166000908152602460205260409020805460ff19169055565b80611046816131c1565b915050610ff5565b5050565b600d546000819003611062575050565b6000805a60165490915060005b858410801561107d57508481105b156111275784821061108e57600091505b6000600d83815481106110a3576110a3613195565b60009182526020808320909101546015546001600160a01b03909116808452600a90925260409092205490925042916110db916131da565b10156110ec576110ea81611d14565b505b826110f6816131c1565b9350508180611104906131c1565b9250505a61111290856131f2565b61111c90866131da565b94505a93505061106f565b5060165550505050565b61113961192a565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b61116361192a565b476111898161117a6005546001600160a01b031690565b6001600160a01b031690611d8f565b50565b60003361119a858285611ea8565b6111a5858585611f1c565b506001949350505050565b6001600160a01b0381166000908152600760209081526040808320546006909252822054601054600160801b92916111e791613209565b6111f19190613228565b610fe49190613269565b61120361192a565b61118981612423565b600033610fde81858561121f83836117af565b61122991906131da565b611bf0565b61123661192a565b601555565b61118933611d14565b61124c61192a565b6103e861125860025490565b6112629083613209565b61126c9190613269565b601c5550565b61127a61192a565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6112a461192a565b6112b681670de0b6b3a7640000613209565b60145550565b6112c461192a565b610e5c6000612447565b6112d661192a565b60005b815181101561104e576113048282815181106112f7576112f7613195565b6020026020010151612423565b8061130e816131c1565b9150506112d9565b61131e61192a565b604080516080810182526001600160401b03868116808352868216602084018190528683169484018590529185166060909301839052601f80546001600160801b031916909117600160401b909202919091176001600160801b0316600160801b9093026001600160c01b031692909217600160c01b90910217905580826113a6858761328b565b6113b0919061328b565b6113ba919061328b565b6001600160401b031660215550505050565b6113d461192a565b61104e8282612499565b6113e661192a565b600f80546001600160a01b0319166001600160a01b03831617905550565b61140c61192a565b816001600160a01b031663a9059cbb61142d6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149e91906132b6565b505050565b6000610fe48261153d565b606060048054610f4d9061315b565b600033816114cb82866117af565b9050838110156115305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6111a58286868403611bf0565b6001600160a01b03811660009081526008602052604081205461155f836111b0565b610fe491906131f2565b600033610fde818585611f1c565b61157f61192a565b61159181670de0b6b3a7640000613209565b601b5550565b61159f61192a565b6001600160a01b038216600081815260236020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610f32565b6115ff61192a565b60005b8281101561167057816023600086868581811061162157611621613195565b90506020020160208101906116369190612fa2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580611668816131c1565b915050611602565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516116a4939291906132d3565b60405180910390a1505050565b6116b961192a565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6116e361192a565b6018805460ff60a81b1916600160a81b8315150217905550565b61170561192a565b604080516080810182526001600160401b038681168083528682166020808501829052878416958501869052928616606090940184905282546001600160801b031916909117600160401b909102176001600160801b0316600160801b9093026001600160c01b031692909217600160c01b9091021790558082611789858761328b565b611793919061328b565b61179d919061328b565b6001600160401b031660225550505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6117e261192a565b60188054911515600160b01b0260ff60b01b19909216919091179055565b61180861192a565b601d55565b61181561192a565b6001600160a01b03811661187a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611527565b61118981612447565b61188b61192a565b42601e55565b6000806000806118a08561153d565b93506118ab856111b0565b6001600160a01b039095166000908152600a6020908152604080832054600890925290912054949690949350915050565b6000601354116118eb57600080fd5b6013546118fc600160801b83613209565b6119069190613269565b60105461191391906131da565b6010556011546119249082906131da565b60115550565b6005546001600160a01b03163314610e5c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611527565b6001600160a01b03821660009081526006602052604090205480156119ae576119ac83611d14565b505b601454821080156119d757506001600160a01b0383166000908152600c602052604090205460ff165b15611b18576001600160a01b0383166000908152600c60205260409020805460ff19169055600d8054611a0c906001906131f2565b81548110611a1c57611a1c613195565b60009182526020808320909101546001600160a01b038681168452600b909252604090922054600d80549290931692918110611a5a57611a5a613195565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559185168152600b918290526040812054600d805491939291611aa6906001906131f2565b81548110611ab657611ab6613195565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600d805480611aec57611aec61332c565b600082815260209020810160001990810180546001600160a01b031916905501905561149e83826124ed565b6001600160a01b0383166000908152600660205260408120549003611baa576001600160a01b0383166000818152600c60209081526040808320805460ff19166001908117909155600d8054600b909452918420839055820181559091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b03191690911790555b80821115611bd0576000611bbe82846131f2565b9050611bca8482612584565b50505050565b8082101561149e576000611be483836131f2565b9050611bca84826124ed565b6001600160a01b038316611c525760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401611527565b6001600160a01b038216611cb35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401611527565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080611d20836125fb565b90508015611d86576001600160a01b0383166000818152600a602052604090819020429055517f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d490611d759084815260200190565b60405180910390a250600192915050565b50600092915050565b80471015611ddf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401611527565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611e2c576040519150601f19603f3d011682016040523d82523d6000602084013e611e31565b606091505b505090508061149e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401611527565b6000611eb484846117af565b90506000198114611bca5781811015611f0f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401611527565b611bca8484848403611bf0565b6001600160a01b038316611f425760405162461bcd60e51b815260040161152790613342565b6001600160a01b038216611f685760405162461bcd60e51b815260040161152790613387565b60008111611fca5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401611527565b601854600160a81b900460ff161561202c573260009081526024602052604090205460ff1661202c5760405162461bcd60e51b815260206004820152600e60248201526d1059191c995cdcc81a5cc8189bdd60921b6044820152606401611527565b6001600160a01b03831660009081526023602052604090205460ff1615801561206e57506001600160a01b03821660009081526023602052604090205460ff16155b80156120845750601854600160a01b900460ff16155b15612124576001600160a01b03821660009081526025602052604090205460ff1661212457601c54816120cc846001600160a01b031660009081526020819052604090205490565b6120d691906131da565b11156121245760405162461bcd60e51b815260206004820152601b60248201527f596f752061726520657863656564696e67206d617857616c6c657400000000006044820152606401611527565b30600090815260208190526040902054601b54811080159081906121525750601854600160a01b900460ff16155b80156121675750601854600160b01b900460ff165b801561218c57506001600160a01b03851660009081526025602052604090205460ff16155b80156121b157506001600160a01b03851660009081526023602052604090205460ff16155b80156121d657506001600160a01b03841660009081526023602052604090205460ff16155b80156121e457506000602254115b15612216576018805460ff60a01b1916600160a01b179055601b5461220890612760565b6018805460ff60a01b191690555b6018546001600160a01b03861660009081526023602052604090205460ff600160a01b90920482161591168061226457506001600160a01b03851660009081526023602052604090205460ff165b1561226d575060005b6001600160a01b03851660009081526025602052604090205460ff161580156122af57506001600160a01b03861660009081526025602052604090205460ff16155b156122b8575060005b80156123a9576001600160a01b03851660009081526025602052604081205460ff1615612300576064602254866122ef9190613209565b6122f99190613269565b9050612390565b6001600160a01b03871660009081526025602052604090205460ff161561239057601e5461233090610e106131da565b42101561237357601f54606490612360906001600160401b03600160801b8204811691600160c01b90041661328b565b6122ef906001600160401b031687613209565b6064602154866123839190613209565b61238d9190613269565b90505b61239a81866131f2565b94506123a78730836128fc565b505b6123b48686866128fc565b6123dc866123d7886001600160a01b031660009081526020819052604090205490565b612a26565b6123ff856123d7876001600160a01b031660009081526020819052604090205490565b601854600160a01b900460ff1661241b5761241b601d54611052565b505050505050565b6001600160a01b03166000908152602460205260409020805460ff19166001179055565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000908152602560205260409020805460ff1916821580159190911790915561104e576001600160a01b0382166000908152600960205260409020805460ff191660011790555050565b6001600160a01b038216600090815260066020526040812080548392906125159084906131f2565b92505081905550806013600082825461252e91906131f2565b9091555050601054612541908290613209565b6001600160a01b0383166000908152600760205260409020546125649190613228565b6001600160a01b0390921660009081526007602052604090209190915550565b6001600160a01b038216600090815260066020526040812080548392906125ac9084906131da565b9250508190555080601360008282546125c591906131da565b90915550506010546125d8908290613209565b6001600160a01b03831660009081526007602052604090205461256491906133ca565b6000806126078361153d565b90508015611d86576001600160a01b038316600090815260086020526040812080548392906126379084906131da565b92505081905550806012600082825461265091906131da565b90915550506040518181526001600160a01b038416907fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d9060200160405180910390a2600061269f8483612a55565b905080612759576000846001600160a01b031683610bb890604051600060405180830381858888f193505050503d80600081146126f8576040519150601f19603f3d011682016040523d82523d6000602084013e6126fd565b606091505b5050905080612757576001600160a01b0385166000908152600860205260408120805485929061272e9084906131f2565b92505081905550826012600082825461274791906131f2565b9091555060009695505050505050565b505b5092915050565b600060225460026127719190613209565b602054909150600090829061279690600160c01b90046001600160401b031685613209565b6127a09190613269565b905060006127ae82856131f2565b9050476127ba82612bb4565b60006127c682476131f2565b6020549091506000906127e990600160c01b90046001600160401b0316876131f2565b6127f39083613269565b60205490915060009061281690600160c01b90046001600160401b031683613209565b90508015612828576128288682612d06565b602054600090600160401b90046001600160401b0316612849846002613209565b6128539190613209565b9050801561287157601954612871906001600160a01b031682611d8f565b602054600090600160801b90046001600160401b0316612892856002613209565b61289c9190613209565b905080156128ba57601a546128ba906001600160a01b031682611d8f565b6020546000906001600160401b03166128d4866002613209565b6128de9190613209565b905080156128ef576128ef816118dc565b5050505050505050505050565b6001600160a01b0383166129225760405162461bcd60e51b815260040161152790613342565b6001600160a01b0382166129485760405162461bcd60e51b815260040161152790613387565b6001600160a01b038316600090815260208190526040902054818110156129c05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401611527565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611bca565b6001600160a01b03821660009081526009602052604090205460ff1615612a4b575050565b61104e8282611984565b604080516002808252606082018352600092839291906020830190803683375050600e54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae79190613409565b81600081518110612afa57612afa613195565b6001600160a01b039283166020918202929092010152600f54825191169082906001908110612b2b57612b2b613195565b6001600160a01b039283166020918202929092010152600e5460405163b6f9de9560e01b815291169063b6f9de95908590612b719060009086908a90429060040161346a565b6000604051808303818588803b158015612b8a57600080fd5b505af193505050508015612b9c575060015b612baa576000915050610fe4565b6001915050610fe4565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612be957612be9613195565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c669190613409565b81600181518110612c7957612c79613195565b6001600160a01b039283166020918202929092010152601754612c9f9130911684611bf0565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac94790612cd890859060009086903090429060040161349f565b600060405180830381600087803b158015612cf257600080fd5b505af115801561241b573d6000803e3d6000fd5b601754612d1e9030906001600160a01b031684611bf0565b6017546001600160a01b031663f305d719823085600080612d476005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612daf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612dd491906134db565b5050505050565b6001600160a01b038116811461118957600080fd5b8035612dfb81612ddb565b919050565b801515811461118957600080fd5b60008060408385031215612e2157600080fd5b8235612e2c81612ddb565b91506020830135612e3c81612e00565b809150509250929050565b600060208083528351808285015260005b81811015612e7457858101830151858201604001528201612e58565b81811115612e86576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215612eaf57600080fd5b8235612eba81612ddb565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215612ef157600080fd5b82356001600160401b0380821115612f0857600080fd5b818501915085601f830112612f1c57600080fd5b813581811115612f2e57612f2e612ec8565b8060051b604051601f19603f83011681018181108582111715612f5357612f53612ec8565b604052918252848201925083810185019188831115612f7157600080fd5b938501935b82851015612f9657612f8785612df0565b84529385019392850192612f76565b98975050505050505050565b600060208284031215612fb457600080fd5b8135612fbf81612ddb565b9392505050565b600060208284031215612fd857600080fd5b5035919050565b600080600060608486031215612ff457600080fd5b8335612fff81612ddb565b9250602084013561300f81612ddb565b929592945050506040919091013590565b80356001600160401b0381168114612dfb57600080fd5b6000806000806080858703121561304d57600080fd5b61305685613020565b935061306460208601613020565b925061307260408601613020565b915061308060608601613020565b905092959194509250565b6000806000604084860312156130a057600080fd5b83356001600160401b03808211156130b757600080fd5b818601915086601f8301126130cb57600080fd5b8135818111156130da57600080fd5b8760208260051b85010111156130ef57600080fd5b6020928301955093505084013561310581612e00565b809150509250925092565b60006020828403121561312257600080fd5b8135612fbf81612e00565b6000806040838503121561314057600080fd5b823561314b81612ddb565b91506020830135612e3c81612ddb565b600181811c9082168061316f57607f821691505b60208210810361318f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016131d3576131d36131ab565b5060010190565b600082198211156131ed576131ed6131ab565b500190565b600082821015613204576132046131ab565b500390565b6000816000190483118215151615613223576132236131ab565b500290565b600080821280156001600160ff1b038490038513161561324a5761324a6131ab565b600160ff1b8390038412811615613263576132636131ab565b50500190565b60008261328657634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160401b038083168185168083038211156132ad576132ad6131ab565b01949350505050565b6000602082840312156132c857600080fd5b8151612fbf81612e00565b6040808252810183905260008460608301825b868110156133165782356132f981612ddb565b6001600160a01b03168252602092830192909101906001016132e6565b5080925050508215156020830152949350505050565b634e487b7160e01b600052603160045260246000fd5b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008083128015600160ff1b8501841216156133e8576133e86131ab565b6001600160ff1b0384018313811615613403576134036131ab565b50500390565b60006020828403121561341b57600080fd5b8151612fbf81612ddb565b600081518084526020808501945080840160005b8381101561345f5781516001600160a01b03168752958201959082019060010161343a565b509495945050505050565b8481526080602082015260006134836080830186613426565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a0604082015260006134be60a0830186613426565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156134f057600080fd5b835192506020840151915060408401519050925092509256fea164736f6c634300080e000a0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000006dca182ac5e3f99985bc4ee0f726d6472ab1ec55
Deployed Bytecode
0x6080604052600436106104405760003560e01c806386a22eff11610234578063c851cc321161012e578063e5e31b13116100b6578063f68016b71161007a578063f68016b714610da2578063f7c618c114610db8578063f887ea4014610dd8578063f904513b14610df8578063fbcbc0f114610e0d57600080fd5b8063e5e31b1314610cd2578063ee7d72b414610d02578063f2fde38b14610d22578063f6362d5f14610d42578063f66895a314610d6357600080fd5b8063de69b3aa116100fd578063de69b3aa14610c1f578063deab8aea14610c4c578063e01af92c14610c6c578063e0bf7fd114610c8c578063e2f4560514610cbc57600080fd5b8063c851cc3214610b9f578063d05cdbe514610bbf578063dcab514014610bdf578063dd62ed3e14610bff57600080fd5b8063a457c2d7116101bc578063aafd847a11610180578063aafd847a14610adc578063afa4f3b214610b12578063b77cf9c614610b32578063c024666814610b5f578063c492f04614610b7f57600080fd5b8063a457c2d714610a46578063a8aa1b3114610a66578063a8b9d24014610a86578063a9059cbb14610aa6578063aa4bde2814610ac657600080fd5b806391b89fba1161020357806391b89fba146109b557806395d89b41146109d5578063997664d7146109ea578063997836d414610a005780639e1e066114610a3057600080fd5b806386a22eff146109375780638aee8127146109575780638cd4426d146109775780638da5cb5b1461099757600080fd5b806339509351116103455780635d0044ca116102cd578063715018a611610291578063715018a61461085057806375f0a874146108655780637cb610de1461088557806381bd0881146108a5578063864701a5146108c557600080fd5b80635d0044ca146107995780635d098b38146107b95780636ddd1713146107d957806370a08231146107fa57806370cbe56c1461083057600080fd5b806346469afb1161031457806346469afb146106f05780634e71d92d146107065780634e7b827f1461071b5780635561e1f61461074b5780635a3bb9891461076157600080fd5b8063395093511461066a5780633a1920f71461068a5780633a98ef39146106aa5780633fa1410f146106c057600080fd5b80631c8ec299116103c857806326987b601161039757806326987b60146105e257806327ce0147146105f85780632a8ddc9b146106185780632de322271461062e578063313ce5671461064e57600080fd5b80631c8ec299146105775780631d0adc071461058d57806320800a00146105ad57806323b872dd146105c257600080fd5b806312c656401161040f57806312c65640146104d157806314fa7dbb146104f157806317c6d7481461052c57806318160ddd1461054c5780631bff78981461056157600080fd5b806303c833021461044c5780630483f7a01461045657806306fdde0314610476578063095ea7b3146104a157600080fd5b3661044757005b600080fd5b610454610e4d565b005b34801561046257600080fd5b50610454610471366004612e0e565b610e5e565b34801561048257600080fd5b5061048b610f3e565b6040516104989190612e47565b60405180910390f35b3480156104ad57600080fd5b506104c16104bc366004612e9c565b610fd0565b6040519015158152602001610498565b3480156104dd57600080fd5b506104546104ec366004612ede565b610fea565b3480156104fd57600080fd5b5061051e61050c366004612fa2565b600b6020526000908152604090205481565b604051908152602001610498565b34801561053857600080fd5b50610454610547366004612fc6565b611052565b34801561055857600080fd5b5060025461051e565b34801561056d57600080fd5b5061051e60225481565b34801561058357600080fd5b5061051e60155481565b34801561059957600080fd5b506104546105a8366004612fa2565b611131565b3480156105b957600080fd5b5061045461115b565b3480156105ce57600080fd5b506104c16105dd366004612fdf565b61118c565b3480156105ee57600080fd5b5061051e60165481565b34801561060457600080fd5b5061051e610613366004612fa2565b6111b0565b34801561062457600080fd5b5061051e601e5481565b34801561063a57600080fd5b50610454610649366004612fa2565b6111fb565b34801561065a57600080fd5b5060405160128152602001610498565b34801561067657600080fd5b506104c1610685366004612e9c565b61120c565b34801561069657600080fd5b506104546106a5366004612fc6565b61122e565b3480156106b657600080fd5b5061051e60135481565b3480156106cc57600080fd5b506104c16106db366004612fa2565b60246020526000908152604090205460ff1681565b3480156106fc57600080fd5b5061051e60215481565b34801561071257600080fd5b5061045461123b565b34801561072757600080fd5b506104c1610736366004612fa2565b60096020526000908152604090205460ff1681565b34801561075757600080fd5b5061051e60145481565b34801561076d57600080fd5b50600e54610781906001600160a01b031681565b6040516001600160a01b039091168152602001610498565b3480156107a557600080fd5b506104546107b4366004612fc6565b611244565b3480156107c557600080fd5b506104546107d4366004612fa2565b611272565b3480156107e557600080fd5b506018546104c190600160b01b900460ff1681565b34801561080657600080fd5b5061051e610815366004612fa2565b6001600160a01b031660009081526020819052604090205490565b34801561083c57600080fd5b5061045461084b366004612fc6565b61129c565b34801561085c57600080fd5b506104546112bc565b34801561087157600080fd5b50601954610781906001600160a01b031681565b34801561089157600080fd5b506104546108a0366004612ede565b6112ce565b3480156108b157600080fd5b506104546108c0366004613037565b611316565b3480156108d157600080fd5b50601f54610904906001600160401b0380821691600160401b8104821691600160801b8204811691600160c01b90041684565b604080516001600160401b0395861681529385166020850152918416918301919091529091166060820152608001610498565b34801561094357600080fd5b50610454610952366004612e0e565b6113cc565b34801561096357600080fd5b50610454610972366004612fa2565b6113de565b34801561098357600080fd5b50610454610992366004612e9c565b611404565b3480156109a357600080fd5b506005546001600160a01b0316610781565b3480156109c157600080fd5b5061051e6109d0366004612fa2565b6114a3565b3480156109e157600080fd5b5061048b6114ae565b3480156109f657600080fd5b5061051e60115481565b348015610a0c57600080fd5b506104c1610a1b366004612fa2565b600c6020526000908152604090205460ff1681565b348015610a3c57600080fd5b5061051e60125481565b348015610a5257600080fd5b506104c1610a61366004612e9c565b6114bd565b348015610a7257600080fd5b50601854610781906001600160a01b031681565b348015610a9257600080fd5b5061051e610aa1366004612fa2565b61153d565b348015610ab257600080fd5b506104c1610ac1366004612e9c565b611569565b348015610ad257600080fd5b5061051e601c5481565b348015610ae857600080fd5b5061051e610af7366004612fa2565b6001600160a01b031660009081526008602052604090205490565b348015610b1e57600080fd5b50610454610b2d366004612fc6565b611577565b348015610b3e57600080fd5b5061051e610b4d366004612fa2565b600a6020526000908152604090205481565b348015610b6b57600080fd5b50610454610b7a366004612e0e565b611597565b348015610b8b57600080fd5b50610454610b9a36600461308b565b6115f7565b348015610bab57600080fd5b50610454610bba366004612fa2565b6116b1565b348015610bcb57600080fd5b50610454610bda366004613110565b6116db565b348015610beb57600080fd5b50610454610bfa366004613037565b6116fd565b348015610c0b57600080fd5b5061051e610c1a36600461312d565b6117af565b348015610c2b57600080fd5b5061051e610c3a366004612fa2565b60066020526000908152604090205481565b348015610c5857600080fd5b50601a54610781906001600160a01b031681565b348015610c7857600080fd5b50610454610c87366004613110565b6117da565b348015610c9857600080fd5b506104c1610ca7366004612fa2565b60236020526000908152604090205460ff1681565b348015610cc857600080fd5b5061051e601b5481565b348015610cde57600080fd5b506104c1610ced366004612fa2565b60256020526000908152604090205460ff1681565b348015610d0e57600080fd5b50610454610d1d366004612fc6565b611800565b348015610d2e57600080fd5b50610454610d3d366004612fa2565b61180d565b348015610d4e57600080fd5b506018546104c190600160a81b900460ff1681565b348015610d6f57600080fd5b50602054610904906001600160401b0380821691600160401b8104821691600160801b8204811691600160c01b90041684565b348015610dae57600080fd5b5061051e601d5481565b348015610dc457600080fd5b50600f54610781906001600160a01b031681565b348015610de457600080fd5b50601754610781906001600160a01b031681565b348015610e0457600080fd5b50610454611883565b348015610e1957600080fd5b50610e2d610e28366004612fa2565b611891565b604080519485526020850193909352918301526060820152608001610498565b3415610e5c57610e5c346118dc565b565b610e6661192a565b6001600160a01b03821660009081526009602052604090205481151560ff909116151503610e9357600080fd5b6001600160a01b0382166000908152600960205260409020805460ff1916821515908117909155600103610ed157610ecc826000611984565b610ef5565b6001600160a01b038216600090815260066020526040902054610ef5908390611984565b816001600160a01b03167fa3c7c11b2e12c4144b09a7813f3393ba646392788638998c97be8da908cf04be82604051610f32911515815260200190565b60405180910390a25050565b606060038054610f4d9061315b565b80601f0160208091040260200160405190810160405280929190818152602001828054610f799061315b565b8015610fc65780601f10610f9b57610100808354040283529160200191610fc6565b820191906000526020600020905b815481529060010190602001808311610fa957829003601f168201915b5050505050905090565b600033610fde818585611bf0565b60019150505b92915050565b610ff261192a565b60005b815181101561104e5761103c82828151811061101357611013613195565b60200260200101516001600160a01b03166000908152602460205260409020805460ff19169055565b80611046816131c1565b915050610ff5565b5050565b600d546000819003611062575050565b6000805a60165490915060005b858410801561107d57508481105b156111275784821061108e57600091505b6000600d83815481106110a3576110a3613195565b60009182526020808320909101546015546001600160a01b03909116808452600a90925260409092205490925042916110db916131da565b10156110ec576110ea81611d14565b505b826110f6816131c1565b9350508180611104906131c1565b9250505a61111290856131f2565b61111c90866131da565b94505a93505061106f565b5060165550505050565b61113961192a565b601a80546001600160a01b0319166001600160a01b0392909216919091179055565b61116361192a565b476111898161117a6005546001600160a01b031690565b6001600160a01b031690611d8f565b50565b60003361119a858285611ea8565b6111a5858585611f1c565b506001949350505050565b6001600160a01b0381166000908152600760209081526040808320546006909252822054601054600160801b92916111e791613209565b6111f19190613228565b610fe49190613269565b61120361192a565b61118981612423565b600033610fde81858561121f83836117af565b61122991906131da565b611bf0565b61123661192a565b601555565b61118933611d14565b61124c61192a565b6103e861125860025490565b6112629083613209565b61126c9190613269565b601c5550565b61127a61192a565b601980546001600160a01b0319166001600160a01b0392909216919091179055565b6112a461192a565b6112b681670de0b6b3a7640000613209565b60145550565b6112c461192a565b610e5c6000612447565b6112d661192a565b60005b815181101561104e576113048282815181106112f7576112f7613195565b6020026020010151612423565b8061130e816131c1565b9150506112d9565b61131e61192a565b604080516080810182526001600160401b03868116808352868216602084018190528683169484018590529185166060909301839052601f80546001600160801b031916909117600160401b909202919091176001600160801b0316600160801b9093026001600160c01b031692909217600160c01b90910217905580826113a6858761328b565b6113b0919061328b565b6113ba919061328b565b6001600160401b031660215550505050565b6113d461192a565b61104e8282612499565b6113e661192a565b600f80546001600160a01b0319166001600160a01b03831617905550565b61140c61192a565b816001600160a01b031663a9059cbb61142d6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af115801561147a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149e91906132b6565b505050565b6000610fe48261153d565b606060048054610f4d9061315b565b600033816114cb82866117af565b9050838110156115305760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b6111a58286868403611bf0565b6001600160a01b03811660009081526008602052604081205461155f836111b0565b610fe491906131f2565b600033610fde818585611f1c565b61157f61192a565b61159181670de0b6b3a7640000613209565b601b5550565b61159f61192a565b6001600160a01b038216600081815260236020908152604091829020805460ff191685151590811790915591519182527f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df79101610f32565b6115ff61192a565b60005b8281101561167057816023600086868581811061162157611621613195565b90506020020160208101906116369190612fa2565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580611668816131c1565b915050611602565b507f7fdaf542373fa84f4ee8d662c642f44e4c2276a217d7d29e548b6eb29a233b358383836040516116a4939291906132d3565b60405180910390a1505050565b6116b961192a565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b6116e361192a565b6018805460ff60a81b1916600160a81b8315150217905550565b61170561192a565b604080516080810182526001600160401b038681168083528682166020808501829052878416958501869052928616606090940184905282546001600160801b031916909117600160401b909102176001600160801b0316600160801b9093026001600160c01b031692909217600160c01b9091021790558082611789858761328b565b611793919061328b565b61179d919061328b565b6001600160401b031660225550505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6117e261192a565b60188054911515600160b01b0260ff60b01b19909216919091179055565b61180861192a565b601d55565b61181561192a565b6001600160a01b03811661187a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401611527565b61118981612447565b61188b61192a565b42601e55565b6000806000806118a08561153d565b93506118ab856111b0565b6001600160a01b039095166000908152600a6020908152604080832054600890925290912054949690949350915050565b6000601354116118eb57600080fd5b6013546118fc600160801b83613209565b6119069190613269565b60105461191391906131da565b6010556011546119249082906131da565b60115550565b6005546001600160a01b03163314610e5c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401611527565b6001600160a01b03821660009081526006602052604090205480156119ae576119ac83611d14565b505b601454821080156119d757506001600160a01b0383166000908152600c602052604090205460ff165b15611b18576001600160a01b0383166000908152600c60205260409020805460ff19169055600d8054611a0c906001906131f2565b81548110611a1c57611a1c613195565b60009182526020808320909101546001600160a01b038681168452600b909252604090922054600d80549290931692918110611a5a57611a5a613195565b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559185168152600b918290526040812054600d805491939291611aa6906001906131f2565b81548110611ab657611ab6613195565b60009182526020808320909101546001600160a01b03168352820192909252604001902055600d805480611aec57611aec61332c565b600082815260209020810160001990810180546001600160a01b031916905501905561149e83826124ed565b6001600160a01b0383166000908152600660205260408120549003611baa576001600160a01b0383166000818152600c60209081526040808320805460ff19166001908117909155600d8054600b909452918420839055820181559091527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb50180546001600160a01b03191690911790555b80821115611bd0576000611bbe82846131f2565b9050611bca8482612584565b50505050565b8082101561149e576000611be483836131f2565b9050611bca84826124ed565b6001600160a01b038316611c525760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401611527565b6001600160a01b038216611cb35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401611527565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600080611d20836125fb565b90508015611d86576001600160a01b0383166000818152600a602052604090819020429055517f47cee97cb7acd717b3c0aa1435d004cd5b3c8c57d70dbceb4e4458bbd60e39d490611d759084815260200190565b60405180910390a250600192915050565b50600092915050565b80471015611ddf5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401611527565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611e2c576040519150601f19603f3d011682016040523d82523d6000602084013e611e31565b606091505b505090508061149e5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401611527565b6000611eb484846117af565b90506000198114611bca5781811015611f0f5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401611527565b611bca8484848403611bf0565b6001600160a01b038316611f425760405162461bcd60e51b815260040161152790613342565b6001600160a01b038216611f685760405162461bcd60e51b815260040161152790613387565b60008111611fca5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401611527565b601854600160a81b900460ff161561202c573260009081526024602052604090205460ff1661202c5760405162461bcd60e51b815260206004820152600e60248201526d1059191c995cdcc81a5cc8189bdd60921b6044820152606401611527565b6001600160a01b03831660009081526023602052604090205460ff1615801561206e57506001600160a01b03821660009081526023602052604090205460ff16155b80156120845750601854600160a01b900460ff16155b15612124576001600160a01b03821660009081526025602052604090205460ff1661212457601c54816120cc846001600160a01b031660009081526020819052604090205490565b6120d691906131da565b11156121245760405162461bcd60e51b815260206004820152601b60248201527f596f752061726520657863656564696e67206d617857616c6c657400000000006044820152606401611527565b30600090815260208190526040902054601b54811080159081906121525750601854600160a01b900460ff16155b80156121675750601854600160b01b900460ff165b801561218c57506001600160a01b03851660009081526025602052604090205460ff16155b80156121b157506001600160a01b03851660009081526023602052604090205460ff16155b80156121d657506001600160a01b03841660009081526023602052604090205460ff16155b80156121e457506000602254115b15612216576018805460ff60a01b1916600160a01b179055601b5461220890612760565b6018805460ff60a01b191690555b6018546001600160a01b03861660009081526023602052604090205460ff600160a01b90920482161591168061226457506001600160a01b03851660009081526023602052604090205460ff165b1561226d575060005b6001600160a01b03851660009081526025602052604090205460ff161580156122af57506001600160a01b03861660009081526025602052604090205460ff16155b156122b8575060005b80156123a9576001600160a01b03851660009081526025602052604081205460ff1615612300576064602254866122ef9190613209565b6122f99190613269565b9050612390565b6001600160a01b03871660009081526025602052604090205460ff161561239057601e5461233090610e106131da565b42101561237357601f54606490612360906001600160401b03600160801b8204811691600160c01b90041661328b565b6122ef906001600160401b031687613209565b6064602154866123839190613209565b61238d9190613269565b90505b61239a81866131f2565b94506123a78730836128fc565b505b6123b48686866128fc565b6123dc866123d7886001600160a01b031660009081526020819052604090205490565b612a26565b6123ff856123d7876001600160a01b031660009081526020819052604090205490565b601854600160a01b900460ff1661241b5761241b601d54611052565b505050505050565b6001600160a01b03166000908152602460205260409020805460ff19166001179055565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166000908152602560205260409020805460ff1916821580159190911790915561104e576001600160a01b0382166000908152600960205260409020805460ff191660011790555050565b6001600160a01b038216600090815260066020526040812080548392906125159084906131f2565b92505081905550806013600082825461252e91906131f2565b9091555050601054612541908290613209565b6001600160a01b0383166000908152600760205260409020546125649190613228565b6001600160a01b0390921660009081526007602052604090209190915550565b6001600160a01b038216600090815260066020526040812080548392906125ac9084906131da565b9250508190555080601360008282546125c591906131da565b90915550506010546125d8908290613209565b6001600160a01b03831660009081526007602052604090205461256491906133ca565b6000806126078361153d565b90508015611d86576001600160a01b038316600090815260086020526040812080548392906126379084906131da565b92505081905550806012600082825461265091906131da565b90915550506040518181526001600160a01b038416907fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d9060200160405180910390a2600061269f8483612a55565b905080612759576000846001600160a01b031683610bb890604051600060405180830381858888f193505050503d80600081146126f8576040519150601f19603f3d011682016040523d82523d6000602084013e6126fd565b606091505b5050905080612757576001600160a01b0385166000908152600860205260408120805485929061272e9084906131f2565b92505081905550826012600082825461274791906131f2565b9091555060009695505050505050565b505b5092915050565b600060225460026127719190613209565b602054909150600090829061279690600160c01b90046001600160401b031685613209565b6127a09190613269565b905060006127ae82856131f2565b9050476127ba82612bb4565b60006127c682476131f2565b6020549091506000906127e990600160c01b90046001600160401b0316876131f2565b6127f39083613269565b60205490915060009061281690600160c01b90046001600160401b031683613209565b90508015612828576128288682612d06565b602054600090600160401b90046001600160401b0316612849846002613209565b6128539190613209565b9050801561287157601954612871906001600160a01b031682611d8f565b602054600090600160801b90046001600160401b0316612892856002613209565b61289c9190613209565b905080156128ba57601a546128ba906001600160a01b031682611d8f565b6020546000906001600160401b03166128d4866002613209565b6128de9190613209565b905080156128ef576128ef816118dc565b5050505050505050505050565b6001600160a01b0383166129225760405162461bcd60e51b815260040161152790613342565b6001600160a01b0382166129485760405162461bcd60e51b815260040161152790613387565b6001600160a01b038316600090815260208190526040902054818110156129c05760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401611527565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3611bca565b6001600160a01b03821660009081526009602052604090205460ff1615612a4b575050565b61104e8282611984565b604080516002808252606082018352600092839291906020830190803683375050600e54604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c4648925060048083019260209291908290030181865afa158015612ac3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ae79190613409565b81600081518110612afa57612afa613195565b6001600160a01b039283166020918202929092010152600f54825191169082906001908110612b2b57612b2b613195565b6001600160a01b039283166020918202929092010152600e5460405163b6f9de9560e01b815291169063b6f9de95908590612b719060009086908a90429060040161346a565b6000604051808303818588803b158015612b8a57600080fd5b505af193505050508015612b9c575060015b612baa576000915050610fe4565b6001915050610fe4565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110612be957612be9613195565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612c42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c669190613409565b81600181518110612c7957612c79613195565b6001600160a01b039283166020918202929092010152601754612c9f9130911684611bf0565b60175460405163791ac94760e01b81526001600160a01b039091169063791ac94790612cd890859060009086903090429060040161349f565b600060405180830381600087803b158015612cf257600080fd5b505af115801561241b573d6000803e3d6000fd5b601754612d1e9030906001600160a01b031684611bf0565b6017546001600160a01b031663f305d719823085600080612d476005546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015612daf573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612dd491906134db565b5050505050565b6001600160a01b038116811461118957600080fd5b8035612dfb81612ddb565b919050565b801515811461118957600080fd5b60008060408385031215612e2157600080fd5b8235612e2c81612ddb565b91506020830135612e3c81612e00565b809150509250929050565b600060208083528351808285015260005b81811015612e7457858101830151858201604001528201612e58565b81811115612e86576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215612eaf57600080fd5b8235612eba81612ddb565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215612ef157600080fd5b82356001600160401b0380821115612f0857600080fd5b818501915085601f830112612f1c57600080fd5b813581811115612f2e57612f2e612ec8565b8060051b604051601f19603f83011681018181108582111715612f5357612f53612ec8565b604052918252848201925083810185019188831115612f7157600080fd5b938501935b82851015612f9657612f8785612df0565b84529385019392850192612f76565b98975050505050505050565b600060208284031215612fb457600080fd5b8135612fbf81612ddb565b9392505050565b600060208284031215612fd857600080fd5b5035919050565b600080600060608486031215612ff457600080fd5b8335612fff81612ddb565b9250602084013561300f81612ddb565b929592945050506040919091013590565b80356001600160401b0381168114612dfb57600080fd5b6000806000806080858703121561304d57600080fd5b61305685613020565b935061306460208601613020565b925061307260408601613020565b915061308060608601613020565b905092959194509250565b6000806000604084860312156130a057600080fd5b83356001600160401b03808211156130b757600080fd5b818601915086601f8301126130cb57600080fd5b8135818111156130da57600080fd5b8760208260051b85010111156130ef57600080fd5b6020928301955093505084013561310581612e00565b809150509250925092565b60006020828403121561312257600080fd5b8135612fbf81612e00565b6000806040838503121561314057600080fd5b823561314b81612ddb565b91506020830135612e3c81612ddb565b600181811c9082168061316f57607f821691505b60208210810361318f57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016131d3576131d36131ab565b5060010190565b600082198211156131ed576131ed6131ab565b500190565b600082821015613204576132046131ab565b500390565b6000816000190483118215151615613223576132236131ab565b500290565b600080821280156001600160ff1b038490038513161561324a5761324a6131ab565b600160ff1b8390038412811615613263576132636131ab565b50500190565b60008261328657634e487b7160e01b600052601260045260246000fd5b500490565b60006001600160401b038083168185168083038211156132ad576132ad6131ab565b01949350505050565b6000602082840312156132c857600080fd5b8151612fbf81612e00565b6040808252810183905260008460608301825b868110156133165782356132f981612ddb565b6001600160a01b03168252602092830192909101906001016132e6565b5080925050508215156020830152949350505050565b634e487b7160e01b600052603160045260246000fd5b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60008083128015600160ff1b8501841216156133e8576133e86131ab565b6001600160ff1b0384018313811615613403576134036131ab565b50500390565b60006020828403121561341b57600080fd5b8151612fbf81612ddb565b600081518084526020808501945080840160005b8381101561345f5781516001600160a01b03168752958201959082019060010161343a565b509495945050505050565b8481526080602082015260006134836080830186613426565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a0604082015260006134be60a0830186613426565b6001600160a01b0394909416606083015250608001529392505050565b6000806000606084860312156134f057600080fd5b835192506020840151915060408401519050925092509256fea164736f6c634300080e000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d0000000000000000000000006dca182ac5e3f99985bc4ee0f726d6472ab1ec55
-----Decoded View---------------
Arg [0] : _router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : _rewardToken (address): 0x6Dca182ac5E3f99985bC4Ee0f726d6472aB1ec55
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 0000000000000000000000006dca182ac5e3f99985bc4ee0f726d6472ab1ec55
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.