ETH Price: $3,312.55 (-3.30%)

Contract

0x5E96d69257b025d097863F3d69E9DcADb9a9810c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Approval For...210250182024-10-23 1:32:4734 days ago1729647167IN
Fake_Phishing299941
0 ETH0.000192144.16585571
Set Approval For...210075242024-10-20 14:55:4737 days ago1729436147IN
Fake_Phishing299941
0 ETH0.0003601314.87408109
Set Approval For...183795572023-10-18 20:15:35405 days ago1697660135IN
Fake_Phishing299941
0 ETH0.000391568.50482295
Set Approval For...183495482023-10-14 15:35:35409 days ago1697297735IN
Fake_Phishing299941
0 ETH0.000296486.43966056
Set Approval For...181701052023-09-19 12:58:11434 days ago1695128291IN
Fake_Phishing299941
0 ETH0.0002757911.3908365
Safe Transfer Fr...180337162023-08-31 9:39:23453 days ago1693474763IN
Fake_Phishing299941
0 ETH0.0008671715.15061737
Transfer From176585272023-07-09 20:29:35506 days ago1688934575IN
Fake_Phishing299941
0 ETH0.0008382915.36612315
Safe Transfer Fr...172182942023-05-08 20:58:47568 days ago1683579527IN
Fake_Phishing299941
0 ETH0.0039965398.26487166
Safe Transfer Fr...172182282023-05-08 20:44:59568 days ago1683578699IN
Fake_Phishing299941
0 ETH0.0053749185.90107115
Set Approval For...172181502023-05-08 20:29:23568 days ago1683577763IN
Fake_Phishing299941
0 ETH0.0045763699.39976064
Set Approval For...167424822023-03-02 17:55:11635 days ago1677779711IN
Fake_Phishing299941
0 ETH0.0015634433.95845863
Set Approval For...163074592022-12-31 21:33:23696 days ago1672522403IN
Fake_Phishing299941
0 ETH0.0007588716.45730402
Safe Transfer Fr...162987052022-12-30 16:13:23697 days ago1672416803IN
Fake_Phishing299941
0 ETH0.001723130.07113854
Set Approval For...162348432022-12-21 18:23:23706 days ago1671647003IN
Fake_Phishing299941
0 ETH0.0007265315.75177071
Set Approval For...162229952022-12-20 2:43:23707 days ago1671504203IN
Fake_Phishing299941
0 ETH0.0007086115.36729615
Approve161716842022-12-12 22:43:59715 days ago1670885039IN
Fake_Phishing299941
0 ETH0.000885818.30933595
Approve161716732022-12-12 22:41:47715 days ago1670884907IN
Fake_Phishing299941
0 ETH0.0007774716.0702491
Transfer From157312152022-10-12 9:44:11776 days ago1665567851IN
Fake_Phishing299941
0 ETH0.0006371515.08314
Transfer From157312142022-10-12 9:43:59776 days ago1665567839IN
Fake_Phishing299941
0 ETH0.0009421115.87575441
Transfer From154091642022-08-25 12:45:01824 days ago1661431501IN
Fake_Phishing299941
0 ETH0.0003982110.63514856
Set Approval For...153493032022-08-16 0:55:46834 days ago1660611346IN
Fake_Phishing299941
0 ETH0.0008982919.47560988
Set Approval For...153339082022-08-13 14:19:43836 days ago1660400383IN
Fake_Phishing299941
0 ETH0.000459749.9675594
Set Approval For...153037812022-08-08 20:41:41841 days ago1659991301IN
Fake_Phishing299941
0 ETH0.0016455967.96604584
Set Approval For...150045452022-06-21 22:29:01889 days ago1655850541IN
Fake_Phishing299941
0 ETH0.0011457724.84125232
Transfer From149850542022-06-18 12:50:55892 days ago1655556655IN
Fake_Phishing299941
0 ETH0.0007764314.23534326
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
144343322022-03-22 5:51:09980 days ago1647928269
Fake_Phishing299941
0.25 ETH
143426452022-03-07 23:18:37995 days ago1646695117
Fake_Phishing299941
15.3 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Bubki

Compiler Version
v0.8.12+commit.f00d7308

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
File 1 of 4 : Bubki.sol
//SPDX-License-Identifier: UNLICENSED

pragma solidity >=0.8.0;

