ETH Price: $2,091.85 (+0.88%)

Contract

0xEfa2D2CdE978e510Be4AD4Af89ec00672a7D4618
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve187933702023-12-15 18:42:23819 days ago1702665743IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0022085549.64282584
Approve187930672023-12-15 17:41:47819 days ago1702662107IN
0xEfa2D2Cd...72a7D4618
0 ETH0.00658348148.17996247
Approve187923582023-12-15 15:18:11819 days ago1702653491IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0040893592.04243549
Approve187922862023-12-15 15:03:47819 days ago1702652627IN
0xEfa2D2Cd...72a7D4618
0 ETH0.00461732103.0906296
Approve187921792023-12-15 14:41:47819 days ago1702651307IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0027169160.74164858
Approve187921052023-12-15 14:26:59819 days ago1702650419IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0028261963.18480376
Approve187921032023-12-15 14:26:35819 days ago1702650395IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0042934496.53186143
Approve187921032023-12-15 14:26:35819 days ago1702650395IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0042934496.53186143
Approve187921032023-12-15 14:26:35819 days ago1702650395IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0042934496.53186143
Approve187920922023-12-15 14:24:23819 days ago1702650263IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0031441270.19851002
Approve187920902023-12-15 14:23:59819 days ago1702650239IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0031446470.21023542
Renounce Ownersh...187920802023-12-15 14:21:59819 days ago1702650119IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0014556162.69083457
Approve187920802023-12-15 14:21:59819 days ago1702650119IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0030258967.55883457
Approve187920792023-12-15 14:21:47819 days ago1702650107IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0030156967.33114462
Reduce Limits187920792023-12-15 14:21:47819 days ago1702650107IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0027620663.33114462
Approve187920752023-12-15 14:20:59819 days ago1702650059IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0030232967.5007622
Approve187920722023-12-15 14:20:23819 days ago1702650023IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0025355956.61200534
Start Trading187920712023-12-15 14:20:11819 days ago1702650011IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0016837358.75068224
Approve187920352023-12-15 14:12:59819 days ago1702649579IN
0xEfa2D2Cd...72a7D4618
0 ETH0.0017227762.84510905

Latest 12 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer187921102023-12-15 14:27:59819 days ago1702650479
0xEfa2D2Cd...72a7D4618
0.00737235 ETH
Transfer187921102023-12-15 14:27:59819 days ago1702650479
0xEfa2D2Cd...72a7D4618
0.00737235 ETH
Transfer187920842023-12-15 14:22:47819 days ago1702650167
0xEfa2D2Cd...72a7D4618
0.00054367 ETH
Transfer187920842023-12-15 14:22:47819 days ago1702650167
0xEfa2D2Cd...72a7D4618
0.00054367 ETH
Transfer187920842023-12-15 14:22:47819 days ago1702650167
0xEfa2D2Cd...72a7D4618
0.006904 ETH
Transfer187920842023-12-15 14:22:47819 days ago1702650167
0xEfa2D2Cd...72a7D4618
0.006904 ETH
Transfer187920802023-12-15 14:21:59819 days ago1702650119
0xEfa2D2Cd...72a7D4618
0.06255516 ETH
Transfer187920802023-12-15 14:21:59819 days ago1702650119
0xEfa2D2Cd...72a7D4618
0.06255516 ETH
Transfer187920772023-12-15 14:21:23819 days ago1702650083
0xEfa2D2Cd...72a7D4618
0.09907291 ETH
Transfer187920772023-12-15 14:21:23819 days ago1702650083
0xEfa2D2Cd...72a7D4618
0.09907291 ETH
Transfer187920732023-12-15 14:20:35819 days ago1702650035
0xEfa2D2Cd...72a7D4618
0.03813587 ETH
Transfer187920732023-12-15 14:20:35819 days ago1702650035
0xEfa2D2Cd...72a7D4618
0.03813587 ETH
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Source Code Verified (Exact Match)

Contract Name:
REVERSE

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-12-15
*/

// SPDX-License-Identifier: Unlicensed

/**
Powerful analytics, automation, and management tools for liquidity providers in AMM protocols.

Website: https://www.reverseprotocol.org
Telegram: https://t.me/reverse_erc
Twitter: https://twitter.com/reverse_erc
 */

pragma solidity = 0.8.21;

abstract contract Context {
    constructor() {
    }

    function _msgSender() internal view returns (address payable) {
        return payable(msg.sender);
    }

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

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

abstract contract Ownable is Context {
    address private _owner;

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

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

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

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

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

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

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

interface IUniswapRouterV1 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function swapExactETHForTokens(
        uint amountOutMin, 
        address[] calldata path, 
        address to, uint deadline
    ) external payable returns (uint[] memory amounts);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}

interface IUniswapRouterV2 is IUniswapRouterV1 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactTokensForTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external returns (uint[] memory amounts);
}

interface IUniswapFactoryV2 {
    event PairCreated(address indexed token0, address indexed token1, address lpPair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address lpPair);
    function createPair(address tokenA, address tokenB) external returns (address lpPair);
}

