ETH Price: $2,869.48 (-10.40%)
Gas: 16 Gwei

Contract

0x31487463339C805fC3B5ED1dCBC837e22dEC0A29
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve198308172024-05-09 6:53:1156 days ago1715237591IN
0x31487463...22dEC0A29
0 ETH0.000105974.35965942
Approve193902942024-03-08 11:57:11118 days ago1709899031IN
0x31487463...22dEC0A29
0 ETH0.0019852342.6648458
Approve193633962024-03-04 17:49:23122 days ago1709574563IN
0x31487463...22dEC0A29
0 ETH0.00684902147.84085009
Approve193615762024-03-04 11:43:59122 days ago1709552639IN
0x31487463...22dEC0A29
0 ETH0.0028378961.24195004
Approve193595092024-03-04 4:47:59123 days ago1709527679IN
0x31487463...22dEC0A29
0 ETH0.0021692946.62045342
Approve193538852024-03-03 9:55:47123 days ago1709459747IN
0x31487463...22dEC0A29
0 ETH0.0020060243.05604021
Approve193538772024-03-03 9:54:11123 days ago1709459651IN
0x31487463...22dEC0A29
0 ETH0.0019745942.38154693
Approve193538762024-03-03 9:53:59123 days ago1709459639IN
0x31487463...22dEC0A29
0 ETH0.0020399543.78428097
Approve193538732024-03-03 9:53:23123 days ago1709459603IN
0x31487463...22dEC0A29
0 ETH0.0017971438.62250672
Approve193508632024-03-02 23:48:47124 days ago1709423327IN
0x31487463...22dEC0A29
0 ETH0.0021136345.36575017
Approve193508592024-03-02 23:47:59124 days ago1709423279IN
0x31487463...22dEC0A29
0 ETH0.0017825338.51703871
Approve193507692024-03-02 23:29:47124 days ago1709422187IN
0x31487463...22dEC0A29
0 ETH0.0021222145.60865515
Approve193504542024-03-02 22:26:23124 days ago1709418383IN
0x31487463...22dEC0A29
0 ETH0.001275947.91046507
Approve193504532024-03-02 22:26:11124 days ago1709418371IN
0x31487463...22dEC0A29
0 ETH0.00674934145.05060626
Transfer193504492024-03-02 22:25:23124 days ago1709418323IN
0x31487463...22dEC0A29
0 ETH0.001201440.55230237
Approve193504492024-03-02 22:25:23124 days ago1709418323IN
0x31487463...22dEC0A29
0 ETH0.0010799440.55230237
Approve193504492024-03-02 22:25:23124 days ago1709418323IN
0x31487463...22dEC0A29
0 ETH0.0010799440.55230237
Approve193504492024-03-02 22:25:23124 days ago1709418323IN
0x31487463...22dEC0A29
0 ETH0.0018869340.55230237
Approve193504362024-03-02 22:22:47124 days ago1709418167IN
0x31487463...22dEC0A29
0 ETH0.0020926645.25375849
Approve193502252024-03-02 21:39:59124 days ago1709415599IN
0x31487463...22dEC0A29
0 ETH0.0020640644.35901265
Approve193501742024-03-02 21:29:47124 days ago1709414987IN
0x31487463...22dEC0A29
0 ETH0.0021771546.78932305
Approve193499682024-03-02 20:47:59124 days ago1709412479IN
0x31487463...22dEC0A29
0 ETH0.0020416244.1498613
Transfer193499552024-03-02 20:45:23124 days ago1709412323IN
0x31487463...22dEC0A29
0 ETH0.0021245745.50377051
Approve193499422024-03-02 20:42:35124 days ago1709412155IN
0x31487463...22dEC0A29
0 ETH0.0020989145.10779706
Approve193494862024-03-02 19:10:47124 days ago1709406647IN
0x31487463...22dEC0A29
0 ETH0.0024021851.62546841
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:
COVFEFE

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-29
*/

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.24;

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

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}


abstract contract Ownable is Context {
    address private _owner;

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

    constructor() {
        _transferOwnership(_msgSender());
    }

    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }

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

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

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address to, 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 from, address to, uint256 amount) external returns (bool);
}


interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }

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

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

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

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

    function transferFrom(address from, address to, uint256 amount) public virtual override returns (bool) {
        address spender = _msgSender();
        _spendAllowance(from, spender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address owner = _msgSender();
        _approve(owner, spender, allowance(owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address owner = _msgSender();
        uint256 currentAllowance = allowance(owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(owner, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

    function _transfer(address from, address to, uint256 amount) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _beforeTokenTransfer(from, to, amount);

        uint256 fromBalance = _balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        unchecked {
            _balances[from] = fromBalance - amount;
            _balances[to] += amount;
        }

        emit Transfer(from, to, amount);

        _afterTokenTransfer(from, to, amount);
    }
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply += amount;
        unchecked {
            _balances[account] += amount;
        }
        emit Transfer(address(0), account, amount);

        _afterTokenTransfer(address(0), account, amount);
    }
    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount, "ERC20: burn amount exceeds balance");
        unchecked {
            _balances[account] = accountBalance - amount;
            // Overflow not possible: amount <= accountBalance <= totalSupply.
            _totalSupply -= amount;
        }

        emit Transfer(account, address(0), amount);

        _afterTokenTransfer(account, address(0), amount);
    }
    function _approve(address owner, address spender, uint256 amount) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _spendAllowance(address owner, address spender, uint256 amount) internal virtual {
        uint256 currentAllowance = allowance(owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(owner, spender, currentAllowance - amount);
            }
        }
    }
    function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual {}
    function _afterTokenTransfer(address from, address to, uint256 amount) internal virtual {}
}

interface INonfungiblePositionManager {
    struct MintParams {
        address token0;
        address token1;
        uint24 fee;
        int24 tickLower;
        int24 tickUpper;
        uint256 amount0Desired;
        uint256 amount1Desired;
        uint256 amount0Min;
        uint256 amount1Min;
        address recipient;
        uint256 deadline;
    }
    function mint(MintParams calldata params) external payable returns (
        uint256 tokenId,
        uint128 liquidity,
        uint256 amount0,
        uint256 amount1
    );
    function createAndInitializePoolIfNecessary(
        address token0,
        address token1,
        uint24 fee,
        uint160 sqrtPriceX96
    ) external payable returns (address pool);
}

contract COVFEFE is ERC20, Ownable {
    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    //address WETH = 0x7b79995e5f793A07Bc00c21412e50Ecae098E7f9; //sepolia
    INonfungiblePositionManager univ3NPM = INonfungiblePositionManager(0xC36442b4a4522E871399CD717aBDD847Ab11FE88);
    //INonfungiblePositionManager univ3NPM = INonfungiblePositionManager(0x1238536071E1c677A632429e3655c799b22cDA52); //sepolia
    uint halfSupply = 500_000_000 * 10 ** decimals();
    uint24 fee = 10000;
    uint160 sqrtPriceX96;
    int24 minTick;
    int24 maxTick;
    address public lptoken;
    address token0;
    address token1;
    uint amount0Desired;
    uint amount1Desired;

    constructor() ERC20("Covfefe", "COVFEFE") {
        _mint(address(this), halfSupply);
        _mint(msg.sender, halfSupply);
        if (address(this) < WETH) {
            token0 = address(this);
            token1 = WETH;
            sqrtPriceX96 = 6030581457828564000833536;
            amount0Desired = halfSupply;
            amount1Desired = 0;
            minTick = -189600;
            maxTick = 887200;
        } else {
            token0 = WETH;
            token1 = address(this);
            sqrtPriceX96 = 1040878359621210022480473793495040;
            amount0Desired = 0;
            amount1Desired = halfSupply;
            minTick = -887200;
            maxTick = 189600;
        }
        lptoken = univ3NPM.createAndInitializePoolIfNecessary(token0, token1, fee, sqrtPriceX96);
    }

    function addLiquidity() public onlyOwner {
        IERC20(address(this)).approve(address(univ3NPM), halfSupply);
        univ3NPM.mint(INonfungiblePositionManager.MintParams({token0: token0,token1: token1,fee: fee,tickLower: minTick,tickUpper: maxTick,amount0Desired: amount0Desired,amount1Desired: amount1Desired,amount0Min: 0,amount1Min: 0,recipient: msg.sender,deadline: block.timestamp + 1000}));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lptoken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"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"}]

