ETH Price: $2,801.84 (+2.16%)

Contract

0xad228909188Cd66172633fAB27D56053F23C66F8
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve153261042022-08-12 9:04:24924 days ago1660295064IN
0xad228909...3F23C66F8
0 ETH0.0011540524.81524891
Approve153258452022-08-12 8:03:17924 days ago1660291397IN
0xad228909...3F23C66F8
0 ETH0.000877718.87283823
Approve153256092022-08-12 7:09:25924 days ago1660288165IN
0xad228909...3F23C66F8
0 ETH0.000461719.92815855
Approve153255052022-08-12 6:45:40924 days ago1660286740IN
0xad228909...3F23C66F8
0 ETH0.0004768510.25355836
Approve153251282022-08-12 5:19:07924 days ago1660281547IN
0xad228909...3F23C66F8
0 ETH0.0005312211.4227609
Approve153251232022-08-12 5:17:49924 days ago1660281469IN
0xad228909...3F23C66F8
0 ETH0.0004990510.73092007
Approve153249992022-08-12 4:48:33924 days ago1660279713IN
0xad228909...3F23C66F8
0 ETH0.000660414.20035008
Approve153249692022-08-12 4:42:46924 days ago1660279366IN
0xad228909...3F23C66F8
0 ETH0.0009545120.52449412
Approve153249682022-08-12 4:42:38924 days ago1660279358IN
0xad228909...3F23C66F8
0 ETH0.0009301220
Approve153249662022-08-12 4:41:31924 days ago1660279291IN
0xad228909...3F23C66F8
0 ETH0.0008298617.84421189
Approve153249462022-08-12 4:35:35924 days ago1660278935IN
0xad228909...3F23C66F8
0 ETH0.000499110.73208324
Approve153249352022-08-12 4:33:27924 days ago1660278807IN
0xad228909...3F23C66F8
0 ETH0.0006061713.03426984
Approve153249162022-08-12 4:27:59924 days ago1660278479IN
0xad228909...3F23C66F8
0 ETH0.0006422213.80947878
Approve153249142022-08-12 4:27:53924 days ago1660278473IN
0xad228909...3F23C66F8
0 ETH0.0007924317.03950124
Approve153249132022-08-12 4:27:32924 days ago1660278452IN
0xad228909...3F23C66F8
0 ETH0.0007337215.7770519
Approve153249132022-08-12 4:27:32924 days ago1660278452IN
0xad228909...3F23C66F8
0 ETH0.0010770223.1588519
Approve153249122022-08-12 4:27:24924 days ago1660278444IN
0xad228909...3F23C66F8
0 ETH0.0007768616.70461487
Approve153249112022-08-12 4:27:01924 days ago1660278421IN
0xad228909...3F23C66F8
0 ETH0.0007173615.42517839
Approve153249112022-08-12 4:27:01924 days ago1660278421IN
0xad228909...3F23C66F8
0 ETH0.0007382915.87517839
Approve153249112022-08-12 4:27:01924 days ago1660278421IN
0xad228909...3F23C66F8
0 ETH0.0007382915.87517839
Approve153249112022-08-12 4:27:01924 days ago1660278421IN
0xad228909...3F23C66F8
0 ETH0.0007382915.87517839
Approve153249112022-08-12 4:27:01924 days ago1660278421IN
0xad228909...3F23C66F8
0 ETH0.0007382915.87517839
Approve153249112022-08-12 4:27:01924 days ago1660278421IN
0xad228909...3F23C66F8
0 ETH0.0007382915.87517839
Approve153248982022-08-12 4:23:58924 days ago1660278238IN
0xad228909...3F23C66F8
0 ETH0.000762116.38724791
Renounce Ownersh...153248972022-08-12 4:22:59924 days ago1660278179IN
0xad228909...3F23C66F8
0 ETH0.0002937112.95059189
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
153432532022-08-15 1:48:16921 days ago1660528096
0xad228909...3F23C66F8
0.00495912 ETH
153432532022-08-15 1:48:16921 days ago1660528096
0xad228909...3F23C66F8
0.00495912 ETH
153267772022-08-12 11:41:23924 days ago1660304483
0xad228909...3F23C66F8
0.00631442 ETH
153267772022-08-12 11:41:23924 days ago1660304483
0xad228909...3F23C66F8
0.00631442 ETH
153251752022-08-12 5:27:50924 days ago1660282070
0xad228909...3F23C66F8
0.00761427 ETH
153251752022-08-12 5:27:50924 days ago1660282070
0xad228909...3F23C66F8
0.00761427 ETH
153249712022-08-12 4:43:33924 days ago1660279413
0xad228909...3F23C66F8
0.00859378 ETH
153249712022-08-12 4:43:33924 days ago1660279413
0xad228909...3F23C66F8
0.00859378 ETH
153249682022-08-12 4:42:38924 days ago1660279358
0xad228909...3F23C66F8
0.00813939 ETH
153249682022-08-12 4:42:38924 days ago1660279358
0xad228909...3F23C66F8
0.00813939 ETH
153249522022-08-12 4:36:46924 days ago1660279006
0xad228909...3F23C66F8
0.01013633 ETH
153249522022-08-12 4:36:46924 days ago1660279006
0xad228909...3F23C66F8
0.01013633 ETH
153249382022-08-12 4:34:16924 days ago1660278856
0xad228909...3F23C66F8
0.01367725 ETH
153249382022-08-12 4:34:16924 days ago1660278856
0xad228909...3F23C66F8
0.01367725 ETH
153249212022-08-12 4:29:41924 days ago1660278581
0xad228909...3F23C66F8
0.01583102 ETH
153249212022-08-12 4:29:41924 days ago1660278581
0xad228909...3F23C66F8
0.01583102 ETH
153249182022-08-12 4:28:58924 days ago1660278538
0xad228909...3F23C66F8
0.01602571 ETH
153249182022-08-12 4:28:58924 days ago1660278538
0xad228909...3F23C66F8
0.01602571 ETH
153249172022-08-12 4:28:32924 days ago1660278512
0xad228909...3F23C66F8
0.01687087 ETH
153249172022-08-12 4:28:32924 days ago1660278512
0xad228909...3F23C66F8
0.01687087 ETH
153248952022-08-12 4:21:54924 days ago1660278114
0xad228909...3F23C66F8
0.0115312 ETH
153248952022-08-12 4:21:54924 days ago1660278114
0xad228909...3F23C66F8
0.0115312 ETH
153248862022-08-12 4:19:54924 days ago1660277994
0xad228909...3F23C66F8
0.0084116 ETH
153248862022-08-12 4:19:54924 days ago1660277994
0xad228909...3F23C66F8
0.0084116 ETH
153248862022-08-12 4:19:54924 days ago1660277994
0xad228909...3F23C66F8
0.00894838 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
HANZO

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-08-12
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.16;
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 HANZO is ERC20, Ownable {
    using SafeMath for uint256;
    address routerAdress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = unicode"Oni no Hanzō";
    string constant _symbol = "HATTORI HANZO";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 1_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = _totalSupply;

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

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

    uint256 marketingFee = 2;
    address public marketingFeeReceiver = msg.sender;

    IDEXRouter public router;
    address public pair;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 10000 * 20;
    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[_owner] = true;
        isTxLimitExempt[_owner] = 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(marketingFee).div(100);
        _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 amountToSwap = contractTokenBalance;

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

          router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

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

    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 setmarketingFee(uint256 _marketingFee) external onlyOwner {
        marketingFee = _marketingFee;
        require(marketingFee<=10); //Tax must be less than 10%
    }
    
    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":"amountPercent","type":"uint256"}],"name":"setWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"setmarketingFee","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"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a62000411565b6200005790620f424062000429565b600381905560048190556002600955600a80546001600160a01b03191633179055600c805460ff60a01b1916600160a01b1790556200009a90612710906200044b565b620000a790601462000429565b600d55348015620000b757600080fd5b5060008054336001600160a01b031991821617909155600154600b80546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000124573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200014a91906200046e565b6001600160a01b031663c9c65396600b60009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001ac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001d291906200046e565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201523060248201526044016020604051808303816000875af11580156200021f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024591906200046e565b600c80546001600160a01b0319166001600160a01b03928316179055306000908152600660209081526040808320600b548516845282528083206000199055825490931680835260078252838320805460ff1990811660019081179092556008845285852080549091169091179055600354600583528484208190559351938452928392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000499565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000353578160001904821115620003375762000337620002fc565b808516156200034557918102915b93841c939080029062000317565b509250929050565b6000826200036c575060016200040b565b816200037b575060006200040b565b81600181146200039457600281146200039f57620003bf565b60019150506200040b565b60ff841115620003b357620003b3620002fc565b50506001821b6200040b565b5060208310610133831016604e8410600b8410161715620003e4575081810a6200040b565b620003f0838362000312565b8060001904821115620004075762000407620002fc565b0290505b92915050565b60006200042260ff8416836200035b565b9392505050565b6000816000190483118215151615620004465762000446620002fc565b500290565b6000826200046957634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200048157600080fd5b81516001600160a01b03811681146200042257600080fd5b6111ae80620004a96000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab578063a8aa1b311161006f578063a8aa1b311461039e578063a9059cbb146103be578063dd62ed3e146103de578063e96fada214610424578063f1d5f51714610444578063f887ea401461046457600080fd5b806370a08231146102cb578063715018a614610301578063893d20e8146103165780638c9a5a311461034857806395d89b411461036857600080fd5b80632f54bf6e116100fd5780632f54bf6e14610212578063313ce56714610241578063364333f41461025d578063571ac8b0146102745780636c0a24eb146102945780636ddd1713146102aa57600080fd5b80630445b6671461014557806306fdde031461016e578063095ea7b3146101ad57806318160ddd146101dd57806323b872dd146101f257600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015b600d5481565b6040519081526020015b60405180910390f35b34801561017a57600080fd5b5060408051808201909152600d81526c4f6e69206e6f2048616e7ac58d60981b60208201525b6040516101659190610ef8565b3480156101b957600080fd5b506101cd6101c8366004610f5b565b610484565b6040519015158152602001610165565b3480156101e957600080fd5b5060035461015b565b3480156101fe57600080fd5b506101cd61020d366004610f87565b6104f1565b34801561021e57600080fd5b506101cd61022d366004610fc8565b6000546001600160a01b0391821691161490565b34801561024d57600080fd5b5060405160098152602001610165565b34801561026957600080fd5b506102726105b3565b005b34801561028057600080fd5b506101cd61028f366004610fc8565b6105ef565b3480156102a057600080fd5b5061015b60045481565b3480156102b657600080fd5b50600c546101cd90600160a01b900460ff1681565b3480156102d757600080fd5b5061015b6102e6366004610fc8565b6001600160a01b031660009081526005602052604090205490565b34801561030d57600080fd5b506102726105fd565b34801561032257600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b34801561035457600080fd5b50610272610363366004610fe5565b610675565b34801561037457600080fd5b5060408051808201909152600d81526c484154544f52492048414e5a4f60981b60208201526101a0565b3480156103aa57600080fd5b50600c54610330906001600160a01b031681565b3480156103ca57600080fd5b506101cd6103d9366004610f5b565b6106b2565b3480156103ea57600080fd5b5061015b6103f9366004610ffe565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561043057600080fd5b50600a54610330906001600160a01b031681565b34801561045057600080fd5b5061027261045f366004610fe5565b6106bf565b34801561047057600080fd5b50600b54610330906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104df9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526006602090815260408083203384529091528120546000191461059e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461057991849061070a565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6105a9848484610744565b90505b9392505050565b600a546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105ec573d6000803e3d6000fd5b50565b60006104eb82600019610484565b6000546001600160a01b031633146106305760405162461bcd60e51b815260040161062790611037565b60405180910390fd5b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b0316331461069f5760405162461bcd60e51b815260040161062790611037565b6009819055600a8111156105ec57600080fd5b60006105ac338484610744565b6000546001600160a01b031633146106e95760405162461bcd60e51b815260040161062790611037565b6103e8816003546106fa919061106d565b610704919061108c565b60045550565b6000818484111561072e5760405162461bcd60e51b81526004016106279190610ef8565b50600061073b84866110ae565b95945050505050565b600e5460009060ff16156107645761075d84848461096e565b90506105ac565b600c546001600160a01b0384811691161480159061079057506002546001600160a01b03848116911614155b1561083b576001600160a01b03831660009081526008602052604090205460ff16806107e157506004546001600160a01b0384166000908152600560205260409020546107de9084906110c1565b11155b61083b5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610627565b610843610a54565b1561085057610850610aac565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546108a291849061070a565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156108d757826108e1565b6108e18584610cba565b6001600160a01b0385166000908152600560205260409020549091506109079082610d65565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061095b9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546109bf91849061070a565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546109ee9083610d65565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a429086815260200190565b60405180910390a35060019392505050565b600c546000906001600160a01b03163314801590610a755750600e5460ff16155b8015610a8a5750600c54600160a01b900460ff165b8015610aa75750600d543060009081526005602052604090205410155b905090565b600e805460ff19166001179055600d54604080516002808252606082018352839260009291906020830190803683370190505090503081600081518110610af557610af56110d4565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7291906110ea565b81600181518110610b8557610b856110d4565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b815291169063791ac94790610bcb908590600090869030904290600401611107565b600060405180830381600087803b158015610be557600080fd5b505af1158015610bf9573d6000803e3d6000fd5b5050600a54604051479350600092506001600160a01b039091169061753090849084818181858888f193505050503d8060008114610c53576040519150601f19603f3d011682016040523d82523d6000602084013e610c58565b606091505b5050905080610ca95760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610627565b5050600e805460ff19169055505050565b600080610cdd6064610cd760095486610dc490919063ffffffff16565b90610e46565b30600090815260056020526040902054909150610cfa9082610d65565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d4b9085815260200190565b60405180910390a3610d5d8382610e88565b949350505050565b600080610d7283856110c1565b9050838110156105ac5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610627565b600082600003610dd6575060006104eb565b6000610de2838561106d565b905082610def858361108c565b146105ac5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610627565b60006105ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610eca565b60006105ac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061070a565b60008183610eeb5760405162461bcd60e51b81526004016106279190610ef8565b50600061073b848661108c565b600060208083528351808285015260005b81811015610f2557858101830151858201604001528201610f09565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105ec57600080fd5b60008060408385031215610f6e57600080fd5b8235610f7981610f46565b946020939093013593505050565b600080600060608486031215610f9c57600080fd5b8335610fa781610f46565b92506020840135610fb781610f46565b929592945050506040919091013590565b600060208284031215610fda57600080fd5b81356105ac81610f46565b600060208284031215610ff757600080fd5b5035919050565b6000806040838503121561101157600080fd5b823561101c81610f46565b9150602083013561102c81610f46565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561108757611087611057565b500290565b6000826110a957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104eb576104eb611057565b808201808211156104eb576104eb611057565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156110fc57600080fd5b81516105ac81610f46565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156111575784516001600160a01b031683529383019391830191600101611132565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ae4a6148e56d710f10959b70d38a39531a1101242686d1ac714a7b8a8c6bf8b864736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab578063a8aa1b311161006f578063a8aa1b311461039e578063a9059cbb146103be578063dd62ed3e146103de578063e96fada214610424578063f1d5f51714610444578063f887ea401461046457600080fd5b806370a08231146102cb578063715018a614610301578063893d20e8146103165780638c9a5a311461034857806395d89b411461036857600080fd5b80632f54bf6e116100fd5780632f54bf6e14610212578063313ce56714610241578063364333f41461025d578063571ac8b0146102745780636c0a24eb146102945780636ddd1713146102aa57600080fd5b80630445b6671461014557806306fdde031461016e578063095ea7b3146101ad57806318160ddd146101dd57806323b872dd146101f257600080fd5b3661014057005b600080fd5b34801561015157600080fd5b5061015b600d5481565b6040519081526020015b60405180910390f35b34801561017a57600080fd5b5060408051808201909152600d81526c4f6e69206e6f2048616e7ac58d60981b60208201525b6040516101659190610ef8565b3480156101b957600080fd5b506101cd6101c8366004610f5b565b610484565b6040519015158152602001610165565b3480156101e957600080fd5b5060035461015b565b3480156101fe57600080fd5b506101cd61020d366004610f87565b6104f1565b34801561021e57600080fd5b506101cd61022d366004610fc8565b6000546001600160a01b0391821691161490565b34801561024d57600080fd5b5060405160098152602001610165565b34801561026957600080fd5b506102726105b3565b005b34801561028057600080fd5b506101cd61028f366004610fc8565b6105ef565b3480156102a057600080fd5b5061015b60045481565b3480156102b657600080fd5b50600c546101cd90600160a01b900460ff1681565b3480156102d757600080fd5b5061015b6102e6366004610fc8565b6001600160a01b031660009081526005602052604090205490565b34801561030d57600080fd5b506102726105fd565b34801561032257600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610165565b34801561035457600080fd5b50610272610363366004610fe5565b610675565b34801561037457600080fd5b5060408051808201909152600d81526c484154544f52492048414e5a4f60981b60208201526101a0565b3480156103aa57600080fd5b50600c54610330906001600160a01b031681565b3480156103ca57600080fd5b506101cd6103d9366004610f5b565b6106b2565b3480156103ea57600080fd5b5061015b6103f9366004610ffe565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b34801561043057600080fd5b50600a54610330906001600160a01b031681565b34801561045057600080fd5b5061027261045f366004610fe5565b6106bf565b34801561047057600080fd5b50600b54610330906001600160a01b031681565b3360008181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906104df9086815260200190565b60405180910390a35060015b92915050565b6001600160a01b03831660009081526006602090815260408083203384529091528120546000191461059e576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b038716600090815260068252838120338252909152919091205461057991849061070a565b6001600160a01b03851660009081526006602090815260408083203384529091529020555b6105a9848484610744565b90505b9392505050565b600a546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156105ec573d6000803e3d6000fd5b50565b60006104eb82600019610484565b6000546001600160a01b031633146106305760405162461bcd60e51b815260040161062790611037565b60405180910390fd5b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b0316331461069f5760405162461bcd60e51b815260040161062790611037565b6009819055600a8111156105ec57600080fd5b60006105ac338484610744565b6000546001600160a01b031633146106e95760405162461bcd60e51b815260040161062790611037565b6103e8816003546106fa919061106d565b610704919061108c565b60045550565b6000818484111561072e5760405162461bcd60e51b81526004016106279190610ef8565b50600061073b84866110ae565b95945050505050565b600e5460009060ff16156107645761075d84848461096e565b90506105ac565b600c546001600160a01b0384811691161480159061079057506002546001600160a01b03848116911614155b1561083b576001600160a01b03831660009081526008602052604090205460ff16806107e157506004546001600160a01b0384166000908152600560205260409020546107de9084906110c1565b11155b61083b5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b6064820152608401610627565b610843610a54565b1561085057610850610aac565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387166000908152600590915291909120546108a291849061070a565b6001600160a01b038516600090815260056020908152604080832093909355600790529081205460ff16156108d757826108e1565b6108e18584610cba565b6001600160a01b0385166000908152600560205260409020549091506109079082610d65565b6001600160a01b0380861660008181526005602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061095b9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546109bf91849061070a565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546109ee9083610d65565b6001600160a01b0380851660008181526005602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610a429086815260200190565b60405180910390a35060019392505050565b600c546000906001600160a01b03163314801590610a755750600e5460ff16155b8015610a8a5750600c54600160a01b900460ff165b8015610aa75750600d543060009081526005602052604090205410155b905090565b600e805460ff19166001179055600d54604080516002808252606082018352839260009291906020830190803683370190505090503081600081518110610af557610af56110d4565b6001600160a01b03928316602091820292909201810191909152600b54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610b4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7291906110ea565b81600181518110610b8557610b856110d4565b6001600160a01b039283166020918202929092010152600b5460405163791ac94760e01b815291169063791ac94790610bcb908590600090869030904290600401611107565b600060405180830381600087803b158015610be557600080fd5b505af1158015610bf9573d6000803e3d6000fd5b5050600a54604051479350600092506001600160a01b039091169061753090849084818181858888f193505050503d8060008114610c53576040519150601f19603f3d011682016040523d82523d6000602084013e610c58565b606091505b5050905080610ca95760405162461bcd60e51b815260206004820152601e60248201527f72656365697665722072656a656374656420455448207472616e7366657200006044820152606401610627565b5050600e805460ff19169055505050565b600080610cdd6064610cd760095486610dc490919063ffffffff16565b90610e46565b30600090815260056020526040902054909150610cfa9082610d65565b30600081815260056020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d4b9085815260200190565b60405180910390a3610d5d8382610e88565b949350505050565b600080610d7283856110c1565b9050838110156105ac5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610627565b600082600003610dd6575060006104eb565b6000610de2838561106d565b905082610def858361108c565b146105ac5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610627565b60006105ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610eca565b60006105ac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061070a565b60008183610eeb5760405162461bcd60e51b81526004016106279190610ef8565b50600061073b848661108c565b600060208083528351808285015260005b81811015610f2557858101830151858201604001528201610f09565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105ec57600080fd5b60008060408385031215610f6e57600080fd5b8235610f7981610f46565b946020939093013593505050565b600080600060608486031215610f9c57600080fd5b8335610fa781610f46565b92506020840135610fb781610f46565b929592945050506040919091013590565b600060208284031215610fda57600080fd5b81356105ac81610f46565b600060208284031215610ff757600080fd5b5035919050565b6000806040838503121561101157600080fd5b823561101c81610f46565b9150602083013561102c81610f46565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561108757611087611057565b500290565b6000826110a957634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156104eb576104eb611057565b808201808211156104eb576104eb611057565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156110fc57600080fd5b81516105ac81610f46565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156111575784516001600160a01b031683529383019391830191600101611132565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220ae4a6148e56d710f10959b70d38a39531a1101242686d1ac714a7b8a8c6bf8b864736f6c63430008100033

Deployed Bytecode Sourcemap

4083:6597:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4937:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4937:56:0;;;;;;;;5901:80;;;;;;;;;;-1:-1:-1;5973:5:0;;;;;;;;;;;;-1:-1:-1;;;5973:5:0;;;;5901:80;;;;;;;:::i;6323:216::-;;;;;;;;;;-1:-1:-1;6323:216:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;6323:216:0;1205:187:1;5631:88:0;;;;;;;;;;-1:-1:-1;5704:12:0;;5631:88;;6841:370;;;;;;;;;;-1:-1:-1;6841:370:0;;;;;:::i;:::-;;:::i;2321:103::-;;;;;;;;;;-1:-1:-1;2321:103:0;;;;;:::i;:::-;2376:4;2411:5;-1:-1:-1;;;;;2400:16:0;;;2411:5;;2400:16;;2321:103;5725:80;;;;;;;;;;-1:-1:-1;5725:80:0;;4422:1;2252:36:1;;2240:2;2225:18;5725:80:0;2110:184:1;10155:118:0;;;;;;;;;;;;;:::i;:::-;;6547:122;;;;;;;;;;-1:-1:-1;6547:122:0;;;;;:::i;:::-;;:::i;4489:46::-;;;;;;;;;;;;;;;;4900:30;;;;;;;;;;-1:-1:-1;4900:30:0;;;;-1:-1:-1;;;4900:30:0;;;;;;6071:105;;;;;;;;;;-1:-1:-1;6071:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6155:18:0;6137:7;6155:18;;;:9;:18;;;;;;;6071:105;2430:131;;;;;;;;;;;;;:::i;5987:78::-;;;;;;;;;;-1:-1:-1;6039:7:0;6057:5;-1:-1:-1;;;;;6057:5:0;5987:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;5987:78:0;2299:203:1;10431:178:0;;;;;;;;;;-1:-1:-1;10431:178:0;;;;;:::i;:::-;;:::i;5811:84::-;;;;;;;;;;-1:-1:-1;5885:7:0;;;;;;;;;;;;-1:-1:-1;;;5885:7:0;;;;5811:84;;4872:19;;;;;;;;;;-1:-1:-1;4872:19:0;;;;-1:-1:-1;;;;;4872:19:0;;;6677:156;;;;;;;;;;-1:-1:-1;6677:156:0;;;;;:::i;:::-;;:::i;6182:133::-;;;;;;;;;;-1:-1:-1;6182:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6284:19:0;;;6266:7;6284:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6182:133;4784:48;;;;;;;;;;-1:-1:-1;4784:48:0;;;;-1:-1:-1;;;;;4784:48:0;;;10281:142;;;;;;;;;;-1:-1:-1;10281:142:0;;;;;:::i;:::-;;:::i;4841:24::-;;;;;;;;;;-1:-1:-1;4841:24:0;;;;-1:-1:-1;;;;;4841:24:0;;;6323:216;6427:10;6398:4;6415:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6415:32:0;;;;;;;;;;:41;;;6472:37;6398:4;;6415:32;;6472:37;;;;6450:6;160:25:1;;148:2;133:18;;14:177;6472:37:0;;;;;;;;-1:-1:-1;6527:4:0;6323:216;;;;;:::o;6841:370::-;-1:-1:-1;;;;;6961:19:0;;6941:4;6961:19;;;:11;:19;;;;;;;;6981:10;6961:31;;;;;;;;-1:-1:-1;;6961:52:0;6958:186;;7063:69;;;;;;;;;;;-1:-1:-1;;;7063:69:0;;;;;;;;-1:-1:-1;;;;;7063:19:0;;-1:-1:-1;7063:19:0;;;:11;:19;;;;;7083:10;7063:31;;;;;;;;;;:69;;7099:6;;7063:35;:69::i;:::-;-1:-1:-1;;;;;7029:19:0;;;;;;:11;:19;;;;;;;;7049:10;7029:31;;;;;;;:103;6958:186;7163:40;7177:6;7185:9;7196:6;7163:13;:40::i;:::-;7156:47;;6841:370;;;;;;:::o;10155:118::-;10212:20;;10204:61;;-1:-1:-1;;;;;10212:20:0;;;;10243:21;10204:61;;;;;10212:20;10204:61;10212:20;10204:61;10243:21;10212:20;10204:61;;;;;;;;;;;;;;;;;;;;;10155:118::o;6547:122::-;6602:4;6626:35;6634:7;-1:-1:-1;;6626:7:0;:35::i;2430:131::-;2376:4;2411:5;-1:-1:-1;;;;;2411:5:0;2282:10;2400:16;2266:38;;;;-1:-1:-1;;;2266:38:0;;;;;;;:::i;:::-;;;;;;;;;2503:1:::1;2487:18:::0;;-1:-1:-1;;;;;;2487:18:0::1;::::0;;2521:32:::1;::::0;2445:51:1;;;2521:32:0::1;::::0;2433:2:1;2418:18;2521:32:0::1;;;;;;;2430:131::o:0;10431:178::-;2376:4;2411:5;-1:-1:-1;;;;;2411:5:0;2282:10;2400:16;2266:38;;;;-1:-1:-1;;;2266:38:0;;;;;;;:::i;:::-;10509:12:::1;:28:::0;;;10570:2:::1;10556:16:::0;::::1;;10548:25;;;::::0;::::1;6677:156:::0;6757:4;6781:44;6795:10;6807:9;6818:6;6781:13;:44::i;10281:142::-;2376:4;2411:5;-1:-1:-1;;;;;2411:5:0;2282:10;2400:16;2266:38;;;;-1:-1:-1;;;2266:38:0;;;;;;;:::i;:::-;10411:4:::1;10393:13;10378:12;;:28;;;;:::i;:::-;10377:38;;;;:::i;:::-;10358:16;:57:::0;-1:-1:-1;10281:142:0:o;410:190::-;496:7;532:12;524:6;;;;516:29;;;;-1:-1:-1;;;516:29:0;;;;;;;;:::i;:::-;-1:-1:-1;556:9:0;568:5;572:1;568;:5;:::i;:::-;556:17;410:190;-1:-1:-1;;;;;410:190:0:o;7219:792::-;7331:6;;7311:4;;7331:6;;7328:63;;;7347:41;7362:6;7370:9;7381:6;7347:14;:41::i;:::-;7340:48;;;;7328:63;7428:4;;-1:-1:-1;;;;;7415:17:0;;;7428:4;;7415:17;;;;:38;;-1:-1:-1;7449:4:0;;-1:-1:-1;;;;;7436:17:0;;;7449:4;;7436:17;;7415:38;7411:200;;;-1:-1:-1;;;;;7478:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;7541:16:0;;-1:-1:-1;;;;;7508:20:0;;;;;;:9;:20;;;;;;:29;;7531:6;;7508:29;:::i;:::-;:49;;7478:79;7470:129;;;;-1:-1:-1;;;7470:129:0;;4637:2:1;7470:129:0;;;4619:21:1;4676:2;4656:18;;;4649:30;4715:34;4695:18;;;4688:62;-1:-1:-1;;;4766:18:1;;;4759:35;4811:19;;7470:129:0;4435:401:1;7470:129:0;7634:16;:14;:16::i;:::-;7631:35;;;7653:10;:8;:10::i;:::-;7699:53;;;;;;;;;;;-1:-1:-1;;;7699:53:0;;;;;;;;-1:-1:-1;;;;;7699:17:0;;-1:-1:-1;7699:17:0;;;:9;:17;;;;;;;;:53;;7721:6;;7699:21;:53::i;:::-;-1:-1:-1;;;;;7679:17:0;;;;;;:9;:17;;;;;;;;:73;;;;8448:11;:19;;;;;;;;8447:20;7790:56;;7840:6;7790:56;;;7814:23;7822:6;7830;7814:7;:23::i;:::-;-1:-1:-1;;;;;7880:20:0;;;;;;:9;:20;;;;;;7765:81;;-1:-1:-1;7880:40:0;;7765:81;7880:24;:40::i;:::-;-1:-1:-1;;;;;7857:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7938:43;;;;;;;;;;7966:14;160:25:1;;148:2;133:18;;14:177;7938:43:0;;;;;;;;-1:-1:-1;7999:4:0;;7219:792;-1:-1:-1;;;;7219:792:0:o;8023:330::-;8153:53;;;;;;;;;;;-1:-1:-1;;;8153:53:0;;;;;;;;-1:-1:-1;;;;;8153:17:0;;8116:4;8153:17;;;:9;:17;;;;;;;:53;;8175:6;;8153:21;:53::i;:::-;-1:-1:-1;;;;;8133:17:0;;;;;;;:9;:17;;;;;;:73;;;;8240:20;;;;;;;:32;;8265:6;8240:24;:32::i;:::-;-1:-1:-1;;;;;8217:20:0;;;;;;;:9;:20;;;;;;;:55;;;;8288:35;;;;;;;;;;8316:6;160:25:1;;148:2;133:18;;14:177;8288:35:0;;;;;;;;-1:-1:-1;8341:4:0;8023:330;;;;;:::o;8813:197::-;8900:4;;8862;;-1:-1:-1;;;;;8900:4:0;8886:10;:18;;;;:38;;-1:-1:-1;8918:6:0;;;;8917:7;8886:38;:62;;;;-1:-1:-1;8937:11:0;;-1:-1:-1;;;8937:11:0;;;;8886:62;:116;;;;-1:-1:-1;8989:13:0;;8979:4;8961:24;;;;:9;:24;;;;;;:41;;8886:116;8879:123;;8813:197;:::o;9018:751::-;5040:6;:13;;-1:-1:-1;;5040:13:0;5049:4;5040:13;;;9098::::1;::::0;9202:16:::1;::::0;;9216:1:::1;9202:16:::0;;;;;::::1;::::0;;9098:13;;-1:-1:-1;;9202:16:0;9216:1;9202:16:::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9202:16:0::1;9178:40;;9247:4;9229;9234:1;9229:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9229:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9273:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;9273:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;9229:7;;9273:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9263:4;9268:1;9263:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9263:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;9301:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;9301:188:0;;:6;::::1;::::0;:57:::1;::::0;:188:::1;::::0;9373:12;;9301:6:::1;::::0;9416:4;;9443::::1;::::0;9463:15:::1;::::0;9301:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9622:20:0::1;::::0;9614:77:::1;::::0;9531:21:::1;::::0;-1:-1:-1;9502:26:0::1;::::0;-1:-1:-1;;;;;;9622:20:0;;::::1;::::0;9681:5:::1;::::0;9531:21;;9502:26;9614:77;9502:26;9614:77;9531:21;9622:20;9681:5;9614:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9563:128;;;9710:16;9702:59;;;::::0;-1:-1:-1;;;9702:59:0;;6758:2:1;9702:59:0::1;::::0;::::1;6740:21:1::0;6797:2;6777:18;;;6770:30;6836:32;6816:18;;;6809:60;6886:18;;9702:59:0::1;6556:354:1::0;9702:59:0::1;-1:-1:-1::0;;5058:6:0;:14;;-1:-1:-1;;5058:14:0;;;-1:-1:-1;;;9018:751:0:o;8483:322::-;8550:7;8570:17;8590:33;8619:3;8590:24;8601:12;;8590:6;:10;;:24;;;;:::i;:::-;:28;;:33::i;:::-;8679:4;8661:24;;;;:9;:24;;;;;;8570:53;;-1:-1:-1;8661:39:0;;8570:53;8661:28;:39::i;:::-;8652:4;8634:24;;;;:9;:24;;;;;;;:66;;;;8716:42;;-1:-1:-1;;;;;8716:42:0;;;;;;;8748:9;160:25:1;;148:2;133:18;;14:177;8716:42:0;;;;;;;;8776:21;:6;8787:9;8776:10;:21::i;:::-;8769:28;8483:322;-1:-1:-1;;;;8483:322:0:o;83:179::-;141:7;;173:5;177:1;173;:5;:::i;:::-;161:17;;202:1;197;:6;;189:46;;;;-1:-1:-1;;;189:46:0;;7117:2:1;189:46:0;;;7099:21:1;7156:2;7136:18;;;7129:30;7195:29;7175:18;;;7168:57;7242:18;;189:46:0;6915:351:1;606:246:0;664:7;688:1;693;688:6;684:47;;-1:-1:-1;718:1:0;711:8;;684:47;741:9;753:5;757:1;753;:5;:::i;:::-;741:17;-1:-1:-1;786:1:0;777:5;781:1;741:17;777:5;:::i;:::-;:10;769:56;;;;-1:-1:-1;;;769:56:0;;7473:2:1;769:56:0;;;7455:21:1;7512:2;7492:18;;;7485:30;7551:34;7531:18;;;7524:62;-1:-1:-1;;;7602:18:1;;;7595:31;7643:19;;769:56:0;7271:397:1;858:132:0;916:7;943:39;947:1;950;943:39;;;;;;;;;;;;;;;;;:3;:39::i;268:136::-;326:7;353:43;357:1;360;353:43;;;;;;;;;;;;;;;;;:3;:43::i;996:189::-;1082:7;1117:12;1110:5;1102:28;;;;-1:-1:-1;;;1102:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1141:9:0;1153:5;1157:1;1153;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:315;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:180::-;2566:6;2619:2;2607:9;2598:7;2594:23;2590:32;2587:52;;;2635:1;2632;2625:12;2587:52;-1:-1:-1;2658:23:1;;2507:180;-1:-1:-1;2507:180:1:o;2692:388::-;2760:6;2768;2821:2;2809:9;2800:7;2796:23;2792:32;2789:52;;;2837:1;2834;2827:12;2789:52;2876:9;2863:23;2895:31;2920:5;2895:31;:::i;:::-;2945:5;-1:-1:-1;3002:2:1;2987:18;;2974:32;3015:33;2974:32;3015:33;:::i;:::-;3067:7;3057:17;;;2692:388;;;;;:::o;3311:329::-;3513:2;3495:21;;;3552:1;3532:18;;;3525:29;-1:-1:-1;;;3585:2:1;3570:18;;3563:36;3631:2;3616:18;;3311:329::o;3645:127::-;3706:10;3701:3;3697:20;3694:1;3687:31;3737:4;3734:1;3727:15;3761:4;3758:1;3751:15;3777:168;3817:7;3883:1;3879;3875:6;3871:14;3868:1;3865:21;3860:1;3853:9;3846:17;3842:45;3839:71;;;3890:18;;:::i;:::-;-1:-1:-1;3930:9:1;;3777:168::o;3950:217::-;3990:1;4016;4006:132;;4060:10;4055:3;4051:20;4048:1;4041:31;4095:4;4092:1;4085:15;4123:4;4120:1;4113:15;4006:132;-1:-1:-1;4152:9:1;;3950:217::o;4172:128::-;4239:9;;;4260:11;;;4257:37;;;4274:18;;:::i;4305:125::-;4370:9;;;4391:10;;;4388:36;;;4404:18;;:::i;4973:127::-;5034:10;5029:3;5025:20;5022:1;5015:31;5065:4;5062:1;5055:15;5089:4;5086:1;5079:15;5105:251;5175:6;5228:2;5216:9;5207:7;5203:23;5199:32;5196:52;;;5244:1;5241;5234:12;5196:52;5276:9;5270:16;5295:31;5320:5;5295:31;:::i;5361:980::-;5623:4;5671:3;5660:9;5656:19;5702:6;5691:9;5684:25;5728:2;5766:6;5761:2;5750:9;5746:18;5739:34;5809:3;5804:2;5793:9;5789:18;5782:31;5833:6;5868;5862:13;5899:6;5891;5884:22;5937:3;5926:9;5922:19;5915:26;;5976:2;5968:6;5964:15;5950:29;;5997:1;6007:195;6021:6;6018:1;6015:13;6007:195;;;6086:13;;-1:-1:-1;;;;;6082:39:1;6070:52;;6177:15;;;;6142:12;;;;6118:1;6036:9;6007:195;;;-1:-1:-1;;;;;;;6258:32:1;;;;6253:2;6238:18;;6231:60;-1:-1:-1;;;6322:3:1;6307:19;6300:35;6219:3;5361:980;-1:-1:-1;;;5361:980:1:o

Swarm Source

ipfs://ae4a6148e56d710f10959b70d38a39531a1101242686d1ac714a7b8a8c6bf8b8

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.