ETH Price: $3,364.82 (-8.01%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve163365192023-01-04 22:49:35734 days ago1672872575IN
0x158F0805...6E111D4BE
0 ETH0.0006823928.17244699
Approve158130252022-10-23 19:53:23807 days ago1666554803IN
0x158F0805...6E111D4BE
0 ETH0.0003289513.58074585
Approve157064582022-10-08 22:48:35822 days ago1665269315IN
0x158F0805...6E111D4BE
0 ETH0.0012575527.0407849
Approve156510442022-10-01 4:52:47830 days ago1664599967IN
0x158F0805...6E111D4BE
0 ETH0.000445029.56913348
Approve156259092022-09-27 16:33:23833 days ago1664296403IN
0x158F0805...6E111D4BE
0 ETH0.0023636250.82405882
Approve156062232022-09-24 22:32:35836 days ago1664058755IN
0x158F0805...6E111D4BE
0 ETH0.000212164.56220124
Approve155884642022-09-22 11:04:11838 days ago1663844651IN
0x158F0805...6E111D4BE
0 ETH0.000303796.53246552
Approve155863852022-09-22 4:05:23839 days ago1663819523IN
0x158F0805...6E111D4BE
0 ETH0.000323036.9460576
Approve155804742022-09-21 8:03:35840 days ago1663747415IN
0x158F0805...6E111D4BE
0 ETH0.00026525.70249966
Approve155697692022-09-19 19:55:11841 days ago1663617311IN
0x158F0805...6E111D4BE
0 ETH0.0004039416.67668939
Approve155697502022-09-19 19:51:23841 days ago1663617083IN
0x158F0805...6E111D4BE
0 ETH0.0003385413.97692892
Approve155697452022-09-19 19:50:23841 days ago1663617023IN
0x158F0805...6E111D4BE
0 ETH0.0007112215.29327464
Approve155697292022-09-19 19:47:11841 days ago1663616831IN
0x158F0805...6E111D4BE
0 ETH0.0008025217.25632391
Approve155688742022-09-19 16:53:59841 days ago1663606439IN
0x158F0805...6E111D4BE
0 ETH0.0008104933.46124009
Approve155687842022-09-19 16:35:47841 days ago1663605347IN
0x158F0805...6E111D4BE
0 ETH0.0005373511.554435
Approve155676852022-09-19 12:53:11841 days ago1663591991IN
0x158F0805...6E111D4BE
0 ETH0.000188664.05682675
Approve155599602022-09-18 10:52:35842 days ago1663498355IN
0x158F0805...6E111D4BE
0 ETH0.000151853.26529414
Approve155547802022-09-17 17:26:35843 days ago1663435595IN
0x158F0805...6E111D4BE
0 ETH0.000162256.69868766
Approve155529922022-09-17 11:25:47843 days ago1663413947IN
0x158F0805...6E111D4BE
0 ETH0.000259355.57670798
Approve155520382022-09-17 8:12:59844 days ago1663402379IN
0x158F0805...6E111D4BE
0 ETH0.000438279.42396682
Approve155499172022-09-17 1:04:47844 days ago1663376687IN
0x158F0805...6E111D4BE
0 ETH0.0005272611.33762607
Approve155494772022-09-16 23:36:11844 days ago1663371371IN
0x158F0805...6E111D4BE
0 ETH0.00021594.64254932
Approve155440822022-09-16 5:21:35845 days ago1663305695IN
0x158F0805...6E111D4BE
0 ETH0.000254195.46590084
Approve155430802022-09-16 1:57:59845 days ago1663293479IN
0x158F0805...6E111D4BE
0 ETH0.000305756.57458082
Approve155407742022-09-15 18:08:23845 days ago1663265303IN
0x158F0805...6E111D4BE
0 ETH0.0005795523.92681598
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
156082392022-09-25 5:16:35836 days ago1664082995
0x158F0805...6E111D4BE
0.01661467 ETH
156082392022-09-25 5:16:35836 days ago1664082995
0x158F0805...6E111D4BE
0.01661467 ETH
156062262022-09-24 22:33:11836 days ago1664058791
0x158F0805...6E111D4BE
0.01661467 ETH
156062262022-09-24 22:33:11836 days ago1664058791
0x158F0805...6E111D4BE
0.01661467 ETH
155698322022-09-19 20:07:59841 days ago1663618079
0x158F0805...6E111D4BE
0.01416426 ETH
155698322022-09-19 20:07:59841 days ago1663618079
0x158F0805...6E111D4BE
0.01416426 ETH
155494822022-09-16 23:37:11844 days ago1663371431
0x158F0805...6E111D4BE
0.02379406 ETH
155494822022-09-16 23:37:11844 days ago1663371431
0x158F0805...6E111D4BE
0.02379406 ETH
155378252022-09-15 8:09:59846 days ago1663229399
0x158F0805...6E111D4BE
0.04059241 ETH
155378252022-09-15 8:09:59846 days ago1663229399
0x158F0805...6E111D4BE
0.04059241 ETH
155378192022-09-15 8:08:47846 days ago1663229327
0x158F0805...6E111D4BE
0.04059241 ETH
155378192022-09-15 8:08:47846 days ago1663229327
0x158F0805...6E111D4BE
0.04059241 ETH
155354352022-09-14 22:37:36846 days ago1663195056
0x158F0805...6E111D4BE
0.07062011 ETH
155354352022-09-14 22:37:36846 days ago1663195056
0x158F0805...6E111D4BE
0.07062011 ETH
155305532022-09-14 2:45:57847 days ago1663123557
0x158F0805...6E111D4BE
0.0818805 ETH
155305532022-09-14 2:45:57847 days ago1663123557
0x158F0805...6E111D4BE
0.0818805 ETH
155246512022-09-13 3:21:48848 days ago1663039308
0x158F0805...6E111D4BE
0.10874927 ETH
155246512022-09-13 3:21:48848 days ago1663039308
0x158F0805...6E111D4BE
0.10874927 ETH
155237842022-09-12 23:55:49848 days ago1663026949
0x158F0805...6E111D4BE
0.14500527 ETH
155237842022-09-12 23:55:49848 days ago1663026949
0x158F0805...6E111D4BE
0.14500527 ETH
155235282022-09-12 22:56:19848 days ago1663023379
0x158F0805...6E111D4BE
0.11296364 ETH
155235282022-09-12 22:56:19848 days ago1663023379
0x158F0805...6E111D4BE
0.11296364 ETH
155226602022-09-12 19:34:39848 days ago1663011279
0x158F0805...6E111D4BE
0.07350239 ETH
155226602022-09-12 19:34:39848 days ago1663011279
0x158F0805...6E111D4BE
0.07350239 ETH
155220162022-09-12 17:05:01848 days ago1663002301
0x158F0805...6E111D4BE
0.07389794 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GAO

Compiler Version
v0.8.5+commit.a4f2e591

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-10
*/

//T.ME/JOINGAO
//TRUSTINGAO.COM
//THE BROTHERS OF RYOSHI
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.5;
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }  
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract GAO is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "The Brothers of Ryoshi";
    string constant _symbol = "GAO";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 100_000_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 100) / 100;

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

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 liquidityFee = 0; 
    uint256 marketingFee = 8;
    uint256 totalFee = liquidityFee + marketingFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = 0x1230d9025E3740BBafbeE1511702Ce9BFF6c62e7;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 5; // 0.5%
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IDEXRouter(routerAdress);
        pair = IDEXFactory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[0xcE6346d91D1a976e038f1ED0Ab55183dCdCDb5a7] = true;
        isTxLimitExempt[_owner] = true;
        isTxLimitExempt[0xcE6346d91D1a976e038f1ED0Ab55183dCdCDb5a7] = true;
        isTxLimitExempt[DEAD] = true;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _totalSupply);
    }

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }
        
        if(shouldSwapBack()){ swapBack(); } 

        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = shouldTakeFee(sender) ? takeFee(sender, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 contractTokenBalance = swapThreshold;
        uint256 amountToLiquify = contractTokenBalance.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = contractTokenBalance.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "receiver rejected ETH transfer");

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountETHLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                0xcE6346d91D1a976e038f1ED0Ab55183dCdCDb5a7,
                block.timestamp
            );
            emit AutoLiquify(amountETHLiquidity, amountToLiquify);
        }
    }

    function buyTokens(uint256 amount, address to) internal swapping {
        address[] memory path = new address[](2);
        path[0] = router.WETH();
        path[1] = address(this);

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: amount}(
            0,
            path,
            to,
            block.timestamp
        );
    }

    function clearStuckBalance() external {
        payable(marketingFeeReceiver).transfer(address(this).balance);
    }

    function setWalletLimit(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 1000;
    }

    function setFee(uint256 _liquidityFee, uint256 _marketingFee) external onlyOwner {
         liquidityFee = _liquidityFee; 
         marketingFee = _marketingFee;
         totalFee = liquidityFee + marketingFee;
    }    
    
    event AutoLiquify(uint256 amountETH, uint256 amountBOG);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","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":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a6200048b565b620000599064174876e8006200054c565b600355606460035460646200006f91906200054c565b6200007b91906200041f565b600455600060098190556008600a819055620000979162000404565b600b556064600c55600d80546001600160a01b031916731230d9025e3740bbafbee1511702ce9bff6c62e7179055600f805460ff60a01b1916600160a01b179055600354620000ea906103e8906200041f565b620000f79060056200054c565b6010553480156200010757600080fd5b5060008054336001600160a01b031991821617909155600154600e80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a015591600480820192602092909190829003018186803b1580156200016f57600080fd5b505afa15801562000184573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001aa9190620003d2565b6001600160a01b031663c9c65396600e60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200020757600080fd5b505afa1580156200021c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002429190620003d2565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152306024820152604401602060405180830381600087803b1580156200028a57600080fd5b505af11580156200029f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002c59190620003d2565b600f80546001600160a01b0319166001600160a01b03928316179055306000908152600660209081526040808320600e54851684528252808320600019905582547f8af0d40ca5da7b92d3bb9c0270f7e44c29474459d68780535c79fae93dbcd52a805460ff1990811660019081179092559186168086526008855283862080548416831790557f79266f1d0f7f2960cebeef225053d435943e29a473248a3eebc58e74c83b41d08054841683179055600254909616855282852080549092161790556003548484526005835281842081905590519081528392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000584565b600060208284031215620003e557600080fd5b81516001600160a01b0381168114620003fd57600080fd5b9392505050565b600082198211156200041a576200041a6200056e565b500190565b6000826200043d57634e487b7160e01b600052601260045260246000fd5b500490565b600181815b80851115620004835781600019048211156200046757620004676200056e565b808516156200047557918102915b93841c939080029062000447565b509250929050565b6000620003fd60ff841683600082620004a75750600162000546565b81620004b65750600062000546565b8160018114620004cf5760028114620004da57620004fa565b600191505062000546565b60ff841115620004ee57620004ee6200056e565b50506001821b62000546565b5060208310610133831016604e8410600b84101617156200051f575081810a62000546565b6200052b838362000442565b80600019048211156200054257620005426200056e565b0290505b92915050565b60008160001904831182151516156200056957620005696200056e565b500290565b634e487b7160e01b600052601160045260246000fd5b6113c980620005946000396000f3fe6080604052600436106101395760003560e01c80636ddd1713116100ab578063a8aa1b311161006f578063a8aa1b311461039d578063a9059cbb146103bd578063dd62ed3e146103dd578063e96fada214610423578063f1d5f51714610443578063f887ea401461046357600080fd5b80636ddd1713146102d357806370a08231146102f4578063715018a61461032a578063893d20e81461033f57806395d89b411461037157600080fd5b80632f54bf6e116100fd5780632f54bf6e1461021b578063313ce5671461024a578063364333f41461026657806352f7c9881461027d578063571ac8b01461029d5780636c0a24eb146102bd57600080fd5b80630445b6671461014557806306fdde031461016e578063095ea7b3146101b657806318160ddd146101e657806323b872dd146101fb57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015b60105481565b6040519081526020015b60405180910390f35b34801561017a57600080fd5b506040805180820190915260168152755468652042726f7468657273206f662052796f73686960501b60208201525b60405161016591906111fc565b3480156101c257600080fd5b506101d66101d1366004611167565b610483565b6040519015158152602001610165565b3480156101f257600080fd5b5060035461015b565b34801561020757600080fd5b506101d6610216366004611126565b6104f0565b34801561022757600080fd5b506101d66102363660046110b3565b6000546001600160a01b0391821691161490565b34801561025657600080fd5b5060405160098152602001610165565b34801561027257600080fd5b5061027b6105b2565b005b34801561028957600080fd5b5061027b6102983660046111ac565b6105ee565b3480156102a957600080fd5b506101d66102b83660046110b3565b61063c565b3480156102c957600080fd5b5061015b60045481565b3480156102df57600080fd5b50600f546101d690600160a01b900460ff1681565b34801561030057600080fd5b5061015b61030f3660046110b3565b6001600160a01b031660009081526005602052604090205490565b34801561033657600080fd5b5061027b61064a565b34801561034b57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b34801561037d57600080fd5b5060408051808201909152600381526247414f60e81b60208201526101a9565b3480156103a957600080fd5b50600f54610359906001600160a01b031681565b3480156103c957600080fd5b506101d66103d8366004611167565b6106b9565b3480156103e957600080fd5b5061015b6103f83660046110ed565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561042f57600080fd5b50600d54610359906001600160a01b031681565b34801561044f57600080fd5b5061027b61045e366004611193565b6106c6565b34801561046f57600080fd5b50600e54610359906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104de9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526006602090815260408083203384529091528120546000191461059d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610578918490610711565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6105a884848461074b565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105eb573d6000803e3d6000fd5b50565b6000546001600160a01b031633146106215760405162461bcd60e51b815260040161061890611251565b60405180910390fd5b6009829055600a81905561063581836112e2565b600b555050565b60006104ea82600019610483565b6000546001600160a01b031633146106745760405162461bcd60e51b815260040161061890611251565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006105ab33848461074b565b6000546001600160a01b031633146106f05760405162461bcd60e51b815260040161061890611251565b6103e881600354610701919061131c565b61070b91906112fa565b60045550565b600081848411156107355760405162461bcd60e51b815260040161061891906111fc565b506000610742848661133b565b95945050505050565b60115460009060ff161561076b57610764848484610975565b90506105ab565b600f546001600160a01b0384811691161480159061079757506002546001600160a01b03848116911614155b15610842576001600160a01b03831660009081526008602052604090205460ff16806107e857506004546001600160a01b0384166000908152600560205260409020546107e59084906112e2565b11155b6108425760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610618565b61084a610a5b565b1561085757610857610ab3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546108a9918490610711565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156108de57826108e8565b6108e88584610e7d565b6001600160a01b03851660009081526005602052604090205490915061090e9082610f23565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109629085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546109c6918490610711565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546109f59083610f23565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a499086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610a7c575060115460ff16155b8015610a915750600f54600160a01b900460ff165b8015610aae57506010543060009081526005602052604090205410155b905090565b6011805460ff19166001179055601054600b54600954600091610ae691600291610ae09182908790610f82565b90611001565b90506000610af48383611043565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610b2e57610b2e611368565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610b8257600080fd5b505afa158015610b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bba91906110d0565b81600181518110610bcd57610bcd611368565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610c17908690600090879030904290600401611271565b600060405180830381600087803b158015610c3157600080fd5b505af1158015610c45573d6000803e3d6000fd5b505050506000610c5e824761104390919063ffffffff16565b90506000610c84610c7b600260095461100190919063ffffffff16565b600b5490611043565b90506000610ca66002610ae084610ae060095488610f8290919063ffffffff16565b90506000610cc383610ae0600a5487610f8290919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610d1a576040519150601f19603f3d011682016040523d82523d6000602084013e610d1f565b606091505b5050905080610d705760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610618565b8815610e6757600e5460405163f305d71960e01b8152306004820152602481018b9052600060448201819052606482015273ce6346d91d1a976e038f1ed0ab55183dcdcdb5a760848201524260a48201526001600160a01b039091169063f305d71990859060c4016060604051808303818588803b158015610df157600080fd5b505af1158015610e05573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e2a91906111ce565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080610e9b600c54610ae0600b5486610f8290919063ffffffff16565b30600090815260056020526040902054909150610eb89082610f23565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f099085815260200190565b60405180910390a3610f1b8382611043565b949350505050565b600080610f3083856112e2565b9050838110156105ab5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610618565b600082610f91575060006104ea565b6000610f9d838561131c565b905082610faa85836112fa565b146105ab5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610618565b60006105ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611085565b60006105ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610711565b600081836110a65760405162461bcd60e51b815260040161061891906111fc565b50600061074284866112fa565b6000602082840312156110c557600080fd5b81356105ab8161137e565b6000602082840312156110e257600080fd5b81516105ab8161137e565b6000806040838503121561110057600080fd5b823561110b8161137e565b9150602083013561111b8161137e565b809150509250929050565b60008060006060848603121561113b57600080fd5b83356111468161137e565b925060208401356111568161137e565b929592945050506040919091013590565b6000806040838503121561117a57600080fd5b82356111858161137e565b946020939093013593505050565b6000602082840312156111a557600080fd5b5035919050565b600080604083850312156111bf57600080fd5b50508035926020909101359150565b6000806000606084860312156111e357600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156112295785810183015185820160400152820161120d565b8181111561123b576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112c15784516001600160a01b03168352938301939183019160010161129c565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156112f5576112f5611352565b500190565b60008261131757634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561133657611336611352565b500290565b60008282101561134d5761134d611352565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146105eb57600080fdfea2646970667358221220df083cbac04165a14a64269e0923b5a8bc038bc044ece413b465f044a915de1d64736f6c63430008050033

