Contract Address Details
0x886Dd85672047786138Fd46023f371A48b32E7f8
- Token
- DogeIna (DOGEINA)
- Creator
- 0xcdb3b7–9802a4 at 0xbd2483–7de80e
- Balance
- 0 Doge
- Tokens
-
Fetching tokens...
- Transactions
- 4 Transactions
- Transfers
- 10 Transfers
- Gas Used
- 172,909
- Last Balance Update
- 24760252
Transactions
Token Transfers
Tokens
Internal Transactions
Coin Balance History
Logs
Code
Read Contract
Write Contract
- Contract name:
- DogeIna
- Optimization enabled
- true
- Compiler version
- v0.8.6+commit.11564f7e
- Optimization runs
- 200
- EVM Version
- default
- Verified at
- 2022-08-22T14:13:17.821954Z
Contract source code
/** https://t.me/DogeIna */ // SPDX-License-Identifier: unlicensed pragma solidity ^0.8.6; /** * BEP20 standard interface */ interface IBEP20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address _owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } abstract contract Ownable { address internal owner; address private _previousOwner; uint256 private _lockTime; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor(address _owner) { owner = _owner; } modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; } function isOwner(address account) public view returns (bool) { return account == owner; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } function getUnlockTime() public view returns (uint256) { return _lockTime; } function Ownershiplock(uint256 time) public virtual onlyOwner { _previousOwner = owner; owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(owner, address(0)); } function Ownershipunlock() public virtual { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(block.timestamp > _lockTime , "Contract is locked"); emit OwnershipTransferred(owner, _previousOwner); owner = _previousOwner; } } /** * Router Interfaces */ interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WWDOGE() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityWDOGE( address token, uint amountTokenDesired, uint amountTokenMin, uint amountWDOGEMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountWDOGE, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactWDOGEForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForWDOGESupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } /** * Contract Code */ contract DogeIna is IBEP20, Ownable { address WDOGE = 0xB7ddC6414bf4F5515b52D8BdD69973Ae205ff101; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "DogeIna"; // string constant _symbol = "DOGEINA"; // uint8 constant _decimals = 9; uint256 _totalSupply = 1 * 10**9 * 10**_decimals; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; // Detailed Fees uint256 public liquidityFee; uint256 public devFee; uint256 public marketingFee; uint256 public buybackFee; uint256 public totalFee; uint256 public BuyliquidityFee = 3; uint256 public BuydevFee = 0; uint256 public BuymarketingFee = 9; uint256 public BuybuybackFee = 0; uint256 public BuytotalFee = BuyliquidityFee + BuydevFee + BuymarketingFee + BuybuybackFee; uint256 public SellliquidityFee = 3; uint256 public SelldevFee = 0; uint256 public SellmarketingFee = 9; uint256 public SellbuybackFee = 0; uint256 public SelltotalFee = SellliquidityFee + SelldevFee + SellmarketingFee + SellbuybackFee; // Max wallet & Transaction uint256 public _maxBuyTxAmount = _totalSupply / (100) * (2); // 2% uint256 public _maxSellTxAmount = _totalSupply / (100) * (2); // 2% uint256 public _maxWalletToken = _totalSupply / (100) * (3); // 3% // Fees receivers address public autoLiquidityReceiver = 0xF4fD291060b3df1305756a5fd280080C1fB2Ff68; address public marketingFeeReceiver = 0x24aF4B70CBA43Ac708961e1fbC7A727cA0BAa933; address public devFeeReceiver = 0x24aF4B70CBA43Ac708961e1fbC7A727cA0BAa933; address public buybackFeeReceiver = 0x24aF4B70CBA43Ac708961e1fbC7A727cA0BAa933; IDEXRouter public router; address public pair; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 1000 * 1; // 0.1% uint256 public maxSwapSize = _totalSupply / 100 * 1; //1% uint256 public tokensToSell; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } constructor () Ownable(msg.sender) { router = IDEXRouter(0xa4EE06Ce40cb7e8c04E127c1F7D3dFB7F7039C81); pair = IDEXFactory(router.factory()).createPair(WDOGE, address(this)); _allowances[address(this)][address(router)] = type(uint256).max; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) { return owner; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveMax(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { if(_allowances[sender][msg.sender] != type(uint256).max){ _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(sender == pair){ buyFees(); } if(recipient == pair){ sellFees(); } if (sender != owner && recipient != address(this) && recipient != address(DEAD) && recipient != pair || isTxLimitExempt[recipient]){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");} // Checks max transaction limit if(sender == pair){ require(amount <= _maxBuyTxAmount || isTxLimitExempt[recipient], "TX Limit Exceeded"); } if(recipient == pair){ require(amount <= _maxSellTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } //Exchange tokens if(shouldSwapBack()){ swapBack(); } _balances[sender] = _balances[sender] - amount; uint256 amountReceived = shouldTakeFee(sender) ? takeFee(recipient, amount) : amount; _balances[recipient] = _balances[recipient] + amountReceived; emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender] - amount; _balances[recipient] = _balances[recipient] + (amount); emit Transfer(sender, recipient, amount); return true; } // Internal Functions function buyFees() internal{ liquidityFee = BuyliquidityFee; devFee = BuydevFee; marketingFee = BuymarketingFee; buybackFee = BuybuybackFee; totalFee = BuytotalFee; } function sellFees() internal{ liquidityFee = SellliquidityFee; devFee = SelldevFee; marketingFee = SellmarketingFee; buybackFee = SellbuybackFee; totalFee = SelltotalFee; } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount) internal returns (uint256) { uint256 feeAmount = amount / 100 * (totalFee); _balances[address(this)] = _balances[address(this)] + (feeAmount); emit Transfer(sender, address(this), feeAmount); return amount - (feeAmount); } function shouldSwapBack() internal view returns (bool) { return msg.sender != pair && !inSwap && swapEnabled && _balances[address(this)] >= swapThreshold; } function swapBack() internal swapping { uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance >= maxSwapSize){ tokensToSell = maxSwapSize; } else{ tokensToSell = contractTokenBalance; } uint256 amountToLiquify = tokensToSell / (totalFee) * (liquidityFee) / (2); uint256 amountToSwap = tokensToSell - (amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = WDOGE; uint256 balanceBefore = address(this).balance; router.swapExactTokensForWDOGESupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountDOGE = address(this).balance - (balanceBefore); uint256 totalDOGEFee = totalFee - (liquidityFee / (2)); uint256 amountDOGELiquidity = amountDOGE * (liquidityFee) / (totalDOGEFee) / (2); uint256 amountDOGEbuyback = amountDOGE * (buybackFee) / (totalDOGEFee); uint256 amountDOGEMarketing = amountDOGE * (marketingFee) / (totalDOGEFee); uint256 amountDOGEDev = amountDOGE - amountDOGELiquidity - amountDOGEbuyback - amountDOGEMarketing; (bool MarketingSuccess,) = payable(marketingFeeReceiver).call{value: amountDOGEMarketing, gas: 30000}(""); require(MarketingSuccess, "receiver rejected WDOGE transfer"); (bool buybackSuccess,) = payable(buybackFeeReceiver).call{value: amountDOGEbuyback, gas: 30000}(""); require(buybackSuccess, "receiver rejected WDOGE transfer"); (bool devSuccess,) = payable(devFeeReceiver).call{value: amountDOGEDev, gas: 30000}(""); require(devSuccess, "receiver rejected WDOGE transfer"); addLiquidity(amountToLiquify, amountDOGELiquidity); } function addLiquidity(uint256 tokenAmount, uint256 DOGEAmount) private { if(tokenAmount > 0){ router.addLiquidityWDOGE{value: DOGEAmount}( address(this), tokenAmount, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(DOGEAmount, tokenAmount); } } // External Functions function checkSwapThreshold() external view returns (uint256) { return swapThreshold; } function checkMaxWalletToken() external view returns (uint256) { return _maxWalletToken; } function checkMaxBuyTxAmount() external view returns (uint256) { return _maxBuyTxAmount; } function checkMaxSellTxAmount() external view returns (uint256) { return _maxSellTxAmount; } function isNotInSwap() external view returns (bool) { return !inSwap; } // Only Owner allowed function setBuyFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee) external onlyOwner { BuyliquidityFee = _liquidityFee; BuybuybackFee = _buybackFee; BuymarketingFee = _marketingFee; BuydevFee = _devFee; BuytotalFee = _liquidityFee + (_buybackFee) + (_marketingFee) + (_devFee); } function setSellFees(uint256 _liquidityFee, uint256 _buybackFee, uint256 _marketingFee, uint256 _devFee) external onlyOwner { SellliquidityFee = _liquidityFee; SellbuybackFee = _buybackFee; SellmarketingFee = _marketingFee; SelldevFee = _devFee; SelltotalFee = _liquidityFee + (_buybackFee) + (_marketingFee) + (_devFee); } function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver, address _buybackFeeReceiver, address _devFeeReceiver) external onlyOwner { autoLiquidityReceiver = _autoLiquidityReceiver; marketingFeeReceiver = _marketingFeeReceiver; buybackFeeReceiver = _buybackFeeReceiver; devFeeReceiver = _devFeeReceiver; } function setSwapBackSettings(bool _enabled, uint256 _percentage_min_base10000, uint256 _percentage_max_base10000) external onlyOwner { swapEnabled = _enabled; swapThreshold = _totalSupply / (10000) * (_percentage_min_base10000); maxSwapSize = _totalSupply / (10000) * (_percentage_max_base10000); } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner { _maxWalletToken = _totalSupply / (1000) * (maxWallPercent_base1000); } function setMaxBuyTxPercent_base1000(uint256 maxBuyTXPercentage_base1000) external onlyOwner { _maxBuyTxAmount = _totalSupply / (1000) * (maxBuyTXPercentage_base1000); } function setMaxSellTxPercent_base1000(uint256 maxSellTXPercentage_base1000) external onlyOwner { _maxSellTxAmount = _totalSupply / (1000) * (maxSellTXPercentage_base1000); } // Stuck Balances Functions function rescueToken(address tokenAddress, uint256 tokens) public onlyOwner returns (bool success) { return IBEP20(tokenAddress).transfer(msg.sender, tokens); } function clearStuckBalance(uint256 amountPercentage) external onlyOwner { uint256 amountDOGE = address(this).balance; payable(msg.sender).transfer(amountDOGE * amountPercentage / 100); } event AutoLiquify(uint256 amountDOGE, uint256 amountTokens); }
Contract ABI
[{"type":"constructor","stateMutability":"nonpayable","inputs":[]},{"type":"event","name":"Approval","inputs":[{"type":"address","name":"owner","internalType":"address","indexed":true},{"type":"address","name":"spender","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"AutoLiquify","inputs":[{"type":"uint256","name":"amountDOGE","internalType":"uint256","indexed":false},{"type":"uint256","name":"amountTokens","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"type":"address","name":"from","internalType":"address","indexed":true},{"type":"address","name":"to","internalType":"address","indexed":true},{"type":"uint256","name":"value","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BuybuybackFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BuydevFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BuyliquidityFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BuymarketingFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"BuytotalFee","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"Ownershiplock","inputs":[{"type":"uint256","name":"time","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"Ownershipunlock","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SellbuybackFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SelldevFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SellliquidityFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SellmarketingFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"SelltotalFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_maxBuyTxAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_maxSellTxAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_maxWalletToken","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"allowance","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approve","inputs":[{"type":"address","name":"spender","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"approveMax","inputs":[{"type":"address","name":"spender","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"autoLiquidityReceiver","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"balanceOf","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"buybackFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"buybackFeeReceiver","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"checkMaxBuyTxAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"checkMaxSellTxAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"checkMaxWalletToken","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"checkSwapThreshold","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"clearStuckBalance","inputs":[{"type":"uint256","name":"amountPercentage","internalType":"uint256"}]},{"type":"function","stateMutability":"pure","outputs":[{"type":"uint8","name":"","internalType":"uint8"}],"name":"decimals","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"devFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"devFeeReceiver","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getOwner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getUnlockTime","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isFeeExempt","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isNotInSwap","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isOwner","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isTxLimitExempt","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"liquidityFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"marketingFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"marketingFeeReceiver","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"maxSwapSize","inputs":[]},{"type":"function","stateMutability":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"pair","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"success","internalType":"bool"}],"name":"rescueToken","inputs":[{"type":"address","name":"tokenAddress","internalType":"address"},{"type":"uint256","name":"tokens","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IDEXRouter"}],"name":"router","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setBuyFees","inputs":[{"type":"uint256","name":"_liquidityFee","internalType":"uint256"},{"type":"uint256","name":"_buybackFee","internalType":"uint256"},{"type":"uint256","name":"_marketingFee","internalType":"uint256"},{"type":"uint256","name":"_devFee","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setFeeReceivers","inputs":[{"type":"address","name":"_autoLiquidityReceiver","internalType":"address"},{"type":"address","name":"_marketingFeeReceiver","internalType":"address"},{"type":"address","name":"_buybackFeeReceiver","internalType":"address"},{"type":"address","name":"_devFeeReceiver","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setIsFeeExempt","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"bool","name":"exempt","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setIsTxLimitExempt","inputs":[{"type":"address","name":"holder","internalType":"address"},{"type":"bool","name":"exempt","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMaxBuyTxPercent_base1000","inputs":[{"type":"uint256","name":"maxBuyTXPercentage_base1000","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMaxSellTxPercent_base1000","inputs":[{"type":"uint256","name":"maxSellTXPercentage_base1000","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMaxWalletPercent_base1000","inputs":[{"type":"uint256","name":"maxWallPercent_base1000","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setSellFees","inputs":[{"type":"uint256","name":"_liquidityFee","internalType":"uint256"},{"type":"uint256","name":"_buybackFee","internalType":"uint256"},{"type":"uint256","name":"_marketingFee","internalType":"uint256"},{"type":"uint256","name":"_devFee","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setSwapBackSettings","inputs":[{"type":"bool","name":"_enabled","internalType":"bool"},{"type":"uint256","name":"_percentage_min_base10000","internalType":"uint256"},{"type":"uint256","name":"_percentage_max_base10000","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"swapEnabled","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"swapThreshold","inputs":[]},{"type":"function","stateMutability":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"symbol","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"tokensToSell","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transfer","inputs":[{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"transferFrom","inputs":[{"type":"address","name":"sender","internalType":"address"},{"type":"address","name":"recipient","internalType":"address"},{"type":"uint256","name":"amount","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"receive","stateMutability":"payable"}]
Contract Creation Code
0x6080604052600380546001600160a01b031990811673b7ddc6414bf4f5515b52d8bdd69973ae205ff1011790915560048054821661dead179055600580549091169055620000506009600a620004ae565b6200006090633b9aca006200056f565b60065560036010556000601155600960125560006013556013546012546011546010546200008f919062000427565b6200009b919062000427565b620000a7919062000427565b6014556003601555600060165560096017556000601855601854601754601654601554620000d6919062000427565b620000e2919062000427565b620000ee919062000427565b601955606460065462000102919062000442565b6200010f9060026200056f565b601a55606460065462000123919062000442565b620001309060026200056f565b601b55606460065462000144919062000442565b620001519060036200056f565b601c55601d80546001600160a01b031990811673f4fd291060b3df1305756a5fd280080c1fb2ff6817909155601e805482167324af4b70cba43ac708961e1fbc7a727ca0baa933908117909155601f8054831682179055602080549092161790556022805460ff60a01b1916600160a01b179055600654620001d7906103e89062000442565b620001e49060016200056f565b6023556064600654620001f8919062000442565b620002059060016200056f565b6024553480156200021557600080fd5b5060008054336001600160a01b0319918216179091556021805473a4ee06ce40cb7e8c04e127c1f7d3dfb7f7039c819216821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200028157600080fd5b505afa15801562000296573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002bc9190620003f5565b6003546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c6539690604401602060405180830381600087803b1580156200030957600080fd5b505af11580156200031e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003449190620003f5565b602280546001600160a01b0319166001600160a01b03928316179055306000908152600860209081526040808320602154909416835292815282822060001990553380835260098252838320805460ff199081166001908117909255600a845285852080549091169091179055600654600783528484208190559351938452927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005a7565b6000602082840312156200040857600080fd5b81516001600160a01b03811681146200042057600080fd5b9392505050565b600082198211156200043d576200043d62000591565b500190565b6000826200046057634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620004a65781600019048211156200048a576200048a62000591565b808516156200049857918102915b93841c93908002906200046a565b509250929050565b60006200042060ff841683600082620004ca5750600162000569565b81620004d95750600062000569565b8160018114620004f25760028114620004fd576200051d565b600191505062000569565b60ff84111562000511576200051162000591565b50506001821b62000569565b5060208310610133831016604e8410600b841016171562000542575081810a62000569565b6200054e838362000465565b806000190482111562000565576200056562000591565b0290505b92915050565b60008160001904831182151516156200058c576200058c62000591565b500290565b634e487b7160e01b600052601160045260246000fd5b61216f80620005b76000396000f3fe6080604052600436106103b15760003560e01c80636ddd1713116101e7578063ab00d68d1161010d578063e96fada2116100a0578063f7baf3c51161006f578063f7baf3c514610ab8578063f84ba65d14610acd578063f887ea4014610aed578063fc44ed4814610b0d57600080fd5b8063e96fada214610a4c578063e99090c114610a6c578063ea19e4a814610a82578063f2fde38b14610a9857600080fd5b8063d0889358116100dc578063d0889358146109b0578063dab84ee7146109d0578063dd62ed3e146109f0578063e9563dfd14610a3657600080fd5b8063ab00d68d1461094f578063b43b783514610965578063ca33e64c1461097a578063cf4be3941461099a57600080fd5b8063893d20e81161018557806398118cb41161015457806398118cb4146108d9578063a4e13071146108ef578063a8aa1b311461090f578063a9059cbb1461092f57600080fd5b8063893d20e81461083b5780638b42507f1461085957806395d89b411461088957806396c99f5b146108b957600080fd5b806378109e54116101c157806378109e54146107be5780637fbcedff146107d457806383b4ac68146107ea57806384b1d1ef1461080357600080fd5b80636ddd17131461075157806370a08231146107725780637724555f146107a857600080fd5b8063391e73a3116102d7578063602bc62b1161026a5780636b67c4df116102395780636b67c4df146106f05780636c5b2855146107065780636d351d1a146107265780636d796e881461073b57600080fd5b8063602bc62b1461068f5780636533e393146106a4578063658d4b7f146106ba5780636827e764146106da57600080fd5b80633f4218e0116102a65780633f4218e0146106145780634f28cac214610644578063541b4de71461065a578063571ac8b01461066f57600080fd5b8063391e73a3146105b25780633b2d081c146105c85780633c8e556d146105de5780633d956691146105fe57600080fd5b80631898cab21161034f5780632f54bf6e1161031e5780632f54bf6e14610531578063313ce56714610560578063334773271461057c57806333f3d6281461059257600080fd5b80631898cab2146104c65780631da1db5e146104db5780631df4ccfc146104fb57806323b872dd1461051157600080fd5b8063095ea7b31161038b578063095ea7b314610441578063154d4abb14610471578063178d9b8e1461049157806318160ddd146104b157600080fd5b80630445b667146103bd57806306fdde03146103e657806309302dc61461041f57600080fd5b366103b857005b600080fd5b3480156103c957600080fd5b506103d360235481565b6040519081526020015b60405180910390f35b3480156103f257600080fd5b50604080518082019091526007815266446f6765496e6160c81b60208201525b6040516103dd9190611f71565b34801561042b57600080fd5b5061043f61043a366004611ef8565b610b23565b005b34801561044d57600080fd5b5061046161045c366004611e7c565b610b77565b60405190151581526020016103dd565b34801561047d57600080fd5b5061043f61048c366004611ef8565b610be3565b34801561049d57600080fd5b5061043f6104ac366004611f3f565b610c2e565b3480156104bd57600080fd5b506006546103d3565b3480156104d257600080fd5b50601a546103d3565b3480156104e757600080fd5b5061043f6104f6366004611ef8565b610c95565b34801561050757600080fd5b506103d3600f5481565b34801561051d57600080fd5b5061046161052c366004611e09565b610d07565b34801561053d57600080fd5b5061046161054c366004611d67565b6000546001600160a01b0391821691161490565b34801561056c57600080fd5b50604051600981526020016103dd565b34801561058857600080fd5b506103d3601a5481565b34801561059e57600080fd5b506104616105ad366004611e7c565b610d9c565b3480156105be57600080fd5b506103d360145481565b3480156105d457600080fd5b506103d3600e5481565b3480156105ea57600080fd5b5061043f6105f9366004611db5565b610e47565b34801561060a57600080fd5b506103d360255481565b34801561062057600080fd5b5061046161062f366004611d67565b60096020526000908152604090205460ff1681565b34801561065057600080fd5b506103d360245481565b34801561066657600080fd5b50601b546103d3565b34801561067b57600080fd5b5061046161068a366004611d67565b610ec1565b34801561069b57600080fd5b506002546103d3565b3480156106b057600080fd5b506103d360115481565b3480156106c657600080fd5b5061043f6106d5366004611e45565b610ed5565b3480156106e657600080fd5b506103d3600c5481565b3480156106fc57600080fd5b506103d3600d5481565b34801561071257600080fd5b5061043f610721366004611f3f565b610f2a565b34801561073257600080fd5b506023546103d3565b34801561074757600080fd5b506103d360175481565b34801561075d57600080fd5b5060225461046190600160a01b900460ff1681565b34801561077e57600080fd5b506103d361078d366004611d67565b6001600160a01b031660009081526007602052604090205490565b3480156107b457600080fd5b506103d360195481565b3480156107ca57600080fd5b506103d3601c5481565b3480156107e057600080fd5b506103d360125481565b3480156107f657600080fd5b5060265460ff1615610461565b34801561080f57600080fd5b50602054610823906001600160a01b031681565b6040516001600160a01b0390911681526020016103dd565b34801561084757600080fd5b506000546001600160a01b0316610823565b34801561086557600080fd5b50610461610874366004611d67565b600a6020526000908152604090205460ff1681565b34801561089557600080fd5b50604080518082019091526007815266444f4745494e4160c81b6020820152610412565b3480156108c557600080fd5b5061043f6108d4366004611ef8565b610f91565b3480156108e557600080fd5b506103d3600b5481565b3480156108fb57600080fd5b5061043f61090a366004611ef8565b610fdc565b34801561091b57600080fd5b50602254610823906001600160a01b031681565b34801561093b57600080fd5b5061046161094a366004611e7c565b611073565b34801561095b57600080fd5b506103d360165481565b34801561097157600080fd5b50601c546103d3565b34801561098657600080fd5b50601d54610823906001600160a01b031681565b3480156109a657600080fd5b506103d3601b5481565b3480156109bc57600080fd5b5061043f6109cb366004611ec3565b611080565b3480156109dc57600080fd5b50601f54610823906001600160a01b031681565b3480156109fc57600080fd5b506103d3610a0b366004611d82565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610a4257600080fd5b506103d360135481565b348015610a5857600080fd5b50601e54610823906001600160a01b031681565b348015610a7857600080fd5b506103d360155481565b348015610a8e57600080fd5b506103d360105481565b348015610aa457600080fd5b5061043f610ab3366004611d67565b611104565b348015610ac457600080fd5b5061043f6111ee565b348015610ad957600080fd5b5061043f610ae8366004611e45565b6112fb565b348015610af957600080fd5b50602154610823906001600160a01b031681565b348015610b1957600080fd5b506103d360185481565b6000546001600160a01b03163314610b565760405162461bcd60e51b8152600401610b4d90611ffb565b60405180910390fd5b806103e8600654610b6791906120a4565b610b7191906120c6565b601c5550565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bd29086815260200190565b60405180910390a350600192915050565b6000546001600160a01b03163314610c0d5760405162461bcd60e51b8152600401610b4d90611ffb565b806103e8600654610c1e91906120a4565b610c2891906120c6565b601a5550565b6000546001600160a01b03163314610c585760405162461bcd60e51b8152600401610b4d90611ffb565b60108490556013839055601282905560118190558082610c78858761208c565b610c82919061208c565b610c8c919061208c565b60145550505050565b6000546001600160a01b03163314610cbf5760405162461bcd60e51b8152600401610b4d90611ffb565b47336108fc6064610cd085856120c6565b610cda91906120a4565b6040518115909202916000818181858888f19350505050158015610d02573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610d87576001600160a01b0384166000908152600860209081526040808320338452909152902054610d629083906120e5565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610d92848484611350565b90505b9392505050565b600080546001600160a01b03163314610dc75760405162461bcd60e51b8152600401610b4d90611ffb565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d959190611ea6565b6000546001600160a01b03163314610e715760405162461bcd60e51b8152600401610b4d90611ffb565b601d80546001600160a01b039586166001600160a01b031991821617909155601e8054948616948216949094179093556020805492851692841692909217909155601f8054919093169116179055565b6000610ecf82600019610b77565b92915050565b6000546001600160a01b03163314610eff5760405162461bcd60e51b8152600401610b4d90611ffb565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f545760405162461bcd60e51b8152600401610b4d90611ffb565b60158490556018839055601782905560168190558082610f74858761208c565b610f7e919061208c565b610f88919061208c565b60195550505050565b6000546001600160a01b03163314610fbb5760405162461bcd60e51b8152600401610b4d90611ffb565b806103e8600654610fcc91906120a4565b610fd691906120c6565b601b5550565b6000546001600160a01b031633146110065760405162461bcd60e51b8152600401610b4d90611ffb565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055611035814261208c565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000610d95338484611350565b6000546001600160a01b031633146110aa5760405162461bcd60e51b8152600401610b4d90611ffb565b6022805460ff60a01b1916600160a01b8515150217905560065482906110d390612710906120a4565b6110dd91906120c6565b60235560065481906110f290612710906120a4565b6110fc91906120c6565b602455505050565b6000546001600160a01b0316331461112e5760405162461bcd60e51b8152600401610b4d90611ffb565b6001600160a01b0381166111935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b4d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146112545760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610b4d565b600254421161129a5760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81b1bd8dad95960721b6044820152606401610b4d565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b031633146113255760405162461bcd60e51b8152600401610b4d90611ffb565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60265460009060ff161561137057611369848484611705565b9050610d95565b6022546001600160a01b03858116911614156113a9576113a9601054600b55601154600c55601254600d55601354600e55601454600f55565b6022546001600160a01b03848116911614156113e2576113e2601554600b55601654600c55601754600d55601854600e55601954600f55565b6000546001600160a01b0385811691161480159061140957506001600160a01b0383163014155b801561142357506004546001600160a01b03848116911614155b801561143d57506022546001600160a01b03848116911614155b8061146057506001600160a01b0383166000908152600a602052604090205460ff165b15611501576001600160a01b038316600090815260076020526040902054601c5461148b848361208c565b11156114ff5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610b4d565b505b6022546001600160a01b038581169116141561158057601a548211158061154057506001600160a01b0383166000908152600a602052604090205460ff165b6115805760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b4d565b6022546001600160a01b03848116911614156115ff57601b54821115806115bf57506001600160a01b0384166000908152600a602052604090205460ff165b6115ff5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b4d565b6116076117bf565b1561161457611614611817565b6001600160a01b0384166000908152600760205260409020546116389083906120e5565b6001600160a01b038516600090815260076020908152604080832093909355600990529081205460ff161561166d5782611677565b6116778484611bba565b6001600160a01b03851660009081526007602052604090205490915061169e90829061208c565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116f29085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383166000908152600760205260408120546117299083906120e5565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461175990839061208c565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117ad9086815260200190565b60405180910390a35060019392505050565b6022546000906001600160a01b031633148015906117e0575060265460ff16155b80156117f55750602254600160a01b900460ff165b801561181257506023543060009081526007602052604090205410155b905090565b6026805460ff19166001179055306000908152600760205260408120549050602454811061184a57602454602555611850565b60258190555b60006002600b54600f5460255461186791906120a4565b61187191906120c6565b61187b91906120a4565b905060008160255461188d91906120e5565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106118c7576118c7612112565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106118f8576118f8612112565b6001600160a01b03928316602091820292909201015260215460405163b43d9bbb60e01b81524792919091169063b43d9bbb9061194290869060009087903090429060040161201b565b600060405180830381600087803b15801561195c57600080fd5b505af1158015611970573d6000803e3d6000fd5b505050506000814761198291906120e5565b905060006002600b5461199591906120a4565b600f546119a291906120e5565b90506000600282600b54856119b791906120c6565b6119c191906120a4565b6119cb91906120a4565b9050600082600e54856119de91906120c6565b6119e891906120a4565b9050600083600d54866119fb91906120c6565b611a0591906120a4565b905060008183611a1586896120e5565b611a1f91906120e5565b611a2991906120e5565b601e546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611a80576040519150601f19603f3d011682016040523d82523d6000602084013e611a85565b606091505b5050905080611aa65760405162461bcd60e51b8152600401610b4d90611fc6565b6020546040516000916001600160a01b03169061753090879084818181858888f193505050503d8060008114611af8576040519150601f19603f3d011682016040523d82523d6000602084013e611afd565b606091505b5050905080611b1e5760405162461bcd60e51b8152600401610b4d90611fc6565b601f546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611b70576040519150601f19603f3d011682016040523d82523d6000602084013e611b75565b606091505b5050905080611b965760405162461bcd60e51b8152600401610b4d90611fc6565b611ba08d88611c60565b50506026805460ff19169055505050505050505050505050565b600080600f54606484611bcd91906120a4565b611bd791906120c6565b30600090815260076020526040902054909150611bf590829061208c565b30600081815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c469085815260200190565b60405180910390a3611c5881846120e5565b949350505050565b8115611d4757602154601d54604051633994a6ad60e21b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063e6529ab490839060c4016060604051808303818588803b158015611cd157600080fd5b505af1158015611ce5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d0a9190611f11565b505060408051838152602081018590527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050565b80356001600160a01b0381168114611d6257600080fd5b919050565b600060208284031215611d7957600080fd5b610d9582611d4b565b60008060408385031215611d9557600080fd5b611d9e83611d4b565b9150611dac60208401611d4b565b90509250929050565b60008060008060808587031215611dcb57600080fd5b611dd485611d4b565b9350611de260208601611d4b565b9250611df060408601611d4b565b9150611dfe60608601611d4b565b905092959194509250565b600080600060608486031215611e1e57600080fd5b611e2784611d4b565b9250611e3560208501611d4b565b9150604084013590509250925092565b60008060408385031215611e5857600080fd5b611e6183611d4b565b91506020830135611e7181612128565b809150509250929050565b60008060408385031215611e8f57600080fd5b611e9883611d4b565b946020939093013593505050565b600060208284031215611eb857600080fd5b8151610d9581612128565b600080600060608486031215611ed857600080fd5b8335611ee381612128565b95602085013595506040909401359392505050565b600060208284031215611f0a57600080fd5b5035919050565b600080600060608486031215611f2657600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215611f5557600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015611f9e57858101830151858201604001528201611f82565b81811115611fb0576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f72656365697665722072656a65637465642057444f4745207472616e73666572604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561206b5784516001600160a01b031683529383019391830191600101612046565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561209f5761209f6120fc565b500190565b6000826120c157634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120e0576120e06120fc565b500290565b6000828210156120f7576120f76120fc565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b801515811461213657600080fd5b5056fea264697066735822122052057a19ed16b810d64061fbd88023f499d5626feb28abc4d7cd54cd59ed364764736f6c63430008060033
Deployed ByteCode
0x6080604052600436106103b15760003560e01c80636ddd1713116101e7578063ab00d68d1161010d578063e96fada2116100a0578063f7baf3c51161006f578063f7baf3c514610ab8578063f84ba65d14610acd578063f887ea4014610aed578063fc44ed4814610b0d57600080fd5b8063e96fada214610a4c578063e99090c114610a6c578063ea19e4a814610a82578063f2fde38b14610a9857600080fd5b8063d0889358116100dc578063d0889358146109b0578063dab84ee7146109d0578063dd62ed3e146109f0578063e9563dfd14610a3657600080fd5b8063ab00d68d1461094f578063b43b783514610965578063ca33e64c1461097a578063cf4be3941461099a57600080fd5b8063893d20e81161018557806398118cb41161015457806398118cb4146108d9578063a4e13071146108ef578063a8aa1b311461090f578063a9059cbb1461092f57600080fd5b8063893d20e81461083b5780638b42507f1461085957806395d89b411461088957806396c99f5b146108b957600080fd5b806378109e54116101c157806378109e54146107be5780637fbcedff146107d457806383b4ac68146107ea57806384b1d1ef1461080357600080fd5b80636ddd17131461075157806370a08231146107725780637724555f146107a857600080fd5b8063391e73a3116102d7578063602bc62b1161026a5780636b67c4df116102395780636b67c4df146106f05780636c5b2855146107065780636d351d1a146107265780636d796e881461073b57600080fd5b8063602bc62b1461068f5780636533e393146106a4578063658d4b7f146106ba5780636827e764146106da57600080fd5b80633f4218e0116102a65780633f4218e0146106145780634f28cac214610644578063541b4de71461065a578063571ac8b01461066f57600080fd5b8063391e73a3146105b25780633b2d081c146105c85780633c8e556d146105de5780633d956691146105fe57600080fd5b80631898cab21161034f5780632f54bf6e1161031e5780632f54bf6e14610531578063313ce56714610560578063334773271461057c57806333f3d6281461059257600080fd5b80631898cab2146104c65780631da1db5e146104db5780631df4ccfc146104fb57806323b872dd1461051157600080fd5b8063095ea7b31161038b578063095ea7b314610441578063154d4abb14610471578063178d9b8e1461049157806318160ddd146104b157600080fd5b80630445b667146103bd57806306fdde03146103e657806309302dc61461041f57600080fd5b366103b857005b600080fd5b3480156103c957600080fd5b506103d360235481565b6040519081526020015b60405180910390f35b3480156103f257600080fd5b50604080518082019091526007815266446f6765496e6160c81b60208201525b6040516103dd9190611f71565b34801561042b57600080fd5b5061043f61043a366004611ef8565b610b23565b005b34801561044d57600080fd5b5061046161045c366004611e7c565b610b77565b60405190151581526020016103dd565b34801561047d57600080fd5b5061043f61048c366004611ef8565b610be3565b34801561049d57600080fd5b5061043f6104ac366004611f3f565b610c2e565b3480156104bd57600080fd5b506006546103d3565b3480156104d257600080fd5b50601a546103d3565b3480156104e757600080fd5b5061043f6104f6366004611ef8565b610c95565b34801561050757600080fd5b506103d3600f5481565b34801561051d57600080fd5b5061046161052c366004611e09565b610d07565b34801561053d57600080fd5b5061046161054c366004611d67565b6000546001600160a01b0391821691161490565b34801561056c57600080fd5b50604051600981526020016103dd565b34801561058857600080fd5b506103d3601a5481565b34801561059e57600080fd5b506104616105ad366004611e7c565b610d9c565b3480156105be57600080fd5b506103d360145481565b3480156105d457600080fd5b506103d3600e5481565b3480156105ea57600080fd5b5061043f6105f9366004611db5565b610e47565b34801561060a57600080fd5b506103d360255481565b34801561062057600080fd5b5061046161062f366004611d67565b60096020526000908152604090205460ff1681565b34801561065057600080fd5b506103d360245481565b34801561066657600080fd5b50601b546103d3565b34801561067b57600080fd5b5061046161068a366004611d67565b610ec1565b34801561069b57600080fd5b506002546103d3565b3480156106b057600080fd5b506103d360115481565b3480156106c657600080fd5b5061043f6106d5366004611e45565b610ed5565b3480156106e657600080fd5b506103d3600c5481565b3480156106fc57600080fd5b506103d3600d5481565b34801561071257600080fd5b5061043f610721366004611f3f565b610f2a565b34801561073257600080fd5b506023546103d3565b34801561074757600080fd5b506103d360175481565b34801561075d57600080fd5b5060225461046190600160a01b900460ff1681565b34801561077e57600080fd5b506103d361078d366004611d67565b6001600160a01b031660009081526007602052604090205490565b3480156107b457600080fd5b506103d360195481565b3480156107ca57600080fd5b506103d3601c5481565b3480156107e057600080fd5b506103d360125481565b3480156107f657600080fd5b5060265460ff1615610461565b34801561080f57600080fd5b50602054610823906001600160a01b031681565b6040516001600160a01b0390911681526020016103dd565b34801561084757600080fd5b506000546001600160a01b0316610823565b34801561086557600080fd5b50610461610874366004611d67565b600a6020526000908152604090205460ff1681565b34801561089557600080fd5b50604080518082019091526007815266444f4745494e4160c81b6020820152610412565b3480156108c557600080fd5b5061043f6108d4366004611ef8565b610f91565b3480156108e557600080fd5b506103d3600b5481565b3480156108fb57600080fd5b5061043f61090a366004611ef8565b610fdc565b34801561091b57600080fd5b50602254610823906001600160a01b031681565b34801561093b57600080fd5b5061046161094a366004611e7c565b611073565b34801561095b57600080fd5b506103d360165481565b34801561097157600080fd5b50601c546103d3565b34801561098657600080fd5b50601d54610823906001600160a01b031681565b3480156109a657600080fd5b506103d3601b5481565b3480156109bc57600080fd5b5061043f6109cb366004611ec3565b611080565b3480156109dc57600080fd5b50601f54610823906001600160a01b031681565b3480156109fc57600080fd5b506103d3610a0b366004611d82565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610a4257600080fd5b506103d360135481565b348015610a5857600080fd5b50601e54610823906001600160a01b031681565b348015610a7857600080fd5b506103d360155481565b348015610a8e57600080fd5b506103d360105481565b348015610aa457600080fd5b5061043f610ab3366004611d67565b611104565b348015610ac457600080fd5b5061043f6111ee565b348015610ad957600080fd5b5061043f610ae8366004611e45565b6112fb565b348015610af957600080fd5b50602154610823906001600160a01b031681565b348015610b1957600080fd5b506103d360185481565b6000546001600160a01b03163314610b565760405162461bcd60e51b8152600401610b4d90611ffb565b60405180910390fd5b806103e8600654610b6791906120a4565b610b7191906120c6565b601c5550565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610bd29086815260200190565b60405180910390a350600192915050565b6000546001600160a01b03163314610c0d5760405162461bcd60e51b8152600401610b4d90611ffb565b806103e8600654610c1e91906120a4565b610c2891906120c6565b601a5550565b6000546001600160a01b03163314610c585760405162461bcd60e51b8152600401610b4d90611ffb565b60108490556013839055601282905560118190558082610c78858761208c565b610c82919061208c565b610c8c919061208c565b60145550505050565b6000546001600160a01b03163314610cbf5760405162461bcd60e51b8152600401610b4d90611ffb565b47336108fc6064610cd085856120c6565b610cda91906120a4565b6040518115909202916000818181858888f19350505050158015610d02573d6000803e3d6000fd5b505050565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610d87576001600160a01b0384166000908152600860209081526040808320338452909152902054610d629083906120e5565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610d92848484611350565b90505b9392505050565b600080546001600160a01b03163314610dc75760405162461bcd60e51b8152600401610b4d90611ffb565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610e0f57600080fd5b505af1158015610e23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d959190611ea6565b6000546001600160a01b03163314610e715760405162461bcd60e51b8152600401610b4d90611ffb565b601d80546001600160a01b039586166001600160a01b031991821617909155601e8054948616948216949094179093556020805492851692841692909217909155601f8054919093169116179055565b6000610ecf82600019610b77565b92915050565b6000546001600160a01b03163314610eff5760405162461bcd60e51b8152600401610b4d90611ffb565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610f545760405162461bcd60e51b8152600401610b4d90611ffb565b60158490556018839055601782905560168190558082610f74858761208c565b610f7e919061208c565b610f88919061208c565b60195550505050565b6000546001600160a01b03163314610fbb5760405162461bcd60e51b8152600401610b4d90611ffb565b806103e8600654610fcc91906120a4565b610fd691906120c6565b601b5550565b6000546001600160a01b031633146110065760405162461bcd60e51b8152600401610b4d90611ffb565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055611035814261208c565b600255600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a350565b6000610d95338484611350565b6000546001600160a01b031633146110aa5760405162461bcd60e51b8152600401610b4d90611ffb565b6022805460ff60a01b1916600160a01b8515150217905560065482906110d390612710906120a4565b6110dd91906120c6565b60235560065481906110f290612710906120a4565b6110fc91906120c6565b602455505050565b6000546001600160a01b0316331461112e5760405162461bcd60e51b8152600401610b4d90611ffb565b6001600160a01b0381166111935760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b4d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001546001600160a01b031633146112545760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610b4d565b600254421161129a5760405162461bcd60e51b815260206004820152601260248201527110dbdb9d1c9858dd081a5cc81b1bd8dad95960721b6044820152606401610b4d565b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000546001600160a01b031633146113255760405162461bcd60e51b8152600401610b4d90611ffb565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b60265460009060ff161561137057611369848484611705565b9050610d95565b6022546001600160a01b03858116911614156113a9576113a9601054600b55601154600c55601254600d55601354600e55601454600f55565b6022546001600160a01b03848116911614156113e2576113e2601554600b55601654600c55601754600d55601854600e55601954600f55565b6000546001600160a01b0385811691161480159061140957506001600160a01b0383163014155b801561142357506004546001600160a01b03848116911614155b801561143d57506022546001600160a01b03848116911614155b8061146057506001600160a01b0383166000908152600a602052604090205460ff165b15611501576001600160a01b038316600090815260076020526040902054601c5461148b848361208c565b11156114ff5760405162461bcd60e51b815260206004820152603e60248201527f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460448201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e00006064820152608401610b4d565b505b6022546001600160a01b038581169116141561158057601a548211158061154057506001600160a01b0383166000908152600a602052604090205460ff165b6115805760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b4d565b6022546001600160a01b03848116911614156115ff57601b54821115806115bf57506001600160a01b0384166000908152600a602052604090205460ff165b6115ff5760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b4d565b6116076117bf565b1561161457611614611817565b6001600160a01b0384166000908152600760205260409020546116389083906120e5565b6001600160a01b038516600090815260076020908152604080832093909355600990529081205460ff161561166d5782611677565b6116778484611bba565b6001600160a01b03851660009081526007602052604090205490915061169e90829061208c565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906116f29085815260200190565b60405180910390a3506001949350505050565b6001600160a01b0383166000908152600760205260408120546117299083906120e5565b6001600160a01b03808616600090815260076020526040808220939093559085168152205461175990839061208c565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117ad9086815260200190565b60405180910390a35060019392505050565b6022546000906001600160a01b031633148015906117e0575060265460ff16155b80156117f55750602254600160a01b900460ff165b801561181257506023543060009081526007602052604090205410155b905090565b6026805460ff19166001179055306000908152600760205260408120549050602454811061184a57602454602555611850565b60258190555b60006002600b54600f5460255461186791906120a4565b61187191906120c6565b61187b91906120a4565b905060008160255461188d91906120e5565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106118c7576118c7612112565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106118f8576118f8612112565b6001600160a01b03928316602091820292909201015260215460405163b43d9bbb60e01b81524792919091169063b43d9bbb9061194290869060009087903090429060040161201b565b600060405180830381600087803b15801561195c57600080fd5b505af1158015611970573d6000803e3d6000fd5b505050506000814761198291906120e5565b905060006002600b5461199591906120a4565b600f546119a291906120e5565b90506000600282600b54856119b791906120c6565b6119c191906120a4565b6119cb91906120a4565b9050600082600e54856119de91906120c6565b6119e891906120a4565b9050600083600d54866119fb91906120c6565b611a0591906120a4565b905060008183611a1586896120e5565b611a1f91906120e5565b611a2991906120e5565b601e546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611a80576040519150601f19603f3d011682016040523d82523d6000602084013e611a85565b606091505b5050905080611aa65760405162461bcd60e51b8152600401610b4d90611fc6565b6020546040516000916001600160a01b03169061753090879084818181858888f193505050503d8060008114611af8576040519150601f19603f3d011682016040523d82523d6000602084013e611afd565b606091505b5050905080611b1e5760405162461bcd60e51b8152600401610b4d90611fc6565b601f546040516000916001600160a01b03169061753090869084818181858888f193505050503d8060008114611b70576040519150601f19603f3d011682016040523d82523d6000602084013e611b75565b606091505b5050905080611b965760405162461bcd60e51b8152600401610b4d90611fc6565b611ba08d88611c60565b50506026805460ff19169055505050505050505050505050565b600080600f54606484611bcd91906120a4565b611bd791906120c6565b30600090815260076020526040902054909150611bf590829061208c565b30600081815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611c469085815260200190565b60405180910390a3611c5881846120e5565b949350505050565b8115611d4757602154601d54604051633994a6ad60e21b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063e6529ab490839060c4016060604051808303818588803b158015611cd157600080fd5b505af1158015611ce5573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d0a9190611f11565b505060408051838152602081018590527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050565b80356001600160a01b0381168114611d6257600080fd5b919050565b600060208284031215611d7957600080fd5b610d9582611d4b565b60008060408385031215611d9557600080fd5b611d9e83611d4b565b9150611dac60208401611d4b565b90509250929050565b60008060008060808587031215611dcb57600080fd5b611dd485611d4b565b9350611de260208601611d4b565b9250611df060408601611d4b565b9150611dfe60608601611d4b565b905092959194509250565b600080600060608486031215611e1e57600080fd5b611e2784611d4b565b9250611e3560208501611d4b565b9150604084013590509250925092565b60008060408385031215611e5857600080fd5b611e6183611d4b565b91506020830135611e7181612128565b809150509250929050565b60008060408385031215611e8f57600080fd5b611e9883611d4b565b946020939093013593505050565b600060208284031215611eb857600080fd5b8151610d9581612128565b600080600060608486031215611ed857600080fd5b8335611ee381612128565b95602085013595506040909401359392505050565b600060208284031215611f0a57600080fd5b5035919050565b600080600060608486031215611f2657600080fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215611f5557600080fd5b5050823594602084013594506040840135936060013592509050565b600060208083528351808285015260005b81811015611f9e57858101830151858201604001528201611f82565b81811115611fb0576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f72656365697665722072656a65637465642057444f4745207472616e73666572604082015260600190565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b8181101561206b5784516001600160a01b031683529383019391830191600101612046565b50506001600160a01b03969096166060850152505050608001529392505050565b6000821982111561209f5761209f6120fc565b500190565b6000826120c157634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156120e0576120e06120fc565b500290565b6000828210156120f7576120f76120fc565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b801515811461213657600080fd5b5056fea264697066735822122052057a19ed16b810d64061fbd88023f499d5626feb28abc4d7cd54cd59ed364764736f6c63430008060033