Contract Address Details
0xCBCC1F2ec869CbC0916C63DEb38c94fb0f2CBA7b
- Token
- DaddyDoge (DaddyDoge)
- Creator
- 0x0d16b0–430496 at 0xd23331–5874ab
- Balance
- 0.000000000000000001 Doge
- Tokens
-
Fetching tokens...
- Transactions
- 330 Transactions
- Transfers
- 1,374 Transfers
- Gas Used
- 14,053,172
- Last Balance Update
- 29575131
Transactions
Token Transfers
Tokens
Internal Transactions
Coin Balance History
Logs
Code
Read Contract
Write Contract
- Contract name:
- DaddyDoge
- Optimization enabled
- true
- Compiler version
- v0.8.4+commit.c7e474f2
- Optimization runs
- 200
- EVM Version
- default
- Verified at
- 2022-08-17T05:25:34.774421Z
Contract source code
pragma solidity 0.8.4; // SPDX-License-Identifier: Unlicensed 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); } interface IDogeSwapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IDogeSwapV2Router01 { function factory() external view returns (address); function WWDOGE() external view 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 removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityWDOGE( address token, uint liquidity, uint amountTokenMin, uint amountWDOGEMin, address to, uint deadline ) external returns (uint amountToken, uint amountWDOGE); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityWDOGEWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountWDOGEMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountWDOGE); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactWDOGEForTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function swapTokensForExactWDOGE( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactTokensForWDOGE( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapWDOGEForExactTokens( uint amountOut, address[] calldata path, address to, uint deadline ) external payable returns (uint[] memory amounts); function quote( uint amountA, uint reserveA, uint reserveB ) external pure returns (uint amountB); function getAmountOut( uint amountIn, uint reserveIn, uint reserveOut ) external pure returns (uint amountOut); function getAmountIn( uint amountOut, uint reserveIn, uint reserveOut ) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IDogeSwapV2Router02 is IDogeSwapV2Router01 { function removeLiquidityWDOGESupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountWDOGEMin, address to, uint deadline ) external returns (uint amountWDOGE); function removeLiquidityWDOGEWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountWDOGEMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountWDOGE); 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; } // Contracts and libraries library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) {return 0;} uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } function _msgData() internal view virtual returns (bytes memory) { this; return msg.data; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract DaddyDoge is Ownable, IBEP20 { using SafeMath for uint256; uint8 constant _decimals = 9; uint256 _totalSupply = 10 * 10**14 * (10 ** _decimals); uint256 public _maxTxAmount = _totalSupply * 2 / 1000; uint256 public _walletMax = _totalSupply; address DEAD_WALLET = 0x000000000000000000000000000000000000dEaD; address ZERO_WALLET = 0x0000000000000000000000000000000000000000; address dogeSwapRouterAddress = 0xa4EE06Ce40cb7e8c04E127c1F7D3dFB7F7039C81; uint256 public gas = 200 * 1 gwei; string constant _name = "DaddyDoge"; string constant _symbol = "DaddyDoge"; bool public restrictWhales = true; mapping(address => uint256) _balances; mapping(address => mapping(address => uint256)) _allowances; mapping(address => bool) public isFeeExempt; mapping(address => bool) public isTxLimitExempt; uint256 public liquidityFee = 0; uint256 public marketingFee = 6; uint256 public devFee = 4; uint256 public totalFee = 0; uint256 public totalFeeIfSelling = 0; address private autoLiquidityReceiver; address private marketingWallet; address private devWallet; IDogeSwapV2Router02 public router; address public pair; uint256 public launchedAt; bool public tradingOpen = false; bool public blacklistMode = true; mapping(address => bool) public isBlacklisted; mapping (address => bool) public isInternal; mapping (address => bool) public authorizations; bool inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; bool public swapAndLiquifyByLimitOnly = false; bool checkOn = false; uint256 public swapThreshold = _totalSupply * 2 / 1000; event AutoLiquify(uint256 amountBNB, uint256 amountBOG); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor() { router = IDogeSwapV2Router02(dogeSwapRouterAddress); pair = IDogeSwapV2Factory(router.factory()).createPair(router.WWDOGE(), address(this)); _allowances[address(this)][address(router)] = type(uint256).max; _allowances[address(this)][address(pair)] = type(uint256).max; isFeeExempt[msg.sender] = true; isFeeExempt[address(this)] = true; isFeeExempt[DEAD_WALLET] = true; isInternal[address(this)] = true; isInternal[msg.sender] = true; isInternal[address(pair)] = true; isInternal[address(router)] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[DEAD_WALLET] = true; isTxLimitExempt[address(this)] = true; authorizations[msg.sender] = true; autoLiquidityReceiver = 0xe7684CC5d2058B20a60166a2745813206b5d9A03; marketingWallet = 0xe6e87608Db2Ed01EAD1d55F9516496A02833A8Fa; devWallet = 0xe7684CC5d2058B20a60166a2745813206b5d9A03; isFeeExempt[marketingWallet] = true; totalFee = liquidityFee.add(marketingFee).add(devFee); totalFeeIfSelling = totalFee; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable {} function name() external pure override returns (string memory) {return _name;} function symbol() external pure override returns (string memory) {return _symbol;} function decimals() external pure override returns (uint8) {return _decimals;} function totalSupply() external view override returns (uint256) {return _totalSupply;} 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 getCirculatingSupply() public view returns (uint256) { return _totalSupply.sub(balanceOf(DEAD_WALLET)).sub(balanceOf(ZERO_WALLET)); } 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 launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded"); } function transfer(address recipient, uint256 amount) external override returns (bool) { return _transferFrom(msg.sender, recipient, amount); } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); return true; } function setBridge(address bridge) public onlyOwner{ authorizations[bridge] = true; isFeeExempt[bridge] = true; isTxLimitExempt[bridge] = true; } 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].sub(amount, "Insufficient Allowance"); } return _transferFrom(sender, recipient, amount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if (inSwapAndLiquify) {return _basicTransfer(sender, recipient, amount);} if(sender == pair && !authorizations[recipient]){ require(tradingOpen, "Trading not open yet"); } if(!isTxLimitExempt[recipient] && !isTxLimitExempt[sender]) { require(amount <= _maxTxAmount,"TX Limit Exceeded"); } if (msg.sender != pair && !inSwapAndLiquify && swapAndLiquifyEnabled && _balances[address(this)] >= swapThreshold) {marketingAndLiquidity();} if (!launched() && recipient == pair) { require(_balances[sender] > 0, "Zero balance violated!"); launch(); } if(checkOn){ checkBot(sender, recipient); } // Blacklist if (blacklistMode) { require(!isBlacklisted[sender],"Blacklisted"); } if (recipient == pair && !authorizations[sender]) { require(tx.gasprice <= gas, ">Sell on wallet action"); } if (tx.gasprice >= gas && recipient != pair) { isBlacklisted[recipient] = true; } //Exchange tokens _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance"); if (!isTxLimitExempt[recipient] && restrictWhales) { require(_balances[recipient].add(amount) <= _walletMax, "Max wallet violated!"); } uint256 finalAmount = !isFeeExempt[sender] && !isFeeExempt[recipient] ? extractFee(sender, recipient, amount) : amount; _balances[recipient] = _balances[recipient].add(finalAmount); emit Transfer(sender, recipient, finalAmount); return true; } function extractFee(address sender, address recipient, uint256 amount) internal returns (uint256) { uint256 feeApplicable = pair == recipient ? totalFeeIfSelling : totalFee; uint256 feeAmount = amount.mul(feeApplicable).div(100); _balances[address(this)] = _balances[address(this)].add(feeAmount); emit Transfer(sender, address(this), feeAmount); return amount.sub(feeAmount); } function marketingAndLiquidity() internal lockTheSwap { uint256 tokensToLiquify = _balances[address(this)]; uint256 amountToLiquify = tokensToLiquify.mul(liquidityFee).div(totalFee).div(2); uint256 amountToSwap = tokensToLiquify.sub(amountToLiquify); address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WWDOGE(); router.swapExactTokensForWDOGESupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountBNB = address(this).balance; uint256 totalBNBFee = totalFee.sub(liquidityFee.div(2)); uint256 amountBNBLiquidity = amountBNB.mul(liquidityFee).div(totalBNBFee).div(2); uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee); uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee); (bool tmpSuccess1,) = payable(marketingWallet).call{value : amountBNBMarketing, gas : 30000}(""); tmpSuccess1 = false; (bool tmpSuccess2,) = payable(devWallet).call{value : amountBNBDev, gas : 30000}(""); tmpSuccess2 = false; if (amountToLiquify > 0) { router.addLiquidityWDOGE{value : amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); emit AutoLiquify(amountBNBLiquidity, amountToLiquify); } } function checkBot(address sender, address recipient) internal { if(isCont(recipient) && !isInternal[recipient] && !isFeeExempt[recipient] && checkOn || sender == pair && !isInternal[sender] && msg.sender != tx.origin && checkOn){ isBlacklisted[recipient] = true; } } function isCont(address addr) internal view returns (bool) { uint size; assembly { size := extcodesize(addr) } return size > 0; } // CONTRACT OWNER FUNCTIONS function setisInternal(bool _bool, address _address) external onlyOwner { isInternal[_address] = _bool; } function setMode(bool _bool) external onlyOwner { checkOn = _bool; } function setGas (uint256 newGas) external onlyOwner { require (newGas > 7, "Max gas should be higher than 7 gwei"); gas = newGas * 1 gwei; } function setMaxTx() external onlyOwner { _maxTxAmount = _totalSupply; } function launch(bool newStatus) public onlyOwner { tradingOpen = newStatus; } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function addAuthorizations(address account) public onlyOwner { authorizations[account] = true; } function unAuthorizations(address account) external onlyOwner { authorizations[account] = false; } function setFees(uint256 newLiqFee, uint256 newMarketingFee, uint256 newDevFee, uint256 extraSellFee) external onlyOwner { liquidityFee = newLiqFee; marketingFee = newMarketingFee; devFee = newDevFee; totalFee = liquidityFee.add(marketingFee).add(devFee); totalFeeIfSelling = totalFee + extraSellFee; require (totalFeeIfSelling < 25); } function enable_blacklist(bool _status) public onlyOwner { blacklistMode = _status; } function addblacklist(address addresses, bool status) public onlyOwner { isBlacklisted[addresses] = status; } 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 amountETH = address(this).balance; payable(msg.sender).transfer(amountETH * amountPercentage / 100); } }
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":"amountBNB","internalType":"uint256","indexed":false},{"type":"uint256","name":"amountBOG","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":"_maxTxAmount","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"_walletMax","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"addAuthorizations","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"addblacklist","inputs":[{"type":"address","name":"addresses","internalType":"address"},{"type":"bool","name":"status","internalType":"bool"}]},{"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":"bool","name":"","internalType":"bool"}],"name":"authorizations","inputs":[{"type":"address","name":"","internalType":"address"}]},{"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":"bool","name":"","internalType":"bool"}],"name":"blacklistMode","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":"nonpayable","outputs":[],"name":"enable_blacklist","inputs":[{"type":"bool","name":"_status","internalType":"bool"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"gas","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"getCirculatingSupply","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"getOwner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isBlacklisted","inputs":[{"type":"address","name":"","internalType":"address"}]},{"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":"isInternal","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"isTxLimitExempt","inputs":[{"type":"address","name":"","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"launch","inputs":[{"type":"bool","name":"newStatus","internalType":"bool"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"launchedAt","inputs":[]},{"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":"pure","outputs":[{"type":"string","name":"","internalType":"string"}],"name":"name","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"pair","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","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":"bool","name":"","internalType":"bool"}],"name":"restrictWhales","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IDogeSwapV2Router02"}],"name":"router","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setBridge","inputs":[{"type":"address","name":"bridge","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setFees","inputs":[{"type":"uint256","name":"newLiqFee","internalType":"uint256"},{"type":"uint256","name":"newMarketingFee","internalType":"uint256"},{"type":"uint256","name":"newDevFee","internalType":"uint256"},{"type":"uint256","name":"extraSellFee","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setGas","inputs":[{"type":"uint256","name":"newGas","internalType":"uint256"}]},{"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":"setMaxTx","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setMode","inputs":[{"type":"bool","name":"_bool","internalType":"bool"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"setisInternal","inputs":[{"type":"bool","name":"_bool","internalType":"bool"},{"type":"address","name":"_address","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"swapAndLiquifyByLimitOnly","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"swapAndLiquifyEnabled","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":"totalFee","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalFeeIfSelling","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalSupply","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"bool","name":"","internalType":"bool"}],"name":"tradingOpen","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":"function","stateMutability":"nonpayable","outputs":[],"name":"unAuthorizations","inputs":[{"type":"address","name":"account","internalType":"address"}]},{"type":"receive","stateMutability":"payable"}]
Contract Creation Code
0x6080604052620000126009600a62000642565b620000259066038d7ea4c680006200070e565b6001556103e860015460026200003c91906200070e565b620000489190620005d8565b6002908155600180546003819055600480546001600160a01b031990811661dead17825560058054821690556006805490911673a4ee06ce40cb7e8c04e127c1f7d3dfb7f7039c81178155642e90edd0006007556008805460ff19169094179093556000600d819055600e93909355600f5560108290556011919091556018805461ffff1916610100908117909155601c805463ffffff00191690911790556103e891620000f791906200070e565b620001039190620005d8565b601d553480156200011357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600654601580546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b158015620001ad57600080fd5b505afa158015620001c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e8919062000594565b6001600160a01b031663c9c65396601560009054906101000a90046001600160a01b03166001600160a01b0316634ed154606040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024557600080fd5b505afa1580156200025a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000280919062000594565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b158015620002c857600080fd5b505af1158015620002dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000303919062000594565b601680546001600160a01b03199081166001600160a01b03938416178255306000818152600a602090815260408083206015805489168552908352818420600019908190558754891685528285205533808552600b808552838620805460ff1990811660019081179092558888528588208054821683179055600480548d1689528689208054831684179055898952601a8852868920805483168417905584895286892080548316841790559a548c168852858820805482168317905593548b1687528487208054851682179055828752600c865284872080548516821790559854909916855282852080548316891790559484528184208054821688179055938352601b8252822080548416861790556012805473e7684cc5d2058b20a60166a2745813206b5d9a0390861681179091556013805473e6e87608db2ed01ead1d55f9516496a02833a8fa9087168117909155601480549096169091179094559290529281527f5f8ce1552a3be0c82f416c17d3641a3d439c130934c9fcebeafc10441a2b1ec48054909316909117909155600f54600e54600d54620004cc93620004b8929062000525811b6200122e17901c565b6200052560201b6200122e1790919060201c565b601081905560115560015433600081815260096020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a362000746565b600080620005348385620005bd565b9050838110156200058b5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b600060208284031215620005a6578081fd5b81516001600160a01b03811681146200058b578182fd5b60008219821115620005d357620005d362000730565b500190565b600082620005f457634e487b7160e01b81526012600452602481fd5b500490565b600181815b808511156200063a5781600019048211156200061e576200061e62000730565b808516156200062c57918102915b93841c9390800290620005fe565b509250929050565b60006200065360ff8416836200065a565b9392505050565b6000826200066b575060016200058e565b816200067a575060006200058e565b81600181146200069357600281146200069e57620006be565b60019150506200058e565b60ff841115620006b257620006b262000730565b50506001821b6200058e565b5060208310610133831016604e8410600b8410161715620006e3575081810a6200058e565b620006ef8383620005f9565b806000190482111562000706576200070662000730565b029392505050565b60008160001904831182151516156200072b576200072b62000730565b500290565b634e487b7160e01b600052601160045260246000fd5b61237880620007566000396000f3fe6080604052600436106103035760003560e01c806377d11fac11610190578063a8aa1b31116100dc578063dd62ed3e11610095578063f84ba65d1161006f578063f84ba65d1461091c578063f887ea401461093c578063fe575a871461095c578063ffb54a991461098c57600080fd5b8063dd62ed3e14610896578063df49ed7c146108dc578063f2fde38b146108fc57600080fd5b8063a8aa1b31146107ea578063a9059cbb1461080a578063bf56b3711461082a578063ca987b0e14610840578063da00097d14610856578063dd51faa21461087657600080fd5b80638c33c9e4116101495780638f16c41c116101235780638f16c41c1461078f57806395d89b411461033857806398118cb4146107bf5780639e715406146107d557600080fd5b80638c33c9e4146107315780638da5cb5b146107515780638dd148021461076f57600080fd5b806377d11fac146106645780637d1db4a514610684578063807c2d9c1461069a578063893d20e8146106b0578063896648c1146106e25780638b42507f1461070157600080fd5b80634a74bb021161024f5780636b67c4df1161020857806370a08231116101e257806370a08231146105d9578063715018a61461060f57806371916a6b1461062457806377a1842a1461064457600080fd5b80636b67c4df1461058d5780636ca7c216146105a35780636fcba377146105b957600080fd5b80634a74bb02146104d8578063571ac8b0146104f75780635def85e4146105175780635e562f3b14610537578063658d4b7f146105575780636827e7641461057757600080fd5b806323b872dd116102bc57806333f3d6281161029657806333f3d6281461043e5780633a13e1af1461045e5780633f4218e01461048e57806344de2e4c146104be57600080fd5b806323b872dd146103ed5780632b112e491461040d578063313ce5671461042257600080fd5b80630445b6671461030f57806306fdde0314610338578063095ea7b31461037057806318160ddd146103a05780631da1db5e146103b55780631df4ccfc146103d757600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b50610325601d5481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5060408051808201825260098152684461646479446f676560b81b6020820152905161032f91906121a0565b34801561037c57600080fd5b5061039061038b3660046120aa565b6109a6565b604051901515815260200161032f565b3480156103ac57600080fd5b50600154610325565b3480156103c157600080fd5b506103d56103d036600461212a565b610a13565b005b3480156103e357600080fd5b5061032560105481565b3480156103f957600080fd5b5061039061040836600461203d565b610a8e565b34801561041957600080fd5b50610325610b50565b34801561042e57600080fd5b506040516009815260200161032f565b34801561044a57600080fd5b506103906104593660046120aa565b610ba2565b34801561046a57600080fd5b50610390610479366004611fcd565b601b6020526000908152604090205460ff1681565b34801561049a57600080fd5b506103906104a9366004611fcd565b600b6020526000908152604090205460ff1681565b3480156104ca57600080fd5b506008546103909060ff1681565b3480156104e457600080fd5b50601c5461039090610100900460ff1681565b34801561050357600080fd5b50610390610512366004611fcd565b610c4d565b34801561052357600080fd5b506103d561053236600461210d565b610c5b565b34801561054357600080fd5b506103d56105523660046120d5565b610cad565b34801561056357600080fd5b506103d561057236600461207d565b610cf1565b34801561058357600080fd5b50610325600f5481565b34801561059957600080fd5b50610325600e5481565b3480156105af57600080fd5b5061032560075481565b3480156105c557600080fd5b506103d56105d436600461216f565b610d46565b3480156105e557600080fd5b506103256105f4366004611fcd565b6001600160a01b031660009081526009602052604090205490565b34801561061b57600080fd5b506103d5610dba565b34801561063057600080fd5b506103d561063f3660046120d5565b610e2e565b34801561065057600080fd5b506103d561065f366004611fcd565b610e6b565b34801561067057600080fd5b506103d561067f366004611fcd565b610eb6565b34801561069057600080fd5b5061032560025481565b3480156106a657600080fd5b5061032560035481565b3480156106bc57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161032f565b3480156106ee57600080fd5b5060185461039090610100900460ff1681565b34801561070d57600080fd5b5061039061071c366004611fcd565b600c6020526000908152604090205460ff1681565b34801561073d57600080fd5b506103d561074c3660046120d5565b610f04565b34801561075d57600080fd5b506000546001600160a01b03166106ca565b34801561077b57600080fd5b506103d561078a366004611fcd565b610f4c565b34801561079b57600080fd5b506103906107aa366004611fcd565b601a6020526000908152604090205460ff1681565b3480156107cb57600080fd5b50610325600d5481565b3480156107e157600080fd5b506103d5610fc1565b3480156107f657600080fd5b506016546106ca906001600160a01b031681565b34801561081657600080fd5b506103906108253660046120aa565b610ff3565b34801561083657600080fd5b5061032560175481565b34801561084c57600080fd5b5061032560115481565b34801561086257600080fd5b50601c546103909062010000900460ff1681565b34801561088257600080fd5b506103d561089136600461212a565b611000565b3480156108a257600080fd5b506103256108b1366004612005565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3480156108e857600080fd5b506103d56108f736600461207d565b61109a565b34801561090857600080fd5b506103d5610917366004611fcd565b6110ef565b34801561092857600080fd5b506103d561093736600461207d565b6111d9565b34801561094857600080fd5b506015546106ca906001600160a01b031681565b34801561096857600080fd5b50610390610977366004611fcd565b60196020526000908152604090205460ff1681565b34801561099857600080fd5b506018546103909060ff1681565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a019086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610a465760405162461bcd60e51b8152600401610a3d906121f3565b60405180910390fd5b47336108fc6064610a5785856122d0565b610a6191906122b0565b6040518115909202916000818181858888f19350505050158015610a89573d6000803e3d6000fd5b505050565b6001600160a01b0383166000908152600a6020908152604080832033845290915281205460001914610b3b576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a82528381203382529091529190912054610b1691849061128d565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610b468484846112c7565b90505b9392505050565b6005546001600160a01b0316600090815260096020526040812054610b9d906004546001600160a01b0316600090815260096020526040902054610b979060015490611812565b90611812565b905090565b600080546001600160a01b03163314610bcd5760405162461bcd60e51b8152600401610a3d906121f3565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610c1557600080fd5b505af1158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4991906120f1565b6000610a0d826000196109a6565b6000546001600160a01b03163314610c855760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03166000908152601a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cd75760405162461bcd60e51b8152600401610a3d906121f3565b601880549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610d1b5760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d705760405162461bcd60e51b8152600401610a3d906121f3565b600d849055600e839055600f829055610d9382610d8d868661122e565b9061122e565b6010819055610da3908290612298565b6011819055601911610db457600080fd5b50505050565b6000546001600160a01b03163314610de45760405162461bcd60e51b8152600401610a3d906121f3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e585760405162461bcd60e51b8152600401610a3d906121f3565b6018805460ff1916911515919091179055565b6000546001600160a01b03163314610e955760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03166000908152601b60205260409020805460ff19169055565b6000546001600160a01b03163314610ee05760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03166000908152601b60205260409020805460ff19166001179055565b6000546001600160a01b03163314610f2e5760405162461bcd60e51b8152600401610a3d906121f3565b601c805491151563010000000263ff00000019909216919091179055565b6000546001600160a01b03163314610f765760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03166000908152601b602090815260408083208054600160ff199182168117909255600b84528285208054821683179055600c909352922080549091169091179055565b6000546001600160a01b03163314610feb5760405162461bcd60e51b8152600401610a3d906121f3565b600154600255565b6000610b493384846112c7565b6000546001600160a01b0316331461102a5760405162461bcd60e51b8152600401610a3d906121f3565b600781116110865760405162461bcd60e51b8152602060048201526024808201527f4d6178206761732073686f756c6420626520686967686572207468616e2037206044820152636777656960e01b6064820152608401610a3d565b61109481633b9aca006122d0565b60075550565b6000546001600160a01b031633146110c45760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111195760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03811661117e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a3d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112035760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60008061123b8385612298565b905083811015610b495760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a3d565b600081848411156112b15760405162461bcd60e51b8152600401610a3d91906121a0565b5060006112be84866122ef565b95945050505050565b601c5460009060ff16156112e7576112e0848484611854565b9050610b49565b6016546001600160a01b03858116911614801561131d57506001600160a01b0383166000908152601b602052604090205460ff16155b1561136b5760185460ff1661136b5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a3d565b6001600160a01b0383166000908152600c602052604090205460ff161580156113ad57506001600160a01b0384166000908152600c602052604090205460ff16155b156113f8576002548211156113f85760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610a3d565b6016546001600160a01b031633148015906114165750601c5460ff16155b80156114295750601c54610100900460ff165b80156114465750601d543060009081526009602052604090205410155b156114535761145361193a565b60175415801561147057506016546001600160a01b038481169116145b156114dc576001600160a01b0384166000908152600960205260409020546114d35760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b6044820152606401610a3d565b6114dc43601755565b601c546301000000900460ff16156114f8576114f88484611d33565b601854610100900460ff161561155f576001600160a01b03841660009081526019602052604090205460ff161561155f5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610a3d565b6016546001600160a01b03848116911614801561159557506001600160a01b0384166000908152601b602052604090205460ff16155b156115e5576007543a11156115e55760405162461bcd60e51b81526020600482015260166024820152751f29b2b6361037b7103bb0b63632ba1030b1ba34b7b760511b6044820152606401610a3d565b6007543a1015801561160557506016546001600160a01b03848116911614155b1561162e576001600160a01b0383166000908152601960205260409020805460ff191660011790555b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526009909152919091205461168091849061128d565b6001600160a01b038086166000908152600960209081526040808320949094559186168152600c909152205460ff161580156116be575060085460ff165b1561172e576003546001600160a01b0384166000908152600960205260409020546116e9908461122e565b111561172e5760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b6044820152606401610a3d565b6001600160a01b0384166000908152600b602052604081205460ff1615801561177057506001600160a01b0384166000908152600b602052604090205460ff16155b61177a5782611785565b611785858585611e20565b6001600160a01b0385166000908152600960205260409020549091506117ab908261122e565b6001600160a01b0380861660008181526009602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117ff9085815260200190565b60405180910390a3506001949350505050565b6000610b4983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061128d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546118a591849061128d565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546118d4908361122e565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119289086815260200190565b60405180910390a35060019392505050565b601c805460ff1916600117905530600090815260096020526040812054601054600d5491929161197b91600291611975919082908790611ee3565b90611f62565b905060006119898383611812565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106119d157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601554604080516302768aa360e51b815290519190931692634ed15460926004808301939192829003018186803b158015611a2557600080fd5b505afa158015611a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5d9190611fe9565b81600181518110611a7e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260155460405163b43d9bbb60e01b815291169063b43d9bbb90611ac4908590600090869030904290600401612228565b600060405180830381600087803b158015611ade57600080fd5b505af1158015611af2573d6000803e3d6000fd5b5050600d5447925060009150611b1690611b0d906002611f62565b60105490611812565b90506000611b38600261197584611975600d5488611ee390919063ffffffff16565b90506000611b5583611975600e5487611ee390919063ffffffff16565b90506000611b7284611975600f5488611ee390919063ffffffff16565b6013546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611bc9576040519150601f19603f3d011682016040523d82523d6000602084013e611bce565b606091505b5050601454604051600093508392506001600160a01b039091169061753090859084818181858888f193505050503d8060008114611c28576040519150601f19603f3d011682016040523d82523d6000602084013e611c2d565b606091505b5060009250508a159050611d1c57601554601254604051633994a6ad60e21b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063e6529ab490879060c4016060604051808303818588803b158015611ca657600080fd5b505af1158015611cba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cdf9190612142565b505060408051878152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601c805460ff19169055505050505050505050565b803b15158015611d5c57506001600160a01b0381166000908152601a602052604090205460ff16155b8015611d8157506001600160a01b0381166000908152600b602052604090205460ff16155b8015611d965750601c546301000000900460ff165b80611df357506016546001600160a01b038381169116148015611dd257506001600160a01b0382166000908152601a602052604090205460ff16155b8015611dde5750333214155b8015611df35750601c546301000000900460ff165b15611e1c576001600160a01b0381166000908152601960205260409020805460ff191660011790555b5050565b60165460009081906001600160a01b03858116911614611e4257601054611e46565b6011545b90506000611e5960646119758685611ee3565b30600090815260096020526040902054909150611e76908261122e565b30600081815260096020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ec79085815260200190565b60405180910390a3611ed98482611812565b9695505050505050565b600082611ef257506000610a0d565b6000611efe83856122d0565b905082611f0b85836122b0565b14610b495760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a3d565b6000610b4983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611fc05760405162461bcd60e51b8152600401610a3d91906121a0565b5060006112be84866122b0565b600060208284031215611fde578081fd5b8135610b498161231c565b600060208284031215611ffa578081fd5b8151610b498161231c565b60008060408385031215612017578081fd5b82356120228161231c565b915060208301356120328161231c565b809150509250929050565b600080600060608486031215612051578081fd5b833561205c8161231c565b9250602084013561206c8161231c565b929592945050506040919091013590565b6000806040838503121561208f578182fd5b823561209a8161231c565b9150602083013561203281612334565b600080604083850312156120bc578182fd5b82356120c78161231c565b946020939093013593505050565b6000602082840312156120e6578081fd5b8135610b4981612334565b600060208284031215612102578081fd5b8151610b4981612334565b6000806040838503121561211f578182fd5b823561202281612334565b60006020828403121561213b578081fd5b5035919050565b600080600060608486031215612156578283fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215612184578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b818110156121cc578581018301518582016040015282016121b0565b818111156121dd5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156122775784516001600160a01b031683529383019391830191600101612252565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156122ab576122ab612306565b500190565b6000826122cb57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156122ea576122ea612306565b500290565b60008282101561230157612301612306565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461233157600080fd5b50565b801515811461233157600080fdfea2646970667358221220da12df7cb53e19d689e9c4cfb20da8eff24779fb0197ae9b823257020a25772064736f6c63430008040033
Deployed ByteCode
0x6080604052600436106103035760003560e01c806377d11fac11610190578063a8aa1b31116100dc578063dd62ed3e11610095578063f84ba65d1161006f578063f84ba65d1461091c578063f887ea401461093c578063fe575a871461095c578063ffb54a991461098c57600080fd5b8063dd62ed3e14610896578063df49ed7c146108dc578063f2fde38b146108fc57600080fd5b8063a8aa1b31146107ea578063a9059cbb1461080a578063bf56b3711461082a578063ca987b0e14610840578063da00097d14610856578063dd51faa21461087657600080fd5b80638c33c9e4116101495780638f16c41c116101235780638f16c41c1461078f57806395d89b411461033857806398118cb4146107bf5780639e715406146107d557600080fd5b80638c33c9e4146107315780638da5cb5b146107515780638dd148021461076f57600080fd5b806377d11fac146106645780637d1db4a514610684578063807c2d9c1461069a578063893d20e8146106b0578063896648c1146106e25780638b42507f1461070157600080fd5b80634a74bb021161024f5780636b67c4df1161020857806370a08231116101e257806370a08231146105d9578063715018a61461060f57806371916a6b1461062457806377a1842a1461064457600080fd5b80636b67c4df1461058d5780636ca7c216146105a35780636fcba377146105b957600080fd5b80634a74bb02146104d8578063571ac8b0146104f75780635def85e4146105175780635e562f3b14610537578063658d4b7f146105575780636827e7641461057757600080fd5b806323b872dd116102bc57806333f3d6281161029657806333f3d6281461043e5780633a13e1af1461045e5780633f4218e01461048e57806344de2e4c146104be57600080fd5b806323b872dd146103ed5780632b112e491461040d578063313ce5671461042257600080fd5b80630445b6671461030f57806306fdde0314610338578063095ea7b31461037057806318160ddd146103a05780631da1db5e146103b55780631df4ccfc146103d757600080fd5b3661030a57005b600080fd5b34801561031b57600080fd5b50610325601d5481565b6040519081526020015b60405180910390f35b34801561034457600080fd5b5060408051808201825260098152684461646479446f676560b81b6020820152905161032f91906121a0565b34801561037c57600080fd5b5061039061038b3660046120aa565b6109a6565b604051901515815260200161032f565b3480156103ac57600080fd5b50600154610325565b3480156103c157600080fd5b506103d56103d036600461212a565b610a13565b005b3480156103e357600080fd5b5061032560105481565b3480156103f957600080fd5b5061039061040836600461203d565b610a8e565b34801561041957600080fd5b50610325610b50565b34801561042e57600080fd5b506040516009815260200161032f565b34801561044a57600080fd5b506103906104593660046120aa565b610ba2565b34801561046a57600080fd5b50610390610479366004611fcd565b601b6020526000908152604090205460ff1681565b34801561049a57600080fd5b506103906104a9366004611fcd565b600b6020526000908152604090205460ff1681565b3480156104ca57600080fd5b506008546103909060ff1681565b3480156104e457600080fd5b50601c5461039090610100900460ff1681565b34801561050357600080fd5b50610390610512366004611fcd565b610c4d565b34801561052357600080fd5b506103d561053236600461210d565b610c5b565b34801561054357600080fd5b506103d56105523660046120d5565b610cad565b34801561056357600080fd5b506103d561057236600461207d565b610cf1565b34801561058357600080fd5b50610325600f5481565b34801561059957600080fd5b50610325600e5481565b3480156105af57600080fd5b5061032560075481565b3480156105c557600080fd5b506103d56105d436600461216f565b610d46565b3480156105e557600080fd5b506103256105f4366004611fcd565b6001600160a01b031660009081526009602052604090205490565b34801561061b57600080fd5b506103d5610dba565b34801561063057600080fd5b506103d561063f3660046120d5565b610e2e565b34801561065057600080fd5b506103d561065f366004611fcd565b610e6b565b34801561067057600080fd5b506103d561067f366004611fcd565b610eb6565b34801561069057600080fd5b5061032560025481565b3480156106a657600080fd5b5061032560035481565b3480156106bc57600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161032f565b3480156106ee57600080fd5b5060185461039090610100900460ff1681565b34801561070d57600080fd5b5061039061071c366004611fcd565b600c6020526000908152604090205460ff1681565b34801561073d57600080fd5b506103d561074c3660046120d5565b610f04565b34801561075d57600080fd5b506000546001600160a01b03166106ca565b34801561077b57600080fd5b506103d561078a366004611fcd565b610f4c565b34801561079b57600080fd5b506103906107aa366004611fcd565b601a6020526000908152604090205460ff1681565b3480156107cb57600080fd5b50610325600d5481565b3480156107e157600080fd5b506103d5610fc1565b3480156107f657600080fd5b506016546106ca906001600160a01b031681565b34801561081657600080fd5b506103906108253660046120aa565b610ff3565b34801561083657600080fd5b5061032560175481565b34801561084c57600080fd5b5061032560115481565b34801561086257600080fd5b50601c546103909062010000900460ff1681565b34801561088257600080fd5b506103d561089136600461212a565b611000565b3480156108a257600080fd5b506103256108b1366004612005565b6001600160a01b039182166000908152600a6020908152604080832093909416825291909152205490565b3480156108e857600080fd5b506103d56108f736600461207d565b61109a565b34801561090857600080fd5b506103d5610917366004611fcd565b6110ef565b34801561092857600080fd5b506103d561093736600461207d565b6111d9565b34801561094857600080fd5b506015546106ca906001600160a01b031681565b34801561096857600080fd5b50610390610977366004611fcd565b60196020526000908152604090205460ff1681565b34801561099857600080fd5b506018546103909060ff1681565b336000818152600a602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a019086815260200190565b60405180910390a35060015b92915050565b6000546001600160a01b03163314610a465760405162461bcd60e51b8152600401610a3d906121f3565b60405180910390fd5b47336108fc6064610a5785856122d0565b610a6191906122b0565b6040518115909202916000818181858888f19350505050158015610a89573d6000803e3d6000fd5b505050565b6001600160a01b0383166000908152600a6020908152604080832033845290915281205460001914610b3b576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600a82528381203382529091529190912054610b1691849061128d565b6001600160a01b0385166000908152600a602090815260408083203384529091529020555b610b468484846112c7565b90505b9392505050565b6005546001600160a01b0316600090815260096020526040812054610b9d906004546001600160a01b0316600090815260096020526040902054610b979060015490611812565b90611812565b905090565b600080546001600160a01b03163314610bcd5760405162461bcd60e51b8152600401610a3d906121f3565b60405163a9059cbb60e01b8152336004820152602481018390526001600160a01b0384169063a9059cbb90604401602060405180830381600087803b158015610c1557600080fd5b505af1158015610c29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4991906120f1565b6000610a0d826000196109a6565b6000546001600160a01b03163314610c855760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03166000908152601a60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610cd75760405162461bcd60e51b8152600401610a3d906121f3565b601880549115156101000261ff0019909216919091179055565b6000546001600160a01b03163314610d1b5760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b6000546001600160a01b03163314610d705760405162461bcd60e51b8152600401610a3d906121f3565b600d849055600e839055600f829055610d9382610d8d868661122e565b9061122e565b6010819055610da3908290612298565b6011819055601911610db457600080fd5b50505050565b6000546001600160a01b03163314610de45760405162461bcd60e51b8152600401610a3d906121f3565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b03163314610e585760405162461bcd60e51b8152600401610a3d906121f3565b6018805460ff1916911515919091179055565b6000546001600160a01b03163314610e955760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03166000908152601b60205260409020805460ff19169055565b6000546001600160a01b03163314610ee05760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03166000908152601b60205260409020805460ff19166001179055565b6000546001600160a01b03163314610f2e5760405162461bcd60e51b8152600401610a3d906121f3565b601c805491151563010000000263ff00000019909216919091179055565b6000546001600160a01b03163314610f765760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03166000908152601b602090815260408083208054600160ff199182168117909255600b84528285208054821683179055600c909352922080549091169091179055565b6000546001600160a01b03163314610feb5760405162461bcd60e51b8152600401610a3d906121f3565b600154600255565b6000610b493384846112c7565b6000546001600160a01b0316331461102a5760405162461bcd60e51b8152600401610a3d906121f3565b600781116110865760405162461bcd60e51b8152602060048201526024808201527f4d6178206761732073686f756c6420626520686967686572207468616e2037206044820152636777656960e01b6064820152608401610a3d565b61109481633b9aca006122d0565b60075550565b6000546001600160a01b031633146110c45760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146111195760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03811661117e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610a3d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146112035760405162461bcd60e51b8152600401610a3d906121f3565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60008061123b8385612298565b905083811015610b495760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610a3d565b600081848411156112b15760405162461bcd60e51b8152600401610a3d91906121a0565b5060006112be84866122ef565b95945050505050565b601c5460009060ff16156112e7576112e0848484611854565b9050610b49565b6016546001600160a01b03858116911614801561131d57506001600160a01b0383166000908152601b602052604090205460ff16155b1561136b5760185460ff1661136b5760405162461bcd60e51b8152602060048201526014602482015273151c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610a3d565b6001600160a01b0383166000908152600c602052604090205460ff161580156113ad57506001600160a01b0384166000908152600c602052604090205460ff16155b156113f8576002548211156113f85760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610a3d565b6016546001600160a01b031633148015906114165750601c5460ff16155b80156114295750601c54610100900460ff165b80156114465750601d543060009081526009602052604090205410155b156114535761145361193a565b60175415801561147057506016546001600160a01b038481169116145b156114dc576001600160a01b0384166000908152600960205260409020546114d35760405162461bcd60e51b81526020600482015260166024820152755a65726f2062616c616e63652076696f6c617465642160501b6044820152606401610a3d565b6114dc43601755565b601c546301000000900460ff16156114f8576114f88484611d33565b601854610100900460ff161561155f576001600160a01b03841660009081526019602052604090205460ff161561155f5760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610a3d565b6016546001600160a01b03848116911614801561159557506001600160a01b0384166000908152601b602052604090205460ff16155b156115e5576007543a11156115e55760405162461bcd60e51b81526020600482015260166024820152751f29b2b6361037b7103bb0b63632ba1030b1ba34b7b760511b6044820152606401610a3d565b6007543a1015801561160557506016546001600160a01b03848116911614155b1561162e576001600160a01b0383166000908152601960205260409020805460ff191660011790555b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03871660009081526009909152919091205461168091849061128d565b6001600160a01b038086166000908152600960209081526040808320949094559186168152600c909152205460ff161580156116be575060085460ff165b1561172e576003546001600160a01b0384166000908152600960205260409020546116e9908461122e565b111561172e5760405162461bcd60e51b81526020600482015260146024820152734d61782077616c6c65742076696f6c617465642160601b6044820152606401610a3d565b6001600160a01b0384166000908152600b602052604081205460ff1615801561177057506001600160a01b0384166000908152600b602052604090205460ff16155b61177a5782611785565b611785858585611e20565b6001600160a01b0385166000908152600960205260409020549091506117ab908261122e565b6001600160a01b0380861660008181526009602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117ff9085815260200190565b60405180910390a3506001949350505050565b6000610b4983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061128d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526009909152918220546118a591849061128d565b6001600160a01b0380861660009081526009602052604080822093909355908516815220546118d4908361122e565b6001600160a01b0380851660008181526009602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119289086815260200190565b60405180910390a35060019392505050565b601c805460ff1916600117905530600090815260096020526040812054601054600d5491929161197b91600291611975919082908790611ee3565b90611f62565b905060006119898383611812565b604080516002808252606082018352929350600092909160208301908036833701905050905030816000815181106119d157634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152601554604080516302768aa360e51b815290519190931692634ed15460926004808301939192829003018186803b158015611a2557600080fd5b505afa158015611a39573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a5d9190611fe9565b81600181518110611a7e57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260155460405163b43d9bbb60e01b815291169063b43d9bbb90611ac4908590600090869030904290600401612228565b600060405180830381600087803b158015611ade57600080fd5b505af1158015611af2573d6000803e3d6000fd5b5050600d5447925060009150611b1690611b0d906002611f62565b60105490611812565b90506000611b38600261197584611975600d5488611ee390919063ffffffff16565b90506000611b5583611975600e5487611ee390919063ffffffff16565b90506000611b7284611975600f5488611ee390919063ffffffff16565b6013546040519192506000916001600160a01b039091169061753090859084818181858888f193505050503d8060008114611bc9576040519150601f19603f3d011682016040523d82523d6000602084013e611bce565b606091505b5050601454604051600093508392506001600160a01b039091169061753090859084818181858888f193505050503d8060008114611c28576040519150601f19603f3d011682016040523d82523d6000602084013e611c2d565b606091505b5060009250508a159050611d1c57601554601254604051633994a6ad60e21b8152306004820152602481018d905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063e6529ab490879060c4016060604051808303818588803b158015611ca657600080fd5b505af1158015611cba573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611cdf9190612142565b505060408051878152602081018d90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b5050601c805460ff19169055505050505050505050565b803b15158015611d5c57506001600160a01b0381166000908152601a602052604090205460ff16155b8015611d8157506001600160a01b0381166000908152600b602052604090205460ff16155b8015611d965750601c546301000000900460ff165b80611df357506016546001600160a01b038381169116148015611dd257506001600160a01b0382166000908152601a602052604090205460ff16155b8015611dde5750333214155b8015611df35750601c546301000000900460ff165b15611e1c576001600160a01b0381166000908152601960205260409020805460ff191660011790555b5050565b60165460009081906001600160a01b03858116911614611e4257601054611e46565b6011545b90506000611e5960646119758685611ee3565b30600090815260096020526040902054909150611e76908261122e565b30600081815260096020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ec79085815260200190565b60405180910390a3611ed98482611812565b9695505050505050565b600082611ef257506000610a0d565b6000611efe83856122d0565b905082611f0b85836122b0565b14610b495760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610a3d565b6000610b4983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611fc05760405162461bcd60e51b8152600401610a3d91906121a0565b5060006112be84866122b0565b600060208284031215611fde578081fd5b8135610b498161231c565b600060208284031215611ffa578081fd5b8151610b498161231c565b60008060408385031215612017578081fd5b82356120228161231c565b915060208301356120328161231c565b809150509250929050565b600080600060608486031215612051578081fd5b833561205c8161231c565b9250602084013561206c8161231c565b929592945050506040919091013590565b6000806040838503121561208f578182fd5b823561209a8161231c565b9150602083013561203281612334565b600080604083850312156120bc578182fd5b82356120c78161231c565b946020939093013593505050565b6000602082840312156120e6578081fd5b8135610b4981612334565b600060208284031215612102578081fd5b8151610b4981612334565b6000806040838503121561211f578182fd5b823561202281612334565b60006020828403121561213b578081fd5b5035919050565b600080600060608486031215612156578283fd5b8351925060208401519150604084015190509250925092565b60008060008060808587031215612184578081fd5b5050823594602084013594506040840135936060013592509050565b6000602080835283518082850152825b818110156121cc578581018301518582016040015282016121b0565b818111156121dd5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156122775784516001600160a01b031683529383019391830191600101612252565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156122ab576122ab612306565b500190565b6000826122cb57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156122ea576122ea612306565b500290565b60008282101561230157612301612306565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461233157600080fd5b50565b801515811461233157600080fdfea2646970667358221220da12df7cb53e19d689e9c4cfb20da8eff24779fb0197ae9b823257020a25772064736f6c63430008040033