Deployed Bytecode

0x6080604052600436106101395760003560e01c80636ddd1713116100ab578063a8aa1b311161006f578063a8aa1b311461039d578063a9059cbb146103bd578063dd62ed3e146103dd578063e96fada214610423578063f1d5f51714610443578063f887ea401461046357600080fd5b80636ddd1713146102d357806370a08231146102f4578063715018a61461032a578063893d20e81461033f57806395d89b411461037157600080fd5b80632f54bf6e116100fd5780632f54bf6e1461021b578063313ce5671461024a578063364333f41461026657806352f7c9881461027d578063571ac8b01461029d5780636c0a24eb146102bd57600080fd5b80630445b6671461014557806306fdde031461016e578063095ea7b3146101b657806318160ddd146101e657806323b872dd146101fb57600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015b60105481565b6040519081526020015b60405180910390f35b34801561017a57600080fd5b506040805180820190915260168152755468652042726f7468657273206f662052796f73686960501b60208201525b60405161016591906111fc565b3480156101c257600080fd5b506101d66101d1366004611167565b610483565b6040519015158152602001610165565b3480156101f257600080fd5b5060035461015b565b34801561020757600080fd5b506101d6610216366004611126565b6104f0565b34801561022757600080fd5b506101d66102363660046110b3565b6000546001600160a01b0391821691161490565b34801561025657600080fd5b5060405160098152602001610165565b34801561027257600080fd5b5061027b6105b2565b005b34801561028957600080fd5b5061027b6102983660046111ac565b6105ee565b3480156102a957600080fd5b506101d66102b83660046110b3565b61063c565b3480156102c957600080fd5b5061015b60045481565b3480156102df57600080fd5b50600f546101d690600160a01b900460ff1681565b34801561030057600080fd5b5061015b61030f3660046110b3565b6001600160a01b031660009081526005602052604090205490565b34801561033657600080fd5b5061027b61064a565b34801561034b57600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b34801561037d57600080fd5b5060408051808201909152600381526247414f60e81b60208201526101a9565b3480156103a957600080fd5b50600f54610359906001600160a01b031681565b3480156103c957600080fd5b506101d66103d8366004611167565b6106b9565b3480156103e957600080fd5b5061015b6103f83660046110ed565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561042f57600080fd5b50600d54610359906001600160a01b031681565b34801561044f57600080fd5b5061027b61045e366004611193565b6106c6565b34801561046f57600080fd5b50600e54610359906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104de9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526006602090815260408083203384529091528120546000191461059d576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387166000908152600682528381203382529091529190912054610578918490610711565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6105a884848461074b565b90505b9392505050565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105eb573d6000803e3d6000fd5b50565b6000546001600160a01b031633146106215760405162461bcd60e51b815260040161061890611251565b60405180910390fd5b6009829055600a81905561063581836112e2565b600b555050565b60006104ea82600019610483565b6000546001600160a01b031633146106745760405162461bcd60e51b815260040161061890611251565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b60006105ab33848461074b565b6000546001600160a01b031633146106f05760405162461bcd60e51b815260040161061890611251565b6103e881600354610701919061131c565b61070b91906112fa565b60045550565b600081848411156107355760405162461bcd60e51b815260040161061891906111fc565b506000610742848661133b565b95945050505050565b60115460009060ff161561076b57610764848484610975565b90506105ab565b600f546001600160a01b0384811691161480159061079757506002546001600160a01b03848116911614155b15610842576001600160a01b03831660009081526008602052604090205460ff16806107e857506004546001600160a01b0384166000908152600560205260409020546107e59084906112e2565b11155b6108425760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610618565b61084a610a5b565b1561085757610857610ab3565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546108a9918490610711565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156108de57826108e8565b6108e88584610e7d565b6001600160a01b03851660009081526005602052604090205490915061090e9082610f23565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906109629085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546109c6918490610711565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546109f59083610f23565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a499086815260200190565b60405180910390a35060019392505050565b600f546000906001600160a01b03163314801590610a7c575060115460ff16155b8015610a915750600f54600160a01b900460ff165b8015610aae57506010543060009081526005602052604090205410155b905090565b6011805460ff19166001179055601054600b54600954600091610ae691600291610ae09182908790610f82565b90611001565b90506000610af48383611043565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610b2e57610b2e611368565b6001600160a01b03928316602091820292909201810191909152600e54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610b8257600080fd5b505afa158015610b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bba91906110d0565b81600181518110610bcd57610bcd611368565b6001600160a01b039283166020918202929092010152600e5460405163791ac94760e01b81524792919091169063791ac94790610c17908690600090879030904290600401611271565b600060405180830381600087803b158015610c3157600080fd5b505af1158015610c45573d6000803e3d6000fd5b505050506000610c5e824761104390919063ffffffff16565b90506000610c84610c7b600260095461100190919063ffffffff16565b600b5490611043565b90506000610ca66002610ae084610ae060095488610f8290919063ffffffff16565b90506000610cc383610ae0600a5487610f8290919063ffffffff16565b600d546040519192506000916001600160a01b039091169061753090849084818181858888f193505050503d8060008114610d1a576040519150601f19603f3d011682016040523d82523d6000602084013e610d1f565b606091505b5050905080610d705760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610618565b8815610e6757600e5460405163f305d71960e01b8152306004820152602481018b9052600060448201819052606482015273ce6346d91d1a976e038f1ed0ab55183dcdcdb5a760848201524260a48201526001600160a01b039091169063f305d71990859060c4016060604051808303818588803b158015610df157600080fd5b505af1158015610e05573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e2a91906111ce565b505060408051858152602081018c90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506011805460ff191690555050505050505050565b600080610e9b600c54610ae0600b5486610f8290919063ffffffff16565b30600090815260056020526040902054909150610eb89082610f23565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f099085815260200190565b60405180910390a3610f1b8382611043565b949350505050565b600080610f3083856112e2565b9050838110156105ab5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610618565b600082610f91575060006104ea565b6000610f9d838561131c565b905082610faa85836112fa565b146105ab5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610618565b60006105ab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611085565b60006105ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610711565b600081836110a65760405162461bcd60e51b815260040161061891906111fc565b50600061074284866112fa565b6000602082840312156110c557600080fd5b81356105ab8161137e565b6000602082840312156110e257600080fd5b81516105ab8161137e565b6000806040838503121561110057600080fd5b823561110b8161137e565b9150602083013561111b8161137e565b809150509250929050565b60008060006060848603121561113b57600080fd5b83356111468161137e565b925060208401356111568161137e565b929592945050506040919091013590565b6000806040838503121561117a57600080fd5b82356111858161137e565b946020939093013593505050565b6000602082840312156111a557600080fd5b5035919050565b600080604083850312156111bf57600080fd5b50508035926020909101359150565b6000806000606084860312156111e357600080fd5b8351925060208401519150604084015190509250925092565b600060208083528351808285015260005b818110156112295785810183015185820160400152820161120d565b8181111561123b576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156112c15784516001600160a01b03168352938301939183019160010161129c565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156112f5576112f5611352565b500190565b60008261131757634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561133657611336611352565b500290565b60008282101561134d5761134d611352565b500390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03811681146105eb57600080fdfea2646970667358221220df083cbac04165a14a64269e0923b5a8bc038bc044ece413b465f044a915de1d64736f6c63430008050033