contract REVERSE is Context, Ownable, IERC20 {

    string constant private _name = "Reverse";
    string constant private _symbol = "REVERSE";
    uint8 constant private _decimals = 9;

    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noTaxAccounts;
    mapping (address => bool) private _isLiquidityProvider;
    mapping (address => bool) private _isLiquidityPair;
    mapping (address => uint256) private balance;

    uint256 constant public _totalSupply = 10 ** 9 * 10**9;
    uint256 constant public swapMinAmount = _totalSupply / 100_000;
    uint256 constant public feeForTransfer = 0;
    uint256 constant public taxDenominator = 1_000;
    uint256 public feeForBuys = 130;
    uint256 public feeForSells = 130;
    uint256 private _maxTxSize = 25 * _totalSupply / 1000;
    bool private _feeSwapEnabled = true;
    address payable private taxWallet;
    address constant public DEAD = 0x000000000000000000000000000000000000dEaD;

    address public lpPair;
    IUniswapRouterV2 public uniswapRouter;
    bool public tradeActive = false;
    bool private inswap;
    bool private _maxTxInEffect = false;

        modifier inSwapFlag {
        inswap = true;
        _;
        inswap = false;
    }
    event SwapAndLiquify();


    constructor () {
        if (block.chainid == 56) {
            uniswapRouter = IUniswapRouterV2(0x10ED43C718714eb63d5aA57B78B54704E256024E);
        } else if (block.chainid == 97) {
            uniswapRouter = IUniswapRouterV2(0xD99D1c33F9fC3444f8101754aBC46c52416550D1);
        } else if (block.chainid == 1 || block.chainid == 4 || block.chainid == 3) {
            uniswapRouter = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else if (block.chainid == 42161) {
            uniswapRouter = IUniswapRouterV2(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506);
        } else if (block.chainid == 5) {
            uniswapRouter = IUniswapRouterV2(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        } else {
            revert("Chain not valid");
        }
        _noTaxAccounts[msg.sender] = true;
        taxWallet = payable(address(0xa74Dfe9815723dD79378a867f0a1c285d93c947d));
        _noTaxAccounts[taxWallet] = true;
        _isLiquidityProvider[msg.sender] = true;
        balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);

        lpPair = IUniswapFactoryV2(uniswapRouter.factory()).createPair(uniswapRouter.WETH(), address(this));
        _isLiquidityPair[lpPair] = true;
        _approve(msg.sender, address(uniswapRouter), type(uint256).max);
        _approve(address(this), address(uniswapRouter), type(uint256).max);
    }

    function totalSupply() external pure override returns (uint256) { if (_totalSupply == 0) { revert(); } return _totalSupply; }
    function decimals() external pure override returns (uint8) { if (_totalSupply == 0) { revert(); } return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner(); }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }
    function balanceOf(address account) public view override returns (uint256) {
        return balance[account];
    }
                
    function sendingAmount(address from, bool isbuy, bool issell, uint256 amount) internal returns (uint256) {
        uint256 fee;
        if (isbuy)  fee = feeForBuys;  else if (issell)  fee = feeForSells;  else  fee = feeForTransfer; 
        if (fee == 0)  return amount; 
        uint256 feeAmount = amount * fee / taxDenominator;
        if (feeAmount > 0) {
            balance[address(this)] += feeAmount;
            emit Transfer(from, address(this), feeAmount);
        }
        return amount - feeAmount;
    }

    function swapBack(uint256 tokenAmount) internal inSwapFlag {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapRouter.WETH();

        if (_allowances[address(this)][address(uniswapRouter)] != type(uint256).max) {
            _allowances[address(this)][address(uniswapRouter)] = type(uint256).max;
        }

        try uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        ) {} catch {
            return;
        }

        if(address(this).balance > 0) taxWallet.transfer(address(this).balance);
    } 
    
    function shouldSwapForTax(address ins) internal view returns (bool) {
        bool canswap = _feeSwapEnabled && !_noTaxAccounts[ins];
        return canswap;
    }
    
    function _transfer(address from, address to, uint256 amount) internal returns  (bool) {
        bool takeFee = true;
        require(to != address(0), "ERC20: transfer to the dead address");
        require(from != address(0), "ERC20: transfer from the dead address");
        require(amount > 0, "amount must be greater than zero");

        if (isExemptFromFees(from,to)) {
            require(tradeActive,"Trading is not enabled");
                    if(!_isLiquidityPair[to] && from != address(this) && to != address(this) || isTransferring(from,to) && !_maxTxInEffect)  { require(balanceOf(to) + amount <= _maxTxSize,"_maxTxSize exceed"); }}


        if(isSelling(from, to) &&  !inswap && shouldSwapForTax(from)) {

            uint256 tokenAmount = balanceOf(address(this));
            if(tokenAmount >= swapMinAmount) { 
                if(amount > swapMinAmount) swapBack(tokenAmount);
             }
        }

        if (_noTaxAccounts[from] || _noTaxAccounts[to]){
            takeFee = false;
        }
        uint256 amountAfterFee = (takeFee) ? sendingAmount(from, isBuying(from, to), isSelling(from, to), amount) : amount;
        uint256 amountBeforeFee = (takeFee) ? amount : (!tradeActive ? amount : 0);
        balance[from] -= amountBeforeFee; balance[to] += amountAfterFee; emit Transfer(from, to, amountAfterFee);

        return true;
    }

    receive() external payable {}
    
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    
    function approve(address spender, uint256 amount) external override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(address sender, address spender, uint256 amount) internal {
        require(sender != address(0), "ERC20: Zero Address");
        require(spender != address(0), "ERC20: Zero Address");

        _allowances[sender][spender] = amount;
    }

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

        return _transfer(sender, recipient, amount);
    }
    
    function startTrading() external onlyOwner {
        require(!tradeActive, "Trading already enabled");
        tradeActive = true;
    }
    
    function reduceLimits() external onlyOwner {
        require(!_maxTxInEffect,"Already initalized");
        _maxTxSize = _totalSupply;
        _maxTxInEffect = true;
        feeForBuys = 10;
        feeForSells = 10;
    }

    function isExemptFromFees(address ins, address out) internal view returns (bool) {
        bool isLimited = ins != owner()
            && out != owner()
            && msg.sender != owner()
            && !_isLiquidityProvider[ins]  && !_isLiquidityProvider[out] && out != address(0) && out != address(this);
            return isLimited;
    }
    
    function isBuying(address ins, address out) internal view returns (bool) {
        bool _is_buy = !_isLiquidityPair[out] && _isLiquidityPair[ins];
        return _is_buy;
    }

    function isSelling(address ins, address out) internal view returns (bool) { 
        bool _is_sell = _isLiquidityPair[out] && !_isLiquidityPair[ins];
        return _is_sell;
    }

    function isTransferring(address ins, address out) internal view returns (bool) { 
        bool _is_transfer = !_isLiquidityPair[out] && !_isLiquidityPair[ins];
        return _is_transfer;
    }
}

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":[],"name":"SwapAndLiquify","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":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"pure","type":"function"},{"inputs":[],"name":"feeForBuys","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeForSells","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeForTransfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reduceLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapMinAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapRouter","outputs":[{"internalType":"contract IUniswapRouterV2","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052608260068190556007556103e862000026670de0b6b3a7640000601962000576565b620000329190620005a0565b6008556009805460ff19166001179055600b805462ff00ff60a01b191690553480156200005d575f80fd5b50620000693362000460565b466038036200009e57600b80546001600160a01b0319167310ed43c718714eb63d5aa57b78b54704e256024e179055620001cb565b46606103620000d357600b80546001600160a01b03191673d99d1c33f9fc3444f8101754abc46c52416550d1179055620001cb565b4660011480620000e35750466004145b80620000ef5750466003145b156200012157600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620001cb565b4661a4b1036200015757600b80546001600160a01b031916731b02da8cb0d097eb8d57a175b88c7d8b47997506179055620001cb565b466005036200018c57600b80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055620001cb565b60405162461bcd60e51b815260206004820152600f60248201526e10da185a5b881b9bdd081d985b1a59608a1b60448201526064015b60405180910390fd5b335f8181526002602090815260408083208054600160ff19918216811790925560098054610100600160a81b03191674a74dfe9815723dd79378a867f0a1c285d93c947d0017908190556001600160a01b036101009091041685528285208054821683179055858552600384528285208054909116909117905560058252808320670de0b6b3a76400009081905590519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3600b5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002da573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003009190620005c0565b6001600160a01b031663c9c65396600b5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200035f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003859190620005c0565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303815f875af1158015620003cf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003f59190620005c0565b600a80546001600160a01b0319166001600160a01b039283169081179091555f908152600460205260409020805460ff19166001179055600b546200043f913391165f19620004af565b600b546200045a9030906001600160a01b03165f19620004af565b620005ef565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038316620004fd5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620001c2565b6001600160a01b0382166200054b5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401620001c2565b6001600160a01b039283165f9081526001602090815260408083209490951682529290925291902055565b80820281158282048414176200059a57634e487b7160e01b5f52601160045260245ffd5b92915050565b5f82620005bb57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215620005d1575f80fd5b81516001600160a01b0381168114620005e8575f80fd5b9392505050565b6113bc80620005fd5f395ff3fe608060405260043610610164575f3560e01c806370d867a2116100cd57806395d89b4111610087578063b361b2b511610062578063b361b2b5146103f8578063bc4948721461040d578063dd62ed3e14610421578063f2fde38b14610465575f80fd5b806395d89b4114610396578063a0509f1e146103c5578063a9059cbb146103d9575f80fd5b806370d867a21461031f578063715018a614610332578063735de9f714610346578063893d20e8146103655780638be40c56146103815780638da5cb5b14610365575f80fd5b8063313ce5671161011e578063313ce567146102615780633eaaf86b1461027c578063452ed4f11461029757806346a05c99146102b65780635882128d146102cb57806370a08231146102eb575f80fd5b806303fd2a451461016f57806306fdde03146101a1578063095ea7b3146101d957806318160ddd1461020857806323b872dd1461022c578063293230b81461024b575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018461dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ac575f80fd5b506040805180820190915260078152665265766572736560c81b60208201525b604051610198919061112a565b3480156101e4575f80fd5b506101f86101f3366004611189565b610484565b6040519015158152602001610198565b348015610213575f80fd5b50670de0b6b3a76400005b604051908152602001610198565b348015610237575f80fd5b506101f86102463660046111b3565b61049a565b348015610256575f80fd5b5061025f61050f565b005b34801561026c575f80fd5b5060405160098152602001610198565b348015610287575f80fd5b5061021e670de0b6b3a764000081565b3480156102a2575f80fd5b50600a54610184906001600160a01b031681565b3480156102c1575f80fd5b5061021e60065481565b3480156102d6575f80fd5b50600b546101f890600160a01b900460ff1681565b3480156102f6575f80fd5b5061021e6103053660046111f1565b6001600160a01b03165f9081526005602052604090205490565b34801561032a575f80fd5b5061021e5f81565b34801561033d575f80fd5b5061025f6105b0565b348015610351575f80fd5b50600b54610184906001600160a01b031681565b348015610370575f80fd5b505f546001600160a01b0316610184565b34801561038c575f80fd5b5061021e60075481565b3480156103a1575f80fd5b506040805180820190915260078152665245564552534560c81b60208201526101cc565b3480156103d0575f80fd5b5061025f6105e4565b3480156103e4575f80fd5b506101f86103f3366004611189565b610687565b348015610403575f80fd5b5061021e6103e881565b348015610418575f80fd5b5061021e61069d565b34801561042c575f80fd5b5061021e61043b36600461120c565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610470575f80fd5b5061025f61047f3660046111f1565b6106b5565b5f61049033848461074f565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f19146104fc576001600160a01b0384165f908152600160209081526040808320338452909152812080548492906104f6908490611257565b90915550505b610507848484610812565b949350505050565b5f546001600160a01b031633146105415760405162461bcd60e51b81526004016105389061126a565b60405180910390fd5b600b54600160a01b900460ff161561059b5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610538565b600b805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105d95760405162461bcd60e51b81526004016105389061126a565b6105e25f610c40565b565b5f546001600160a01b0316331461060d5760405162461bcd60e51b81526004016105389061126a565b600b54600160b01b900460ff161561065c5760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b6044820152606401610538565b670de0b6b3a7640000600855600b805460ff60b01b1916600160b01b179055600a6006819055600755565b5f610693338484610812565b5060019392505050565b6106b2620186a0670de0b6b3a764000061129f565b81565b5f546001600160a01b031633146106de5760405162461bcd60e51b81526004016105389061126a565b6001600160a01b0381166107435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610538565b61074c81610c40565b50565b6001600160a01b03831661079b5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610538565b6001600160a01b0382166107e75760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610538565b6001600160a01b039283165f9081526001602090815260408083209490951682529290925291902055565b5f60016001600160a01b0384166108775760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f207468652064656164206164647260448201526265737360e81b6064820152608401610538565b6001600160a01b0385166108db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d207468652064656164206164604482015264647265737360d81b6064820152608401610538565b5f831161092a5760405162461bcd60e51b815260206004820181905260248201527f616d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610538565b6109348585610c8f565b15610a6a57600b54600160a01b900460ff1661098b5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b6044820152606401610538565b6001600160a01b0384165f9081526004602052604090205460ff161580156109bc57506001600160a01b0385163014155b80156109d157506001600160a01b0384163014155b806109f757506109e18585610d5e565b80156109f75750600b54600160b01b900460ff16155b15610a6a5760085483610a1e866001600160a01b03165f9081526005602052604090205490565b610a2891906112be565b1115610a6a5760405162461bcd60e51b815260206004820152601160248201527017db585e151e14da5e9948195e18d95959607a1b6044820152606401610538565b610a748585610da4565b8015610a8a5750600b54600160a81b900460ff16155b8015610a9a5750610a9a85610de9565b15610af057305f90815260056020526040902054610ac3620186a0670de0b6b3a764000061129f565b8110610aee57610ade620186a0670de0b6b3a764000061129f565b841115610aee57610aee81610e1e565b505b6001600160a01b0385165f9081526002602052604090205460ff1680610b2d57506001600160a01b0384165f9081526002602052604090205460ff165b15610b3557505f5b5f81610b415783610b5f565b610b5f86610b4f8888611019565b610b598989610da4565b8761105e565b90505f82610b8557600b54600160a01b900460ff1615610b7f575f610b87565b84610b87565b845b6001600160a01b0388165f90815260056020526040812080549293508392909190610bb3908490611257565b90915550506001600160a01b0386165f9081526005602052604081208054849290610bdf9084906112be565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c2b91815260200190565b60405180910390a35060019695505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80610ca25f546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610cd057505f546001600160a01b03848116911614155b8015610ce657505f546001600160a01b03163314155b8015610d0a57506001600160a01b0384165f9081526003602052604090205460ff16155b8015610d2e57506001600160a01b0383165f9081526003602052604090205460ff16155b8015610d4257506001600160a01b03831615155b801561050757506001600160a01b038316301415949350505050565b6001600160a01b0381165f90815260046020526040812054819060ff1615801561050757505050506001600160a01b03165f9081526004602052604090205460ff161590565b6001600160a01b0381165f90815260046020526040812054819060ff16801561050757505050506001600160a01b03165f9081526004602052604090205460ff161590565b6009545f90819060ff168015610e1757506001600160a01b0383165f9081526002602052604090205460ff16155b9392505050565b600b805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e6457610e646112d1565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ebb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edf91906112e5565b81600181518110610ef257610ef26112d1565b6001600160a01b03928316602091820292909201810191909152305f908152600182526040808220600b5490941682529290915220545f1914610f5857305f908152600160209081526040808320600b546001600160a01b0316845290915290205f1990555b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f909085905f90869030904290600401611300565b5f604051808303815f87803b158015610fa7575f80fd5b505af1925050508015610fb8575060015b610fc25750611009565b4715611007576009546040516001600160a01b0361010090920491909116904780156108fc02915f818181858888f19350505050158015611005573d5f803e3d5ffd5b505b505b50600b805460ff60a81b19169055565b6001600160a01b0381165f90815260046020526040812054819060ff1615801561050757505050506001600160a01b03165f9081526004602052604090205460ff1690565b5f80841561106f5750600654611081565b831561107e5750600754611081565b505f5b805f036110915782915050610507565b5f6103e861109f838661136f565b6110a9919061129f565b9050801561111557305f90815260056020526040812080548392906110cf9084906112be565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61111f8185611257565b979650505050505050565b5f6020808352835180828501525f5b8181101561115557858101830151858201604001528201611139565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461074c575f80fd5b5f806040838503121561119a575f80fd5b82356111a581611175565b946020939093013593505050565b5f805f606084860312156111c5575f80fd5b83356111d081611175565b925060208401356111e081611175565b929592945050506040919091013590565b5f60208284031215611201575f80fd5b8135610e1781611175565b5f806040838503121561121d575f80fd5b823561122881611175565b9150602083013561123881611175565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561049457610494611243565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f826112b957634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561049457610494611243565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156112f5575f80fd5b8151610e1781611175565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561134e5784516001600160a01b031683529383019391830191600101611329565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104945761049461124356fea2646970667358221220e552eff018c903cd9f6c5915d59e2470af53af336d99bae4ffa227c61a7a0a7c64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610164575f3560e01c806370d867a2116100cd57806395d89b4111610087578063b361b2b511610062578063b361b2b5146103f8578063bc4948721461040d578063dd62ed3e14610421578063f2fde38b14610465575f80fd5b806395d89b4114610396578063a0509f1e146103c5578063a9059cbb146103d9575f80fd5b806370d867a21461031f578063715018a614610332578063735de9f714610346578063893d20e8146103655780638be40c56146103815780638da5cb5b14610365575f80fd5b8063313ce5671161011e578063313ce567146102615780633eaaf86b1461027c578063452ed4f11461029757806346a05c99146102b65780635882128d146102cb57806370a08231146102eb575f80fd5b806303fd2a451461016f57806306fdde03146101a1578063095ea7b3146101d957806318160ddd1461020857806323b872dd1461022c578063293230b81461024b575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5061018461dead81565b6040516001600160a01b0390911681526020015b60405180910390f35b3480156101ac575f80fd5b506040805180820190915260078152665265766572736560c81b60208201525b604051610198919061112a565b3480156101e4575f80fd5b506101f86101f3366004611189565b610484565b6040519015158152602001610198565b348015610213575f80fd5b50670de0b6b3a76400005b604051908152602001610198565b348015610237575f80fd5b506101f86102463660046111b3565b61049a565b348015610256575f80fd5b5061025f61050f565b005b34801561026c575f80fd5b5060405160098152602001610198565b348015610287575f80fd5b5061021e670de0b6b3a764000081565b3480156102a2575f80fd5b50600a54610184906001600160a01b031681565b3480156102c1575f80fd5b5061021e60065481565b3480156102d6575f80fd5b50600b546101f890600160a01b900460ff1681565b3480156102f6575f80fd5b5061021e6103053660046111f1565b6001600160a01b03165f9081526005602052604090205490565b34801561032a575f80fd5b5061021e5f81565b34801561033d575f80fd5b5061025f6105b0565b348015610351575f80fd5b50600b54610184906001600160a01b031681565b348015610370575f80fd5b505f546001600160a01b0316610184565b34801561038c575f80fd5b5061021e60075481565b3480156103a1575f80fd5b506040805180820190915260078152665245564552534560c81b60208201526101cc565b3480156103d0575f80fd5b5061025f6105e4565b3480156103e4575f80fd5b506101f86103f3366004611189565b610687565b348015610403575f80fd5b5061021e6103e881565b348015610418575f80fd5b5061021e61069d565b34801561042c575f80fd5b5061021e61043b36600461120c565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b348015610470575f80fd5b5061025f61047f3660046111f1565b6106b5565b5f61049033848461074f565b5060015b92915050565b6001600160a01b0383165f9081526001602090815260408083203384529091528120545f19146104fc576001600160a01b0384165f908152600160209081526040808320338452909152812080548492906104f6908490611257565b90915550505b610507848484610812565b949350505050565b5f546001600160a01b031633146105415760405162461bcd60e51b81526004016105389061126a565b60405180910390fd5b600b54600160a01b900460ff161561059b5760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720616c726561647920656e61626c65640000000000000000006044820152606401610538565b600b805460ff60a01b1916600160a01b179055565b5f546001600160a01b031633146105d95760405162461bcd60e51b81526004016105389061126a565b6105e25f610c40565b565b5f546001600160a01b0316331461060d5760405162461bcd60e51b81526004016105389061126a565b600b54600160b01b900460ff161561065c5760405162461bcd60e51b8152602060048201526012602482015271105b1c9958591e481a5b9a5d185b1a5e995960721b6044820152606401610538565b670de0b6b3a7640000600855600b805460ff60b01b1916600160b01b179055600a6006819055600755565b5f610693338484610812565b5060019392505050565b6106b2620186a0670de0b6b3a764000061129f565b81565b5f546001600160a01b031633146106de5760405162461bcd60e51b81526004016105389061126a565b6001600160a01b0381166107435760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610538565b61074c81610c40565b50565b6001600160a01b03831661079b5760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610538565b6001600160a01b0382166107e75760405162461bcd60e51b815260206004820152601360248201527245524332303a205a65726f204164647265737360681b6044820152606401610538565b6001600160a01b039283165f9081526001602090815260408083209490951682529290925291902055565b5f60016001600160a01b0384166108775760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f207468652064656164206164647260448201526265737360e81b6064820152608401610538565b6001600160a01b0385166108db5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d207468652064656164206164604482015264647265737360d81b6064820152608401610538565b5f831161092a5760405162461bcd60e51b815260206004820181905260248201527f616d6f756e74206d7573742062652067726561746572207468616e207a65726f6044820152606401610538565b6109348585610c8f565b15610a6a57600b54600160a01b900460ff1661098b5760405162461bcd60e51b8152602060048201526016602482015275151c98591a5b99c81a5cc81b9bdd08195b98589b195960521b6044820152606401610538565b6001600160a01b0384165f9081526004602052604090205460ff161580156109bc57506001600160a01b0385163014155b80156109d157506001600160a01b0384163014155b806109f757506109e18585610d5e565b80156109f75750600b54600160b01b900460ff16155b15610a6a5760085483610a1e866001600160a01b03165f9081526005602052604090205490565b610a2891906112be565b1115610a6a5760405162461bcd60e51b815260206004820152601160248201527017db585e151e14da5e9948195e18d95959607a1b6044820152606401610538565b610a748585610da4565b8015610a8a5750600b54600160a81b900460ff16155b8015610a9a5750610a9a85610de9565b15610af057305f90815260056020526040902054610ac3620186a0670de0b6b3a764000061129f565b8110610aee57610ade620186a0670de0b6b3a764000061129f565b841115610aee57610aee81610e1e565b505b6001600160a01b0385165f9081526002602052604090205460ff1680610b2d57506001600160a01b0384165f9081526002602052604090205460ff165b15610b3557505f5b5f81610b415783610b5f565b610b5f86610b4f8888611019565b610b598989610da4565b8761105e565b90505f82610b8557600b54600160a01b900460ff1615610b7f575f610b87565b84610b87565b845b6001600160a01b0388165f90815260056020526040812080549293508392909190610bb3908490611257565b90915550506001600160a01b0386165f9081526005602052604081208054849290610bdf9084906112be565b92505081905550856001600160a01b0316876001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c2b91815260200190565b60405180910390a35060019695505050505050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f80610ca25f546001600160a01b031690565b6001600160a01b0316846001600160a01b031614158015610cd057505f546001600160a01b03848116911614155b8015610ce657505f546001600160a01b03163314155b8015610d0a57506001600160a01b0384165f9081526003602052604090205460ff16155b8015610d2e57506001600160a01b0383165f9081526003602052604090205460ff16155b8015610d4257506001600160a01b03831615155b801561050757506001600160a01b038316301415949350505050565b6001600160a01b0381165f90815260046020526040812054819060ff1615801561050757505050506001600160a01b03165f9081526004602052604090205460ff161590565b6001600160a01b0381165f90815260046020526040812054819060ff16801561050757505050506001600160a01b03165f9081526004602052604090205460ff161590565b6009545f90819060ff168015610e1757506001600160a01b0383165f9081526002602052604090205460ff16155b9392505050565b600b805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e6457610e646112d1565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610ebb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edf91906112e5565b81600181518110610ef257610ef26112d1565b6001600160a01b03928316602091820292909201810191909152305f908152600182526040808220600b5490941682529290915220545f1914610f5857305f908152600160209081526040808320600b546001600160a01b0316845290915290205f1990555b600b5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610f909085905f90869030904290600401611300565b5f604051808303815f87803b158015610fa7575f80fd5b505af1925050508015610fb8575060015b610fc25750611009565b4715611007576009546040516001600160a01b0361010090920491909116904780156108fc02915f818181858888f19350505050158015611005573d5f803e3d5ffd5b505b505b50600b805460ff60a81b19169055565b6001600160a01b0381165f90815260046020526040812054819060ff1615801561050757505050506001600160a01b03165f9081526004602052604090205460ff1690565b5f80841561106f5750600654611081565b831561107e5750600754611081565b505f5b805f036110915782915050610507565b5f6103e861109f838661136f565b6110a9919061129f565b9050801561111557305f90815260056020526040812080548392906110cf9084906112be565b909155505060405181815230906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35b61111f8185611257565b979650505050505050565b5f6020808352835180828501525f5b8181101561115557858101830151858201604001528201611139565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461074c575f80fd5b5f806040838503121561119a575f80fd5b82356111a581611175565b946020939093013593505050565b5f805f606084860312156111c5575f80fd5b83356111d081611175565b925060208401356111e081611175565b929592945050506040919091013590565b5f60208284031215611201575f80fd5b8135610e1781611175565b5f806040838503121561121d575f80fd5b823561122881611175565b9150602083013561123881611175565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561049457610494611243565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f826112b957634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561049457610494611243565b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156112f5575f80fd5b8151610e1781611175565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b8181101561134e5784516001600160a01b031683529383019391830191600101611329565b50506001600160a01b03969096166060850152505050608001529392505050565b80820281158282048414176104945761049461124356fea2646970667358221220e552eff018c903cd9f6c5915d59e2470af53af336d99bae4ffa227c61a7a0a7c64736f6c63430008150033