6080604052600680546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2179091556007805490911673c36442b4a4522e871399cd717abdd847ab11fe8817905562000055601290565b6200006290600a62000512565b6200007290631dcd650062000529565b6008556009805462ffffff191661271017905534801562000091575f80fd5b5060405180604001604052806007815260200166436f766665666560c81b81525060405180604001604052806007815260200166434f564645464560c81b8152508160039081620000e39190620005e0565b506004620000f28282620005e0565b5050506200010f62000109620002e560201b60201c565b620002e9565b62000123306008546200033a60201b60201c565b62000137336008546200033a60201b60201c565b6006546001600160a01b0316301015620001bb57600b8054306001600160a01b031991821617909155600654600c80546001600160a01b039092169190921617905560098054600854600d555f600e556301000000600160e81b0319167c0d89a0fd1b6000000000000000000004fd0679d459240000000000000017905562000226565b600654600b80546001600160a01b039092166001600160a01b0319928316179055600c8054309216919091179055600980545f600d55600854600e556301000000600160e81b0319167c02e4a0f276600000000000003351bb5f1acb34000000000000000000001790555b600754600b54600c546009546040516309f56ab160e11b81526001600160a01b039384166004820152918316602483015262ffffff8116604483015263010000009004821660648201529116906313ead562906084016020604051808303815f875af115801562000299573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002bf9190620006ac565b600a80546001600160a01b0319166001600160a01b0392909216919091179055620006ea565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038216620003955760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f828254620003a89190620006d4565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200045757815f19048211156200043b576200043b62000403565b808516156200044957918102915b93841c93908002906200041c565b509250929050565b5f826200046f575060016200050c565b816200047d57505f6200050c565b8160018114620004965760028114620004a157620004c1565b60019150506200050c565b60ff841115620004b557620004b562000403565b50506001821b6200050c565b5060208310610133831016604e8410600b8410161715620004e6575081810a6200050c565b620004f2838362000417565b805f190482111562000508576200050862000403565b0290505b92915050565b5f6200052260ff8416836200045f565b9392505050565b80820281158282048414176200050c576200050c62000403565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200056c57607f821691505b6020821081036200058b57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620003fe57805f5260205f20601f840160051c81016020851015620005b85750805b601f840160051c820191505b81811015620005d9575f8155600101620005c4565b5050505050565b81516001600160401b03811115620005fc57620005fc62000543565b62000614816200060d845462000557565b8462000591565b602080601f8311600181146200064a575f8415620006325750858301515b5f19600386901b1c1916600185901b178555620006a4565b5f85815260208120601f198616915b828110156200067a5788860151825594840194600190910190840162000659565b50858210156200069857878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f60208284031215620006bd575f80fd5b81516001600160a01b038116811462000522575f80fd5b808201808211156200050c576200050c62000403565b610cbe80620006f85f395ff3fe608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80638da5cb5b11610093578063dd62ed3e11610063578063dd62ed3e1461020c578063e8078d941461021f578063f2fde38b14610227578063f363393b1461023a575f80fd5b80638da5cb5b146101b957806395d89b41146101de578063a457c2d7146101e6578063a9059cbb146101f9575f80fd5b8063313ce567116100ce578063313ce56714610165578063395093511461017457806370a0823114610187578063715018a6146101af575f80fd5b806306fdde03146100ff578063095ea7b31461011d57806318160ddd1461014057806323b872dd14610152575b5f80fd5b61010761024d565b60405161011491906109e6565b60405180910390f35b61013061012b366004610a4d565b6102dd565b6040519015158152602001610114565b6002545b604051908152602001610114565b610130610160366004610a75565b6102f6565b60405160128152602001610114565b610130610182366004610a4d565b610319565b610144610195366004610aae565b6001600160a01b03165f9081526020819052604090205490565b6101b761033a565b005b6005546001600160a01b03165b6040516001600160a01b039091168152602001610114565b61010761034d565b6101306101f4366004610a4d565b61035c565b610130610207366004610a4d565b6103db565b61014461021a366004610ace565b6103e8565b6101b7610412565b6101b7610235366004610aae565b61058b565b600a546101c6906001600160a01b031681565b60606003805461025c90610aff565b80601f016020809104026020016040519081016040528092919081815260200182805461028890610aff565b80156102d35780601f106102aa576101008083540402835291602001916102d3565b820191905f5260205f20905b8154815290600101906020018083116102b657829003601f168201915b5050505050905090565b5f336102ea818585610604565b60019150505b92915050565b5f33610303858285610727565b61030e858585610799565b506001949350505050565b5f336102ea81858561032b83836103e8565b6103359190610b37565b610604565b61034261093b565b61034b5f610995565b565b60606004805461025c90610aff565b5f338161036982866103e8565b9050838110156103ce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61030e8286868403610604565b5f336102ea818585610799565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61041a61093b565b60075460085460405163095ea7b360e01b81526001600160a01b0390921660048301526024820152309063095ea7b3906044016020604051808303815f875af1158015610469573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048d9190610b56565b506007546040805161016081018252600b546001600160a01b039081168252600c548116602083015260095462ffffff811693830193909352600160b81b8304600290810b6060840152600160d01b90930490920b6080820152600d5460a0820152600e5460c08201525f60e08201819052610100820152336101208201529116906388316456906101408101610526426103e8610b37565b8152506040518263ffffffff1660e01b81526004016105459190610b75565b6080604051808303815f875af1158015610561573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105859190610c39565b50505050565b61059361093b565b6001600160a01b0381166105f85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103c5565b61060181610995565b50565b6001600160a01b0383166106665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c5565b6001600160a01b0382166106c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c5565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61073284846103e8565b90505f198114610585578181101561078c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103c5565b6105858484848403610604565b6001600160a01b0383166107fd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103c5565b6001600160a01b03821661085f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103c5565b6001600160a01b0383165f90815260208190526040902054818110156108d65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103c5565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610585565b6005546001600160a01b0316331461034b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c5565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f602080835283518060208501525f5b81811015610a12578581018301518582016040015282016109f6565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a48575f80fd5b919050565b5f8060408385031215610a5e575f80fd5b610a6783610a32565b946020939093013593505050565b5f805f60608486031215610a87575f80fd5b610a9084610a32565b9250610a9e60208501610a32565b9150604084013590509250925092565b5f60208284031215610abe575f80fd5b610ac782610a32565b9392505050565b5f8060408385031215610adf575f80fd5b610ae883610a32565b9150610af660208401610a32565b90509250929050565b600181811c90821680610b1357607f821691505b602082108103610b3157634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102f057634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610b66575f80fd5b81518015158114610ac7575f80fd5b81516001600160a01b0316815261016081016020830151610ba160208401826001600160a01b03169052565b506040830151610bb8604084018262ffffff169052565b506060830151610bcd606084018260020b9052565b506080830151610be2608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151610c28828501826001600160a01b03169052565b505061014092830151919092015290565b5f805f8060808587031215610c4c575f80fd5b8451935060208501516fffffffffffffffffffffffffffffffff81168114610c72575f80fd5b604086015160609096015194979096509250505056fea2646970667358221220e844bfd273955baa2f08c8b2dde43d98ea08f486bb9b728a5c76b485c78a7f6664736f6c63430008180033