Deployed Bytecode Sourcemap

4142:7758:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5162:54;;;;;;;;;;;;;;;;;;;6498:25:1;;;6486:2;6471:18;5162:54:0;;;;;;;;6247:80;;;;;;;;;;-1:-1:-1;6319:5:0;;;;;;;;;;;;-1:-1:-1;;;6319:5:0;;;;6247:80;;;;;;;:::i;6669:216::-;;;;;;;;;;-1:-1:-1;6669:216:0;;;;;:::i;:::-;;:::i;:::-;;;3640:14:1;;3633:22;3615:41;;3603:2;3588:18;6669:216:0;3570:92:1;5977:88:0;;;;;;;;;;-1:-1:-1;6050:12:0;;5977:88;;7187:370;;;;;;;;;;-1:-1:-1;7187:370:0;;;;;:::i;:::-;;:::i;2380:103::-;;;;;;;;;;-1:-1:-1;2380:103:0;;;;;:::i;:::-;2435:4;2470:5;-1:-1:-1;;;;;2459:16:0;;;2470:5;;2459:16;;2380:103;6071:80;;;;;;;;;;-1:-1:-1;6071:80:0;;4471:1;7914:36:1;;7902:2;7887:18;6071:80:0;7869:87:1;11329:118:0;;;;;;;;;;;;;:::i;:::-;;11605:220;;;;;;;;;;-1:-1:-1;11605:220:0;;;;;:::i;:::-;;:::i;6893:122::-;;;;;;;;;;-1:-1:-1;6893:122:0;;;;;:::i;:::-;;:::i;4546:60::-;;;;;;;;;;;;;;;;5125:30;;;;;;;;;;-1:-1:-1;5125:30:0;;;;-1:-1:-1;;;5125:30:0;;;;;;6417:105;;;;;;;;;;-1:-1:-1;6417:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6501:18:0;6483:7;6501:18;;;:9;:18;;;;;;;6417:105;2489:131;;;;;;;;;;;;;:::i;6333:78::-;;;;;;;;;;-1:-1:-1;6385:7:0;6403:5;-1:-1:-1;;;;;6403:5:0;6333:78;;;-1:-1:-1;;;;;2819:32:1;;;2801:51;;2789:2;2774:18;6333:78:0;2756:102:1;6157:84:0;;;;;;;;;;-1:-1:-1;6231:7:0;;;;;;;;;;;;-1:-1:-1;;;6231:7:0;;;;6157:84;;5097:19;;;;;;;;;;-1:-1:-1;5097:19:0;;;;-1:-1:-1;;;;;5097:19:0;;;7023:156;;;;;;;;;;-1:-1:-1;7023:156:0;;;;;:::i;:::-;;:::i;6528:133::-;;;;;;;;;;-1:-1:-1;6528:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6630:19:0;;;6612:7;6630:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6528:133;4977:80;;;;;;;;;;-1:-1:-1;4977:80:0;;;;-1:-1:-1;;;;;4977:80:0;;;11455:142;;;;;;;;;;-1:-1:-1;11455:142:0;;;;;:::i;:::-;;:::i;5066:24::-;;;;;;;;;;-1:-1:-1;5066:24:0;;;;-1:-1:-1;;;;;5066:24:0;;;6669:216;6773:10;6744:4;6761:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6761:32:0;;;;;;;;;;:41;;;6818:37;6744:4;;6761:32;;6818:37;;;;6796:6;6498:25:1;;6486:2;6471:18;;6453:76;6818:37:0;;;;;;;;-1:-1:-1;6873:4:0;6669:216;;;;;:::o;7187:370::-;-1:-1:-1;;;;;7307:19:0;;7287:4;7307:19;;;:11;:19;;;;;;;;7327:10;7307:31;;;;;;;;-1:-1:-1;;7307:52:0;7304:186;;7409:69;;;;;;;;;;;-1:-1:-1;;;7409:69:0;;;;;;;;-1:-1:-1;;;;;7409:19:0;;-1:-1:-1;7409:19:0;;;:11;:19;;;;;7429:10;7409:31;;;;;;;;;;:69;;7445:6;;7409:35;:69::i;:::-;-1:-1:-1;;;;;7375:19:0;;;;;;:11;:19;;;;;;;;7395:10;7375:31;;;;;;;:103;7304:186;7509:40;7523:6;7531:9;7542:6;7509:13;:40::i;:::-;7502:47;;7187:370;;;;;;:::o;11329:118::-;11386:20;;11378:61;;-1:-1:-1;;;;;11386:20:0;;;;11417:21;11378:61;;;;;11386:20;11378:61;11386:20;11378:61;11417:21;11386:20;11378:61;;;;;;;;;;;;;;;;;;;;;11329:118::o;11605:220::-;2435:4;2470:5;-1:-1:-1;;;;;2470:5:0;2341:10;2459:16;2325:38;;;;-1:-1:-1;;;2325:38:0;;;;;;;:::i;:::-;;;;;;;;;11698:12:::1;:28:::0;;;11739:12:::1;:28:::0;;;11790:27:::1;11754:13:::0;11713;11790:27:::1;:::i;:::-;11779:8;:38:::0;-1:-1:-1;;11605:220:0:o;6893:122::-;6948:4;6972:35;6980:7;-1:-1:-1;;6972:7:0;:35::i;2489:131::-;2435:4;2470:5;-1:-1:-1;;;;;2470:5:0;2341:10;2459:16;2325:38;;;;-1:-1:-1;;;2325:38:0;;;;;;;:::i;:::-;2562:1:::1;2546:18:::0;;-1:-1:-1;;;;;;2546:18:0::1;::::0;;2580:32:::1;::::0;2801:51:1;;;2580:32:0::1;::::0;2789:2:1;2774:18;2580:32:0::1;;;;;;;2489:131::o:0;7023:156::-;7103:4;7127:44;7141:10;7153:9;7164:6;7127:13;:44::i;11455:142::-;2435:4;2470:5;-1:-1:-1;;;;;2470:5:0;2341:10;2459:16;2325:38;;;;-1:-1:-1;;;2325:38:0;;;;;;;:::i;:::-;11585:4:::1;11567:13;11552:12;;:28;;;;:::i;:::-;11551:38;;;;:::i;:::-;11532:16;:57:::0;-1:-1:-1;11455:142:0:o;469:190::-;555:7;591:12;583:6;;;;575:29;;;;-1:-1:-1;;;575:29:0;;;;;;;;:::i;:::-;-1:-1:-1;615:9:0;627:5;631:1;627;:5;:::i;:::-;615:17;469:190;-1:-1:-1;;;;;469:190:0:o;7565:792::-;7677:6;;7657:4;;7677:6;;7674:63;;;7693:41;7708:6;7716:9;7727:6;7693:14;:41::i;:::-;7686:48;;;;7674:63;7774:4;;-1:-1:-1;;;;;7761:17:0;;;7774:4;;7761:17;;;;:38;;-1:-1:-1;7795:4:0;;-1:-1:-1;;;;;7782:17:0;;;7795:4;;7782:17;;7761:38;7757:200;;;-1:-1:-1;;;;;7824:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;7887:16:0;;-1:-1:-1;;;;;7854:20:0;;;;;;:9;:20;;;;;;:29;;7877:6;;7854:29;:::i;:::-;:49;;7824:79;7816:129;;;;-1:-1:-1;;;7816:129:0;;4697:2:1;7816:129:0;;;4679:21:1;4736:2;4716:18;;;4709:30;4775:34;4755:18;;;4748:62;-1:-1:-1;;;4826:18:1;;;4819:35;4871:19;;7816:129:0;4669:227:1;7816:129:0;7980:16;:14;:16::i;:::-;7977:35;;;7999:10;:8;:10::i;:::-;8045:53;;;;;;;;;;;-1:-1:-1;;;8045:53:0;;;;;;;;-1:-1:-1;;;;;8045:17:0;;-1:-1:-1;8045:17:0;;;:9;:17;;;;;;;;:53;;8067:6;;8045:21;:53::i;:::-;-1:-1:-1;;;;;8025:17:0;;;;;;:9;:17;;;;;;;;:73;;;;8794:11;:19;;;;;;;;8793:20;8136:56;;8186:6;8136:56;;;8160:23;8168:6;8176;8160:7;:23::i;:::-;-1:-1:-1;;;;;8226:20:0;;;;;;:9;:20;;;;;;8111:81;;-1:-1:-1;8226:40:0;;8111:81;8226:24;:40::i;:::-;-1:-1:-1;;;;;8203:20:0;;;;;;;:9;:20;;;;;;;:63;;;;8284:43;;;;;;;;;;8312:14;6498:25:1;;6486:2;6471:18;;6453:76;8284:43:0;;;;;;;;-1:-1:-1;8345:4:0;;7565:792;-1:-1:-1;;;;7565:792:0:o;8369:330::-;8499:53;;;;;;;;;;;-1:-1:-1;;;8499:53:0;;;;;;;;-1:-1:-1;;;;;8499:17:0;;8462:4;8499:17;;;:9;:17;;;;;;;:53;;8521:6;;8499:21;:53::i;:::-;-1:-1:-1;;;;;8479:17:0;;;;;;;:9;:17;;;;;;:73;;;;8586:20;;;;;;;:32;;8611:6;8586:24;:32::i;:::-;-1:-1:-1;;;;;8563:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8634:35;;;;;;;;;;8662:6;6498:25:1;;6486:2;6471:18;;6453:76;8634:35:0;;;;;;;;-1:-1:-1;8687:4:0;8369:330;;;;;:::o;9166:197::-;9253:4;;9215;;-1:-1:-1;;;;;9253:4:0;9239:10;:18;;;;:38;;-1:-1:-1;9271:6:0;;;;9270:7;9239:38;:62;;;;-1:-1:-1;9290:11:0;;-1:-1:-1;;;9290:11:0;;;;9239:62;:116;;;;-1:-1:-1;9342:13:0;;9332:4;9314:24;;;;:9;:24;;;;;;:41;;9239:116;9232:123;;9166:197;:::o;9371:1572::-;5271:6;:13;;-1:-1:-1;;5271:13:0;5280:4;5271:13;;;9451::::1;::::0;9544:8:::1;::::0;9526:12:::1;::::0;5271:6;;9501:59:::1;::::0;9558:1:::1;::::0;9501:52:::1;::::0;;;9451:13;;9501:24:::1;:38::i;:::-;:42:::0;::::1;:52::i;:59::-;9475:85:::0;-1:-1:-1;9571:20:0::1;9594:41;:20:::0;9475:85;9594:24:::1;:41::i;:::-;9672:16;::::0;;9686:1:::1;9672:16:::0;;;;;::::1;::::0;;9571:64;;-1:-1:-1;9648:21:0::1;::::0;9672:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9672:16:0::1;9648:40;;9717:4;9699;9704:1;9699:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9699:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9743:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9743:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9699:7;;9743:13;;;;;:6;:13;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9733:4;9738:1;9733:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9733:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9827:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;9827:188:0;;9793:21:::1;::::0;9827:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;9899:12;;9769:21:::1;::::0;9942:4;;9969::::1;::::0;9989:15:::1;::::0;9827:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10026:17;10046:40;10072:13;10046:21;:25;;:40;;;;:::i;:::-;10026:60;;10097:19;10119:33;10132:19;10149:1;10132:12;;:16;;:19;;;;:::i;:::-;10119:8;::::0;;:12:::1;:33::i;:::-;10097:55;;10163:26;10192:51;10241:1;10192:44;10224:11;10192:27;10206:12;;10192:9;:13;;:27;;;;:::i;:51::-;10163:80;;10254:26;10283:44;10315:11;10283:27;10297:12;;10283:9;:13;;:27;;;;:::i;:44::-;10401:20;::::0;10393:77:::1;::::0;10254:73;;-1:-1:-1;10343:21:0::1;::::0;-1:-1:-1;;;;;10401:20:0;;::::1;::::0;10460:5:::1;::::0;10254:73;;10343:21;10393:77;10343:21;10393:77;10254:73;10401:20;10460:5;10393:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10342:128;;;10489:16;10481:59;;;::::0;-1:-1:-1;;;10481:59:0;;5459:2:1;10481:59:0::1;::::0;::::1;5441:21:1::0;5498:2;5478:18;;;5471:30;5537:32;5517:18;;;5510:60;5587:18;;10481:59:0::1;5431:180:1::0;10481:59:0::1;10556:19:::0;;10553:383:::1;;10591:6;::::0;:265:::1;::::0;-1:-1:-1;;;10591:265:0;;10667:4:::1;10591:265;::::0;::::1;3204:34:1::0;3254:18;;;3247:34;;;10591:6:0::1;3297:18:1::0;;;3290:34;;;3340:18;;;3333:34;10765:42:0::1;3383:19:1::0;;;3376:44;10826:15:0::1;3436:19:1::0;;;3429:35;-1:-1:-1;;;;;10591:6:0;;::::1;::::0;:22:::1;::::0;10621:18;;3138:19:1;;10591:265:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10876:48:0::1;::::0;;7693:25:1;;;7749:2;7734:18;;7727:34;;;10876:48:0::1;::::0;-1:-1:-1;7666:18:1;10876:48:0::1;;;;;;;10553:383;-1:-1:-1::0;;5289:6:0;:14;;-1:-1:-1;;5289:14:0;;;-1:-1:-1;;;;;;;;9371:1572:0:o;8829:329::-;8896:7;8916:17;8936:40;8961:14;;8936:20;8947:8;;8936:6;:10;;:20;;;;:::i;:40::-;9032:4;9014:24;;;;:9;:24;;;;;;8916:60;;-1:-1:-1;9014:39:0;;8916:60;9014:28;:39::i;:::-;9005:4;8987:24;;;;:9;:24;;;;;;;:66;;;;9069:42;;-1:-1:-1;;;;;9069:42:0;;;;;;;9101:9;6498:25:1;;6486:2;6471:18;;6453:76;9069:42:0;;;;;;;;9129:21;:6;9140:9;9129:10;:21::i;:::-;9122:28;8829:329;-1:-1:-1;;;;8829:329:0:o;142:179::-;200:7;;232:5;236:1;232;:5;:::i;:::-;220:17;;261:1;256;:6;;248:46;;;;-1:-1:-1;;;248:46:0;;5103:2:1;248:46:0;;;5085:21:1;5142:2;5122:18;;;5115:30;5181:29;5161:18;;;5154:57;5228:18;;248:46:0;5075:177:1;665:246:0;723:7;747:6;743:47;;-1:-1:-1;777:1:0;770:8;;743:47;800:9;812:5;816:1;812;:5;:::i;:::-;800:17;-1:-1:-1;845:1:0;836:5;840:1;800:17;836:5;:::i;:::-;:10;828:56;;;;-1:-1:-1;;;828:56:0;;5818:2:1;828:56:0;;;5800:21:1;5857:2;5837:18;;;5830:30;5896:34;5876:18;;;5869:62;-1:-1:-1;;;5947:18:1;;;5940:31;5988:19;;828:56:0;5790:223:1;917:132:0;975:7;1002:39;1006:1;1009;1002:39;;;;;;;;;;;;;;;;;:3;:39::i;327:136::-;385:7;412:43;416:1;419;412:43;;;;;;;;;;;;;;;;;:3;:43::i;1055:189::-;1141:7;1176:12;1169:5;1161:28;;;;-1:-1:-1;;;1161:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1200:9:0;1212:5;1216:1;1212;:5;:::i;14:247:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;142:1;139;132:12;94:2;181:9;168:23;200:31;225:5;200:31;:::i;266:251::-;336:6;389:2;377:9;368:7;364:23;360:32;357:2;;;405:1;402;395:12;357:2;437:9;431:16;456:31;481:5;456:31;:::i;522:388::-;590:6;598;651:2;639:9;630:7;626:23;622:32;619:2;;;667:1;664;657:12;619:2;706:9;693:23;725:31;750:5;725:31;:::i;:::-;775:5;-1:-1:-1;832:2:1;817:18;;804:32;845:33;804:32;845:33;:::i;:::-;897:7;887:17;;;609:301;;;;;:::o;915:456::-;992:6;1000;1008;1061:2;1049:9;1040:7;1036:23;1032:32;1029:2;;;1077:1;1074;1067:12;1029:2;1116:9;1103:23;1135:31;1160:5;1135:31;:::i;:::-;1185:5;-1:-1:-1;1242:2:1;1227:18;;1214:32;1255:33;1214:32;1255:33;:::i;:::-;1019:352;;1307:7;;-1:-1:-1;;;1361:2:1;1346:18;;;;1333:32;;1019:352::o;1376:315::-;1444:6;1452;1505:2;1493:9;1484:7;1480:23;1476:32;1473:2;;;1521:1;1518;1511:12;1473:2;1560:9;1547:23;1579:31;1604:5;1579:31;:::i;:::-;1629:5;1681:2;1666:18;;;;1653:32;;-1:-1:-1;;;1463:228:1:o;1696:180::-;1755:6;1808:2;1796:9;1787:7;1783:23;1779:32;1776:2;;;1824:1;1821;1814:12;1776:2;-1:-1:-1;1847:23:1;;1766:110;-1:-1:-1;1766:110:1:o;1881:248::-;1949:6;1957;2010:2;1998:9;1989:7;1985:23;1981:32;1978:2;;;2026:1;2023;2016:12;1978:2;-1:-1:-1;;2049:23:1;;;2119:2;2104:18;;;2091:32;;-1:-1:-1;1968:161:1:o;2134:306::-;2222:6;2230;2238;2291:2;2279:9;2270:7;2266:23;2262:32;2259:2;;;2307:1;2304;2297:12;2259:2;2336:9;2330:16;2320:26;;2386:2;2375:9;2371:18;2365:25;2355:35;;2430:2;2419:9;2415:18;2409:25;2399:35;;2249:191;;;;;:::o;3893:597::-;4005:4;4034:2;4063;4052:9;4045:21;4095:6;4089:13;4138:6;4133:2;4122:9;4118:18;4111:34;4163:1;4173:140;4187:6;4184:1;4181:13;4173:140;;;4282:14;;;4278:23;;4272:30;4248:17;;;4267:2;4244:26;4237:66;4202:10;;4173:140;;;4331:6;4328:1;4325:13;4322:2;;;4401:1;4396:2;4387:6;4376:9;4372:22;4368:31;4361:42;4322:2;-1:-1:-1;4474:2:1;4453:15;-1:-1:-1;;4449:29:1;4434:45;;;;4481:2;4430:54;;4014:476;-1:-1:-1;;;4014:476:1:o;6018:329::-;6220:2;6202:21;;;6259:1;6239:18;;;6232:29;-1:-1:-1;;;6292:2:1;6277:18;;6270:36;6338:2;6323:18;;6192:155::o;6534:980::-;6796:4;6844:3;6833:9;6829:19;6875:6;6864:9;6857:25;6901:2;6939:6;6934:2;6923:9;6919:18;6912:34;6982:3;6977:2;6966:9;6962:18;6955:31;7006:6;7041;7035:13;7072:6;7064;7057:22;7110:3;7099:9;7095:19;7088:26;;7149:2;7141:6;7137:15;7123:29;;7170:1;7180:195;7194:6;7191:1;7188:13;7180:195;;;7259:13;;-1:-1:-1;;;;;7255:39:1;7243:52;;7350:15;;;;7315:12;;;;7291:1;7209:9;7180:195;;;-1:-1:-1;;;;;;;7431:32:1;;;;7426:2;7411:18;;7404:60;-1:-1:-1;;;7495:3:1;7480:19;7473:35;7392:3;6805:709;-1:-1:-1;;;6805:709:1:o;7961:128::-;8001:3;8032:1;8028:6;8025:1;8022:13;8019:2;;;8038:18;;:::i;:::-;-1:-1:-1;8074:9:1;;8009:80::o;8094:217::-;8134:1;8160;8150:2;;8204:10;8199:3;8195:20;8192:1;8185:31;8239:4;8236:1;8229:15;8267:4;8264:1;8257:15;8150:2;-1:-1:-1;8296:9:1;;8140:171::o;8316:168::-;8356:7;8422:1;8418;8414:6;8410:14;8407:1;8404:21;8399:1;8392:9;8385:17;8381:45;8378:2;;;8429:18;;:::i;:::-;-1:-1:-1;8469:9:1;;8368:116::o;8489:125::-;8529:4;8557:1;8554;8551:8;8548:2;;;8562:18;;:::i;:::-;-1:-1:-1;8599:9:1;;8538:76::o;8619:127::-;8680:10;8675:3;8671:20;8668:1;8661:31;8711:4;8708:1;8701:15;8735:4;8732:1;8725:15;8751:127;8812:10;8807:3;8803:20;8800:1;8793:31;8843:4;8840:1;8833:15;8867:4;8864:1;8857:15;9015:131;-1:-1:-1;;;;;9090:31:1;;9080:42;;9070:2;;9136:1;9133;9126:12

Swarm Source

ipfs://df083cbac04165a14a64269e0923b5a8bc038bc044ece413b465f044a915de1d

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.