ETH Price: $3,414.99 (+3.11%)
Gas: 9.22 Gwei

Contract

0x3dB7D3670f5A8471150027eBFbeb97757570AA6C
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve194865182024-03-22 0:12:23246 days ago1711066343IN
0x3dB7D367...57570AA6C
0 ETH0.0010491222.67946438
Approve182158252023-09-25 22:36:59424 days ago1695681419IN
0x3dB7D367...57570AA6C
0 ETH0.000424329.17997449
Approve181920462023-09-22 14:43:23428 days ago1695393803IN
0x3dB7D367...57570AA6C
0 ETH0.0003599912.38152886
Approve181920262023-09-22 14:39:23428 days ago1695393563IN
0x3dB7D367...57570AA6C
0 ETH0.0005725812.40042165
Approve181913522023-09-22 12:22:23428 days ago1695385343IN
0x3dB7D367...57570AA6C
0 ETH0.000390738.39661075
Approve181911812023-09-22 11:47:47428 days ago1695383267IN
0x3dB7D367...57570AA6C
0 ETH0.000352167.57751038
Approve181875242023-09-21 23:28:23428 days ago1695338903IN
0x3dB7D367...57570AA6C
0 ETH0.0005321611.51298994
Approve181871742023-09-21 22:18:11429 days ago1695334691IN
0x3dB7D367...57570AA6C
0 ETH0.0005304311.39856146
Approve181871582023-09-21 22:14:59429 days ago1695334499IN
0x3dB7D367...57570AA6C
0 ETH0.0006229713.38730609
Approve181871372023-09-21 22:10:47429 days ago1695334247IN
0x3dB7D367...57570AA6C
0 ETH0.0008690118.67435502
Approve181871322023-09-21 22:09:47429 days ago1695334187IN
0x3dB7D367...57570AA6C
0 ETH0.0008212817.64873873
Approve181871102023-09-21 22:05:23429 days ago1695333923IN
0x3dB7D367...57570AA6C
0 ETH0.0007856116.88226286
Transfer181869982023-09-21 21:42:59429 days ago1695332579IN
0x3dB7D367...57570AA6C
0 ETH0.002170612.27576297
Approve181869692023-09-21 21:37:11429 days ago1695332231IN
0x3dB7D367...57570AA6C
0 ETH0.0007548816.22179165
Approve181868932023-09-21 21:21:23429 days ago1695331283IN
0x3dB7D367...57570AA6C
0 ETH0.0009687720.81819939
Approve181868452023-09-21 21:11:47429 days ago1695330707IN
0x3dB7D367...57570AA6C
0 ETH0.0008587918.45473245
Approve181868342023-09-21 21:09:35429 days ago1695330575IN
0x3dB7D367...57570AA6C
0 ETH0.0009512320.4412503
Approve181868192023-09-21 21:06:35429 days ago1695330395IN
0x3dB7D367...57570AA6C
0 ETH0.0010321222.17952468
Approve181868142023-09-21 21:05:23429 days ago1695330323IN
0x3dB7D367...57570AA6C
0 ETH0.0010988923.61446498
Approve181868052023-09-21 21:03:35429 days ago1695330215IN
0x3dB7D367...57570AA6C
0 ETH0.0013551329.12817489
Approve181867012023-09-21 20:42:35429 days ago1695328955IN
0x3dB7D367...57570AA6C
0 ETH0.0014050830.19425384
Approve181866952023-09-21 20:41:23429 days ago1695328883IN
0x3dB7D367...57570AA6C
0 ETH0.0015248232.76731563
Approve181866772023-09-21 20:37:47429 days ago1695328667IN
0x3dB7D367...57570AA6C
0 ETH0.0012460726.77716715
Approve181866532023-09-21 20:32:47429 days ago1695328367IN
0x3dB7D367...57570AA6C
0 ETH0.001383429.73598079
Approve181866532023-09-21 20:32:47429 days ago1695328367IN
0x3dB7D367...57570AA6C
0 ETH0.001383429.73598079
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PTBOT

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 3 : ptbot.sol
// SPDX-License-Identifier: MIT

/**
Post Tech Bot

Website: https://ptechbot.com
Twitter: https://twitter.com/PostTechBot
Telegram: https://t.me/PostTechBotEntry

________     ________   ________     _______     ________
___  __ \    ___  __/   ___  __ )    __  __ \    ___  __/
__  /_/ /    __  /      __  __  |    _  / / /    __  /
_  ____/     _  /       _  /_/ /     / /_/ /     _  /
/_/          /_/        /_____/      \____/      /_/

*/

pragma solidity 0.8.18;

import "@openzeppelin/contracts/utils/Context.sol";
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface ERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface 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 addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

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

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

