Feature Tip: Add private address tag to any address under My Name Tag !
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 275 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 20614661 | 174 days ago | IN | 0 ETH | 0.00009085 | ||||
Approve | 20585725 | 178 days ago | IN | 0 ETH | 0.00014132 | ||||
Approve | 20297012 | 218 days ago | IN | 0 ETH | 0.00008921 | ||||
Approve | 20137804 | 241 days ago | IN | 0 ETH | 0.00012675 | ||||
Transfer | 18706047 | 441 days ago | IN | 0 ETH | 0.00239768 | ||||
Approve | 18680780 | 445 days ago | IN | 0 ETH | 0.00194641 | ||||
Approve | 18669934 | 446 days ago | IN | 0 ETH | 0.0013902 | ||||
Approve | 18669932 | 446 days ago | IN | 0 ETH | 0.0014121 | ||||
Approve | 18669929 | 446 days ago | IN | 0 ETH | 0.00142299 | ||||
Approve | 18669867 | 446 days ago | IN | 0 ETH | 0.00125551 | ||||
Approve | 18669843 | 446 days ago | IN | 0 ETH | 0.00141647 | ||||
Approve | 18669744 | 446 days ago | IN | 0 ETH | 0.00170661 | ||||
Approve | 18669743 | 446 days ago | IN | 0 ETH | 0.00151896 | ||||
Approve | 18669741 | 446 days ago | IN | 0 ETH | 0.00155169 | ||||
Approve | 18669740 | 446 days ago | IN | 0 ETH | 0.00155114 | ||||
Approve | 18669740 | 446 days ago | IN | 0 ETH | 0.00155114 | ||||
Approve | 18669735 | 446 days ago | IN | 0 ETH | 0.00143247 | ||||
Approve | 18669735 | 446 days ago | IN | 0 ETH | 0.00143247 | ||||
Approve | 18669727 | 446 days ago | IN | 0 ETH | 0.00164859 | ||||
Approve | 18669727 | 446 days ago | IN | 0 ETH | 0.00164859 | ||||
Approve | 18669726 | 446 days ago | IN | 0 ETH | 0.00169435 | ||||
Approve | 18660048 | 448 days ago | IN | 0 ETH | 0.00126432 | ||||
Approve | 18660040 | 448 days ago | IN | 0 ETH | 0.00142537 | ||||
Approve | 18660038 | 448 days ago | IN | 0 ETH | 0.00152976 | ||||
Approve | 18660037 | 448 days ago | IN | 0 ETH | 0.00139028 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
18562672 | 461 days ago | 0.57237661 ETH | ||||
18562672 | 461 days ago | 0.57237661 ETH | ||||
18562664 | 461 days ago | 0.1148106 ETH | ||||
18562664 | 461 days ago | 0.1148106 ETH | ||||
18562663 | 461 days ago | 0.13077748 ETH | ||||
18562663 | 461 days ago | 0.13077748 ETH | ||||
18562649 | 461 days ago | 0.2420031 ETH | ||||
18562649 | 461 days ago | 0.2420031 ETH | ||||
18562645 | 461 days ago | 0.19671423 ETH | ||||
18562645 | 461 days ago | 0.19671423 ETH | ||||
18562643 | 461 days ago | 0.19548071 ETH | ||||
18562643 | 461 days ago | 0.19548071 ETH | ||||
18562632 | 461 days ago | 0.41178184 ETH | ||||
18562632 | 461 days ago | 0.41178184 ETH | ||||
18562626 | 461 days ago | 0.0933258 ETH | ||||
18562626 | 461 days ago | 0.0933258 ETH | ||||
18562620 | 461 days ago | 1.15520105 ETH | ||||
18562620 | 461 days ago | 1.15520105 ETH | ||||
18562617 | 461 days ago | 0.58552335 ETH | ||||
18562617 | 461 days ago | 0.58552335 ETH | ||||
18562615 | 461 days ago | 0.11686119 ETH | ||||
18562615 | 461 days ago | 0.11686119 ETH | ||||
18562600 | 461 days ago | 0.25195783 ETH | ||||
18562600 | 461 days ago | 0.25195783 ETH | ||||
18562579 | 461 days ago | 0.6218121 ETH |
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
wGROK
Compiler Version
v0.8.17+commit.8df45f5f
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.17; library Address { function isContract(address account) internal view returns (bool) { return account.code.length > 0; } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { // only check isContract if the call was successful and the return data is empty // otherwise we already know that it was a contract require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert(bytes memory returndata, string memory errorMessage) private pure { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); 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 IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract wGROK is IERC20, Ownable { using Address for address; address DEAD = 0x000000000000000000000000000000000000dEaD; address ZERO = 0x0000000000000000000000000000000000000000; string constant _name = "Wrapped Grok"; string constant _symbol = "wGROK"; uint8 constant _decimals = 9; uint256 _totalSupply = 1_000_000_000 * (10 ** _decimals); uint256 _maxBuyTxAmount = (_totalSupply * 1) / 500; uint256 _maxSellTxAmount = (_totalSupply * 1) / 500; uint256 _maxWalletSize = (_totalSupply * 1) / 500; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => uint256) public lastSell; mapping (address => uint256) public lastBuy; mapping (address => bool) public isFeeExempt; mapping (address => bool) public isTxLimitExempt; mapping (address => bool) public liquidityCreator; uint256 marketingFee = 1800; uint256 marketingSellFee = 3800; uint256 liquidityFee = 200; uint256 liquiditySellFee = 200; uint256 totalBuyFee = marketingFee + liquidityFee; uint256 totalSellFee = marketingSellFee + liquiditySellFee; uint256 feeDenominator = 10000; bool public transferTax = false; address payable public liquidityFeeReceiver = payable(0x5B1E72c12AABdeAD96B2b269b9DaDA7071cCa434); address payable public marketingFeeReceiver = payable(0x5B1E72c12AABdeAD96B2b269b9DaDA7071cCa434); IDEXRouter public router; address routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; mapping (address => bool) liquidityPools; mapping (address => uint256) public protected; bool protectionEnabled = true; bool protectionDisabled = false; uint256 protectionLimit; uint256 public protectionCount; uint256 protectionTimer; address public pair; uint256 public launchedAt; uint256 public launchedTime; uint256 public deadBlocks; bool startBullRun = false; bool pauseDisabled = false; uint256 public rateLimit = 2; bool public swapEnabled = false; uint256 public swapThreshold = _totalSupply / 5000; uint256 public swapMinimum = _totalSupply / 50000; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } mapping (address => bool) teamMember; modifier onlyTeam() { require(teamMember[_msgSender()] || msg.sender == owner(), "Caller is not a team member"); _; } event ProtectedWallet(address, address, uint256, uint8); constructor () { router = IDEXRouter(routerAddress); pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this)); liquidityPools[pair] = true; _allowances[owner()][routerAddress] = type(uint256).max; _allowances[address(this)][routerAddress] = type(uint256).max; isFeeExempt[owner()] = true; liquidityCreator[owner()] = true; isTxLimitExempt[address(this)] = true; isTxLimitExempt[owner()] = true; isTxLimitExempt[routerAddress] = true; isTxLimitExempt[DEAD] = true; _balances[owner()] = _totalSupply; emit Transfer(address(0), owner(), _totalSupply); } receive() external payable { } function totalSupply() external view override returns (uint256) { return _totalSupply; } function decimals() external pure returns (uint8) { return _decimals; } function symbol() external pure returns (string memory) { return _symbol; } function name() external pure returns (string memory) { return _name; } function getOwner() external view returns (address) { return owner(); } function maxBuyTxTokens() external view returns (uint256) { return _maxBuyTxAmount / (10 ** _decimals); } function maxSellTxTokens() external view returns (uint256) { return _maxSellTxAmount / (10 ** _decimals); } function maxWalletTokens() external view returns (uint256) { return _maxWalletSize / (10 ** _decimals); } 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 setTeamMember(address _team, bool _enabled) external onlyOwner { teamMember[_team] = _enabled; } function airdrop(address[] calldata addresses, uint256[] calldata amounts) external onlyOwner { require(addresses.length > 0 && amounts.length == addresses.length); address from = msg.sender; for (uint i = 0; i < addresses.length; i++) { if(!liquidityPools[addresses[i]] && !liquidityCreator[addresses[i]]) { _basicTransfer(from, addresses[i], amounts[i] * (10 ** _decimals)); } } } function clearStuckBalance(uint256 amountPercentage, address adr) external onlyTeam { uint256 amountETH = address(this).balance; if(amountETH > 0) { (bool sent, ) = adr.call{value: (amountETH * amountPercentage) / 100}(""); require(sent,"Failed to transfer funds"); } } function openTrading(uint256 _deadBlocks, uint256 _protection, uint256 _limit) external onlyTeam { require(!startBullRun && _deadBlocks < 10); deadBlocks = _deadBlocks; startBullRun = true; launchedAt = block.number; protectionTimer = block.timestamp + _protection; protectionLimit = _limit * (10 ** _decimals); } function pauseTrading() external onlyTeam { require(!pauseDisabled); startBullRun = false; } function disablePause() external onlyTeam { pauseDisabled = true; startBullRun = true; } function setProtection(bool _protect, uint256 _addTime) external onlyTeam { require(!protectionDisabled); protectionEnabled = _protect; require(_addTime < 1 days); protectionTimer += _addTime; } function disableProtection() external onlyTeam { protectionDisabled = true; protectionEnabled = false; } function protectWallet(address[] calldata _wallets, bool _protect) external onlyTeam { if (_protect) { require(protectionEnabled); } for (uint i = 0; i < _wallets.length; i++) { if (_protect) { protectionCount++; emit ProtectedWallet(tx.origin, _wallets[i], block.number, 2); } else { if (protected[_wallets[i]] != 0) protectionCount--; } protected[_wallets[i]] = _protect ? block.number : 0; } } 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) { require(sender != address(0), "BEP20: transfer from 0x0"); require(recipient != address(0), "BEP20: transfer to 0x0"); require(amount > 0, "Amount must be > zero"); require(_balances[sender] >= amount, "Insufficient balance"); if(!launched() && liquidityPools[recipient]){ require(liquidityCreator[sender], "Liquidity not added yet."); launch(); } if(!startBullRun){ require(liquidityCreator[sender] || liquidityCreator[recipient], "Trading not open yet."); } checkTxLimit(sender, recipient, amount); if (!liquidityPools[recipient] && recipient != DEAD) { if (!isTxLimitExempt[recipient]) { checkWalletLimit(recipient, amount); } } if(protectionEnabled && protectionTimer > block.timestamp) { if(liquidityPools[sender] && tx.origin != recipient && protected[recipient] == 0) { protected[recipient] = block.number; protectionCount++; emit ProtectedWallet(tx.origin, recipient, block.number, 0); } } if(inSwap){ return _basicTransfer(sender, recipient, amount); } _balances[sender] = _balances[sender] - amount; uint256 amountReceived = amount; if(shouldTakeFee(sender, recipient)) { amountReceived = takeFee(recipient, amount); if(shouldSwapBack(recipient) && amount > 0) swapBack(amount); } _balances[recipient] = _balances[recipient] + amountReceived; emit Transfer(sender, recipient, amountReceived); return true; } function launched() internal view returns (bool) { return launchedAt != 0; } function launch() internal { launchedAt = block.number; launchedTime = block.timestamp; swapEnabled = 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; } function checkWalletLimit(address recipient, uint256 amount) internal view { uint256 walletLimit = _maxWalletSize; require(_balances[recipient] + amount <= walletLimit, "Transfer amount exceeds the bag size."); } function checkTxLimit(address sender, address recipient, uint256 amount) internal { if (isTxLimitExempt[sender] || isTxLimitExempt[recipient]) return; require(amount <= (liquidityPools[sender] ? _maxBuyTxAmount : _maxSellTxAmount), "TX Limit Exceeded"); require(lastBuy[recipient] + rateLimit <= block.number, "Transfer rate limit exceeded."); if (protected[sender] != 0){ require(amount <= protectionLimit * (10 ** _decimals) && lastSell[sender] == 0 && protectionTimer > block.timestamp, "Wallet protected, please contact support."); lastSell[sender] = block.number; } if (liquidityPools[recipient]) { lastSell[sender] = block.number; } else if (shouldTakeFee(sender, recipient)) { if (protectionEnabled && protectionTimer > block.timestamp && lastBuy[tx.origin] == block.number && protected[recipient] == 0) { protected[recipient] = block.number; emit ProtectedWallet(tx.origin, recipient, block.number, 1); } lastBuy[recipient] = block.number; if (tx.origin != recipient) lastBuy[tx.origin] = block.number; } } function shouldTakeFee(address sender, address recipient) public view returns (bool) { if(!transferTax && !liquidityPools[recipient] && !liquidityPools[sender]) return false; return !isFeeExempt[sender] && !isFeeExempt[recipient]; } function getTotalFee(bool selling) public view returns (uint256) { if(launchedAt + deadBlocks >= block.number){ return feeDenominator - 1; } if (selling) return totalSellFee; return totalBuyFee; } function takeFee(address recipient, uint256 amount) internal returns (uint256) { bool selling = liquidityPools[recipient]; uint256 feeAmount = (amount * getTotalFee(selling)) / feeDenominator; if (shouldApplyExtraTax()) { // Apply a 99% tax during the first 4 blocks with gas price above 100 gwei for sells and buys feeAmount = (amount * 99) / 100; } _balances[address(this)] += feeAmount; return amount - feeAmount; } function shouldApplyExtraTax() internal view returns (bool) { return isFirstFourBlocks() && tx.gasprice > 100000000000; } function isFirstFourBlocks() internal view returns (bool) { return block.number <= launchedAt + 4; } function shouldSwapBack(address recipient) internal view returns (bool) { return !liquidityPools[msg.sender] && !inSwap && swapEnabled && liquidityPools[recipient] && _balances[address(this)] >= swapMinimum && totalBuyFee + totalSellFee > 0; } function swapBack(uint256 amount) internal swapping { uint256 totalFee = totalBuyFee + totalSellFee; uint256 amountToSwap = amount < swapThreshold ? amount : swapThreshold; if (_balances[address(this)] < amountToSwap) amountToSwap = _balances[address(this)]; uint256 totalLiquidityFee = liquidityFee + liquiditySellFee; uint256 amountToLiquify = (amountToSwap * totalLiquidityFee / 2) / totalFee; amountToSwap -= amountToLiquify; address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); uint256 balanceBefore = address(this).balance; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 amountETH = address(this).balance - balanceBefore; uint256 totalETHFee = totalFee - (totalLiquidityFee / 2); uint256 amountETHLiquidity = (amountETH * totalLiquidityFee / 2) / totalETHFee; uint256 amountETHMarketing = amountETH - amountETHLiquidity; if (amountETHMarketing > 0) { (bool sentMarketing, ) = marketingFeeReceiver.call{value: amountETHMarketing}(""); if(!sentMarketing) { //Failed to transfer to marketing wallet } } if(amountToLiquify > 0){ router.addLiquidityETH{value: amountETHLiquidity}( address(this), amountToLiquify, 0, 0, liquidityFeeReceiver, block.timestamp ); } emit FundsDistributed(amountETHMarketing, amountETHLiquidity, amountToLiquify); } function addLiquidityPool(address lp, bool isPool) external onlyOwner { require(lp != pair, "Can't alter current liquidity pair"); liquidityPools[lp] = isPool; } function setRateLimit(uint256 rate) external onlyOwner { require(rate <= 60 seconds); rateLimit = rate; } function setTxLimit(uint256 buyNumerator, uint256 sellNumerator, uint256 divisor) external onlyOwner { require(buyNumerator > 0 && sellNumerator > 0 && divisor > 0 && divisor <= 10000); _maxBuyTxAmount = (_totalSupply * buyNumerator) / divisor; _maxSellTxAmount = (_totalSupply * sellNumerator) / divisor; } function setMaxWallet(uint256 numerator, uint256 divisor) external onlyOwner() { require(numerator > 0 && divisor > 0 && divisor <= 10000); _maxWalletSize = (_totalSupply * numerator) / divisor; } function setIsFeeExempt(address holder, bool exempt) external onlyOwner { isFeeExempt[holder] = exempt; } function setIsTxLimitExempt(address holder, bool exempt) external onlyOwner { isTxLimitExempt[holder] = exempt; } function setFees(uint256 _liquidityFee, uint256 _liquiditySellFee, uint256 _marketingFee, uint256 _marketingSellFee, uint256 _feeDenominator) external onlyOwner { require(((_liquidityFee + _liquiditySellFee) / 2) * 2 == (_liquidityFee + _liquiditySellFee), "Liquidity fee must be an even number due to rounding"); liquidityFee = _liquidityFee; liquiditySellFee = _liquiditySellFee; marketingFee = _marketingFee; marketingSellFee = _marketingSellFee; totalBuyFee = _liquidityFee + _marketingFee; totalSellFee = _liquiditySellFee + _marketingSellFee; feeDenominator = _feeDenominator; require(totalBuyFee + totalSellFee <= feeDenominator / 2, "Fees too high"); emit FeesSet(totalBuyFee, totalSellFee, feeDenominator); } function toggleTransferTax() external onlyOwner { transferTax = !transferTax; } function setFeeReceivers(address _liquidityFeeReceiver, address _marketingFeeReceiver) external onlyOwner { liquidityFeeReceiver = payable(_liquidityFeeReceiver); marketingFeeReceiver = payable(_marketingFeeReceiver); } function setSwapBackSettings(bool _enabled, uint256 _denominator, uint256 _swapMinimum) external onlyOwner { require(_denominator > 0); swapEnabled = _enabled; swapThreshold = _totalSupply / _denominator; swapMinimum = _swapMinimum * (10 ** _decimals); } function getCirculatingSupply() public view returns (uint256) { return _totalSupply - (balanceOf(DEAD) + balanceOf(ZERO)); } event FundsDistributed(uint256 marketingETH, uint256 liquidityETH, uint256 liquidityTokens); event FeesSet(uint256 totalBuyFees, uint256 totalSellFees, uint256 denominator); }
{ "optimizer": { "enabled": true, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalBuyFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSellFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"FeesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"marketingETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"liquidityTokens","type":"uint256"}],"name":"FundsDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"address","name":"","type":"address"},{"indexed":false,"internalType":"uint256","name":"","type":"uint256"},{"indexed":false,"internalType":"uint8","name":"","type":"uint8"}],"name":"ProtectedWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"lp","type":"address"},{"internalType":"bool","name":"isPool","type":"bool"}],"name":"addLiquidityPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"},{"internalType":"address","name":"adr","type":"address"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"disablePause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"selling","type":"bool"}],"name":"getTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"liquidityCreator","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellTxTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadBlocks","type":"uint256"},{"internalType":"uint256","name":"_protection","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pauseTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_wallets","type":"address[]"},{"internalType":"bool","name":"_protect","type":"bool"}],"name":"protectWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"protected","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protectionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_liquidityFeeReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_liquiditySellFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_marketingSellFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_protect","type":"bool"},{"internalType":"uint256","name":"_addTime","type":"uint256"}],"name":"setProtection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"},{"internalType":"uint256","name":"_swapMinimum","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_team","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setTeamMember","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyNumerator","type":"uint256"},{"internalType":"uint256","name":"sellNumerator","type":"uint256"},{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"shouldTakeFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMinimum","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"toggleTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600180546001600160a01b031990811661dead17909155600280549091169055620000326009600a6200061b565b6200004290633b9aca0062000633565b6003556101f4600354600162000059919062000633565b6200006591906200064d565b6004556101f460035460016200007c919062000633565b6200008891906200064d565b6005556101f460035460016200009f919062000633565b620000ab91906200064d565b600655610708600e55610ed8600f5560c860105560c8601155601054600e54620000d6919062000670565b601255601154600f54620000eb919062000670565b60135561271060145560158054745b1e72c12aabdead96b2b269b9dada7071cca434006001600160a81b0319909116179055601680546001600160a01b0319908116735b1e72c12aabdead96b2b269b9dada7071cca4341790915560188054909116737a250d5630b4cf539739df2c5dacb4c659f2488d179055601b805461ffff1990811660011790915560238054909116905560026024556025805460ff19169055600354620001a090611388906200064d565b60265561c350600354620001b591906200064d565b602755348015620001c557600080fd5b50620001d133620004b6565b601854601780546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200022e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000254919062000686565b6001600160a01b031663c9c65396601760009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002dc919062000686565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af115801562000329573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034f919062000686565b601f80546001600160a01b0319166001600160a01b039290921691821790556000908152601960205260408120805460ff1916600117905560001990600890620003a16000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120601880548416835290855283822095909555308082526008855283822086548416835285528382206000199055815483168252600b85528382208054600160ff199182168117909255835485168452600d87528584208054821683179055918352600c865284832080548316821790558254841683528483208054831682179055955483168252838220805482168717905585548316825283822080549091169095179094556003548454821685526007845282852081905584549251908152911692917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620006b1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200055d57816000190482111562000541576200054162000506565b808516156200054f57918102915b93841c939080029062000521565b509250929050565b600082620005765750600162000615565b81620005855750600062000615565b81600181146200059e5760028114620005a957620005c9565b600191505062000615565b60ff841115620005bd57620005bd62000506565b50506001821b62000615565b5060208310610133831016604e8410600b8410161715620005ee575081810a62000615565b620005fa83836200051c565b806000190482111562000611576200061162000506565b0290505b92915050565b60006200062c60ff84168362000565565b9392505050565b808202811582820484141762000615576200061562000506565b6000826200066b57634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111562000615576200061562000506565b6000602082840312156200069957600080fd5b81516001600160a01b03811681146200062c57600080fd5b612e8e80620006c16000396000f3fe6080604052600436106103855760003560e01c806370a08231116101d1578063bfa21d6a11610102578063dd62ed3e116100a0578063f84ba65d1161006f578063f84ba65d14610a9a578063f8821a6214610aba578063f887ea4014610ad0578063fabb0b4f14610af057600080fd5b8063dd62ed3e146109f4578063e96fada214610a3a578063f1f3bca314610a5a578063f2fde38b14610a7a57600080fd5b8063d0889358116100dc578063d08893581461096f578063d68601421461098f578063d912b2ce146109af578063dae39f92146109c457600080fd5b8063bfa21d6a146108fd578063c1adf7bc14610922578063c287184e1461094f57600080fd5b80639b02c4021161016f578063a9059cbb11610149578063a9059cbb14610892578063abe57e70146108b2578063bafe446b146108d2578063bf56b371146108e757600080fd5b80639b02c4021461083c578063a4b45c0014610852578063a8aa1b311461087257600080fd5b8063893d20e8116101ab578063893d20e81461078e5780638b42507f146107c05780638da5cb5b146107f057806395d89b411461080e57600080fd5b806370a0823114610729578063715018a61461075f5780638124f7ac1461077457600080fd5b8063421dd7c7116102b6578063584f969a11610254578063658d4b7f11610223578063658d4b7f146106a257806367243482146106c25780636ddd1713146106e25780636f4ce428146106fc57600080fd5b8063584f969a1461064257806360bba03d1461065757806361e08e721461067757806363a803e11461068d57600080fd5b8063507139351161029057806350713935146105cc57806356a227f2146105ec578063571ac8b01461060c5780635804f1e41461062c57600080fd5b8063421dd7c71461056a57806346d7edaa1461057f578063492a937b146105ac57600080fd5b8063234e949411610323578063313ce567116102fd578063313ce567146104de578063332402f8146104fa57806334848b9a1461051a5780633f4218e01461053a57600080fd5b8063234e94941461049457806323b872dd146104a95780632b112e49146104c957600080fd5b8063095db78f1161035f578063095db78f1461041a578063095ea7b31461043a5780631031e36e1461046a57806318160ddd1461047f57600080fd5b80630445b6671461039157806304a66b48146103ba57806306fdde03146103dc57600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a760265481565b6040519081526020015b60405180910390f35b3480156103c657600080fd5b506103da6103d53660046127df565b610b06565b005b3480156103e857600080fd5b5060408051808201909152600c81526b577261707065642047726f6b60a01b60208201525b6040516103b1919061281a565b34801561042657600080fd5b506103da6104353660046128c9565b610c82565b34801561044657600080fd5b5061045a610455366004612932565b610e35565b60405190151581526020016103b1565b34801561047657600080fd5b506103da610ea2565b34801561048b57600080fd5b506003546103a7565b3480156104a057600080fd5b506103a7610f07565b3480156104b557600080fd5b5061045a6104c436600461295e565b610f27565b3480156104d557600080fd5b506103a7610fbc565b3480156104ea57600080fd5b50604051600981526020016103b1565b34801561050657600080fd5b5061045a61051536600461299f565b610ffd565b34801561052657600080fd5b506103da6105353660046129d8565b6110a4565b34801561054657600080fd5b5061045a610555366004612a04565b600b6020526000908152604090205460ff1681565b34801561057657600080fd5b506103da611145565b34801561058b57600080fd5b506103a761059a366004612a04565b601a6020526000908152604090205481565b3480156105b857600080fd5b506103da6105c7366004612a21565b61119a565b3480156105d857600080fd5b506103da6105e73660046129d8565b611236565b3480156105f857600080fd5b506103da610607366004612a56565b6112af565b34801561061857600080fd5b5061045a610627366004612a04565b6113b3565b34801561063857600080fd5b506103a760215481565b34801561064e57600080fd5b506103da6113c1565b34801561066357600080fd5b506103da610672366004612a21565b611416565b34801561068357600080fd5b506103a760245481565b34801561069957600080fd5b506103a7611449565b3480156106ae57600080fd5b506103da6106bd366004612a21565b611464565b3480156106ce57600080fd5b506103da6106dd366004612a7b565b611497565b3480156106ee57600080fd5b5060255461045a9060ff1681565b34801561070857600080fd5b506103a7610717366004612a04565b60096020526000908152604090205481565b34801561073557600080fd5b506103a7610744366004612a04565b6001600160a01b031660009081526007602052604090205490565b34801561076b57600080fd5b506103da6115dc565b34801561078057600080fd5b5060155461045a9060ff1681565b34801561079a57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103b1565b3480156107cc57600080fd5b5061045a6107db366004612a04565b600c6020526000908152604090205460ff1681565b3480156107fc57600080fd5b506000546001600160a01b03166107a8565b34801561081a57600080fd5b506040805180820190915260058152647747524f4b60d81b602082015261040d565b34801561084857600080fd5b506103a7601d5481565b34801561085e57600080fd5b506103da61086d36600461299f565b6115f0565b34801561087e57600080fd5b50601f546107a8906001600160a01b031681565b34801561089e57600080fd5b5061045a6108ad366004612932565b611630565b3480156108be57600080fd5b506103da6108cd366004612ae7565b61163d565b3480156108de57600080fd5b506103a761168c565b3480156108f357600080fd5b506103a760205481565b34801561090957600080fd5b506015546107a89061010090046001600160a01b031681565b34801561092e57600080fd5b506103a761093d366004612a04565b600a6020526000908152604090205481565b34801561095b57600080fd5b506103da61096a366004612b09565b6116a7565b34801561097b57600080fd5b506103da61098a366004612b22565b6116c2565b34801561099b57600080fd5b506103da6109aa366004612b55565b611714565b3480156109bb57600080fd5b506103da6117a5565b3480156109d057600080fd5b5061045a6109df366004612a04565b600d6020526000908152604090205460ff1681565b348015610a0057600080fd5b506103a7610a0f36600461299f565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610a4657600080fd5b506016546107a8906001600160a01b031681565b348015610a6657600080fd5b506103a7610a75366004612b71565b6117c1565b348015610a8657600080fd5b506103da610a95366004612a04565b6117fe565b348015610aa657600080fd5b506103da610ab5366004612a21565b611877565b348015610ac657600080fd5b506103a760275481565b348015610adc57600080fd5b506017546107a8906001600160a01b031681565b348015610afc57600080fd5b506103a760225481565b610b0e6118aa565b610b188486612ba2565b6002610b248688612ba2565b610b2e9190612bb5565b610b39906002612bd7565b14610ba85760405162461bcd60e51b815260206004820152603460248201527f4c697175696469747920666565206d75737420626520616e206576656e206e756044820152736d6265722064756520746f20726f756e64696e6760601b60648201526084015b60405180910390fd5b60108590556011849055600e839055600f829055610bc68386612ba2565b601255610bd38285612ba2565b6013556014819055610be6600282612bb5565b601354601254610bf69190612ba2565b1115610c345760405162461bcd60e51b815260206004820152600d60248201526c08ccacae640e8dede40d0d2ced609b1b6044820152606401610b9f565b60125460135460145460408051938452602084019290925282820152517f01bae858246c904512695a3f6d48ab88abb7a0192fdd7c53b043e60317795f459181900360600190a15050505050565b3360009081526029602052604090205460ff1680610caa57506000546001600160a01b031633145b610cc65760405162461bcd60e51b8152600401610b9f90612bee565b8015610cdb57601b5460ff16610cdb57600080fd5b60005b82811015610e2f578115610d6a57601d8054906000610cfc83612c25565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32858584818110610d3557610d35612c3e565b9050602002016020810190610d4a9190612a04565b436002604051610d5d9493929190612c54565b60405180910390a1610dca565b601a6000858584818110610d8057610d80612c3e565b9050602002016020810190610d959190612a04565b6001600160a01b0316815260208101919091526040016000205415610dca57601d8054906000610dc483612c7f565b91905055505b81610dd6576000610dd8565b435b601a6000868685818110610dee57610dee612c3e565b9050602002016020810190610e039190612a04565b6001600160a01b0316815260208101919091526040016000205580610e2781612c25565b915050610cde565b50505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e909086815260200190565b60405180910390a35060015b92915050565b3360009081526029602052604090205460ff1680610eca57506000546001600160a01b031633145b610ee65760405162461bcd60e51b8152600401610b9f90612bee565b602354610100900460ff1615610efb57600080fd5b6023805460ff19169055565b6000610f156009600a612d7a565b600554610f229190612bb5565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610fa7576001600160a01b0384166000908152600860209081526040808320338452909152902054610f82908390612d89565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610fb2848484611904565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610ff091612ba2565b600354610f229190612d89565b60155460009060ff1615801561102c57506001600160a01b03821660009081526019602052604090205460ff16155b801561105157506001600160a01b03831660009081526019602052604090205460ff16155b1561105e57506000610e9c565b6001600160a01b0383166000908152600b602052604090205460ff16158015610fb55750506001600160a01b03166000908152600b602052604090205460ff1615919050565b3360009081526029602052604090205460ff16806110cc57506000546001600160a01b031633145b6110e85760405162461bcd60e51b8152600401610b9f90612bee565b60235460ff161580156110fb5750600a83105b61110457600080fd5b60228390556023805460ff19166001179055436020556111248242612ba2565b601e556111336009600a612d7a565b61113d9082612bd7565b601c55505050565b3360009081526029602052604090205460ff168061116d57506000546001600160a01b031633145b6111895760405162461bcd60e51b8152600401610b9f90612bee565b601b805461ffff1916610100179055565b6111a26118aa565b601f546001600160a01b039081169083160361120b5760405162461bcd60e51b815260206004820152602260248201527f43616e277420616c7465722063757272656e74206c697175696469747920706160448201526134b960f11b6064820152608401610b9f565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b61123e6118aa565b60008311801561124e5750600082115b801561125a5750600081115b801561126857506127108111155b61127157600080fd5b80836003546112809190612bd7565b61128a9190612bb5565b600455600354819061129d908490612bd7565b6112a79190612bb5565b600555505050565b3360009081526029602052604090205460ff16806112d757506000546001600160a01b031633145b6112f35760405162461bcd60e51b8152600401610b9f90612bee565b4780156113ae5760006001600160a01b03831660646113128685612bd7565b61131c9190612bb5565b604051600081818185875af1925050503d8060008114611358576040519150601f19603f3d011682016040523d82523d6000602084013e61135d565b606091505b5050905080610e2f5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f207472616e736665722066756e647300000000000000006044820152606401610b9f565b505050565b6000610e9c82600019610e35565b3360009081526029602052604090205460ff16806113e957506000546001600160a01b031633145b6114055760405162461bcd60e51b8152600401610b9f90612bee565b6023805461ffff1916610101179055565b61141e6118aa565b6001600160a01b03919091166000908152602960205260409020805460ff1916911515919091179055565b60006114576009600a612d7a565b600654610f229190612bb5565b61146c6118aa565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b61149f6118aa565b82158015906114ad57508083145b6114b657600080fd5b3360005b848110156115d457601960008787848181106114d8576114d8612c3e565b90506020020160208101906114ed9190612a04565b6001600160a01b0316815260208101919091526040016000205460ff1615801561155c5750600d600087878481811061152857611528612c3e565b905060200201602081019061153d9190612a04565b6001600160a01b0316815260208101919091526040016000205460ff16155b156115c2576115c08287878481811061157757611577612c3e565b905060200201602081019061158c9190612a04565b6115986009600a612d7a565b8787868181106115aa576115aa612c3e565b905060200201356115bb9190612bd7565b611e00565b505b806115cc81612c25565b9150506114ba565b505050505050565b6115e46118aa565b6115ee6000611eba565b565b6115f86118aa565b60158054610100600160a81b0319166101006001600160a01b0394851602179055601680546001600160a01b03191691909216179055565b6000610fb5338484611904565b6116456118aa565b6000821180156116555750600081115b801561166357506127108111155b61166c57600080fd5b808260035461167b9190612bd7565b6116859190612bb5565b6006555050565b600061169a6009600a612d7a565b600454610f229190612bb5565b6116af6118aa565b603c8111156116bd57600080fd5b602455565b6116ca6118aa565b600082116116d757600080fd5b6025805460ff19168415151790556003546116f3908390612bb5565b6026556117026009600a612d7a565b61170c9082612bd7565b602755505050565b3360009081526029602052604090205460ff168061173c57506000546001600160a01b031633145b6117585760405162461bcd60e51b8152600401610b9f90612bee565b601b54610100900460ff161561176d57600080fd5b601b805460ff191683151517905562015180811061178a57600080fd5b80601e600082825461179c9190612ba2565b90915550505050565b6117ad6118aa565b6015805460ff19811660ff90911615179055565b6000436022546020546117d49190612ba2565b106117e8576001601454610e9c9190612d89565b81156117f657505060135490565b505060125490565b6118066118aa565b6001600160a01b03811661186b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b9f565b61187481611eba565b50565b61187f6118aa565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146115ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b9f565b60006001600160a01b03841661195c5760405162461bcd60e51b815260206004820152601860248201527f42455032303a207472616e736665722066726f6d2030783000000000000000006044820152606401610b9f565b6001600160a01b0383166119ab5760405162461bcd60e51b8152602060048201526016602482015275042455032303a207472616e7366657220746f203078360541b6044820152606401610b9f565b600082116119f35760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b6044820152606401610b9f565b6001600160a01b038416600090815260076020526040902054821115611a525760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610b9f565b602054158015611a7a57506001600160a01b03831660009081526019602052604090205460ff165b15611b01576001600160a01b0384166000908152600d602052604090205460ff16611ae75760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e00000000000000006044820152606401610b9f565b611b0143602055426021556025805460ff19166001179055565b60235460ff16611b8e576001600160a01b0384166000908152600d602052604090205460ff1680611b4a57506001600160a01b0383166000908152600d602052604090205460ff165b611b8e5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b6044820152606401610b9f565b611b99848484611f0a565b6001600160a01b03831660009081526019602052604090205460ff16158015611bd057506001546001600160a01b03848116911614155b15611bff576001600160a01b0383166000908152600c602052604090205460ff16611bff57611bff8383612250565b601b5460ff168015611c12575042601e54115b15611cdc576001600160a01b03841660009081526019602052604090205460ff168015611c485750326001600160a01b03841614155b8015611c6a57506001600160a01b0383166000908152601a6020526040902054155b15611cdc576001600160a01b0383166000908152601a60205260408120439055601d805491611c9883612c25565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3284436000604051611cd39493929190612c54565b60405180910390a15b60285460ff1615611cf957611cf2848484611e00565b9050610fb5565b6001600160a01b038416600090815260076020526040902054611d1d908390612d89565b6001600160a01b03851660009081526007602052604090205581611d418585610ffd565b15611d7557611d5084846122d5565b9050611d5b84612377565b8015611d675750600083115b15611d7557611d7583612409565b6001600160a01b038416600090815260076020526040902054611d99908290612ba2565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ded9085815260200190565b60405180910390a3506001949350505050565b6001600160a01b038316600090815260076020526040812054611e24908390612d89565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611e54908390612ba2565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ea89086815260200190565b60405180910390a35060019392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600c602052604090205460ff1680611f4957506001600160a01b0382166000908152600c602052604090205460ff165b15611f5357505050565b6001600160a01b03831660009081526019602052604090205460ff16611f7b57600554611f7f565b6004545b811115611fc25760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b9f565b6024546001600160a01b0383166000908152600a60205260409020544391611fe991612ba2565b11156120375760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e0000006044820152606401610b9f565b6001600160a01b0383166000908152601a60205260409020541561211a576120616009600a612d7a565b601c5461206e9190612bd7565b811115801561209357506001600160a01b038316600090815260096020526040902054155b80156120a0575042601e54115b6120fe5760405162461bcd60e51b815260206004820152602960248201527f57616c6c65742070726f7465637465642c20706c6561736520636f6e746163746044820152681039bab83837b93a1760b91b6064820152608401610b9f565b6001600160a01b03831660009081526009602052604090204390555b6001600160a01b03821660009081526019602052604090205460ff16156121595750506001600160a01b03166000908152600960205260409020439055565b6121638383610ffd565b156113ae57601b5460ff16801561217b575042601e54115b80156121955750326000908152600a602052604090205443145b80156121b757506001600160a01b0382166000908152601a6020526040902054155b15612218576001600160a01b0382166000908152601a602052604090819020439081905590517f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea9161220f9132918691600190612c54565b60405180910390a15b6001600160a01b0382166000818152600a6020526040902043905532146113ae57326000908152600a60205260409020439055505050565b6006546001600160a01b0383166000908152600760205260409020548190612279908490612ba2565b11156113ae5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610b9f565b6001600160a01b03821660009081526019602052604081205460145460ff909116908290612302836117c1565b61230c9086612bd7565b6123169190612bb5565b90506123206127a9565b1561233f576064612332856063612bd7565b61233c9190612bb5565b90505b306000908152600760205260408120805483929061235e908490612ba2565b9091555061236e90508185612d89565b95945050505050565b3360009081526019602052604081205460ff1615801561239a575060285460ff16155b80156123a8575060255460ff165b80156123cc57506001600160a01b03821660009081526019602052604090205460ff165b80156123e957506027543060009081526007602052604090205410155b8015610e9c575060006013546012546124029190612ba2565b1192915050565b6028805460ff1916600117905560135460125460009161242891612ba2565b90506000602654831061243d5760265461243f565b825b3060009081526007602052604090205490915081111561246b5750306000908152600760205260409020545b600060115460105461247d9190612ba2565b9050600083600261248e8486612bd7565b6124989190612bb5565b6124a29190612bb5565b90506124ae8184612d89565b604080516002808252606082018352929550600092909160208301908036833701905050905030816000815181106124e8576124e8612c3e565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612541573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125659190612d9c565b8160018151811061257857612578612c3e565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac947906125c2908890600090879030904290600401612db9565b600060405180830381600087803b1580156125dc57600080fd5b505af11580156125f0573d6000803e3d6000fd5b50505050600081476126029190612d89565b90506000612611600287612bb5565b61261b9089612d89565b9050600081600261262c8986612bd7565b6126369190612bb5565b6126409190612bb5565b9050600061264e8285612d89565b905080156126ad576016546040516000916001600160a01b03169083908381818185875af1925050503d80600081146126a3576040519150601f19603f3d011682016040523d82523d6000602084013e6126a8565b606091505b505050505b86156127515760175460155460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af1158015612728573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061274d9190612e2a565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506028805460ff19169055505050505050505050565b60006127b36127c6565b8015610f2257505064174876e8003a1190565b600060205460046127d79190612ba2565b431115905090565b600080600080600060a086880312156127f757600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156128475785810183015185820160400152820161282b565b506000604082860101526040601f19601f8301168501019250505092915050565b60008083601f84011261287a57600080fd5b50813567ffffffffffffffff81111561289257600080fd5b6020830191508360208260051b85010111156128ad57600080fd5b9250929050565b803580151581146128c457600080fd5b919050565b6000806000604084860312156128de57600080fd5b833567ffffffffffffffff8111156128f557600080fd5b61290186828701612868565b90945092506129149050602085016128b4565b90509250925092565b6001600160a01b038116811461187457600080fd5b6000806040838503121561294557600080fd5b82356129508161291d565b946020939093013593505050565b60008060006060848603121561297357600080fd5b833561297e8161291d565b9250602084013561298e8161291d565b929592945050506040919091013590565b600080604083850312156129b257600080fd5b82356129bd8161291d565b915060208301356129cd8161291d565b809150509250929050565b6000806000606084860312156129ed57600080fd5b505081359360208301359350604090920135919050565b600060208284031215612a1657600080fd5b8135610fb58161291d565b60008060408385031215612a3457600080fd5b8235612a3f8161291d565b9150612a4d602084016128b4565b90509250929050565b60008060408385031215612a6957600080fd5b8235915060208301356129cd8161291d565b60008060008060408587031215612a9157600080fd5b843567ffffffffffffffff80821115612aa957600080fd5b612ab588838901612868565b90965094506020870135915080821115612ace57600080fd5b50612adb87828801612868565b95989497509550505050565b60008060408385031215612afa57600080fd5b50508035926020909101359150565b600060208284031215612b1b57600080fd5b5035919050565b600080600060608486031215612b3757600080fd5b612b40846128b4565b95602085013595506040909401359392505050565b60008060408385031215612b6857600080fd5b612950836128b4565b600060208284031215612b8357600080fd5b610fb5826128b4565b634e487b7160e01b600052601160045260246000fd5b80820180821115610e9c57610e9c612b8c565b600082612bd257634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610e9c57610e9c612b8c565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b600060018201612c3757612c37612b8c565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039485168152929093166020830152604082015260ff909116606082015260800190565b600081612c8e57612c8e612b8c565b506000190190565b600181815b80851115612cd1578160001904821115612cb757612cb7612b8c565b80851615612cc457918102915b93841c9390800290612c9b565b509250929050565b600082612ce857506001610e9c565b81612cf557506000610e9c565b8160018114612d0b5760028114612d1557612d31565b6001915050610e9c565b60ff841115612d2657612d26612b8c565b50506001821b610e9c565b5060208310610133831016604e8410600b8410161715612d54575081810a610e9c565b612d5e8383612c96565b8060001904821115612d7257612d72612b8c565b029392505050565b6000610fb560ff841683612cd9565b81810381811115610e9c57610e9c612b8c565b600060208284031215612dae57600080fd5b8151610fb58161291d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612e095784516001600160a01b031683529383019391830191600101612de4565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612e3f57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a3b5124769e105ceb5d22c063130126d8284850fb460cb1b199962e3f6899e5b64736f6c63430008110033
Deployed Bytecode
0x6080604052600436106103855760003560e01c806370a08231116101d1578063bfa21d6a11610102578063dd62ed3e116100a0578063f84ba65d1161006f578063f84ba65d14610a9a578063f8821a6214610aba578063f887ea4014610ad0578063fabb0b4f14610af057600080fd5b8063dd62ed3e146109f4578063e96fada214610a3a578063f1f3bca314610a5a578063f2fde38b14610a7a57600080fd5b8063d0889358116100dc578063d08893581461096f578063d68601421461098f578063d912b2ce146109af578063dae39f92146109c457600080fd5b8063bfa21d6a146108fd578063c1adf7bc14610922578063c287184e1461094f57600080fd5b80639b02c4021161016f578063a9059cbb11610149578063a9059cbb14610892578063abe57e70146108b2578063bafe446b146108d2578063bf56b371146108e757600080fd5b80639b02c4021461083c578063a4b45c0014610852578063a8aa1b311461087257600080fd5b8063893d20e8116101ab578063893d20e81461078e5780638b42507f146107c05780638da5cb5b146107f057806395d89b411461080e57600080fd5b806370a0823114610729578063715018a61461075f5780638124f7ac1461077457600080fd5b8063421dd7c7116102b6578063584f969a11610254578063658d4b7f11610223578063658d4b7f146106a257806367243482146106c25780636ddd1713146106e25780636f4ce428146106fc57600080fd5b8063584f969a1461064257806360bba03d1461065757806361e08e721461067757806363a803e11461068d57600080fd5b8063507139351161029057806350713935146105cc57806356a227f2146105ec578063571ac8b01461060c5780635804f1e41461062c57600080fd5b8063421dd7c71461056a57806346d7edaa1461057f578063492a937b146105ac57600080fd5b8063234e949411610323578063313ce567116102fd578063313ce567146104de578063332402f8146104fa57806334848b9a1461051a5780633f4218e01461053a57600080fd5b8063234e94941461049457806323b872dd146104a95780632b112e49146104c957600080fd5b8063095db78f1161035f578063095db78f1461041a578063095ea7b31461043a5780631031e36e1461046a57806318160ddd1461047f57600080fd5b80630445b6671461039157806304a66b48146103ba57806306fdde03146103dc57600080fd5b3661038c57005b600080fd5b34801561039d57600080fd5b506103a760265481565b6040519081526020015b60405180910390f35b3480156103c657600080fd5b506103da6103d53660046127df565b610b06565b005b3480156103e857600080fd5b5060408051808201909152600c81526b577261707065642047726f6b60a01b60208201525b6040516103b1919061281a565b34801561042657600080fd5b506103da6104353660046128c9565b610c82565b34801561044657600080fd5b5061045a610455366004612932565b610e35565b60405190151581526020016103b1565b34801561047657600080fd5b506103da610ea2565b34801561048b57600080fd5b506003546103a7565b3480156104a057600080fd5b506103a7610f07565b3480156104b557600080fd5b5061045a6104c436600461295e565b610f27565b3480156104d557600080fd5b506103a7610fbc565b3480156104ea57600080fd5b50604051600981526020016103b1565b34801561050657600080fd5b5061045a61051536600461299f565b610ffd565b34801561052657600080fd5b506103da6105353660046129d8565b6110a4565b34801561054657600080fd5b5061045a610555366004612a04565b600b6020526000908152604090205460ff1681565b34801561057657600080fd5b506103da611145565b34801561058b57600080fd5b506103a761059a366004612a04565b601a6020526000908152604090205481565b3480156105b857600080fd5b506103da6105c7366004612a21565b61119a565b3480156105d857600080fd5b506103da6105e73660046129d8565b611236565b3480156105f857600080fd5b506103da610607366004612a56565b6112af565b34801561061857600080fd5b5061045a610627366004612a04565b6113b3565b34801561063857600080fd5b506103a760215481565b34801561064e57600080fd5b506103da6113c1565b34801561066357600080fd5b506103da610672366004612a21565b611416565b34801561068357600080fd5b506103a760245481565b34801561069957600080fd5b506103a7611449565b3480156106ae57600080fd5b506103da6106bd366004612a21565b611464565b3480156106ce57600080fd5b506103da6106dd366004612a7b565b611497565b3480156106ee57600080fd5b5060255461045a9060ff1681565b34801561070857600080fd5b506103a7610717366004612a04565b60096020526000908152604090205481565b34801561073557600080fd5b506103a7610744366004612a04565b6001600160a01b031660009081526007602052604090205490565b34801561076b57600080fd5b506103da6115dc565b34801561078057600080fd5b5060155461045a9060ff1681565b34801561079a57600080fd5b506000546001600160a01b03165b6040516001600160a01b0390911681526020016103b1565b3480156107cc57600080fd5b5061045a6107db366004612a04565b600c6020526000908152604090205460ff1681565b3480156107fc57600080fd5b506000546001600160a01b03166107a8565b34801561081a57600080fd5b506040805180820190915260058152647747524f4b60d81b602082015261040d565b34801561084857600080fd5b506103a7601d5481565b34801561085e57600080fd5b506103da61086d36600461299f565b6115f0565b34801561087e57600080fd5b50601f546107a8906001600160a01b031681565b34801561089e57600080fd5b5061045a6108ad366004612932565b611630565b3480156108be57600080fd5b506103da6108cd366004612ae7565b61163d565b3480156108de57600080fd5b506103a761168c565b3480156108f357600080fd5b506103a760205481565b34801561090957600080fd5b506015546107a89061010090046001600160a01b031681565b34801561092e57600080fd5b506103a761093d366004612a04565b600a6020526000908152604090205481565b34801561095b57600080fd5b506103da61096a366004612b09565b6116a7565b34801561097b57600080fd5b506103da61098a366004612b22565b6116c2565b34801561099b57600080fd5b506103da6109aa366004612b55565b611714565b3480156109bb57600080fd5b506103da6117a5565b3480156109d057600080fd5b5061045a6109df366004612a04565b600d6020526000908152604090205460ff1681565b348015610a0057600080fd5b506103a7610a0f36600461299f565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b348015610a4657600080fd5b506016546107a8906001600160a01b031681565b348015610a6657600080fd5b506103a7610a75366004612b71565b6117c1565b348015610a8657600080fd5b506103da610a95366004612a04565b6117fe565b348015610aa657600080fd5b506103da610ab5366004612a21565b611877565b348015610ac657600080fd5b506103a760275481565b348015610adc57600080fd5b506017546107a8906001600160a01b031681565b348015610afc57600080fd5b506103a760225481565b610b0e6118aa565b610b188486612ba2565b6002610b248688612ba2565b610b2e9190612bb5565b610b39906002612bd7565b14610ba85760405162461bcd60e51b815260206004820152603460248201527f4c697175696469747920666565206d75737420626520616e206576656e206e756044820152736d6265722064756520746f20726f756e64696e6760601b60648201526084015b60405180910390fd5b60108590556011849055600e839055600f829055610bc68386612ba2565b601255610bd38285612ba2565b6013556014819055610be6600282612bb5565b601354601254610bf69190612ba2565b1115610c345760405162461bcd60e51b815260206004820152600d60248201526c08ccacae640e8dede40d0d2ced609b1b6044820152606401610b9f565b60125460135460145460408051938452602084019290925282820152517f01bae858246c904512695a3f6d48ab88abb7a0192fdd7c53b043e60317795f459181900360600190a15050505050565b3360009081526029602052604090205460ff1680610caa57506000546001600160a01b031633145b610cc65760405162461bcd60e51b8152600401610b9f90612bee565b8015610cdb57601b5460ff16610cdb57600080fd5b60005b82811015610e2f578115610d6a57601d8054906000610cfc83612c25565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea32858584818110610d3557610d35612c3e565b9050602002016020810190610d4a9190612a04565b436002604051610d5d9493929190612c54565b60405180910390a1610dca565b601a6000858584818110610d8057610d80612c3e565b9050602002016020810190610d959190612a04565b6001600160a01b0316815260208101919091526040016000205415610dca57601d8054906000610dc483612c7f565b91905055505b81610dd6576000610dd8565b435b601a6000868685818110610dee57610dee612c3e565b9050602002016020810190610e039190612a04565b6001600160a01b0316815260208101919091526040016000205580610e2781612c25565b915050610cde565b50505050565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610e909086815260200190565b60405180910390a35060015b92915050565b3360009081526029602052604090205460ff1680610eca57506000546001600160a01b031633145b610ee65760405162461bcd60e51b8152600401610b9f90612bee565b602354610100900460ff1615610efb57600080fd5b6023805460ff19169055565b6000610f156009600a612d7a565b600554610f229190612bb5565b905090565b6001600160a01b038316600090815260086020908152604080832033845290915281205460001914610fa7576001600160a01b0384166000908152600860209081526040808320338452909152902054610f82908390612d89565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b610fb2848484611904565b90505b9392505050565b6002546001600160a01b039081166000908152600760205260408082205460015490931682528120549091610ff091612ba2565b600354610f229190612d89565b60155460009060ff1615801561102c57506001600160a01b03821660009081526019602052604090205460ff16155b801561105157506001600160a01b03831660009081526019602052604090205460ff16155b1561105e57506000610e9c565b6001600160a01b0383166000908152600b602052604090205460ff16158015610fb55750506001600160a01b03166000908152600b602052604090205460ff1615919050565b3360009081526029602052604090205460ff16806110cc57506000546001600160a01b031633145b6110e85760405162461bcd60e51b8152600401610b9f90612bee565b60235460ff161580156110fb5750600a83105b61110457600080fd5b60228390556023805460ff19166001179055436020556111248242612ba2565b601e556111336009600a612d7a565b61113d9082612bd7565b601c55505050565b3360009081526029602052604090205460ff168061116d57506000546001600160a01b031633145b6111895760405162461bcd60e51b8152600401610b9f90612bee565b601b805461ffff1916610100179055565b6111a26118aa565b601f546001600160a01b039081169083160361120b5760405162461bcd60e51b815260206004820152602260248201527f43616e277420616c7465722063757272656e74206c697175696469747920706160448201526134b960f11b6064820152608401610b9f565b6001600160a01b03919091166000908152601960205260409020805460ff1916911515919091179055565b61123e6118aa565b60008311801561124e5750600082115b801561125a5750600081115b801561126857506127108111155b61127157600080fd5b80836003546112809190612bd7565b61128a9190612bb5565b600455600354819061129d908490612bd7565b6112a79190612bb5565b600555505050565b3360009081526029602052604090205460ff16806112d757506000546001600160a01b031633145b6112f35760405162461bcd60e51b8152600401610b9f90612bee565b4780156113ae5760006001600160a01b03831660646113128685612bd7565b61131c9190612bb5565b604051600081818185875af1925050503d8060008114611358576040519150601f19603f3d011682016040523d82523d6000602084013e61135d565b606091505b5050905080610e2f5760405162461bcd60e51b815260206004820152601860248201527f4661696c656420746f207472616e736665722066756e647300000000000000006044820152606401610b9f565b505050565b6000610e9c82600019610e35565b3360009081526029602052604090205460ff16806113e957506000546001600160a01b031633145b6114055760405162461bcd60e51b8152600401610b9f90612bee565b6023805461ffff1916610101179055565b61141e6118aa565b6001600160a01b03919091166000908152602960205260409020805460ff1916911515919091179055565b60006114576009600a612d7a565b600654610f229190612bb5565b61146c6118aa565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b61149f6118aa565b82158015906114ad57508083145b6114b657600080fd5b3360005b848110156115d457601960008787848181106114d8576114d8612c3e565b90506020020160208101906114ed9190612a04565b6001600160a01b0316815260208101919091526040016000205460ff1615801561155c5750600d600087878481811061152857611528612c3e565b905060200201602081019061153d9190612a04565b6001600160a01b0316815260208101919091526040016000205460ff16155b156115c2576115c08287878481811061157757611577612c3e565b905060200201602081019061158c9190612a04565b6115986009600a612d7a565b8787868181106115aa576115aa612c3e565b905060200201356115bb9190612bd7565b611e00565b505b806115cc81612c25565b9150506114ba565b505050505050565b6115e46118aa565b6115ee6000611eba565b565b6115f86118aa565b60158054610100600160a81b0319166101006001600160a01b0394851602179055601680546001600160a01b03191691909216179055565b6000610fb5338484611904565b6116456118aa565b6000821180156116555750600081115b801561166357506127108111155b61166c57600080fd5b808260035461167b9190612bd7565b6116859190612bb5565b6006555050565b600061169a6009600a612d7a565b600454610f229190612bb5565b6116af6118aa565b603c8111156116bd57600080fd5b602455565b6116ca6118aa565b600082116116d757600080fd5b6025805460ff19168415151790556003546116f3908390612bb5565b6026556117026009600a612d7a565b61170c9082612bd7565b602755505050565b3360009081526029602052604090205460ff168061173c57506000546001600160a01b031633145b6117585760405162461bcd60e51b8152600401610b9f90612bee565b601b54610100900460ff161561176d57600080fd5b601b805460ff191683151517905562015180811061178a57600080fd5b80601e600082825461179c9190612ba2565b90915550505050565b6117ad6118aa565b6015805460ff19811660ff90911615179055565b6000436022546020546117d49190612ba2565b106117e8576001601454610e9c9190612d89565b81156117f657505060135490565b505060125490565b6118066118aa565b6001600160a01b03811661186b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b9f565b61187481611eba565b50565b61187f6118aa565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146115ee5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b9f565b60006001600160a01b03841661195c5760405162461bcd60e51b815260206004820152601860248201527f42455032303a207472616e736665722066726f6d2030783000000000000000006044820152606401610b9f565b6001600160a01b0383166119ab5760405162461bcd60e51b8152602060048201526016602482015275042455032303a207472616e7366657220746f203078360541b6044820152606401610b9f565b600082116119f35760405162461bcd60e51b8152602060048201526015602482015274416d6f756e74206d757374206265203e207a65726f60581b6044820152606401610b9f565b6001600160a01b038416600090815260076020526040902054821115611a525760405162461bcd60e51b8152602060048201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152606401610b9f565b602054158015611a7a57506001600160a01b03831660009081526019602052604090205460ff165b15611b01576001600160a01b0384166000908152600d602052604090205460ff16611ae75760405162461bcd60e51b815260206004820152601860248201527f4c6971756964697479206e6f74206164646564207965742e00000000000000006044820152606401610b9f565b611b0143602055426021556025805460ff19166001179055565b60235460ff16611b8e576001600160a01b0384166000908152600d602052604090205460ff1680611b4a57506001600160a01b0383166000908152600d602052604090205460ff165b611b8e5760405162461bcd60e51b81526020600482015260156024820152742a3930b234b733903737ba1037b832b7103cb2ba1760591b6044820152606401610b9f565b611b99848484611f0a565b6001600160a01b03831660009081526019602052604090205460ff16158015611bd057506001546001600160a01b03848116911614155b15611bff576001600160a01b0383166000908152600c602052604090205460ff16611bff57611bff8383612250565b601b5460ff168015611c12575042601e54115b15611cdc576001600160a01b03841660009081526019602052604090205460ff168015611c485750326001600160a01b03841614155b8015611c6a57506001600160a01b0383166000908152601a6020526040902054155b15611cdc576001600160a01b0383166000908152601a60205260408120439055601d805491611c9883612c25565b91905055507f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea3284436000604051611cd39493929190612c54565b60405180910390a15b60285460ff1615611cf957611cf2848484611e00565b9050610fb5565b6001600160a01b038416600090815260076020526040902054611d1d908390612d89565b6001600160a01b03851660009081526007602052604090205581611d418585610ffd565b15611d7557611d5084846122d5565b9050611d5b84612377565b8015611d675750600083115b15611d7557611d7583612409565b6001600160a01b038416600090815260076020526040902054611d99908290612ba2565b6001600160a01b0380861660008181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ded9085815260200190565b60405180910390a3506001949350505050565b6001600160a01b038316600090815260076020526040812054611e24908390612d89565b6001600160a01b038086166000908152600760205260408082209390935590851681522054611e54908390612ba2565b6001600160a01b0380851660008181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611ea89086815260200190565b60405180910390a35060019392505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0383166000908152600c602052604090205460ff1680611f4957506001600160a01b0382166000908152600c602052604090205460ff165b15611f5357505050565b6001600160a01b03831660009081526019602052604090205460ff16611f7b57600554611f7f565b6004545b811115611fc25760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610b9f565b6024546001600160a01b0383166000908152600a60205260409020544391611fe991612ba2565b11156120375760405162461bcd60e51b815260206004820152601d60248201527f5472616e736665722072617465206c696d69742065786365656465642e0000006044820152606401610b9f565b6001600160a01b0383166000908152601a60205260409020541561211a576120616009600a612d7a565b601c5461206e9190612bd7565b811115801561209357506001600160a01b038316600090815260096020526040902054155b80156120a0575042601e54115b6120fe5760405162461bcd60e51b815260206004820152602960248201527f57616c6c65742070726f7465637465642c20706c6561736520636f6e746163746044820152681039bab83837b93a1760b91b6064820152608401610b9f565b6001600160a01b03831660009081526009602052604090204390555b6001600160a01b03821660009081526019602052604090205460ff16156121595750506001600160a01b03166000908152600960205260409020439055565b6121638383610ffd565b156113ae57601b5460ff16801561217b575042601e54115b80156121955750326000908152600a602052604090205443145b80156121b757506001600160a01b0382166000908152601a6020526040902054155b15612218576001600160a01b0382166000908152601a602052604090819020439081905590517f47e78c0c4ce6dbe67ff01d67de13c04f361afa37858e7056d665001d746855ea9161220f9132918691600190612c54565b60405180910390a15b6001600160a01b0382166000818152600a6020526040902043905532146113ae57326000908152600a60205260409020439055505050565b6006546001600160a01b0383166000908152600760205260409020548190612279908490612ba2565b11156113ae5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610b9f565b6001600160a01b03821660009081526019602052604081205460145460ff909116908290612302836117c1565b61230c9086612bd7565b6123169190612bb5565b90506123206127a9565b1561233f576064612332856063612bd7565b61233c9190612bb5565b90505b306000908152600760205260408120805483929061235e908490612ba2565b9091555061236e90508185612d89565b95945050505050565b3360009081526019602052604081205460ff1615801561239a575060285460ff16155b80156123a8575060255460ff165b80156123cc57506001600160a01b03821660009081526019602052604090205460ff165b80156123e957506027543060009081526007602052604090205410155b8015610e9c575060006013546012546124029190612ba2565b1192915050565b6028805460ff1916600117905560135460125460009161242891612ba2565b90506000602654831061243d5760265461243f565b825b3060009081526007602052604090205490915081111561246b5750306000908152600760205260409020545b600060115460105461247d9190612ba2565b9050600083600261248e8486612bd7565b6124989190612bb5565b6124a29190612bb5565b90506124ae8184612d89565b604080516002808252606082018352929550600092909160208301908036833701905050905030816000815181106124e8576124e8612c3e565b6001600160a01b03928316602091820292909201810191909152601754604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612541573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125659190612d9c565b8160018151811061257857612578612c3e565b6001600160a01b03928316602091820292909201015260175460405163791ac94760e01b81524792919091169063791ac947906125c2908890600090879030904290600401612db9565b600060405180830381600087803b1580156125dc57600080fd5b505af11580156125f0573d6000803e3d6000fd5b50505050600081476126029190612d89565b90506000612611600287612bb5565b61261b9089612d89565b9050600081600261262c8986612bd7565b6126369190612bb5565b6126409190612bb5565b9050600061264e8285612d89565b905080156126ad576016546040516000916001600160a01b03169083908381818185875af1925050503d80600081146126a3576040519150601f19603f3d011682016040523d82523d6000602084013e6126a8565b606091505b505050505b86156127515760175460155460405163f305d71960e01b8152306004820152602481018a905260006044820181905260648201526001600160a01b03610100909204821660848201524260a482015291169063f305d71990849060c40160606040518083038185885af1158015612728573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061274d9190612e2a565b5050505b60408051828152602081018490529081018890527fdaf6233a382145376035341e71f8a04305f7e323d0fe3e58c908cf0a26b76df99060600160405180910390a150506028805460ff19169055505050505050505050565b60006127b36127c6565b8015610f2257505064174876e8003a1190565b600060205460046127d79190612ba2565b431115905090565b600080600080600060a086880312156127f757600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b600060208083528351808285015260005b818110156128475785810183015185820160400152820161282b565b506000604082860101526040601f19601f8301168501019250505092915050565b60008083601f84011261287a57600080fd5b50813567ffffffffffffffff81111561289257600080fd5b6020830191508360208260051b85010111156128ad57600080fd5b9250929050565b803580151581146128c457600080fd5b919050565b6000806000604084860312156128de57600080fd5b833567ffffffffffffffff8111156128f557600080fd5b61290186828701612868565b90945092506129149050602085016128b4565b90509250925092565b6001600160a01b038116811461187457600080fd5b6000806040838503121561294557600080fd5b82356129508161291d565b946020939093013593505050565b60008060006060848603121561297357600080fd5b833561297e8161291d565b9250602084013561298e8161291d565b929592945050506040919091013590565b600080604083850312156129b257600080fd5b82356129bd8161291d565b915060208301356129cd8161291d565b809150509250929050565b6000806000606084860312156129ed57600080fd5b505081359360208301359350604090920135919050565b600060208284031215612a1657600080fd5b8135610fb58161291d565b60008060408385031215612a3457600080fd5b8235612a3f8161291d565b9150612a4d602084016128b4565b90509250929050565b60008060408385031215612a6957600080fd5b8235915060208301356129cd8161291d565b60008060008060408587031215612a9157600080fd5b843567ffffffffffffffff80821115612aa957600080fd5b612ab588838901612868565b90965094506020870135915080821115612ace57600080fd5b50612adb87828801612868565b95989497509550505050565b60008060408385031215612afa57600080fd5b50508035926020909101359150565b600060208284031215612b1b57600080fd5b5035919050565b600080600060608486031215612b3757600080fd5b612b40846128b4565b95602085013595506040909401359392505050565b60008060408385031215612b6857600080fd5b612950836128b4565b600060208284031215612b8357600080fd5b610fb5826128b4565b634e487b7160e01b600052601160045260246000fd5b80820180821115610e9c57610e9c612b8c565b600082612bd257634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610e9c57610e9c612b8c565b6020808252601b908201527f43616c6c6572206973206e6f742061207465616d206d656d6265720000000000604082015260600190565b600060018201612c3757612c37612b8c565b5060010190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b039485168152929093166020830152604082015260ff909116606082015260800190565b600081612c8e57612c8e612b8c565b506000190190565b600181815b80851115612cd1578160001904821115612cb757612cb7612b8c565b80851615612cc457918102915b93841c9390800290612c9b565b509250929050565b600082612ce857506001610e9c565b81612cf557506000610e9c565b8160018114612d0b5760028114612d1557612d31565b6001915050610e9c565b60ff841115612d2657612d26612b8c565b50506001821b610e9c565b5060208310610133831016604e8410600b8410161715612d54575081810a610e9c565b612d5e8383612c96565b8060001904821115612d7257612d72612b8c565b029392505050565b6000610fb560ff841683612cd9565b81810381811115610e9c57610e9c612b8c565b600060208284031215612dae57600080fd5b8151610fb58161291d565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612e095784516001600160a01b031683529383019391830191600101612de4565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612e3f57600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220a3b5124769e105ceb5d22c063130126d8284850fb460cb1b199962e3f6899e5b64736f6c63430008110033
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | 100.00% | $2,688.23 | 0.00000404 | $0.01086 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.