Deployed Bytecode

0x608060405234801561000f575f80fd5b50600436106100fb575f3560e01c80638da5cb5b11610093578063dd62ed3e11610063578063dd62ed3e1461020c578063e8078d941461021f578063f2fde38b14610227578063f363393b1461023a575f80fd5b80638da5cb5b146101b957806395d89b41146101de578063a457c2d7146101e6578063a9059cbb146101f9575f80fd5b8063313ce567116100ce578063313ce56714610165578063395093511461017457806370a0823114610187578063715018a6146101af575f80fd5b806306fdde03146100ff578063095ea7b31461011d57806318160ddd1461014057806323b872dd14610152575b5f80fd5b61010761024d565b60405161011491906109e6565b60405180910390f35b61013061012b366004610a4d565b6102dd565b6040519015158152602001610114565b6002545b604051908152602001610114565b610130610160366004610a75565b6102f6565b60405160128152602001610114565b610130610182366004610a4d565b610319565b610144610195366004610aae565b6001600160a01b03165f9081526020819052604090205490565b6101b761033a565b005b6005546001600160a01b03165b6040516001600160a01b039091168152602001610114565b61010761034d565b6101306101f4366004610a4d565b61035c565b610130610207366004610a4d565b6103db565b61014461021a366004610ace565b6103e8565b6101b7610412565b6101b7610235366004610aae565b61058b565b600a546101c6906001600160a01b031681565b60606003805461025c90610aff565b80601f016020809104026020016040519081016040528092919081815260200182805461028890610aff565b80156102d35780601f106102aa576101008083540402835291602001916102d3565b820191905f5260205f20905b8154815290600101906020018083116102b657829003601f168201915b5050505050905090565b5f336102ea818585610604565b60019150505b92915050565b5f33610303858285610727565b61030e858585610799565b506001949350505050565b5f336102ea81858561032b83836103e8565b6103359190610b37565b610604565b61034261093b565b61034b5f610995565b565b60606004805461025c90610aff565b5f338161036982866103e8565b9050838110156103ce5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084015b60405180910390fd5b61030e8286868403610604565b5f336102ea818585610799565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b61041a61093b565b60075460085460405163095ea7b360e01b81526001600160a01b0390921660048301526024820152309063095ea7b3906044016020604051808303815f875af1158015610469573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061048d9190610b56565b506007546040805161016081018252600b546001600160a01b039081168252600c548116602083015260095462ffffff811693830193909352600160b81b8304600290810b6060840152600160d01b90930490920b6080820152600d5460a0820152600e5460c08201525f60e08201819052610100820152336101208201529116906388316456906101408101610526426103e8610b37565b8152506040518263ffffffff1660e01b81526004016105459190610b75565b6080604051808303815f875af1158015610561573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105859190610c39565b50505050565b61059361093b565b6001600160a01b0381166105f85760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103c5565b61060181610995565b50565b6001600160a01b0383166106665760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103c5565b6001600160a01b0382166106c75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103c5565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f61073284846103e8565b90505f198114610585578181101561078c5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103c5565b6105858484848403610604565b6001600160a01b0383166107fd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103c5565b6001600160a01b03821661085f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103c5565b6001600160a01b0383165f90815260208190526040902054818110156108d65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103c5565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610585565b6005546001600160a01b0316331461034b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103c5565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f602080835283518060208501525f5b81811015610a12578581018301518582016040015282016109f6565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a48575f80fd5b919050565b5f8060408385031215610a5e575f80fd5b610a6783610a32565b946020939093013593505050565b5f805f60608486031215610a87575f80fd5b610a9084610a32565b9250610a9e60208501610a32565b9150604084013590509250925092565b5f60208284031215610abe575f80fd5b610ac782610a32565b9392505050565b5f8060408385031215610adf575f80fd5b610ae883610a32565b9150610af660208401610a32565b90509250929050565b600181811c90821680610b1357607f821691505b602082108103610b3157634e487b7160e01b5f52602260045260245ffd5b50919050565b808201808211156102f057634e487b7160e01b5f52601160045260245ffd5b5f60208284031215610b66575f80fd5b81518015158114610ac7575f80fd5b81516001600160a01b0316815261016081016020830151610ba160208401826001600160a01b03169052565b506040830151610bb8604084018262ffffff169052565b506060830151610bcd606084018260020b9052565b506080830151610be2608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e083015261010080840151818401525061012080840151610c28828501826001600160a01b03169052565b505061014092830151919092015290565b5f805f8060808587031215610c4c575f80fd5b8451935060208501516fffffffffffffffffffffffffffffffff81168114610c72575f80fd5b604086015160609096015194979096509250505056fea2646970667358221220e844bfd273955baa2f08c8b2dde43d98ea08f486bb9b728a5c76b485c78a7f6664736f6c63430008180033