contract PTBOT is ERC20, Context, Ownable {
    using SafeMath for uint256;

    //events
    event DeadBlockUpdated(uint256 _timeF);
    event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
    event SetMaxWalletExempt(address _address, bool _bool);
    event SellFeeChanged(uint256 _marketingFee);
    event BuyFeeChanged(uint256 _marketingFee);
    event TransferFeeChanged(uint256 _transferFee);
    event SetFeeReceiver(address _marketingReceiver);
    event ChangedSwapBack(bool _enabled, uint256 _amount);
    event SetFeeExempt(address _addr, bool _value);
    event InitialDistributionFinished(bool _value);
    event ChangedMaxWallet(uint256 _maxWallet);
    event SingleBlacklistUpdated(address _address, bool status);

    address private WETH;
    address private DEAD = 0x000000000000000000000000000000000000dEaD;
    address private ZERO = 0x0000000000000000000000000000000000000000;

    string constant private _name = "Post Tech Bot";
    string constant private _symbol = "PTBOT";
    uint8 constant private _decimals = 10;

    uint256 private _totalSupply = 8_000_000* 10**_decimals;

    uint256 public _maxWalletAmount = _totalSupply / 50; //2%

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    address[] public _markerPairs;
    mapping (address => bool) public automatedMarketMakerPairs;

    mapping (address => bool) public isBlacklisted;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isMaxWalletExempt;

    //Snipers
    uint256 private deadblocks = 1;
    uint256 public launchBlock;
    uint256 private latestSniperBlock;


    //transfer fee
    uint256 private transferFee = 0;

    //totalFees
    uint256 private totalBuyFee = 5;
    uint256 private totalSellFee = 5;

    uint256 constant private feeDenominator  = 100;

    address private feeReceiver;

    IDEXRouter public router;
    address public pair;

    bool public tradingEnabled = false;
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 5000;

    bool private inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () {
        //Uniswap
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));

        setAutomatedMarketMakerPair(pair, true);
        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isMaxWalletExempt[msg.sender] = true;

        isFeeExempt[address(this)] = true;
        isMaxWalletExempt[address(this)] = true;

        isMaxWalletExempt[pair] = true;

        feeReceiver = msg.sender;

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(!isBlacklisted[recipient], "Blacklisted");
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!isFeeExempt[sender] && !isFeeExempt[recipient]){
            require(tradingEnabled,"Trading not open, yet");
        }

        if(shouldSwapBack()){ swapBack(); }

        uint256 amountReceived = amount;

        if(automatedMarketMakerPairs[sender]) { //buy
            if(!isFeeExempt[recipient]) {
                require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded");
                amountReceived = takeBuyFee(sender, recipient, amount);
            }

        } else if(automatedMarketMakerPairs[recipient]) { //sell
            if(!isFeeExempt[sender]) {
                amountReceived = takeSellFee(sender, amount);
            }
        } else {
            if (!isFeeExempt[sender]) {
                require(_balances[recipient].add(amount) <= _maxWalletAmount || isMaxWalletExempt[recipient], "Max Wallet Limit Limit Exceeded");
                amountReceived = takeTransferFee(sender, amount);
            }
        }

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amountReceived);


        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    // Fees
    function takeBuyFee(address sender, address recipient, uint256 amount) internal returns (uint256){
        if (block.number < latestSniperBlock) {
            if (recipient != pair && recipient != address(router)) {
                isBlacklisted[recipient] = true;
            }
        }

        uint256 feeAmount = amount.mul(totalBuyFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

    function takeSellFee(address sender, uint256 amount) internal returns (uint256){
        uint256 feeAmount = amount.mul(totalSellFee).div(feeDenominator);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);

    }

    function takeTransferFee(address sender, uint256 amount) internal returns (uint256){
        uint256 feeAmount = amount.mul(transferFee).div(feeDenominator);

        if (feeAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return
            !automatedMarketMakerPairs[msg.sender]
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance() external {
        require(msg.sender == feeReceiver, "Only admin allowed");
        payable(feeReceiver).transfer(address(this).balance);
    }

    function rescueERC20(address tokenAddress, uint256 amount) public returns (bool) {
        require(msg.sender == feeReceiver, "Only admin allowed");
        return ERC20(tokenAddress).transfer(feeReceiver, amount);
    }

    // Open Trading
    function openTrade() external onlyOwner {
        require (tradingEnabled == false, "Trade is already open");
        tradingEnabled = true;
        launchBlock = block.number;
        latestSniperBlock = block.number.add(deadblocks);

        emit InitialDistributionFinished(true);
    }

    function swapBack() internal swapping {

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _balances[address(this)],
            0,
            path,
            feeReceiver,
            block.timestamp
        );

    }

    function setMaxWallet(uint256 amount) external onlyOwner {
        require(amount > _totalSupply / 10000, "Can't limit trading");
        _maxWalletAmount = amount;

        emit ChangedMaxWallet(amount);
    }

    function setBL(address _address, bool _bool) external onlyOwner {
        isBlacklisted[_address] = _bool;

        emit SingleBlacklistUpdated(_address, _bool);
    }

    function updateDB (uint256 _number) external onlyOwner {
        require(_number < 15, "Can't go that high");
        deadblocks = _number;

        emit DeadBlockUpdated(_number);
    }

    function setIsFeeExempt(address holder, bool exempt) external onlyOwner {
        isFeeExempt[holder] = exempt;

        emit SetFeeExempt(holder, exempt);
    }

    function setIsMaxWalletExempt(address holder, bool exempt) external onlyOwner {
        isMaxWalletExempt[holder] = exempt;

        emit SetMaxWalletExempt(holder, exempt);
    }

    function updateFee(uint256 _buy, uint256 _sell) external onlyOwner {
        require(
            totalBuyFee <= 50
            && totalSellFee <= 50
            , "Fees cannot be more than 5%");

        totalBuyFee = _buy;
        totalSellFee = _sell;
    }

    function updateSFee(uint256 _sell) external onlyOwner {
        require(totalSellFee <= 50, "Fees cannot be more than 5%");

        totalSellFee = _sell;
    }

    function setTransferFee(uint256 _transferFee) external onlyOwner {
        require(transferFee <= 50, "Fees cannot be higher than 5%");
        transferFee = _transferFee;

        emit TransferFeeChanged(_transferFee);
    }

    function setMarketingFeeReceivers(address _feeReceiver) external onlyOwner {
        require(_feeReceiver != address(0), "Zero Address validation" );
        feeReceiver = _feeReceiver;

        emit SetFeeReceiver(_feeReceiver);
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;

        emit ChangedSwapBack(_enabled, _amount);
    }

    function setAutomatedMarketMakerPair(address _pair, bool _value) public onlyOwner {
        require(automatedMarketMakerPairs[_pair] != _value, "Value already set");

        automatedMarketMakerPairs[_pair] = _value;

        if(_value){
            _markerPairs.push(_pair);
        }else{
            require(_markerPairs.length > 1, "Required 1 pair");
            for (uint256 i = 0; i < _markerPairs.length; i++) {
                if (_markerPairs[i] == _pair) {
                    _markerPairs[i] = _markerPairs[_markerPairs.length - 1];
                    _markerPairs.pop();
                    break;
                }
            }
        }

        emit SetAutomatedMarketMakerPair(_pair, _value);
    }

    function getAvailableSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

}

File 2 of 3 : Ownable.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable is Context {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _setOwner(_msgSender());
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

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

File 3 of 3 : Context.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

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

Contract Security Audit

Contract ABI

[{"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":"_marketingFee","type":"uint256"}],"name":"BuyFeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxWallet","type":"uint256"}],"name":"ChangedMaxWallet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_enabled","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ChangedSwapBack","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_timeF","type":"uint256"}],"name":"DeadBlockUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"InitialDistributionFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"SellFeeChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"},{"indexed":false,"internalType":"bool","name":"_value","type":"bool"}],"name":"SetFeeExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_marketingReceiver","type":"address"}],"name":"SetFeeReceiver","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"_bool","type":"bool"}],"name":"SetMaxWalletExempt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_address","type":"address"},{"indexed":false,"internalType":"bool","name":"status","type":"bool"}],"name":"SingleBlacklistUpdated","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"TransferFeeChanged","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_markerPairs","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getAvailableSupply","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":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"isMaxWalletExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_bool","type":"bool"}],"name":"setBL","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":"setIsMaxWalletExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_feeReceiver","type":"address"}],"name":"setMarketingFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferFee","type":"uint256"}],"name":"setTransferFee","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":"pure","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":"uint256","name":"_number","type":"uint256"}],"name":"updateDB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"updateSFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600280546001600160a01b031990811661dead1790915560038054909116905562000031600a80620007a1565b6200004090627a1200620007b9565b6004556032600454620000549190620007d3565b60059081556001600d819055600060105560118290556012919091556015805461ffff60a01b1916600160a81b17905560045461138891620000979190620007b9565b620000a39190620007d3565b601655348015620000b357600080fd5b50620000bf3362000357565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014a9190620007f6565b600180546001600160a01b0319166001600160a01b039283161790556014546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa158015620001a9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001cf9190620007f6565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000221573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002479190620007f6565b601580546001600160a01b0319166001600160a01b0392909216918217905562000273906001620003a7565b3060008181526007602090815260408083206014546001600160a01b039081168552908352818420600019905533808552600b8085528386208054600160ff199182168117909255600c808852868920805483168417905598885291865284872080548316821790559685528386208054821688179055601554909216855282852080549092169095179055601380546001600160a01b031916851790556004548484526006835281842081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36200087f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000546001600160a01b03163314620004075760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b6001600160a01b03821660009081526009602052604090205481151560ff9091161515036200046d5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401620003fe565b6001600160a01b0382166000908152600960205260409020805460ff19168215801591909117909155620004ec57600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b03841617905562000650565b600854600110620005325760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401620003fe565b60005b6008548110156200064e57826001600160a01b03166008828154811062000560576200056062000821565b6000918252602090912001546001600160a01b0316036200063957600880546200058d9060019062000837565b81548110620005a057620005a062000821565b600091825260209091200154600880546001600160a01b039092169183908110620005cf57620005cf62000821565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060088054806200061157620006116200084d565b600082815260209020810160001990810180546001600160a01b03191690550190556200064e565b80620006458162000863565b91505062000535565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006e3578160001904821115620006c757620006c76200068c565b80851615620006d557918102915b93841c9390800290620006a7565b509250929050565b600082620006fc575060016200079b565b816200070b575060006200079b565b81600181146200072457600281146200072f576200074f565b60019150506200079b565b60ff8411156200074357620007436200068c565b50506001821b6200079b565b5060208310610133831016604e8410600b841016171562000774575081810a6200079b565b620007808383620006a2565b80600019048211156200079757620007976200068c565b0290505b92915050565b6000620007b260ff841683620006eb565b9392505050565b80820281158282048414176200079b576200079b6200068c565b600082620007f157634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200080957600080fd5b81516001600160a01b0381168114620007b257600080fd5b634e487b7160e01b600052603260045260246000fd5b818103818111156200079b576200079b6200068c565b634e487b7160e01b600052603160045260246000fd5b6000600182016200087857620008786200068c565b5060010190565b6122e6806200088f6000396000f3fe60806040526004361061024a5760003560e01c8063893d20e811610139578063c167d1cd116100b6578063e1d5584c1161007a578063e1d5584c14610738578063f2fde38b14610758578063f35ca36514610778578063f887ea4014610798578063fb201b1d146107b8578063fe575a87146107cd57600080fd5b8063c167d1cd14610687578063d00efb2f1461069c578063d8506af5146106b2578063dd62ed3e146106d2578063df20fd491461071857600080fd5b80639a7a23d6116100fd5780639a7a23d6146105d7578063a8aa1b31146105f7578063a9059cbb14610617578063b62496f514610637578063c04a78ad1461066757600080fd5b8063893d20e8146105195780638cd4426d1461054b5780638da5cb5b1461056b5780638f02bb5b1461058957806395d89b41146105a957600080fd5b806345434032116101c7578063658d4b7f1161018b578063658d4b7f146104775780636c0a24eb146104975780636ddd1713146104ad57806370a08231146104ce578063715018a61461050457600080fd5b806345434032146103d65780634ada218b146103f657806350f2c9c514610417578063571ac8b0146104375780635d0044ca1461045757600080fd5b806323b872dd1161020e57806323b872dd146103335780632740c19714610353578063313ce56714610375578063364333f4146103915780633f4218e0146103a657600080fd5b80630445b6671461025657806306fdde031461027f578063095ea7b3146102be5780630bd11f8a146102ee57806318160ddd1461031e57600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c60165481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b5060408051808201909152600d81526c141bdcdd08151958da08109bdd609a1b60208201525b6040516102769190611f57565b3480156102ca57600080fd5b506102de6102d9366004611fc1565b6107fd565b6040519015158152602001610276565b3480156102fa57600080fd5b506102de610309366004611feb565b600c6020526000908152604090205460ff1681565b34801561032a57600080fd5b5060045461026c565b34801561033f57600080fd5b506102de61034e366004612006565b61086a565b34801561035f57600080fd5b5061037361036e366004612042565b61092c565b005b34801561038157600080fd5b50604051600a8152602001610276565b34801561039d57600080fd5b506103736109cc565b3480156103b257600080fd5b506102de6103c1366004611feb565b600b6020526000908152604090205460ff1681565b3480156103e257600080fd5b506103736103f1366004612072565b610a57565b34801561040257600080fd5b506015546102de90600160a01b900460ff1681565b34801561042357600080fd5b506103736104323660046120a9565b610ae5565b34801561044357600080fd5b506102de610452366004611feb565b610b90565b34801561046357600080fd5b506103736104723660046120a9565b610b9e565b34801561048357600080fd5b50610373610492366004612072565b610c51565b3480156104a357600080fd5b5061026c60055481565b3480156104b957600080fd5b506015546102de90600160a81b900460ff1681565b3480156104da57600080fd5b5061026c6104e9366004611feb565b6001600160a01b031660009081526006602052604090205490565b34801561051057600080fd5b50610373610cd7565b34801561052557600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561055757600080fd5b506102de610566366004611fc1565b610d12565b34801561057757600080fd5b506000546001600160a01b0316610533565b34801561059557600080fd5b506103736105a43660046120a9565b610ddb565b3480156105b557600080fd5b5060408051808201909152600581526414151093d560da1b60208201526102b1565b3480156105e357600080fd5b506103736105f2366004612072565b610e8d565b34801561060357600080fd5b50601554610533906001600160a01b031681565b34801561062357600080fd5b506102de610632366004611fc1565b611122565b34801561064357600080fd5b506102de610652366004611feb565b60096020526000908152604090205460ff1681565b34801561067357600080fd5b50610373610682366004612072565b61112f565b34801561069357600080fd5b5061026c6111b5565b3480156106a857600080fd5b5061026c600e5481565b3480156106be57600080fd5b506103736106cd3660046120a9565b611202565b3480156106de57600080fd5b5061026c6106ed3660046120c2565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561072457600080fd5b506103736107333660046120f5565b611284565b34801561074457600080fd5b506105336107533660046120a9565b611306565b34801561076457600080fd5b50610373610773366004611feb565b611330565b34801561078457600080fd5b50610373610793366004611feb565b6113c8565b3480156107a457600080fd5b50601454610533906001600160a01b031681565b3480156107c457600080fd5b50610373611496565b3480156107d957600080fd5b506102de6107e8366004611feb565b600a6020526000908152604090205460ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108589086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610917576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108f2918490611571565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6109228484846115ab565b90505b9392505050565b6000546001600160a01b0316331461095f5760405162461bcd60e51b815260040161095690612113565b60405180910390fd5b6032601154111580156109755750603260125411155b6109c15760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20352500000000006044820152606401610956565b601191909155601255565b6013546001600160a01b03163314610a1b5760405162461bcd60e51b815260206004820152601260248201527113db9b1e4818591b5a5b88185b1b1bddd95960721b6044820152606401610956565b6013546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a54573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610a815760405162461bcd60e51b815260040161095690612113565b6001600160a01b0382166000818152600a6020908152604091829020805460ff19168515159081179091558251938452908301527ffa491a64c37cae03f614a1a2cac67ee30dd227958ca171908cf843cf9692fdda91015b60405180910390a15050565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260040161095690612113565b600f8110610b545760405162461bcd60e51b8152602060048201526012602482015271086c2dc4ee840cede40e8d0c2e840d0d2ced60731b6044820152606401610956565b600d8190556040518181527f04c799e6fdf1502f151ea8fa58721b7af189477e2b74a3c8d31fc211e8e2de40906020015b60405180910390a150565b6000610864826000196107fd565b6000546001600160a01b03163314610bc85760405162461bcd60e51b815260040161095690612113565b612710600454610bd8919061215e565b8111610c1c5760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b6044820152606401610956565b60058190556040518181527fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b90602001610b85565b6000546001600160a01b03163314610c7b5760405162461bcd60e51b815260040161095690612113565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d9101610ad9565b6000546001600160a01b03163314610d015760405162461bcd60e51b815260040161095690612113565b610d0b600061196f565b565b905090565b6013546000906001600160a01b03163314610d645760405162461bcd60e51b815260206004820152601260248201527113db9b1e4818591b5a5b88185b1b1bddd95960721b6044820152606401610956565b60135460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109259190612180565b6000546001600160a01b03163314610e055760405162461bcd60e51b815260040161095690612113565b60326010541115610e585760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e6e6f7420626520686967686572207468616e2035250000006044820152606401610956565b60108190556040518181527f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f490602001610b85565b6000546001600160a01b03163314610eb75760405162461bcd60e51b815260040161095690612113565b6001600160a01b03821660009081526009602052604090205481151560ff909116151503610f1b5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610956565b6001600160a01b0382166000908152600960205260409020805460ff19168215801591909117909155610f9857600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0384161790556110e6565b600854600110610fdc5760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401610956565b60005b6008548110156110e457826001600160a01b0316600882815481106110065761100661219d565b6000918252602090912001546001600160a01b0316036110d25760088054611030906001906121b3565b815481106110405761104061219d565b600091825260209091200154600880546001600160a01b03909216918390811061106c5761106c61219d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060088054806110ab576110ab6121c6565b600082815260209020810160001990810180546001600160a01b03191690550190556110e4565b806110dc816121dc565b915050610fdf565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b60006109253384846115ab565b6000546001600160a01b031633146111595760405162461bcd60e51b815260040161095690612113565b6001600160a01b0382166000818152600c6020908152604091829020805460ff19168515159081179091558251938452908301527f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b9101610ad9565b6003546001600160a01b0316600090815260066020526040812054610d0d906002546001600160a01b03166000908152600660205260409020546111fc90600454906119bf565b906119bf565b6000546001600160a01b0316331461122c5760405162461bcd60e51b815260040161095690612113565b6032601254111561127f5760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20352500000000006044820152606401610956565b601255565b6000546001600160a01b031633146112ae5760405162461bcd60e51b815260040161095690612113565b6015805460ff60a81b1916600160a81b84151590810291909117909155601682905560408051918252602082018390527fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd9101610ad9565b6008818154811061131657600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b0316331461135a5760405162461bcd60e51b815260040161095690612113565b6001600160a01b0381166113bf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610956565b610a548161196f565b6000546001600160a01b031633146113f25760405162461bcd60e51b815260040161095690612113565b6001600160a01b0381166114485760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e0000000000000000006044820152606401610956565b601380546001600160a01b0319166001600160a01b0383169081179091556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f90602001610b85565b6000546001600160a01b031633146114c05760405162461bcd60e51b815260040161095690612113565b601554600160a01b900460ff16156115125760405162461bcd60e51b81526020600482015260156024820152742a3930b2329034b99030b63932b0b23c9037b832b760591b6044820152606401610956565b6015805460ff60a01b1916600160a01b17905543600e819055600d546115389190611a01565b600f55604051600181527f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df9060200160405180910390a1565b600081848411156115955760405162461bcd60e51b81526004016109569190611f57565b5060006115a284866121b3565b95945050505050565b6001600160a01b0382166000908152600a602052604081205460ff16156116025760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610956565b60175460ff161561161f57611618848484611a60565b9050610925565b6001600160a01b0384166000908152600b602052604090205460ff1615801561166157506001600160a01b0383166000908152600b602052604090205460ff16155b156116b757601554600160a01b900460ff166116b75760405162461bcd60e51b8152602060048201526015602482015274151c98591a5b99c81b9bdd081bdc195b8b081e595d605a1b6044820152606401610956565b6116bf611b34565b156116cc576116cc611b8c565b6001600160a01b038416600090815260096020526040902054829060ff16156117b9576001600160a01b0384166000908152600b602052604090205460ff166117b4576005546001600160a01b0385166000908152600660205260409020546117359085611a01565b11158061175a57506001600160a01b0384166000908152600c602052604090205460ff165b6117a65760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610956565b6117b1858585611c9d565b90505b6118c8565b6001600160a01b03841660009081526009602052604090205460ff1615611804576001600160a01b0385166000908152600b602052604090205460ff166117b4576117b18584611d8e565b6001600160a01b0385166000908152600b602052604090205460ff166118c8576005546001600160a01b03851660009081526006602052604090205461184a9085611a01565b11158061186f57506001600160a01b0384166000908152600c602052604090205460ff165b6118bb5760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610956565b6118c58584611e21565b90505b6001600160a01b0385166000908152600660205260409020546118eb90846119bf565b6001600160a01b03808716600090815260066020526040808220939093559086168152205461191a9082611a01565b6001600160a01b0380861660008181526006602052604090819020939093559151908716906000805160206122918339815191529061195c9085815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061092583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611571565b600080611a0e83856121f5565b9050838110156109255760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610956565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611ab1918490611571565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611ae09083611a01565b6001600160a01b03808516600081815260066020526040908190209390935591519086169060008051602061229183398151915290611b229086815260200190565b60405180910390a35060019392505050565b3360009081526009602052604081205460ff16158015611b57575060175460ff16155b8015611b6c5750601554600160a81b900460ff165b8015610d0d57505060165430600090815260066020526040902054101590565b6017805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611bce57611bce61219d565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611bfe57611bfe61219d565b6001600160a01b039283166020918202929092018101919091526014543060009081526006909252604080832054601354915163791ac94760e01b81529285169463791ac94794611c5e9492939092889291909116904290600401612208565b600060405180830381600087803b158015611c7857600080fd5b505af1158015611c8c573d6000803e3d6000fd5b50506017805460ff19169055505050565b6000600f54431015611cfe576015546001600160a01b03848116911614801590611cd557506014546001600160a01b03848116911614155b15611cfe576001600160a01b0383166000908152600a60205260409020805460ff191660011790555b6000611d206064611d1a60115486611e6a90919063ffffffff16565b90611eec565b30600090815260066020526040902054909150611d3d9082611a01565b30600081815260066020526040908190209290925590516001600160a01b0387169060008051602061229183398151915290611d7c9085815260200190565b60405180910390a36115a283826119bf565b600080611dab6064611d1a60125486611e6a90919063ffffffff16565b30600090815260066020526040902054909150611dc89082611a01565b30600081815260066020526040908190209290925590516001600160a01b0386169060008051602061229183398151915290611e079085815260200190565b60405180910390a3611e1983826119bf565b949350505050565b600080611e3e6064611d1a60105486611e6a90919063ffffffff16565b90508015611e605730600090815260066020526040902054611dc89082611a01565b611e1983826119bf565b600082600003611e7c57506000610864565b6000611e888385612279565b905082611e95858361215e565b146109255760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610956565b600061092583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611f4a5760405162461bcd60e51b81526004016109569190611f57565b5060006115a2848661215e565b600060208083528351808285015260005b81811015611f8457858101830151858201604001528201611f68565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611fbc57600080fd5b919050565b60008060408385031215611fd457600080fd5b611fdd83611fa5565b946020939093013593505050565b600060208284031215611ffd57600080fd5b61092582611fa5565b60008060006060848603121561201b57600080fd5b61202484611fa5565b925061203260208501611fa5565b9150604084013590509250925092565b6000806040838503121561205557600080fd5b50508035926020909101359150565b8015158114610a5457600080fd5b6000806040838503121561208557600080fd5b61208e83611fa5565b9150602083013561209e81612064565b809150509250929050565b6000602082840312156120bb57600080fd5b5035919050565b600080604083850312156120d557600080fd5b6120de83611fa5565b91506120ec60208401611fa5565b90509250929050565b6000806040838503121561210857600080fd5b8235611fdd81612064565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261217b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561219257600080fd5b815161092581612064565b634e487b7160e01b600052603260045260246000fd5b8181038181111561086457610864612148565b634e487b7160e01b600052603160045260246000fd5b6000600182016121ee576121ee612148565b5060010190565b8082018082111561086457610864612148565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122585784516001600160a01b031683529383019391830191600101612233565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176108645761086461214856feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220981595bc0af1ac163cd90057f64a6395a92dc832e6e1c483874f3cb3662d698364736f6c63430008120033