import "./Strings.sol";
import "./Ownable.sol";
import "./ERC721.sol";


contract Bubki is ERC721, Ownable {

    // We are donating to https://unchain.fund/
    address public UKRAINE_ETH_ADDRESS = 0x10E1439455BD2624878b243819E31CfEE9eb721C;
    uint256 public constant MAX_SUPPLY = 10_000;

    uint256 public tokenCost = 0.05 ether;
    uint256 public maxMintPerTx = 100;
    bool public isSaleActive;
    bool public metadataFrozen;
    uint256 public totalSupply;
    string public baseURI;

    constructor() ERC721("Bubki for Ukraine", "Bubki") {}

    function mint(uint256 _count) external payable {
        require(isSaleActive);
        require(_count <= maxMintPerTx);

        uint256 currentId = totalSupply;

        unchecked {
            require(currentId + _count <= MAX_SUPPLY);
            require(msg.value == _count * tokenCost);

            for (uint256 i; i < _count; ++i) {
                // 99% sure this check is not necessary,
                // because totalSupply will force mint to always increment to a place where ownerOf == 0x0
                // require(ownerOf[id] == address(0), "ALREADY_MINTED");

                ownerOf[currentId + i] = msg.sender;
                emit Transfer(address(0), msg.sender, currentId + i);
            }

            balanceOf[msg.sender] += _count;
            totalSupply += _count;
        }
    }

    function tokenURI(uint256 _tokenId) public view virtual override returns (string memory) {
        require(ownerOf[_tokenId] != address(0));
        return string(abi.encodePacked(baseURI, Strings.toString(_tokenId), ".json"));
    }

    function updateTokenCost(uint256 _tokenCost) external onlyOwner {
        tokenCost = _tokenCost;
    }

    function updateMaxMintPerTx(uint256 _maxMintPerTx) external onlyOwner {
        maxMintPerTx = _maxMintPerTx;
    }

    function updateBaseURI(string memory _baseURI) external onlyOwner {
        require(metadataFrozen == false, "METADATA_FROZEN");
        baseURI = _baseURI;
    }

    function freezeBaseURI() external onlyOwner {
        metadataFrozen = true;
    }

    function flipSaleState() external onlyOwner {
        isSaleActive = !isSaleActive;
    }

    /**
     * @dev Allows update to charity address in the event that the deployed address
     * is incorrect or has to be changed. Only can be called by owner or the charity's
     * address (if EOA).
     */
    function updateWithdrawAddress(address _newAddress) external onlyReceiverOrOwner {
        UKRAINE_ETH_ADDRESS = _newAddress;
    }

    /**
     * @dev Throws if not called by owner or withdrawal target
     */
    modifier onlyReceiverOrOwner() {
        require(msg.sender == UKRAINE_ETH_ADDRESS || msg.sender == owner());
        _;
    }

    function transferFunds() external {
        uint256 balance = address(this).balance;

        (bool transferTx, ) = payable(UKRAINE_ETH_ADDRESS).call{value: balance}("");
        require(transferTx);
    }
}

File 2 of 4 : ERC721.sol
// SPDX-License-Identifier: AGPL-3.0-only
pragma solidity >=0.8.0;

/// @notice Modern, minimalist, and gas efficient ERC-721 implementation.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)
/// @dev Note that balanceOf does not revert if passed the zero address, in defiance of the ERC.