Deployed Bytecode Sourcemap

8330:1943:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2724:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3656:201;;;;;;:::i;:::-;;:::i;:::-;;;1169:14:1;;1162:22;1144:41;;1132:2;1117:18;3656:201:0;1004:187:1;3045:108:0;3133:12;;3045:108;;;1342:25:1;;;1330:2;1315:18;3045:108:0;1196:177:1;3865:261:0;;;;;;:::i;:::-;;:::i;2944:93::-;;;3027:2;1853:36:1;;1841:2;1826:18;2944:93:0;1711:184:1;4134:238:0;;;;;;:::i;:::-;;:::i;3161:127::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3262:18:0;3235:7;3262:18;;;;;;;;;;;;3161:127;914:103;;;:::i;:::-;;679:87;752:6;;-1:-1:-1;;;;;752:6:0;679:87;;;-1:-1:-1;;;;;2364:32:1;;;2346:51;;2334:2;2319:18;679:87:0;2200:203:1;2832:104:0;;;:::i;4380:436::-;;;;;;:::i;:::-;;:::i;3296:193::-;;;;;;:::i;:::-;;:::i;3497:151::-;;;;;;:::i;:::-;;:::i;9861:409::-;;;:::i;1025:201::-;;;;;;:::i;:::-;;:::i;8905:22::-;;;;;-1:-1:-1;;;;;8905:22:0;;;2724:100;2778:13;2811:5;2804:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2724:100;:::o;3656:201::-;3739:4;230:10;3795:32;230:10;3811:7;3820:6;3795:8;:32::i;:::-;3845:4;3838:11;;;3656:201;;;;;:::o;3865:261::-;3962:4;230:10;4020:38;4036:4;230:10;4051:6;4020:15;:38::i;:::-;4069:27;4079:4;4085:2;4089:6;4069:9;:27::i;:::-;-1:-1:-1;4114:4:0;;3865:261;-1:-1:-1;;;;3865:261:0:o;4134:238::-;4222:4;230:10;4278:64;230:10;4294:7;4331:10;4303:25;230:10;4294:7;4303:9;:25::i;:::-;:38;;;;:::i;:::-;4278:8;:64::i;914:103::-;638:13;:11;:13::i;:::-;979:30:::1;1006:1;979:18;:30::i;:::-;914:103::o:0;2832:104::-;2888:13;2921:7;2914:14;;;;;:::i;4380:436::-;4473:4;230:10;4473:4;4556:25;230:10;4573:7;4556:9;:25::i;:::-;4529:52;;4620:15;4600:16;:35;;4592:85;;;;-1:-1:-1;;;4592:85:0;;3487:2:1;4592:85:0;;;3469:21:1;3526:2;3506:18;;;3499:30;3565:34;3545:18;;;3538:62;-1:-1:-1;;;3616:18:1;;;3609:35;3661:19;;4592:85:0;;;;;;;;;4713:60;4722:5;4729:7;4757:15;4738:16;:34;4713:8;:60::i;3296:193::-;3375:4;230:10;3431:28;230:10;3448:2;3452:6;3431:9;:28::i;3497:151::-;-1:-1:-1;;;;;3613:18:0;;;3586:7;3613:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3497:151::o;9861:409::-;638:13;:11;:13::i;:::-;9951:8:::1;::::0;9962:10:::1;::::0;9913:60:::1;::::0;-1:-1:-1;;;9913:60:0;;-1:-1:-1;;;;;9951:8:0;;::::1;9913:60;::::0;::::1;3865:51:1::0;3932:18;;;3925:34;9928:4:0::1;::::0;9913:29:::1;::::0;3838:18:1;;9913:60:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;9984:8:0::1;::::0;9998:263:::1;::::0;;::::1;::::0;::::1;::::0;;10046:6:::1;::::0;-1:-1:-1;;;;;10046:6:0;;::::1;9998:263:::0;;10061:6:::1;::::0;;::::1;9998:263;::::0;::::1;::::0;10073:3:::1;::::0;::::1;::::0;::::1;9998:263:::0;;;;;;;-1:-1:-1;;;10088:7:0;::::1;;::::0;;::::1;9998:263:::0;;;;-1:-1:-1;;;10107:7:0;;::::1;::::0;;::::1;9998:263:::0;;;;10131:14:::1;::::0;9998:263;;;;10162:14:::1;::::0;9998:263;;;;9984:8:::1;9998:263:::0;;;;;;9984:8:::1;9998:263:::0;;;10216:10:::1;9998:263:::0;;;;9984:8;::::1;::::0;:13:::1;::::0;9998:263;;;10237:22:::1;:15;10255:4;10237:22;:::i;:::-;9998:263;;::::0;9984:278:::1;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;9861:409::o:0;1025:201::-;638:13;:11;:13::i;:::-;-1:-1:-1;;;;;1114:22:0;::::1;1106:73;;;::::0;-1:-1:-1;;;1106:73:0;;6366:2:1;1106:73:0::1;::::0;::::1;6348:21:1::0;6405:2;6385:18;;;6378:30;6444:34;6424:18;;;6417:62;-1:-1:-1;;;6495:18:1;;;6488:36;6541:19;;1106:73:0::1;6164:402:1::0;1106:73:0::1;1190:28;1209:8;1190:18;:28::i;:::-;1025:201:::0;:::o;6593:346::-;-1:-1:-1;;;;;6695:19:0;;6687:68;;;;-1:-1:-1;;;6687:68:0;;6773:2:1;6687:68:0;;;6755:21:1;6812:2;6792:18;;;6785:30;6851:34;6831:18;;;6824:62;-1:-1:-1;;;6902:18:1;;;6895:34;6946:19;;6687:68:0;6571:400:1;6687:68:0;-1:-1:-1;;;;;6774:21:0;;6766:68;;;;-1:-1:-1;;;6766:68:0;;7178:2:1;6766:68:0;;;7160:21:1;7217:2;7197:18;;;7190:30;7256:34;7236:18;;;7229:62;-1:-1:-1;;;7307:18:1;;;7300:32;7349:19;;6766:68:0;6976:398:1;6766:68:0;-1:-1:-1;;;;;6847:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6899:32;;1342:25:1;;;6899:32:0;;1315:18:1;6899:32:0;;;;;;;6593:346;;;:::o;6945:419::-;7046:24;7073:25;7083:5;7090:7;7073:9;:25::i;:::-;7046:52;;-1:-1:-1;;7113:16:0;:37;7109:248;;7195:6;7175:16;:26;;7167:68;;;;-1:-1:-1;;;7167:68:0;;7581:2:1;7167:68:0;;;7563:21:1;7620:2;7600:18;;;7593:30;7659:31;7639:18;;;7632:59;7708:18;;7167:68:0;7379:353:1;7167:68:0;7279:51;7288:5;7295:7;7323:6;7304:16;:25;7279:8;:51::i;4824:641::-;-1:-1:-1;;;;;4921:18:0;;4913:68;;;;-1:-1:-1;;;4913:68:0;;7939:2:1;4913:68:0;;;7921:21:1;7978:2;7958:18;;;7951:30;8017:34;7997:18;;;7990:62;-1:-1:-1;;;8068:18:1;;;8061:35;8113:19;;4913:68:0;7737:401:1;4913:68:0;-1:-1:-1;;;;;5000:16:0;;4992:64;;;;-1:-1:-1;;;4992:64:0;;8345:2:1;4992:64:0;;;8327:21:1;8384:2;8364:18;;;8357:30;8423:34;8403:18;;;8396:62;-1:-1:-1;;;8474:18:1;;;8467:33;8517:19;;4992:64:0;8143:399:1;4992:64:0;-1:-1:-1;;;;;5142:15:0;;5120:19;5142:15;;;;;;;;;;;5176:21;;;;5168:72;;;;-1:-1:-1;;;5168:72:0;;8749:2:1;5168:72:0;;;8731:21:1;8788:2;8768:18;;;8761:30;8827:34;8807:18;;;8800:62;-1:-1:-1;;;8878:18:1;;;8871:36;8924:19;;5168:72:0;8547:402:1;5168:72:0;-1:-1:-1;;;;;5276:15:0;;;:9;:15;;;;;;;;;;;5294:20;;;5276:38;;5329:13;;;;;;;;;;:23;;;;;;5381:26;;1342:25:1;;;5329:13:0;;5381:26;;1315:18:1;5381:26:0;;;;;;;5420:37;7370:91;774:132;752:6;;-1:-1:-1;;;;;752:6:0;230:10;838:23;830:68;;;;-1:-1:-1;;;830:68:0;;9156:2:1;830:68:0;;;9138:21:1;;;9175:18;;;9168:30;9234:34;9214:18;;;9207:62;9286:18;;830:68:0;8954:356:1;1234:191:0;1327:6;;;-1:-1:-1;;;;;1344:17:0;;;-1:-1:-1;;;;;;1344:17:0;;;;;;;1377:40;;1327:6;;;1344:17;1327:6;;1377:40;;1308:16;;1377:40;1297:128;1234:191;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:173::-;635:20;;-1:-1:-1;;;;;684:31:1;;674:42;;664:70;;730:1;727;720:12;664:70;567:173;;;:::o;745:254::-;813:6;821;874:2;862:9;853:7;849:23;845:32;842:52;;;890:1;887;880:12;842:52;913:29;932:9;913:29;:::i;:::-;903:39;989:2;974:18;;;;961:32;;-1:-1:-1;;;745:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1900:186::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;2051:29;2070:9;2051:29;:::i;:::-;2041:39;1900:186;-1:-1:-1;;;1900:186:1:o;2408:260::-;2476:6;2484;2537:2;2525:9;2516:7;2512:23;2508:32;2505:52;;;2553:1;2550;2543:12;2505:52;2576:29;2595:9;2576:29;:::i;:::-;2566:39;;2624:38;2658:2;2647:9;2643:18;2624:38;:::i;:::-;2614:48;;2408:260;;;;;:::o;2673:380::-;2752:1;2748:12;;;;2795;;;2816:61;;2870:4;2862:6;2858:17;2848:27;;2816:61;2923:2;2915:6;2912:14;2892:18;2889:38;2886:161;;2969:10;2964:3;2960:20;2957:1;2950:31;3004:4;3001:1;2994:15;3032:4;3029:1;3022:15;2886:161;;2673:380;;;:::o;3058:222::-;3123:9;;;3144:10;;;3141:133;;;3196:10;3191:3;3187:20;3184:1;3177:31;3231:4;3228:1;3221:15;3259:4;3256:1;3249:15;3970:277;4037:6;4090:2;4078:9;4069:7;4065:23;4061:32;4058:52;;;4106:1;4103;4096:12;4058:52;4138:9;4132:16;4191:5;4184:13;4177:21;4170:5;4167:32;4157:60;;4213:1;4210;4203:12;4445:1220;4665:13;;-1:-1:-1;;;;;2157:31:1;2145:44;;4633:3;4618:19;;4737:4;4729:6;4725:17;4719:24;4752:54;4800:4;4789:9;4785:20;4771:12;-1:-1:-1;;;;;2157:31:1;2145:44;;2091:104;4752:54;;4855:4;4847:6;4843:17;4837:24;4870:55;4919:4;4908:9;4904:20;4888:14;4328:8;4317:20;4305:33;;4252:92;4870:55;;4974:4;4966:6;4962:17;4956:24;4989:54;5037:4;5026:9;5022:20;5006:14;4424:1;4413:20;4401:33;;4349:91;4989:54;;5092:4;5084:6;5080:17;5074:24;5107:54;5155:4;5144:9;5140:20;5124:14;4424:1;4413:20;4401:33;;4349:91;5107:54;;5217:4;5209:6;5205:17;5199:24;5192:4;5181:9;5177:20;5170:54;5280:4;5272:6;5268:17;5262:24;5255:4;5244:9;5240:20;5233:54;5343:4;5335:6;5331:17;5325:24;5318:4;5307:9;5303:20;5296:54;5369:6;5429:2;5421:6;5417:15;5411:22;5406:2;5395:9;5391:18;5384:50;;5453:6;5508:2;5500:6;5496:15;5490:22;5521:54;5571:2;5560:9;5556:18;5540:14;-1:-1:-1;;;;;2157:31:1;2145:44;;2091:104;5521:54;-1:-1:-1;;5594:6:1;5642:15;;;5636:22;5616:18;;;;5609:50;4445:1220;:::o;5670:489::-;5767:6;5775;5783;5791;5844:3;5832:9;5823:7;5819:23;5815:33;5812:53;;;5861:1;5858;5851:12;5812:53;5890:9;5884:16;5874:26;;5943:2;5932:9;5928:18;5922:25;5987:34;5980:5;5976:46;5969:5;5966:57;5956:85;;6037:1;6034;6027:12;5956:85;6105:2;6090:18;;6084:25;6149:2;6134:18;;;6128:25;5670:489;;6060:5;;-1:-1:-1;5670:489:1;-1:-1:-1;;;5670:489:1:o

Swarm Source

ipfs://e844bfd273955baa2f08c8b2dde43d98ea08f486bb9b728a5c76b485c78a7f66

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.