Deployed Bytecode

0x60806040526004361061024a5760003560e01c8063893d20e811610139578063c167d1cd116100b6578063e1d5584c1161007a578063e1d5584c14610738578063f2fde38b14610758578063f35ca36514610778578063f887ea4014610798578063fb201b1d146107b8578063fe575a87146107cd57600080fd5b8063c167d1cd14610687578063d00efb2f1461069c578063d8506af5146106b2578063dd62ed3e146106d2578063df20fd491461071857600080fd5b80639a7a23d6116100fd5780639a7a23d6146105d7578063a8aa1b31146105f7578063a9059cbb14610617578063b62496f514610637578063c04a78ad1461066757600080fd5b8063893d20e8146105195780638cd4426d1461054b5780638da5cb5b1461056b5780638f02bb5b1461058957806395d89b41146105a957600080fd5b806345434032116101c7578063658d4b7f1161018b578063658d4b7f146104775780636c0a24eb146104975780636ddd1713146104ad57806370a08231146104ce578063715018a61461050457600080fd5b806345434032146103d65780634ada218b146103f657806350f2c9c514610417578063571ac8b0146104375780635d0044ca1461045757600080fd5b806323b872dd1161020e57806323b872dd146103335780632740c19714610353578063313ce56714610375578063364333f4146103915780633f4218e0146103a657600080fd5b80630445b6671461025657806306fdde031461027f578063095ea7b3146102be5780630bd11f8a146102ee57806318160ddd1461031e57600080fd5b3661025157005b600080fd5b34801561026257600080fd5b5061026c60165481565b6040519081526020015b60405180910390f35b34801561028b57600080fd5b5060408051808201909152600d81526c141bdcdd08151958da08109bdd609a1b60208201525b6040516102769190611f57565b3480156102ca57600080fd5b506102de6102d9366004611fc1565b6107fd565b6040519015158152602001610276565b3480156102fa57600080fd5b506102de610309366004611feb565b600c6020526000908152604090205460ff1681565b34801561032a57600080fd5b5060045461026c565b34801561033f57600080fd5b506102de61034e366004612006565b61086a565b34801561035f57600080fd5b5061037361036e366004612042565b61092c565b005b34801561038157600080fd5b50604051600a8152602001610276565b34801561039d57600080fd5b506103736109cc565b3480156103b257600080fd5b506102de6103c1366004611feb565b600b6020526000908152604090205460ff1681565b3480156103e257600080fd5b506103736103f1366004612072565b610a57565b34801561040257600080fd5b506015546102de90600160a01b900460ff1681565b34801561042357600080fd5b506103736104323660046120a9565b610ae5565b34801561044357600080fd5b506102de610452366004611feb565b610b90565b34801561046357600080fd5b506103736104723660046120a9565b610b9e565b34801561048357600080fd5b50610373610492366004612072565b610c51565b3480156104a357600080fd5b5061026c60055481565b3480156104b957600080fd5b506015546102de90600160a81b900460ff1681565b3480156104da57600080fd5b5061026c6104e9366004611feb565b6001600160a01b031660009081526006602052604090205490565b34801561051057600080fd5b50610373610cd7565b34801561052557600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610276565b34801561055757600080fd5b506102de610566366004611fc1565b610d12565b34801561057757600080fd5b506000546001600160a01b0316610533565b34801561059557600080fd5b506103736105a43660046120a9565b610ddb565b3480156105b557600080fd5b5060408051808201909152600581526414151093d560da1b60208201526102b1565b3480156105e357600080fd5b506103736105f2366004612072565b610e8d565b34801561060357600080fd5b50601554610533906001600160a01b031681565b34801561062357600080fd5b506102de610632366004611fc1565b611122565b34801561064357600080fd5b506102de610652366004611feb565b60096020526000908152604090205460ff1681565b34801561067357600080fd5b50610373610682366004612072565b61112f565b34801561069357600080fd5b5061026c6111b5565b3480156106a857600080fd5b5061026c600e5481565b3480156106be57600080fd5b506103736106cd3660046120a9565b611202565b3480156106de57600080fd5b5061026c6106ed3660046120c2565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b34801561072457600080fd5b506103736107333660046120f5565b611284565b34801561074457600080fd5b506105336107533660046120a9565b611306565b34801561076457600080fd5b50610373610773366004611feb565b611330565b34801561078457600080fd5b50610373610793366004611feb565b6113c8565b3480156107a457600080fd5b50601454610533906001600160a01b031681565b3480156107c457600080fd5b50610373611496565b3480156107d957600080fd5b506102de6107e8366004611feb565b600a6020526000908152604090205460ff1681565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108589086815260200190565b60405180910390a35060015b92915050565b6001600160a01b038316600090815260076020908152604080832033845290915281205460001914610917576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526007825283812033825290915291909120546108f2918490611571565b6001600160a01b03851660009081526007602090815260408083203384529091529020555b6109228484846115ab565b90505b9392505050565b6000546001600160a01b0316331461095f5760405162461bcd60e51b815260040161095690612113565b60405180910390fd5b6032601154111580156109755750603260125411155b6109c15760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20352500000000006044820152606401610956565b601191909155601255565b6013546001600160a01b03163314610a1b5760405162461bcd60e51b815260206004820152601260248201527113db9b1e4818591b5a5b88185b1b1bddd95960721b6044820152606401610956565b6013546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610a54573d6000803e3d6000fd5b50565b6000546001600160a01b03163314610a815760405162461bcd60e51b815260040161095690612113565b6001600160a01b0382166000818152600a6020908152604091829020805460ff19168515159081179091558251938452908301527ffa491a64c37cae03f614a1a2cac67ee30dd227958ca171908cf843cf9692fdda91015b60405180910390a15050565b6000546001600160a01b03163314610b0f5760405162461bcd60e51b815260040161095690612113565b600f8110610b545760405162461bcd60e51b8152602060048201526012602482015271086c2dc4ee840cede40e8d0c2e840d0d2ced60731b6044820152606401610956565b600d8190556040518181527f04c799e6fdf1502f151ea8fa58721b7af189477e2b74a3c8d31fc211e8e2de40906020015b60405180910390a150565b6000610864826000196107fd565b6000546001600160a01b03163314610bc85760405162461bcd60e51b815260040161095690612113565b612710600454610bd8919061215e565b8111610c1c5760405162461bcd60e51b815260206004820152601360248201527243616e2774206c696d69742074726164696e6760681b6044820152606401610956565b60058190556040518181527fd3028a4dc8f3e7c2bbc9b4259751380fe21f44274195bcf63ebaaac4c17cbc8b90602001610b85565b6000546001600160a01b03163314610c7b5760405162461bcd60e51b815260040161095690612113565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19168515159081179091558251938452908301527f2f640a0ab7e2a6d9ec57f3932923908568f2984073dcebac1b9a3db32debe91d9101610ad9565b6000546001600160a01b03163314610d015760405162461bcd60e51b815260040161095690612113565b610d0b600061196f565b565b905090565b6013546000906001600160a01b03163314610d645760405162461bcd60e51b815260206004820152601260248201527113db9b1e4818591b5a5b88185b1b1bddd95960721b6044820152606401610956565b60135460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018490529084169063a9059cbb906044016020604051808303816000875af1158015610db7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109259190612180565b6000546001600160a01b03163314610e055760405162461bcd60e51b815260040161095690612113565b60326010541115610e585760405162461bcd60e51b815260206004820152601d60248201527f466565732063616e6e6f7420626520686967686572207468616e2035250000006044820152606401610956565b60108190556040518181527f0496ed1e61eb69727f9659a8e859288db4758ffb1f744d1c1424634f90a257f490602001610b85565b6000546001600160a01b03163314610eb75760405162461bcd60e51b815260040161095690612113565b6001600160a01b03821660009081526009602052604090205481151560ff909116151503610f1b5760405162461bcd60e51b815260206004820152601160248201527015985b1d5948185b1c9958591e481cd95d607a1b6044820152606401610956565b6001600160a01b0382166000908152600960205260409020805460ff19168215801591909117909155610f9857600880546001810182556000919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30180546001600160a01b0319166001600160a01b0384161790556110e6565b600854600110610fdc5760405162461bcd60e51b815260206004820152600f60248201526e2932b8bab4b932b21018903830b4b960891b6044820152606401610956565b60005b6008548110156110e457826001600160a01b0316600882815481106110065761100661219d565b6000918252602090912001546001600160a01b0316036110d25760088054611030906001906121b3565b815481106110405761104061219d565b600091825260209091200154600880546001600160a01b03909216918390811061106c5761106c61219d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060088054806110ab576110ab6121c6565b600082815260209020810160001990810180546001600160a01b03191690550190556110e4565b806110dc816121dc565b915050610fdf565b505b604051811515906001600160a01b038416907fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab90600090a35050565b60006109253384846115ab565b6000546001600160a01b031633146111595760405162461bcd60e51b815260040161095690612113565b6001600160a01b0382166000818152600c6020908152604091829020805460ff19168515159081179091558251938452908301527f6ed6ea20fcc829cc51f14b3190919b5563b8ffaec1eb69b4070c7a539f42f35b9101610ad9565b6003546001600160a01b0316600090815260066020526040812054610d0d906002546001600160a01b03166000908152600660205260409020546111fc90600454906119bf565b906119bf565b6000546001600160a01b0316331461122c5760405162461bcd60e51b815260040161095690612113565b6032601254111561127f5760405162461bcd60e51b815260206004820152601b60248201527f466565732063616e6e6f74206265206d6f7265207468616e20352500000000006044820152606401610956565b601255565b6000546001600160a01b031633146112ae5760405162461bcd60e51b815260040161095690612113565b6015805460ff60a81b1916600160a81b84151590810291909117909155601682905560408051918252602082018390527fbb6a036f87bc4903f9d59c9f83a8733a8e8004a0a17b29bf1a817b4fe6bcf6bd9101610ad9565b6008818154811061131657600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b0316331461135a5760405162461bcd60e51b815260040161095690612113565b6001600160a01b0381166113bf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610956565b610a548161196f565b6000546001600160a01b031633146113f25760405162461bcd60e51b815260040161095690612113565b6001600160a01b0381166114485760405162461bcd60e51b815260206004820152601760248201527f5a65726f20416464726573732076616c69646174696f6e0000000000000000006044820152606401610956565b601380546001600160a01b0319166001600160a01b0383169081179091556040519081527fffb40bfdfd246e95f543d08d9713c339f1d90fa9265e39b4f562f9011d7c919f90602001610b85565b6000546001600160a01b031633146114c05760405162461bcd60e51b815260040161095690612113565b601554600160a01b900460ff16156115125760405162461bcd60e51b81526020600482015260156024820152742a3930b2329034b99030b63932b0b23c9037b832b760591b6044820152606401610956565b6015805460ff60a01b1916600160a01b17905543600e819055600d546115389190611a01565b600f55604051600181527f316709d79ee7f0c74ca101f383d03c0651393c02be15433064ce7707ee82c9df9060200160405180910390a1565b600081848411156115955760405162461bcd60e51b81526004016109569190611f57565b5060006115a284866121b3565b95945050505050565b6001600160a01b0382166000908152600a602052604081205460ff16156116025760405162461bcd60e51b815260206004820152600b60248201526a109b1858dadb1a5cdd195960aa1b6044820152606401610956565b60175460ff161561161f57611618848484611a60565b9050610925565b6001600160a01b0384166000908152600b602052604090205460ff1615801561166157506001600160a01b0383166000908152600b602052604090205460ff16155b156116b757601554600160a01b900460ff166116b75760405162461bcd60e51b8152602060048201526015602482015274151c98591a5b99c81b9bdd081bdc195b8b081e595d605a1b6044820152606401610956565b6116bf611b34565b156116cc576116cc611b8c565b6001600160a01b038416600090815260096020526040902054829060ff16156117b9576001600160a01b0384166000908152600b602052604090205460ff166117b4576005546001600160a01b0385166000908152600660205260409020546117359085611a01565b11158061175a57506001600160a01b0384166000908152600c602052604090205460ff165b6117a65760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610956565b6117b1858585611c9d565b90505b6118c8565b6001600160a01b03841660009081526009602052604090205460ff1615611804576001600160a01b0385166000908152600b602052604090205460ff166117b4576117b18584611d8e565b6001600160a01b0385166000908152600b602052604090205460ff166118c8576005546001600160a01b03851660009081526006602052604090205461184a9085611a01565b11158061186f57506001600160a01b0384166000908152600c602052604090205460ff165b6118bb5760405162461bcd60e51b815260206004820152601f60248201527f4d61782057616c6c6574204c696d6974204c696d6974204578636565646564006044820152606401610956565b6118c58584611e21565b90505b6001600160a01b0385166000908152600660205260409020546118eb90846119bf565b6001600160a01b03808716600090815260066020526040808220939093559086168152205461191a9082611a01565b6001600160a01b0380861660008181526006602052604090819020939093559151908716906000805160206122918339815191529061195c9085815260200190565b60405180910390a3506001949350505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600061092583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611571565b600080611a0e83856121f5565b9050838110156109255760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610956565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611ab1918490611571565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611ae09083611a01565b6001600160a01b03808516600081815260066020526040908190209390935591519086169060008051602061229183398151915290611b229086815260200190565b60405180910390a35060019392505050565b3360009081526009602052604081205460ff16158015611b57575060175460ff16155b8015611b6c5750601554600160a81b900460ff165b8015610d0d57505060165430600090815260066020526040902054101590565b6017805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110611bce57611bce61219d565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611bfe57611bfe61219d565b6001600160a01b039283166020918202929092018101919091526014543060009081526006909252604080832054601354915163791ac94760e01b81529285169463791ac94794611c5e9492939092889291909116904290600401612208565b600060405180830381600087803b158015611c7857600080fd5b505af1158015611c8c573d6000803e3d6000fd5b50506017805460ff19169055505050565b6000600f54431015611cfe576015546001600160a01b03848116911614801590611cd557506014546001600160a01b03848116911614155b15611cfe576001600160a01b0383166000908152600a60205260409020805460ff191660011790555b6000611d206064611d1a60115486611e6a90919063ffffffff16565b90611eec565b30600090815260066020526040902054909150611d3d9082611a01565b30600081815260066020526040908190209290925590516001600160a01b0387169060008051602061229183398151915290611d7c9085815260200190565b60405180910390a36115a283826119bf565b600080611dab6064611d1a60125486611e6a90919063ffffffff16565b30600090815260066020526040902054909150611dc89082611a01565b30600081815260066020526040908190209290925590516001600160a01b0386169060008051602061229183398151915290611e079085815260200190565b60405180910390a3611e1983826119bf565b949350505050565b600080611e3e6064611d1a60105486611e6a90919063ffffffff16565b90508015611e605730600090815260066020526040902054611dc89082611a01565b611e1983826119bf565b600082600003611e7c57506000610864565b6000611e888385612279565b905082611e95858361215e565b146109255760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610956565b600061092583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525060008183611f4a5760405162461bcd60e51b81526004016109569190611f57565b5060006115a2848661215e565b600060208083528351808285015260005b81811015611f8457858101830151858201604001528201611f68565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114611fbc57600080fd5b919050565b60008060408385031215611fd457600080fd5b611fdd83611fa5565b946020939093013593505050565b600060208284031215611ffd57600080fd5b61092582611fa5565b60008060006060848603121561201b57600080fd5b61202484611fa5565b925061203260208501611fa5565b9150604084013590509250925092565b6000806040838503121561205557600080fd5b50508035926020909101359150565b8015158114610a5457600080fd5b6000806040838503121561208557600080fd5b61208e83611fa5565b9150602083013561209e81612064565b809150509250929050565b6000602082840312156120bb57600080fd5b5035919050565b600080604083850312156120d557600080fd5b6120de83611fa5565b91506120ec60208401611fa5565b90509250929050565b6000806040838503121561210857600080fd5b8235611fdd81612064565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60008261217b57634e487b7160e01b600052601260045260246000fd5b500490565b60006020828403121561219257600080fd5b815161092581612064565b634e487b7160e01b600052603260045260246000fd5b8181038181111561086457610864612148565b634e487b7160e01b600052603160045260246000fd5b6000600182016121ee576121ee612148565b5060010190565b8082018082111561086457610864612148565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156122585784516001600160a01b031683529383019391830191600101612233565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176108645761086461214856feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220981595bc0af1ac163cd90057f64a6395a92dc832e6e1c483874f3cb3662d698364736f6c63430008120033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
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.