Deployed Bytecode Sourcemap

4806:8728:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5756:73;;;;;;;;;;;;5787:42;5756:73;;;;;-1:-1:-1;;;;;178:32:1;;;160:51;;148:2;133:18;5756:73:0;;;;;;;;7934:80;;;;;;;;;;-1:-1:-1;8006:5:0;;;;;;;;;;;;-1:-1:-1;;;8006:5:0;;;;7934:80;;;;;;;:::i;11451:161::-;;;;;;;;;;-1:-1:-1;11451:161:0;;;;;:::i;:::-;;:::i;:::-;;;1396:14:1;;1389:22;1371:41;;1359:2;1344:18;11451:161:0;1231:187:1;7590:125:0;;;;;;;;;;-1:-1:-1;5344:15:0;7590:125;;;1569:25:1;;;1557:2;1542:18;7590:125:0;1423:177:1;11889:306:0;;;;;;;;;;-1:-1:-1;11889:306:0;;;;;:::i;:::-;;:::i;12207:139::-;;;;;;;;;;;;;:::i;:::-;;7721:117;;;;;;;;;;-1:-1:-1;7721:117:0;;4993:1;2208:36:1;;2196:2;2181:18;7721:117:0;2066:184:1;5305:54:0;;;;;;;;;;;;5344:15;5305:54;;5838:21;;;;;;;;;;-1:-1:-1;5838:21:0;;;;-1:-1:-1;;;;;5838:21:0;;;5537:31;;;;;;;;;;;;;;;;5910;;;;;;;;;;-1:-1:-1;5910:31:0;;;;-1:-1:-1;;;5910:31:0;;;;;;8245:117;;;;;;;;;;-1:-1:-1;8245:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;8338:16:0;8311:7;8338:16;;;:7;:16;;;;;;;8245:117;5435:42;;;;;;;;;;;;5476:1;5435:42;;1960:94;;;;;;;;;;;;;:::i;5866:37::-;;;;;;;;;;-1:-1:-1;5866:37:0;;;;-1:-1:-1;;;;;5866:37:0;;;8020:80;;;;;;;;;;-1:-1:-1;8072:7:0;1810:6;-1:-1:-1;;;;;1810:6:0;8020:80;;5575:32;;;;;;;;;;;;;;;;7844:84;;;;;;;;;;-1:-1:-1;7918:7:0;;;;;;;;;;;;-1:-1:-1;;;7918:7:0;;;;7844:84;;12358:228;;;;;;;;;;;;;:::i;11274:165::-;;;;;;;;;;-1:-1:-1;11274:165:0;;;;;:::i;:::-;;:::i;5484:46::-;;;;;;;;;;;;5525:5;5484:46;;5366:62;;;;;;;;;;;;;:::i;8106:133::-;;;;;;;;;;-1:-1:-1;8106:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8208:19:0;;;8190:7;8208:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8106:133;2062:192;;;;;;;;;;-1:-1:-1;2062:192:0;;;;;:::i;:::-;;:::i;11451:161::-;11528:4;11545:37;11554:10;11566:7;11575:6;11545:8;:37::i;:::-;-1:-1:-1;11600:4:0;11451:161;;;;;:::o;11889:306::-;-1:-1:-1;;;;;12010:19:0;;11989:4;12010:19;;;:11;:19;;;;;;;;12030:10;12010:31;;;;;;;;-1:-1:-1;;12010:52:0;12006:126;;-1:-1:-1;;;;;12079:19:0;;;;;;:11;:19;;;;;;;;12099:10;12079:31;;;;;;;:41;;12114:6;;12079:19;:41;;12114:6;;12079:41;:::i;:::-;;;;-1:-1:-1;;12006:126:0;12151:36;12161:6;12169:9;12180:6;12151:9;:36::i;:::-;12144:43;11889:306;-1:-1:-1;;;;11889:306:0:o;12207:139::-;1783:7;1810:6;-1:-1:-1;;;;;1810:6:0;452:10;1872:23;1864:68;;;;-1:-1:-1;;;1864:68:0;;;;;;;:::i;:::-;;;;;;;;;12270:11:::1;::::0;-1:-1:-1;;;12270:11:0;::::1;;;12269:12;12261:48;;;::::0;-1:-1:-1;;;12261:48:0;;3960:2:1;12261:48:0::1;::::0;::::1;3942:21:1::0;3999:2;3979:18;;;3972:30;4038:25;4018:18;;;4011:53;4081:18;;12261:48:0::1;3758:347:1::0;12261:48:0::1;12320:11;:18:::0;;-1:-1:-1;;;;12320:18:0::1;-1:-1:-1::0;;;12320:18:0::1;::::0;;12207:139::o;1960:94::-;1783:7;1810:6;-1:-1:-1;;;;;1810:6:0;452:10;1872:23;1864:68;;;;-1:-1:-1;;;1864:68:0;;;;;;;:::i;:::-;2025:21:::1;2043:1;2025:9;:21::i;:::-;1960:94::o:0;12358:228::-;1783:7;1810:6;-1:-1:-1;;;;;1810:6:0;452:10;1872:23;1864:68;;;;-1:-1:-1;;;1864:68:0;;;;;;;:::i;:::-;12421:14:::1;::::0;-1:-1:-1;;;12421:14:0;::::1;;;12420:15;12412:45;;;::::0;-1:-1:-1;;;12412:45:0;;4312:2:1;12412:45:0::1;::::0;::::1;4294:21:1::0;4351:2;4331:18;;;4324:30;-1:-1:-1;;;4370:18:1;;;4363:48;4428:18;;12412:45:0::1;4110:342:1::0;12412:45:0::1;5344:15;12468:10;:25:::0;12504:14:::1;:21:::0;;-1:-1:-1;;;;12504:21:0::1;-1:-1:-1::0;;;12504:21:0::1;::::0;;12549:2:::1;12536:10;:15:::0;;;12562:11:::1;:16:::0;12358:228::o;11274:165::-;11352:4;11369:40;11379:10;11391:9;11402:6;11369:9;:40::i;:::-;-1:-1:-1;11427:4:0;;11274:165;-1:-1:-1;;;11274:165:0:o;5366:62::-;5406:22;5421:7;5344:15;5406:22;:::i;:::-;5366:62;:::o;2062:192::-;1783:7;1810:6;-1:-1:-1;;;;;1810:6:0;452:10;1872:23;1864:68;;;;-1:-1:-1;;;1864:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2151:22:0;::::1;2143:73;;;::::0;-1:-1:-1;;;2143:73:0;;4881:2:1;2143:73:0::1;::::0;::::1;4863:21:1::0;4920:2;4900:18;;;4893:30;4959:34;4939:18;;;4932:62;-1:-1:-1;;;5010:18:1;;;5003:36;5056:19;;2143:73:0::1;4679:402:1::0;2143:73:0::1;2227:19;2237:8;2227:9;:19::i;:::-;2062:192:::0;:::o;11620:261::-;-1:-1:-1;;;;;11715:20:0;;11707:52;;;;-1:-1:-1;;;11707:52:0;;5288:2:1;11707:52:0;;;5270:21:1;5327:2;5307:18;;;5300:30;-1:-1:-1;;;5346:18:1;;;5339:49;5405:18;;11707:52:0;5086:343:1;11707:52:0;-1:-1:-1;;;;;11778:21:0;;11770:53;;;;-1:-1:-1;;;11770:53:0;;5288:2:1;11770:53:0;;;5270:21:1;5327:2;5307:18;;;5300:30;-1:-1:-1;;;5346:18:1;;;5339:49;5405:18;;11770:53:0;5086:343:1;11770:53:0;-1:-1:-1;;;;;11836:19:0;;;;;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;:37;11620:261::o;9830:1395::-;9910:4;9942;-1:-1:-1;;;;;9965:16:0;;9957:64;;;;-1:-1:-1;;;9957:64:0;;5636:2:1;9957:64:0;;;5618:21:1;5675:2;5655:18;;;5648:30;5714:34;5694:18;;;5687:62;-1:-1:-1;;;5765:18:1;;;5758:33;5808:19;;9957:64:0;5434:399:1;9957:64:0;-1:-1:-1;;;;;10040:18:0;;10032:68;;;;-1:-1:-1;;;10032:68:0;;6040:2:1;10032:68:0;;;6022:21:1;6079:2;6059:18;;;6052:30;6118:34;6098:18;;;6091:62;-1:-1:-1;;;6169:18:1;;;6162:35;6214:19;;10032:68:0;5838:401:1;10032:68:0;10128:1;10119:6;:10;10111:55;;;;-1:-1:-1;;;10111:55:0;;6446:2:1;10111:55:0;;;6428:21:1;;;6465:18;;;6458:30;6524:34;6504:18;;;6497:62;6576:18;;10111:55:0;6244:356:1;10111:55:0;10183:25;10200:4;10205:2;10183:16;:25::i;:::-;10179:306;;;10233:11;;-1:-1:-1;;;10233:11:0;;;;10225:45;;;;-1:-1:-1;;;10225:45:0;;6807:2:1;10225:45:0;;;6789:21:1;6846:2;6826:18;;;6819:30;-1:-1:-1;;;6865:18:1;;;6858:52;6927:18;;10225:45:0;6605:346:1;10225:45:0;-1:-1:-1;;;;;10297:20:0;;;;;;:16;:20;;;;;;;;10296:21;:46;;;;-1:-1:-1;;;;;;10321:21:0;;10337:4;10321:21;;10296:46;:69;;;;-1:-1:-1;;;;;;10346:19:0;;10360:4;10346:19;;10296:69;:115;;;;10369:23;10384:4;10389:2;10369:14;:23::i;:::-;:42;;;;-1:-1:-1;10397:14:0;;-1:-1:-1;;;10397:14:0;;;;10396:15;10369:42;10293:191;;;10450:10;;10440:6;10424:13;10434:2;-1:-1:-1;;;;;8338:16:0;8311:7;8338:16;;;:7;:16;;;;;;;8245:117;10424:13;:22;;;;:::i;:::-;:36;;10416:65;;;;-1:-1:-1;;;10416:65:0;;7288:2:1;10416:65:0;;;7270:21:1;7327:2;7307:18;;;7300:30;-1:-1:-1;;;7346:18:1;;;7339:47;7403:18;;10416:65:0;7086:341:1;10416:65:0;10502:19;10512:4;10518:2;10502:9;:19::i;:::-;:31;;;;-1:-1:-1;10527:6:0;;-1:-1:-1;;;10527:6:0;;;;10526:7;10502:31;:57;;;;;10537:22;10554:4;10537:16;:22::i;:::-;10499:269;;;10618:4;10578:19;8338:16;;;:7;:16;;;;;;5406:22;5421:7;5344:15;5406:22;:::i;:::-;10642:11;:28;10639:118;;5406:22;5421:7;5344:15;5406:22;:::i;:::-;10695:6;:22;10692:48;;;10719:21;10728:11;10719:8;:21::i;:::-;10561:207;10499:269;-1:-1:-1;;;;;10784:20:0;;;;;;:14;:20;;;;;;;;;:42;;-1:-1:-1;;;;;;10808:18:0;;;;;;:14;:18;;;;;;;;10784:42;10780:89;;;-1:-1:-1;10852:5:0;10780:89;10879:22;10905:7;10904:89;;10987:6;10904:89;;;10916:68;10930:4;10936:18;10945:4;10951:2;10936:8;:18::i;:::-;10956:19;10966:4;10972:2;10956:9;:19::i;:::-;10977:6;10916:13;:68::i;:::-;10879:114;;11004:23;11031:7;11030:48;;11053:11;;-1:-1:-1;;;11053:11:0;;;;11052:12;:25;;11076:1;11030:48;;11052:25;11067:6;11030:48;;;11042:6;11030:48;-1:-1:-1;;;;;11089:13:0;;;;;;:7;:13;;;;;:32;;11004:74;;-1:-1:-1;11004:74:0;;11089:13;;;:32;;11004:74;;11089:32;:::i;:::-;;;;-1:-1:-1;;;;;;;11123:11:0;;;;;;:7;:11;;;;;:29;;11138:14;;11123:11;:29;;11138:14;;11123:29;:::i;:::-;;;;;;;;11174:2;-1:-1:-1;;;;;11159:34:0;11168:4;-1:-1:-1;;;;;11159:34:0;;11178:14;11159:34;;;;1569:25:1;;1557:2;1542:18;;1423:177;11159:34:0;;;;;;;;-1:-1:-1;11213:4:0;;9830:1395;-1:-1:-1;;;;;;9830:1395:0:o;2262:173::-;2318:16;2337:6;;-1:-1:-1;;;;;2354:17:0;;;-1:-1:-1;;;;;;2354:17:0;;;;;;2387:40;;2337:6;;;;;;;2387:40;;2318:16;2387:40;2307:128;2262:173;:::o;12594:350::-;12669:4;12686:14;12710:7;1783;1810:6;-1:-1:-1;;;;;1810:6:0;;1737:87;12710:7;-1:-1:-1;;;;;12703:14:0;:3;-1:-1:-1;;;;;12703:14:0;;;:45;;;;-1:-1:-1;1783:7:0;1810:6;-1:-1:-1;;;;;12734:14:0;;;1810:6;;12734:14;;12703:45;:83;;;;-1:-1:-1;1783:7:0;1810:6;-1:-1:-1;;;;;1810:6:0;12765:10;:21;;12703:83;:126;;;;-1:-1:-1;;;;;;12804:25:0;;;;;;:20;:25;;;;;;;;12803:26;12703:126;:157;;;;-1:-1:-1;;;;;;12835:25:0;;;;;;:20;:25;;;;;;;;12834:26;12703:157;:178;;;;-1:-1:-1;;;;;;12864:17:0;;;;12703:178;:202;;;;-1:-1:-1;;;;;;12885:20:0;;12900:4;12885:20;;12686:219;12594:350;-1:-1:-1;;;;12594:350:0:o;13334:197::-;-1:-1:-1;;;;;13446:21:0;;13407:4;13446:21;;;:16;:21;;;;;;13407:4;;13446:21;;13445:22;:48;;;;-1:-1:-1;;;;;;;;;13472:21:0;;;;;:16;:21;;;;;;;;13471:22;;13334:197::o;13143:183::-;-1:-1:-1;;;;;13245:21:0;;13211:4;13245:21;;;:16;:21;;;;;;13211:4;;13245:21;;:47;;;;-1:-1:-1;;;;;;;;;13271:21:0;;;;;:16;:21;;;;;;;;13270:22;;13143:183::o;9652:166::-;9746:15;;9714:4;;;;9746:15;;:39;;;;-1:-1:-1;;;;;;9766:19:0;;;;;;:14;:19;;;;;;;;9765:20;9746:39;9731:54;9652:166;-1:-1:-1;;;9652:166:0:o;8923:716::-;6053:6;:13;;-1:-1:-1;;;;6053:13:0;-1:-1:-1;;;6053:13:0;;;9017:16:::1;::::0;;9031:1:::1;9017:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9017:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9017:16:0::1;8993:40;;9062:4;9044;9049:1;9044:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9044:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9088:13:::1;::::0;:20:::1;::::0;;-1:-1:-1;;;9088:20:0;;;;:13;;;::::1;::::0;:18:::1;::::0;:20:::1;::::0;;::::1;::::0;9044:7;;9088:20;;;;;:13;:20:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9078:4;9083:1;9078:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9078:30:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:30;;;;9145:4:::1;9125:26;::::0;;;:11:::1;:26:::0;;;;;;9160:13:::1;::::0;;;::::1;9125:50:::0;;;;;;;;-1:-1:-1;;9125:71:0::1;9121:174;;9233:4;9213:26;::::0;;;:11:::1;:26;::::0;;;;;;;9248:13:::1;::::0;-1:-1:-1;;;;;9248:13:0::1;9213:50:::0;;;;;;;-1:-1:-1;;9213:70:0;;9121:174:::1;9311:13;::::0;:194:::1;::::0;-1:-1:-1;;;9311:194:0;;-1:-1:-1;;;;;9311:13:0;;::::1;::::0;:64:::1;::::0;:194:::1;::::0;9390:11;;9311:13:::1;::::0;9432:4;;9459::::1;::::0;9479:15:::1;::::0;9311:194:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;9307:241;;9530:7;;;9307:241;9563:21;:25:::0;9560:71:::1;;9590:9;::::0;:41:::1;::::0;-1:-1:-1;;;;;9590:9:0::1;::::0;;::::1;::::0;;;::::1;::::0;9609:21:::1;9590:41:::0;::::1;;;::::0;::::1;::::0;;;9609:21;9590:9;:41;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;9560:71;8982:657;6077:1;-1:-1:-1::0;6089:6:0;:14;;-1:-1:-1;;;;6089:14:0;;;8923:716::o;12956:179::-;-1:-1:-1;;;;;13056:21:0;;13023:4;13056:21;;;:16;:21;;;;;;13023:4;;13056:21;;13055:22;:47;;;;-1:-1:-1;;;;;;;;;13081:21:0;;;;;:16;:21;;;;;;;;;12956:179::o;8386:529::-;8482:7;8502:11;8528:5;8524:95;;;-1:-1:-1;8542:10:0;;8524:95;;;8564:6;8560:59;;;-1:-1:-1;8579:11:0;;8560:59;;;-1:-1:-1;5476:1:0;8560:59;8635:3;8642:1;8635:8;8631:28;;8653:6;8646:13;;;;;8631:28;8671:17;5525:5;8691:12;8700:3;8691:6;:12;:::i;:::-;:29;;;;:::i;:::-;8671:49;-1:-1:-1;8735:13:0;;8731:141;;8781:4;8765:22;;;;:7;:22;;;;;:35;;8791:9;;8765:22;:35;;8791:9;;8765:35;:::i;:::-;;;;-1:-1:-1;;8820:40:0;;1569:25:1;;;8843:4:0;;-1:-1:-1;;;;;8820:40:0;;;;;1557:2:1;1542:18;8820:40:0;;;;;;;8731:141;8889:18;8898:9;8889:6;:18;:::i;:::-;8882:25;8386:529;-1:-1:-1;;;;;;;8386:529:0:o;222:548:1:-;334:4;363:2;392;381:9;374:21;424:6;418:13;467:6;462:2;451:9;447:18;440:34;492:1;502:140;516:6;513:1;510:13;502:140;;;611:14;;;607:23;;601:30;577:17;;;596:2;573:26;566:66;531:10;;502:140;;;506:3;691:1;686:2;677:6;666:9;662:22;658:31;651:42;761:2;754;750:7;745:2;737:6;733:15;729:29;718:9;714:45;710:54;702:62;;;;222:548;;;;:::o;775:131::-;-1:-1:-1;;;;;850:31:1;;840:42;;830:70;;896:1;893;886:12;911:315;979:6;987;1040:2;1028:9;1019:7;1015:23;1011:32;1008:52;;;1056:1;1053;1046:12;1008:52;1095:9;1082:23;1114:31;1139:5;1114:31;:::i;:::-;1164:5;1216:2;1201:18;;;;1188:32;;-1:-1:-1;;;911:315:1:o;1605:456::-;1682:6;1690;1698;1751:2;1739:9;1730:7;1726:23;1722:32;1719:52;;;1767:1;1764;1757:12;1719:52;1806:9;1793:23;1825:31;1850:5;1825:31;:::i;:::-;1875:5;-1:-1:-1;1932:2:1;1917:18;;1904:32;1945:33;1904:32;1945:33;:::i;:::-;1605:456;;1997:7;;-1:-1:-1;;;2051:2:1;2036:18;;;;2023:32;;1605:456::o;2255:247::-;2314:6;2367:2;2355:9;2346:7;2342:23;2338:32;2335:52;;;2383:1;2380;2373:12;2335:52;2422:9;2409:23;2441:31;2466:5;2441:31;:::i;2739:388::-;2807:6;2815;2868:2;2856:9;2847:7;2843:23;2839:32;2836:52;;;2884:1;2881;2874:12;2836:52;2923:9;2910:23;2942:31;2967:5;2942:31;:::i;:::-;2992:5;-1:-1:-1;3049:2:1;3034:18;;3021:32;3062:33;3021:32;3062:33;:::i;:::-;3114:7;3104:17;;;2739:388;;;;;:::o;3132:127::-;3193:10;3188:3;3184:20;3181:1;3174:31;3224:4;3221:1;3214:15;3248:4;3245:1;3238:15;3264:128;3331:9;;;3352:11;;;3349:37;;;3366:18;;:::i;3397:356::-;3599:2;3581:21;;;3618:18;;;3611:30;3677:34;3672:2;3657:18;;3650:62;3744:2;3729:18;;3397:356::o;4457:217::-;4497:1;4523;4513:132;;4567:10;4562:3;4558:20;4555:1;4548:31;4602:4;4599:1;4592:15;4630:4;4627:1;4620:15;4513:132;-1:-1:-1;4659:9:1;;4457:217::o;6956:125::-;7021:9;;;7042:10;;;7039:36;;;7055:18;;:::i;7564:127::-;7625:10;7620:3;7616:20;7613:1;7606:31;7656:4;7653:1;7646:15;7680:4;7677:1;7670:15;7696:251;7766:6;7819:2;7807:9;7798:7;7794:23;7790:32;7787:52;;;7835:1;7832;7825:12;7787:52;7867:9;7861:16;7886:31;7911:5;7886:31;:::i;7952:980::-;8214:4;8262:3;8251:9;8247:19;8293:6;8282:9;8275:25;8319:2;8357:6;8352:2;8341:9;8337:18;8330:34;8400:3;8395:2;8384:9;8380:18;8373:31;8424:6;8459;8453:13;8490:6;8482;8475:22;8528:3;8517:9;8513:19;8506:26;;8567:2;8559:6;8555:15;8541:29;;8588:1;8598:195;8612:6;8609:1;8606:13;8598:195;;;8677:13;;-1:-1:-1;;;;;8673:39:1;8661:52;;8768:15;;;;8733:12;;;;8709:1;8627:9;8598:195;;;-1:-1:-1;;;;;;;8849:32:1;;;;8844:2;8829:18;;8822:60;-1:-1:-1;;;8913:3:1;8898:19;8891:35;8810:3;7952:980;-1:-1:-1;;;7952:980:1:o;8937:168::-;9010:9;;;9041;;9058:15;;;9052:22;;9038:37;9028:71;;9079:18;;:::i

Swarm Source

ipfs://e552eff018c903cd9f6c5915d59e2470af53af336d99bae4ffa227c61a7a0a7c

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