/// We have modified this contract to remove unneeded functions (e.g. _mint, _safeMint, _burn)
abstract contract ERC721 {
    /*///////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

    event Transfer(address indexed from, address indexed to, uint256 indexed id);

    event Approval(address indexed owner, address indexed spender, uint256 indexed id);

    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /*///////////////////////////////////////////////////////////////
                          METADATA STORAGE/LOGIC
    //////////////////////////////////////////////////////////////*/

    string public name;

    string public symbol;

    function tokenURI(uint256 id) public view virtual returns (string memory);

    /*///////////////////////////////////////////////////////////////
                            ERC721 STORAGE                        
    //////////////////////////////////////////////////////////////*/

    mapping(address => uint256) public balanceOf;

    mapping(uint256 => address) public ownerOf;

    mapping(uint256 => address) public getApproved;

    mapping(address => mapping(address => bool)) public isApprovedForAll;

    /*///////////////////////////////////////////////////////////////
                              CONSTRUCTOR
    //////////////////////////////////////////////////////////////*/

    constructor(string memory _name, string memory _symbol) {
        name = _name;
        symbol = _symbol;
    }

    /*///////////////////////////////////////////////////////////////
                              ERC721 LOGIC
    //////////////////////////////////////////////////////////////*/

    function approve(address spender, uint256 id) public virtual {
        address owner = ownerOf[id];

        require(msg.sender == owner || isApprovedForAll[owner][msg.sender], "NOT_AUTHORIZED");

        getApproved[id] = spender;

        emit Approval(owner, spender, id);
    }

    function setApprovalForAll(address operator, bool approved) public virtual {
        isApprovedForAll[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function transferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        require(from == ownerOf[id], "WRONG_FROM");

        require(to != address(0), "INVALID_RECIPIENT");

        require(
            msg.sender == from || msg.sender == getApproved[id] || isApprovedForAll[from][msg.sender],
            "NOT_AUTHORIZED"
        );

        // Underflow of the sender's balance is impossible because we check for
        // ownership above and the recipient's balance can't realistically overflow.
        unchecked {
            balanceOf[from]--;

            balanceOf[to]++;
        }

        ownerOf[id] = to;

        delete getApproved[id];

        emit Transfer(from, to, id);
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, "") ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    function safeTransferFrom(
        address from,
        address to,
        uint256 id,
        bytes memory data
    ) public virtual {
        transferFrom(from, to, id);

        require(
            to.code.length == 0 ||
                ERC721TokenReceiver(to).onERC721Received(msg.sender, from, id, data) ==
                ERC721TokenReceiver.onERC721Received.selector,
            "UNSAFE_RECIPIENT"
        );
    }

    /*///////////////////////////////////////////////////////////////
                              ERC165 LOGIC
    //////////////////////////////////////////////////////////////*/

    function supportsInterface(bytes4 interfaceId) public pure virtual returns (bool) {
        return
            interfaceId == 0x01ffc9a7 || // ERC165 Interface ID for ERC165
            interfaceId == 0x80ac58cd || // ERC165 Interface ID for ERC721
            interfaceId == 0x5b5e139f; // ERC165 Interface ID for ERC721Metadata
    }

}

/// @notice A generic interface for a contract which properly accepts ERC721 tokens.
/// @author Solmate (https://github.com/Rari-Capital/solmate/blob/main/src/tokens/ERC721.sol)
interface ERC721TokenReceiver {
    function onERC721Received(
        address operator,
        address from,
        uint256 id,
        bytes calldata data
    ) external returns (bytes4);
}

File 3 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (access/Ownable.sol)


// forked from openzeppelin, removed stupid dependency on Context

pragma solidity ^0.8.0;

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
abstract contract Ownable {
    address private _owner;

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() {
        _transferOwnership(msg.sender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view virtual returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Internal function without access restriction.
     */
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

File 4 of 4 : Strings.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Strings.sol)

pragma solidity ^0.8.0;

/**
 * @dev String operations.
 */
library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

Settings
{
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  }
}

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":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","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":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"MAX_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UKRAINE_ETH_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flipSaleState","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"freezeBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isSaleActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxMintPerTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"metadataFrozen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"name":"tokenURI","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_baseURI","type":"string"}],"name":"updateBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxMintPerTx","type":"uint256"}],"name":"updateMaxMintPerTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_tokenCost","type":"uint256"}],"name":"updateTokenCost","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newAddress","type":"address"}],"name":"updateWithdrawAddress","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052600780546001600160a01b0319167310e1439455bd2624878b243819e31cfee9eb721c17905566b1a2bc2ec5000060085560646009553480156200004757600080fd5b5060408051808201825260118152704275626b6920666f7220556b7261696e6560781b6020808301918252835180850190945260058452644275626b6960d81b9084015281519192916200009e9160009162000120565b508051620000b490600190602084019062000120565b505050620000c833620000ce60201b60201c565b62000203565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200012e90620001c6565b90600052602060002090601f0160209004810192826200015257600085556200019d565b82601f106200016d57805160ff19168380011785556200019d565b828001600101855582156200019d579182015b828111156200019d57825182559160200191906001019062000180565b50620001ab929150620001af565b5090565b5b80821115620001ab5760008155600101620001b0565b600181811c90821680620001db57607f821691505b60208210811415620001fd57634e487b7160e01b600052602260045260246000fd5b50919050565b6117ed80620002136000396000f3fe6080604052600436106101e35760003560e01c80638da5cb5b11610102578063bd5adf8711610095578063e985e9c511610064578063e985e9c514610561578063f2fde38b1461059c578063f4a2a229146105bc578063fb3cc6c2146105dc57600080fd5b8063bd5adf87146104f6578063c87b56dd14610516578063de7fcb1d14610536578063e7bc82081461054c57600080fd5b8063a0712d68116100d1578063a0712d6814610483578063a22cb46514610496578063a3f4b573146104b6578063b88d4fde146104d657600080fd5b80638da5cb5b1461041a578063912221d514610438578063931688cb1461044e57806395d89b411461046e57600080fd5b80633c68eb811161017a5780636875bd94116101495780636875bd94146103a35780636c0360eb146103c357806370a08231146103d8578063715018a61461040557600080fd5b80633c68eb811461031e57806342842e0e14610333578063564566a8146103535780636352211e1461036d57600080fd5b806318160ddd116101b657806318160ddd146102af57806323b872dd146102d357806332cb6b0c146102f357806334918dfd1461030957600080fd5b806301ffc9a7146101e857806306fdde031461021d578063081812fc1461023f578063095ea7b31461028d575b600080fd5b3480156101f457600080fd5b5061020861020336600461125d565b6105fb565b60405190151581526020015b60405180910390f35b34801561022957600080fd5b5061023261064d565b60405161021491906112d9565b34801561024b57600080fd5b5061027561025a3660046112ec565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610214565b34801561029957600080fd5b506102ad6102a8366004611321565b6106db565b005b3480156102bb57600080fd5b506102c5600b5481565b604051908152602001610214565b3480156102df57600080fd5b506102ad6102ee36600461134b565b6107c2565b3480156102ff57600080fd5b506102c561271081565b34801561031557600080fd5b506102ad610989565b34801561032a57600080fd5b506102ad6109d6565b34801561033f57600080fd5b506102ad61034e36600461134b565b610a3e565b34801561035f57600080fd5b50600a546102089060ff1681565b34801561037957600080fd5b506102756103883660046112ec565b6003602052600090815260409020546001600160a01b031681565b3480156103af57600080fd5b50600754610275906001600160a01b031681565b3480156103cf57600080fd5b50610232610b36565b3480156103e457600080fd5b506102c56103f3366004611387565b60026020526000908152604090205481565b34801561041157600080fd5b506102ad610b43565b34801561042657600080fd5b506006546001600160a01b0316610275565b34801561044457600080fd5b506102c560085481565b34801561045a57600080fd5b506102ad61046936600461142e565b610b88565b34801561047a57600080fd5b50610232610c1e565b6102ad6104913660046112ec565b610c2b565b3480156104a257600080fd5b506102ad6104b1366004611477565b610cf1565b3480156104c257600080fd5b506102ad6104d1366004611387565b610d5d565b3480156104e257600080fd5b506102ad6104f13660046114b3565b610dab565b34801561050257600080fd5b506102ad6105113660046112ec565b610e90565b34801561052257600080fd5b506102326105313660046112ec565b610ece565b34801561054257600080fd5b506102c560095481565b34801561055857600080fd5b506102ad610f24565b34801561056d57600080fd5b5061020861057c36600461152f565b600560209081526000928352604080842090915290825290205460ff1681565b3480156105a857600080fd5b506102ad6105b7366004611387565b610f6e565b3480156105c857600080fd5b506102ad6105d73660046112ec565b611018565b3480156105e857600080fd5b50600a5461020890610100900460ff1681565b60006301ffc9a760e01b6001600160e01b03198316148061062c57506380ac58cd60e01b6001600160e01b03198316145b806106475750635b5e139f60e01b6001600160e01b03198316145b92915050565b6000805461065a90611562565b80601f016020809104026020016040519081016040528092919081815260200182805461068690611562565b80156106d35780601f106106a8576101008083540402835291602001916106d3565b820191906000526020600020905b8154815290600101906020018083116106b657829003601f168201915b505050505081565b6000818152600360205260409020546001600160a01b03163381148061072457506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6107665760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600360205260409020546001600160a01b038481169116146108185760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b604482015260640161075d565b6001600160a01b0382166108625760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b604482015260640161075d565b336001600160a01b038416148061088f57506000818152600460205260409020546001600160a01b031633145b806108bd57506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b6108fa5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161075d565b6001600160a01b0380841660008181526002602090815260408083208054600019019055938616808352848320805460010190558583526003825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b3361099c6006546001600160a01b031690565b6001600160a01b0316146109c25760405162461bcd60e51b815260040161075d9061159d565b600a805460ff19811660ff90911615179055565b60075460405147916000916001600160a01b039091169083908381818185875af1925050503d8060008114610a27576040519150601f19603f3d011682016040523d82523d6000602084013e610a2c565b606091505b5050905080610a3a57600080fd5b5050565b610a498383836107c2565b6001600160a01b0382163b1580610af25750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610ac2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae691906115d2565b6001600160e01b031916145b610b315760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b604482015260640161075d565b505050565b600c805461065a90611562565b33610b566006546001600160a01b031690565b6001600160a01b031614610b7c5760405162461bcd60e51b815260040161075d9061159d565b610b866000611056565b565b33610b9b6006546001600160a01b031690565b6001600160a01b031614610bc15760405162461bcd60e51b815260040161075d9061159d565b600a54610100900460ff1615610c0b5760405162461bcd60e51b815260206004820152600f60248201526e26a2aa20a220aa20afa32927ad22a760891b604482015260640161075d565b8051610a3a90600c9060208401906111ae565b6001805461065a90611562565b600a5460ff16610c3a57600080fd5b600954811115610c4957600080fd5b600b546127108282011115610c5d57600080fd5b60085482023414610c6d57600080fd5b60005b82811015610ccf5781810160008181526003602052604080822080546001600160a01b0319163390811790915590519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4600101610c70565b5050336000908152600260205260409020805482019055600b80549091019055565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6007546001600160a01b0316331480610d8057506006546001600160a01b031633145b610d8957600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b610db68484846107c2565b6001600160a01b0383163b1580610e4b5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610dfc9033908990889088906004016115ef565b6020604051808303816000875af1158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f91906115d2565b6001600160e01b031916145b610e8a5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b604482015260640161075d565b50505050565b33610ea36006546001600160a01b031690565b6001600160a01b031614610ec95760405162461bcd60e51b815260040161075d9061159d565b600955565b6000818152600360205260409020546060906001600160a01b0316610ef257600080fd5b600c610efd836110a8565b604051602001610f0e929190611648565b6040516020818303038152906040529050919050565b33610f376006546001600160a01b031690565b6001600160a01b031614610f5d5760405162461bcd60e51b815260040161075d9061159d565b600a805461ff001916610100179055565b33610f816006546001600160a01b031690565b6001600160a01b031614610fa75760405162461bcd60e51b815260040161075d9061159d565b6001600160a01b03811661100c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075d565b61101581611056565b50565b3361102b6006546001600160a01b031690565b6001600160a01b0316146110515760405162461bcd60e51b815260040161075d9061159d565b600855565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6060816110cc5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156110f657806110e081611719565b91506110ef9050600a8361174a565b91506110d0565b60008167ffffffffffffffff811115611111576111116113a2565b6040519080825280601f01601f19166020018201604052801561113b576020820181803683370190505b5090505b84156111a65761115060018361175e565b915061115d600a86611775565b611168906030611789565b60f81b81838151811061117d5761117d6117a1565b60200101906001600160f81b031916908160001a90535061119f600a8661174a565b945061113f565b949350505050565b8280546111ba90611562565b90600052602060002090601f0160209004810192826111dc5760008555611222565b82601f106111f557805160ff1916838001178555611222565b82800160010185558215611222579182015b82811115611222578251825591602001919060010190611207565b5061122e929150611232565b5090565b5b8082111561122e5760008155600101611233565b6001600160e01b03198116811461101557600080fd5b60006020828403121561126f57600080fd5b813561127a81611247565b9392505050565b60005b8381101561129c578181015183820152602001611284565b83811115610e8a5750506000910152565b600081518084526112c5816020860160208601611281565b601f01601f19169290920160200192915050565b60208152600061127a60208301846112ad565b6000602082840312156112fe57600080fd5b5035919050565b80356001600160a01b038116811461131c57600080fd5b919050565b6000806040838503121561133457600080fd5b61133d83611305565b946020939093013593505050565b60008060006060848603121561136057600080fd5b61136984611305565b925061137760208501611305565b9150604084013590509250925092565b60006020828403121561139957600080fd5b61127a82611305565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff808411156113d3576113d36113a2565b604051601f8501601f19908116603f011681019082821181831017156113fb576113fb6113a2565b8160405280935085815286868601111561141457600080fd5b858560208301376000602087830101525050509392505050565b60006020828403121561144057600080fd5b813567ffffffffffffffff81111561145757600080fd5b8201601f8101841361146857600080fd5b6111a6848235602084016113b8565b6000806040838503121561148a57600080fd5b61149383611305565b9150602083013580151581146114a857600080fd5b809150509250929050565b600080600080608085870312156114c957600080fd5b6114d285611305565b93506114e060208601611305565b925060408501359150606085013567ffffffffffffffff81111561150357600080fd5b8501601f8101871361151457600080fd5b611523878235602084016113b8565b91505092959194509250565b6000806040838503121561154257600080fd5b61154b83611305565b915061155960208401611305565b90509250929050565b600181811c9082168061157657607f821691505b6020821081141561159757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115e457600080fd5b815161127a81611247565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611622908301846112ad565b9695505050505050565b6000815161163e818560208601611281565b9290920192915050565b600080845481600182811c91508083168061166457607f831692505b602080841082141561168457634e487b7160e01b86526022600452602486fd5b81801561169857600181146116a9576116d6565b60ff198616895284890196506116d6565b60008b81526020902060005b868110156116ce5781548b8201529085019083016116b5565b505084890196505b5050505050506116fa6116e9828661162c565b64173539b7b760d91b815260050190565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600060001982141561172d5761172d611703565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261175957611759611734565b500490565b60008282101561177057611770611703565b500390565b60008261178457611784611734565b500690565b6000821982111561179c5761179c611703565b500190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212209dc7cffab8b62a29b674e22f1652685be760b2a1f0ea4eee4855412b83848a5a64736f6c634300080c0033

Deployed Bytecode

0x6080604052600436106101e35760003560e01c80638da5cb5b11610102578063bd5adf8711610095578063e985e9c511610064578063e985e9c514610561578063f2fde38b1461059c578063f4a2a229146105bc578063fb3cc6c2146105dc57600080fd5b8063bd5adf87146104f6578063c87b56dd14610516578063de7fcb1d14610536578063e7bc82081461054c57600080fd5b8063a0712d68116100d1578063a0712d6814610483578063a22cb46514610496578063a3f4b573146104b6578063b88d4fde146104d657600080fd5b80638da5cb5b1461041a578063912221d514610438578063931688cb1461044e57806395d89b411461046e57600080fd5b80633c68eb811161017a5780636875bd94116101495780636875bd94146103a35780636c0360eb146103c357806370a08231146103d8578063715018a61461040557600080fd5b80633c68eb811461031e57806342842e0e14610333578063564566a8146103535780636352211e1461036d57600080fd5b806318160ddd116101b657806318160ddd146102af57806323b872dd146102d357806332cb6b0c146102f357806334918dfd1461030957600080fd5b806301ffc9a7146101e857806306fdde031461021d578063081812fc1461023f578063095ea7b31461028d575b600080fd5b3480156101f457600080fd5b5061020861020336600461125d565b6105fb565b60405190151581526020015b60405180910390f35b34801561022957600080fd5b5061023261064d565b60405161021491906112d9565b34801561024b57600080fd5b5061027561025a3660046112ec565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001610214565b34801561029957600080fd5b506102ad6102a8366004611321565b6106db565b005b3480156102bb57600080fd5b506102c5600b5481565b604051908152602001610214565b3480156102df57600080fd5b506102ad6102ee36600461134b565b6107c2565b3480156102ff57600080fd5b506102c561271081565b34801561031557600080fd5b506102ad610989565b34801561032a57600080fd5b506102ad6109d6565b34801561033f57600080fd5b506102ad61034e36600461134b565b610a3e565b34801561035f57600080fd5b50600a546102089060ff1681565b34801561037957600080fd5b506102756103883660046112ec565b6003602052600090815260409020546001600160a01b031681565b3480156103af57600080fd5b50600754610275906001600160a01b031681565b3480156103cf57600080fd5b50610232610b36565b3480156103e457600080fd5b506102c56103f3366004611387565b60026020526000908152604090205481565b34801561041157600080fd5b506102ad610b43565b34801561042657600080fd5b506006546001600160a01b0316610275565b34801561044457600080fd5b506102c560085481565b34801561045a57600080fd5b506102ad61046936600461142e565b610b88565b34801561047a57600080fd5b50610232610c1e565b6102ad6104913660046112ec565b610c2b565b3480156104a257600080fd5b506102ad6104b1366004611477565b610cf1565b3480156104c257600080fd5b506102ad6104d1366004611387565b610d5d565b3480156104e257600080fd5b506102ad6104f13660046114b3565b610dab565b34801561050257600080fd5b506102ad6105113660046112ec565b610e90565b34801561052257600080fd5b506102326105313660046112ec565b610ece565b34801561054257600080fd5b506102c560095481565b34801561055857600080fd5b506102ad610f24565b34801561056d57600080fd5b5061020861057c36600461152f565b600560209081526000928352604080842090915290825290205460ff1681565b3480156105a857600080fd5b506102ad6105b7366004611387565b610f6e565b3480156105c857600080fd5b506102ad6105d73660046112ec565b611018565b3480156105e857600080fd5b50600a5461020890610100900460ff1681565b60006301ffc9a760e01b6001600160e01b03198316148061062c57506380ac58cd60e01b6001600160e01b03198316145b806106475750635b5e139f60e01b6001600160e01b03198316145b92915050565b6000805461065a90611562565b80601f016020809104026020016040519081016040528092919081815260200182805461068690611562565b80156106d35780601f106106a8576101008083540402835291602001916106d3565b820191906000526020600020905b8154815290600101906020018083116106b657829003601f168201915b505050505081565b6000818152600360205260409020546001600160a01b03163381148061072457506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6107665760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064015b60405180910390fd5b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000818152600360205260409020546001600160a01b038481169116146108185760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b604482015260640161075d565b6001600160a01b0382166108625760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b604482015260640161075d565b336001600160a01b038416148061088f57506000818152600460205260409020546001600160a01b031633145b806108bd57506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b6108fa5760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b604482015260640161075d565b6001600160a01b0380841660008181526002602090815260408083208054600019019055938616808352848320805460010190558583526003825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b3361099c6006546001600160a01b031690565b6001600160a01b0316146109c25760405162461bcd60e51b815260040161075d9061159d565b600a805460ff19811660ff90911615179055565b60075460405147916000916001600160a01b039091169083908381818185875af1925050503d8060008114610a27576040519150601f19603f3d011682016040523d82523d6000602084013e610a2c565b606091505b5050905080610a3a57600080fd5b5050565b610a498383836107c2565b6001600160a01b0382163b1580610af25750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610ac2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ae691906115d2565b6001600160e01b031916145b610b315760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b604482015260640161075d565b505050565b600c805461065a90611562565b33610b566006546001600160a01b031690565b6001600160a01b031614610b7c5760405162461bcd60e51b815260040161075d9061159d565b610b866000611056565b565b33610b9b6006546001600160a01b031690565b6001600160a01b031614610bc15760405162461bcd60e51b815260040161075d9061159d565b600a54610100900460ff1615610c0b5760405162461bcd60e51b815260206004820152600f60248201526e26a2aa20a220aa20afa32927ad22a760891b604482015260640161075d565b8051610a3a90600c9060208401906111ae565b6001805461065a90611562565b600a5460ff16610c3a57600080fd5b600954811115610c4957600080fd5b600b546127108282011115610c5d57600080fd5b60085482023414610c6d57600080fd5b60005b82811015610ccf5781810160008181526003602052604080822080546001600160a01b0319163390811790915590519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4600101610c70565b5050336000908152600260205260409020805482019055600b80549091019055565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6007546001600160a01b0316331480610d8057506006546001600160a01b031633145b610d8957600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b610db68484846107c2565b6001600160a01b0383163b1580610e4b5750604051630a85bd0160e11b808252906001600160a01b0385169063150b7a0290610dfc9033908990889088906004016115ef565b6020604051808303816000875af1158015610e1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3f91906115d2565b6001600160e01b031916145b610e8a5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b604482015260640161075d565b50505050565b33610ea36006546001600160a01b031690565b6001600160a01b031614610ec95760405162461bcd60e51b815260040161075d9061159d565b600955565b6000818152600360205260409020546060906001600160a01b0316610ef257600080fd5b600c610efd836110a8565b604051602001610f0e929190611648565b6040516020818303038152906040529050919050565b33610f376006546001600160a01b031690565b6001600160a01b031614610f5d5760405162461bcd60e51b815260040161075d9061159d565b600a805461ff001916610100179055565b33610f816006546001600160a01b031690565b6001600160a01b031614610fa75760405162461bcd60e51b815260040161075d9061159d565b6001600160a01b03811661100c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161075d565b61101581611056565b50565b3361102b6006546001600160a01b031690565b6001600160a01b0316146110515760405162461bcd60e51b815260040161075d9061159d565b600855565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6060816110cc5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156110f657806110e081611719565b91506110ef9050600a8361174a565b91506110d0565b60008167ffffffffffffffff811115611111576111116113a2565b6040519080825280601f01601f19166020018201604052801561113b576020820181803683370190505b5090505b84156111a65761115060018361175e565b915061115d600a86611775565b611168906030611789565b60f81b81838151811061117d5761117d6117a1565b60200101906001600160f81b031916908160001a90535061119f600a8661174a565b945061113f565b949350505050565b8280546111ba90611562565b90600052602060002090601f0160209004810192826111dc5760008555611222565b82601f106111f557805160ff1916838001178555611222565b82800160010185558215611222579182015b82811115611222578251825591602001919060010190611207565b5061122e929150611232565b5090565b5b8082111561122e5760008155600101611233565b6001600160e01b03198116811461101557600080fd5b60006020828403121561126f57600080fd5b813561127a81611247565b9392505050565b60005b8381101561129c578181015183820152602001611284565b83811115610e8a5750506000910152565b600081518084526112c5816020860160208601611281565b601f01601f19169290920160200192915050565b60208152600061127a60208301846112ad565b6000602082840312156112fe57600080fd5b5035919050565b80356001600160a01b038116811461131c57600080fd5b919050565b6000806040838503121561133457600080fd5b61133d83611305565b946020939093013593505050565b60008060006060848603121561136057600080fd5b61136984611305565b925061137760208501611305565b9150604084013590509250925092565b60006020828403121561139957600080fd5b61127a82611305565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff808411156113d3576113d36113a2565b604051601f8501601f19908116603f011681019082821181831017156113fb576113fb6113a2565b8160405280935085815286868601111561141457600080fd5b858560208301376000602087830101525050509392505050565b60006020828403121561144057600080fd5b813567ffffffffffffffff81111561145757600080fd5b8201601f8101841361146857600080fd5b6111a6848235602084016113b8565b6000806040838503121561148a57600080fd5b61149383611305565b9150602083013580151581146114a857600080fd5b809150509250929050565b600080600080608085870312156114c957600080fd5b6114d285611305565b93506114e060208601611305565b925060408501359150606085013567ffffffffffffffff81111561150357600080fd5b8501601f8101871361151457600080fd5b611523878235602084016113b8565b91505092959194509250565b6000806040838503121561154257600080fd5b61154b83611305565b915061155960208401611305565b90509250929050565b600181811c9082168061157657607f821691505b6020821081141561159757634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b6000602082840312156115e457600080fd5b815161127a81611247565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090611622908301846112ad565b9695505050505050565b6000815161163e818560208601611281565b9290920192915050565b600080845481600182811c91508083168061166457607f831692505b602080841082141561168457634e487b7160e01b86526022600452602486fd5b81801561169857600181146116a9576116d6565b60ff198616895284890196506116d6565b60008b81526020902060005b868110156116ce5781548b8201529085019083016116b5565b505084890196505b5050505050506116fa6116e9828661162c565b64173539b7b760d91b815260050190565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b600060001982141561172d5761172d611703565b5060010190565b634e487b7160e01b600052601260045260246000fd5b60008261175957611759611734565b500490565b60008282101561177057611770611703565b500390565b60008261178457611784611734565b500690565b6000821982111561179c5761179c611703565b500190565b634e487b7160e01b600052603260045260246000fdfea26469706673582212209dc7cffab8b62a29b674e22f1652685be760b2a1f0ea4eee4855412b83848a5a64736f6c634300080c0033

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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