ETH Price: $3,155.53 (+1.41%)

Contract

0x689ecEc14f4ED0FEb1F8f4cd44257fC8C021ed6c
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Mint NF Ts188250972023-12-20 5:39:11334 days ago1703050751IN
0x689ecEc1...8C021ed6c
0 ETH0.004443940.78061315
Mint NF Ts179084682023-08-13 20:57:11463 days ago1691960231IN
0x689ecEc1...8C021ed6c
0 ETH0.0015996812.7275122
Mint NF Ts178785132023-08-09 16:23:23467 days ago1691598203IN
0x689ecEc1...8C021ed6c
0 ETH0.0044224735.19314117
Mint NF Ts177605362023-07-24 4:18:59483 days ago1690172339IN
0x689ecEc1...8C021ed6c
0 ETH0.002139721.55004388
Mint NF Ts177605312023-07-24 4:17:59483 days ago1690172279IN
0x689ecEc1...8C021ed6c
0 ETH0.0020130220.27419441
Mint NF Ts177547112023-07-23 8:45:23484 days ago1690101923IN
0x689ecEc1...8C021ed6c
0 ETH0.0015361515.47515128
Mint NF Ts177547002023-07-23 8:43:11484 days ago1690101791IN
0x689ecEc1...8C021ed6c
0 ETH0.0013318313.41362197
Mint NF Ts177546922023-07-23 8:41:35484 days ago1690101695IN
0x689ecEc1...8C021ed6c
0 ETH0.0005773314.19500325
Mint NF Ts177546912023-07-23 8:41:23484 days ago1690101683IN
0x689ecEc1...8C021ed6c
0 ETH0.0013719113.81721336
Mint NF Ts177523102023-07-23 0:42:11485 days ago1690072931IN
0x689ecEc1...8C021ed6c
0 ETH0.0012880112.97221645
Mint NF Ts177522992023-07-23 0:39:59485 days ago1690072799IN
0x689ecEc1...8C021ed6c
0 ETH0.0013434913.53103777
Mint NF Ts177522942023-07-23 0:38:59485 days ago1690072739IN
0x689ecEc1...8C021ed6c
0 ETH0.0013787813.88644699
Mint NF Ts177522772023-07-23 0:35:23485 days ago1690072523IN
0x689ecEc1...8C021ed6c
0 ETH0.0005681713.96964847
Mint NF Ts177522752023-07-23 0:34:59485 days ago1690072499IN
0x689ecEc1...8C021ed6c
0 ETH0.0012997213.09021705
Mint NF Ts177522692023-07-23 0:33:47485 days ago1690072427IN
0x689ecEc1...8C021ed6c
0 ETH0.0013756613.85669831
Mint NF Ts177503592023-07-22 18:08:47485 days ago1690049327IN
0x689ecEc1...8C021ed6c
0 ETH0.0024903725.08187696
Mint NF Ts177503532023-07-22 18:07:35485 days ago1690049255IN
0x689ecEc1...8C021ed6c
0 ETH0.0027151827.34601305
Mint NF Ts176611332023-07-10 5:17:11497 days ago1688966231IN
0x689ecEc1...8C021ed6c
0 ETH0.0015003712.93356245
Mint NF Ts176178722023-07-04 3:24:23503 days ago1688441063IN
0x689ecEc1...8C021ed6c
0 ETH0.0013209313.3053981
Mint NF Ts176090112023-07-02 21:30:59505 days ago1688333459IN
0x689ecEc1...8C021ed6c
0 ETH0.0012789712.88123354
Mint NF Ts176089982023-07-02 21:28:23505 days ago1688333303IN
0x689ecEc1...8C021ed6c
0 ETH0.0012762912.85574153
Mint NF Ts176036072023-07-02 3:18:59505 days ago1688267939IN
0x689ecEc1...8C021ed6c
0 ETH0.0012204612.29340688
Mint NF Ts175867342023-06-29 18:27:47508 days ago1688063267IN
0x689ecEc1...8C021ed6c
0 ETH0.0058337250.28817266
Mint NF Ts175820512023-06-29 2:41:35509 days ago1688006495IN
0x689ecEc1...8C021ed6c
0 ETH0.0025209225.39262555
Mint NF Ts175820482023-06-29 2:40:59509 days ago1688006459IN
0x689ecEc1...8C021ed6c
0 ETH0.0026085826.27871981
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Break

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 20000 runs

Other Settings:
default evmVersion
File 1 of 4 : Break.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

import "@openzeppelin/contracts/access/Ownable.sol";
import "./Sig.sol";

interface IToken {
    function balanceOf(address owner, uint256 id) external returns (uint256);

    function isApprovedForAll(
        address owner,
        address operator
    ) external returns (bool);

    function burnFT(address owner, uint256 tokenID, uint256 quantity) external;

    function mintFT(address to, uint256 tokenID, uint256 quantity) external;

    function mintNFT(address to, uint256 tokenID) external;

    function batchMintNFT(address to, uint256[] calldata ids) external;
}

contract Break is Ownable {
    address private _token;
    address private _signer;

    event SignatureConsumed(bytes32 indexed from, bytes32 indexed sigHash);

    mapping(bytes32 => bytes32) public lastSigUsed;

    function setTokenAddress(address addr) public onlyOwner {
        _token = addr;
    }

    function getToken() public view returns (address) {
        return _token;
    }

    function setSignerAddress(address addr) public onlyOwner {
        _signer = addr;
    }

    function getSigner() public view returns (address) {
        return _signer;
    }

    function mintFTs(
        bytes32 from,
        address to,
        uint256 id,
        uint256 qty,
        uint256 expiry,
        bytes32 prevSigHash,
        bytes calldata sig
    ) public {
        IToken token = IToken(_token);

        require(to != address(0), "Destination cannot be null address.");

        require(
            verify(
                sig,
                keccak256(abi.encode(from, id, qty, expiry, prevSigHash)),
                _signer
            ),
            "Signature mismatch."
        );

        require(
            lastSigUsed[from] == prevSigHash,
            "Wrong previous signature supplied."
        );

        require(block.timestamp < expiry, "Signature has expired.");

        lastSigUsed[from] = keccak256(sig);

        token.mintFT(to, id, qty);

        emit SignatureConsumed(from, keccak256(sig));
    }

    function mintNFTs(
        bytes32 from,
        address to,
        uint256 burn,
        uint256 burnQty,
        uint256[] calldata mints,
        uint256 expiry,
        bytes32 prevSigHash,
        bytes calldata sig
    ) public {
        IToken token = IToken(_token);

        require(to != address(0), "Destination cannot be null address.");

        if (burnQty > 0) {
            require(
                token.isApprovedForAll(_msgSender(), address(this)),
                "Approval required"
            );
        }

        require(
            verify(
                sig,
                keccak256(
                    abi.encode(
                        from,
                        burn,
                        burnQty,
                        keccak256(abi.encodePacked(mints)),
                        expiry,
                        prevSigHash
                    )
                ),
                _signer
            ),
            "Signature mismatch."
        );

        require(
            lastSigUsed[from] == prevSigHash,
            "Wrong previous signature supplied."
        );

        require(block.timestamp < expiry, "Signature has expired.");

        lastSigUsed[from] = keccak256(sig);

        if (burnQty > 0) {
            token.burnFT(_msgSender(), burn, burnQty);
        }

        token.batchMintNFT(to, mints);

        emit SignatureConsumed(from, keccak256(sig));
    }

    function verify(
        bytes memory sig,
        bytes32 hash,
        address signer
    ) internal pure returns (bool) {
        return Sig.verify(sig, hash, signer);
    }
}

File 2 of 4 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.7.0) (access/Ownable.sol)

pragma solidity ^0.8.0;

import "../utils/Context.sol";

/**
 * @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 is Context {
    address private _owner;

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

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        _checkOwner();
        _;
    }

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

    /**
     * @dev Throws if the sender is not the owner.
     */
    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "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 3 of 4 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)

pragma solidity ^0.8.0;

/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

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

File 4 of 4 : Sig.sol
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

library Sig {
    function verify(
        bytes memory signature,
        bytes32 digestHash,
        address expected
    ) internal pure returns (bool) {
        address std = getSigner(signature, digestHash);
        if (std == expected) {
            return true;
        }

        address packed = getSignerPacked(signature, digestHash);
        if (packed == expected) {
            return true;
        }

        return false;
    }

    function getSigner(
        bytes memory signature,
        bytes32 digestHash
    ) internal pure returns (address) {
        (bytes32 r, bytes32 s, uint8 v) = splitSignature(signature);

        bytes32 signed = getMessageHash(digestHash);
        return ecrecover(signed, v, r, s);
    }

    function getSignerPacked(
        bytes memory signature,
        bytes32 digestHash
    ) internal pure returns (address) {
        (bytes32 r, bytes32 s, uint8 v) = splitSignature(signature);

        bytes32 signed = getMessageHashPacked(digestHash);
        return ecrecover(signed, v, r, s);
    }

    function getMessageHash(
        bytes32 digestHash
    ) internal pure returns (bytes32) {
        return
            keccak256(
                abi.encode("\x19Ethereum Signed Message:\n32", digestHash)
            );
    }

    function getMessageHashPacked(
        bytes32 digestHash
    ) internal pure returns (bytes32) {
        return
            keccak256(
                abi.encodePacked("\x19Ethereum Signed Message:\n32", digestHash)
            );
    }

    function splitSignature(
        bytes memory sig
    ) internal pure returns (bytes32 r, bytes32 s, uint8 v) {
        require(sig.length == 65, "invalid signature length");

        assembly {
            /*
            First 32 bytes stores the length of the signature

            add(sig, 32) = pointer of sig + 32
            effectively, skips first 32 bytes of signature

            mload(p) loads next 32 bytes starting at the memory address p into memory
            */

            // first 32 bytes, after the length prefix
            r := mload(add(sig, 32))
            // second 32 bytes
            s := mload(add(sig, 64))
            // final byte (first byte of the next 32 bytes)
            v := byte(0, mload(add(sig, 96)))
        }

        // implicitly return (r, s, v)
    }
}

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

Contract Security Audit

Contract ABI

[{"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":"bytes32","name":"from","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"sigHash","type":"bytes32"}],"name":"SignatureConsumed","type":"event"},{"inputs":[],"name":"getSigner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"lastSigUsed","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"from","type":"bytes32"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"qty","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"bytes32","name":"prevSigHash","type":"bytes32"},{"internalType":"bytes","name":"sig","type":"bytes"}],"name":"mintFTs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"from","type":"bytes32"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"burn","type":"uint256"},{"internalType":"uint256","name":"burnQty","type":"uint256"},{"internalType":"uint256[]","name":"mints","type":"uint256[]"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"bytes32","name":"prevSigHash","type":"bytes32"},{"internalType":"bytes","name":"sig","type":"bytes"}],"name":"mintNFTs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setSignerAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setTokenAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6113888061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100be5760003560e01c8063715018a6116100765780638da5cb5b1161005b5780638da5cb5b1461017b578063bd7c85fa14610199578063f2fde38b146101c757600080fd5b8063715018a6146101555780637ac3c02f1461015d57600080fd5b806326a4e8d2116100a757806326a4e8d21461011c57806336c7d9dd1461012f578063613028e61461014257600080fd5b8063046dc166146100c357806321df0da7146100d8575b600080fd5b6100d66100d1366004611089565b6101da565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d661012a366004611089565b610229565b6100d661013d3660046110ed565b610278565b6100d6610150366004611171565b610652565b6100d6610bef565b60025473ffffffffffffffffffffffffffffffffffffffff166100f2565b60005473ffffffffffffffffffffffffffffffffffffffff166100f2565b6101b96101a7366004611256565b60036020526000908152604090205481565b604051908152602001610113565b6100d66101d5366004611089565b610c03565b6101e2610cba565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610231610cba565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff908116908816610327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f44657374696e6174696f6e2063616e6e6f74206265206e756c6c20616464726560448201527f73732e000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103e483838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051602081018f90529081018c9052606081018b9052608081018a905260a0810189905260c00191506103909050565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012060025473ffffffffffffffffffffffffffffffffffffffff16610d3b565b61044a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5369676e6174757265206d69736d617463682e00000000000000000000000000604482015260640161031e565b60008981526003602052604090205484146104e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f57726f6e672070726576696f7573207369676e617475726520737570706c696560448201527f642e000000000000000000000000000000000000000000000000000000000000606482015260840161031e565b844210610550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5369676e61747572652068617320657870697265642e00000000000000000000604482015260640161031e565b828260405161056092919061126f565b6040805191829003822060008c8152600360205291909120557fde34ff3500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018990526044820188905282169063de34ff3590606401600060405180830381600087803b1580156105ed57600080fd5b505af1158015610601573d6000803e3d6000fd5b50505050828260405161061592919061126f565b604051908190038120908a907f53120794e6f66ad5582cfd2045082037840655df6a07941bc002a48ff4775aac90600090a3505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff908116908a166106fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f44657374696e6174696f6e2063616e6e6f74206265206e756c6c20616464726560448201527f73732e0000000000000000000000000000000000000000000000000000000000606482015260840161031e565b871561081a5773ffffffffffffffffffffffffffffffffffffffff811663e985e9c5336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201523060248201526044016020604051808303816000875af1158015610790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b4919061127f565b61081a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f417070726f76616c207265717569726564000000000000000000000000000000604482015260640161031e565b6108d283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040518f92508d91508c9061086c908d908d906020016112a1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120908301959095528101929092526060820152608081019190915260a0810188905260c0810187905260e001610390565b610938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5369676e6174757265206d69736d617463682e00000000000000000000000000604482015260640161031e565b60008b81526003602052604090205484146109d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f57726f6e672070726576696f7573207369676e617475726520737570706c696560448201527f642e000000000000000000000000000000000000000000000000000000000000606482015260840161031e565b844210610a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5369676e61747572652068617320657870697265642e00000000000000000000604482015260640161031e565b8282604051610a4e92919061126f565b604080519182900390912060008d8152600360205291909120558715610b185773ffffffffffffffffffffffffffffffffffffffff8116630ee68320336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018c9052604481018b9052606401600060405180830381600087803b158015610aff57600080fd5b505af1158015610b13573d6000803e3d6000fd5b505050505b6040517ff0edeaff00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f0edeaff90610b6e908d908b908b906004016112e3565b600060405180830381600087803b158015610b8857600080fd5b505af1158015610b9c573d6000803e3d6000fd5b505050508282604051610bb092919061126f565b604051908190038120908c907f53120794e6f66ad5582cfd2045082037840655df6a07941bc002a48ff4775aac90600090a35050505050505050505050565b610bf7610cba565b610c016000610d52565b565b610c0b610cba565b73ffffffffffffffffffffffffffffffffffffffff8116610cae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161031e565b610cb781610d52565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161031e565b6000610d48848484610dc7565b90505b9392505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080610dd48585610e6b565b90508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e13576001915050610d4b565b6000610e1f8686610f15565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e5f57600192505050610d4b565b50600095945050505050565b600080600080610e7a86610f35565b9250925092506000610e8b86610fc3565b60408051600081526020810180835283905260ff851691810191909152606081018690526080810185905290915060019060a0016020604051602081039080840390855afa158015610ee1573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015198975050505050505050565b600080600080610f2486610f35565b9250925092506000610e8b86611025565b60008060008351604114610fa5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015260640161031e565b50505060208101516040820151606090920151909260009190911a90565b6040805160208101829052601c60608201527f19457468657265756d205369676e6564204d6573736167653a0a333200000000608082015290810182905260009060a0015b604051602081830303815290604052805190602001209050919050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01611008565b803573ffffffffffffffffffffffffffffffffffffffff8116811461108457600080fd5b919050565b60006020828403121561109b57600080fd5b610d4b82611060565b60008083601f8401126110b657600080fd5b50813567ffffffffffffffff8111156110ce57600080fd5b6020830191508360208285010111156110e657600080fd5b9250929050565b60008060008060008060008060e0898b03121561110957600080fd5b8835975061111960208a01611060565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff81111561115157600080fd5b61115d8b828c016110a4565b999c989b5096995094979396929594505050565b6000806000806000806000806000806101008b8d03121561119157600080fd5b8a3599506111a160208c01611060565b985060408b0135975060608b0135965060808b013567ffffffffffffffff808211156111cc57600080fd5b818d0191508d601f8301126111e057600080fd5b8135818111156111ef57600080fd5b8e60208260051b850101111561120457600080fd5b6020830198508097505060a08d0135955060c08d0135945060e08d013591508082111561123057600080fd5b5061123d8d828e016110a4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561126857600080fd5b5035919050565b8183823760009101908152919050565b60006020828403121561129157600080fd5b81518015158114610d4b57600080fd5b60007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156112d057600080fd5b8260051b80858437919091019392505050565b73ffffffffffffffffffffffffffffffffffffffff841681526040602082015281604082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561133857600080fd5b8260051b808560608501379190910160600194935050505056fea26469706673582212208a96d59ed604005c826b42b4e8561fabb80868d50fad9098891fc68b7de7ecb464736f6c63430008110033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100be5760003560e01c8063715018a6116100765780638da5cb5b1161005b5780638da5cb5b1461017b578063bd7c85fa14610199578063f2fde38b146101c757600080fd5b8063715018a6146101555780637ac3c02f1461015d57600080fd5b806326a4e8d2116100a757806326a4e8d21461011c57806336c7d9dd1461012f578063613028e61461014257600080fd5b8063046dc166146100c357806321df0da7146100d8575b600080fd5b6100d66100d1366004611089565b6101da565b005b60015473ffffffffffffffffffffffffffffffffffffffff165b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100d661012a366004611089565b610229565b6100d661013d3660046110ed565b610278565b6100d6610150366004611171565b610652565b6100d6610bef565b60025473ffffffffffffffffffffffffffffffffffffffff166100f2565b60005473ffffffffffffffffffffffffffffffffffffffff166100f2565b6101b96101a7366004611256565b60036020526000908152604090205481565b604051908152602001610113565b6100d66101d5366004611089565b610c03565b6101e2610cba565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b610231610cba565b600180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60015473ffffffffffffffffffffffffffffffffffffffff908116908816610327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f44657374696e6174696f6e2063616e6e6f74206265206e756c6c20616464726560448201527f73732e000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6103e483838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505060408051602081018f90529081018c9052606081018b9052608081018a905260a0810189905260c00191506103909050565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052805160209091012060025473ffffffffffffffffffffffffffffffffffffffff16610d3b565b61044a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5369676e6174757265206d69736d617463682e00000000000000000000000000604482015260640161031e565b60008981526003602052604090205484146104e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f57726f6e672070726576696f7573207369676e617475726520737570706c696560448201527f642e000000000000000000000000000000000000000000000000000000000000606482015260840161031e565b844210610550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5369676e61747572652068617320657870697265642e00000000000000000000604482015260640161031e565b828260405161056092919061126f565b6040805191829003822060008c8152600360205291909120557fde34ff3500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8981166004830152602482018990526044820188905282169063de34ff3590606401600060405180830381600087803b1580156105ed57600080fd5b505af1158015610601573d6000803e3d6000fd5b50505050828260405161061592919061126f565b604051908190038120908a907f53120794e6f66ad5582cfd2045082037840655df6a07941bc002a48ff4775aac90600090a3505050505050505050565b60015473ffffffffffffffffffffffffffffffffffffffff908116908a166106fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f44657374696e6174696f6e2063616e6e6f74206265206e756c6c20616464726560448201527f73732e0000000000000000000000000000000000000000000000000000000000606482015260840161031e565b871561081a5773ffffffffffffffffffffffffffffffffffffffff811663e985e9c5336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff90911660048201523060248201526044016020604051808303816000875af1158015610790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b4919061127f565b61081a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f417070726f76616c207265717569726564000000000000000000000000000000604482015260640161031e565b6108d283838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250506040518f92508d91508c9061086c908d908d906020016112a1565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120908301959095528101929092526060820152608081019190915260a0810188905260c0810187905260e001610390565b610938576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5369676e6174757265206d69736d617463682e00000000000000000000000000604482015260640161031e565b60008b81526003602052604090205484146109d5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602260248201527f57726f6e672070726576696f7573207369676e617475726520737570706c696560448201527f642e000000000000000000000000000000000000000000000000000000000000606482015260840161031e565b844210610a3e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f5369676e61747572652068617320657870697265642e00000000000000000000604482015260640161031e565b8282604051610a4e92919061126f565b604080519182900390912060008d8152600360205291909120558715610b185773ffffffffffffffffffffffffffffffffffffffff8116630ee68320336040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018c9052604481018b9052606401600060405180830381600087803b158015610aff57600080fd5b505af1158015610b13573d6000803e3d6000fd5b505050505b6040517ff0edeaff00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063f0edeaff90610b6e908d908b908b906004016112e3565b600060405180830381600087803b158015610b8857600080fd5b505af1158015610b9c573d6000803e3d6000fd5b505050508282604051610bb092919061126f565b604051908190038120908c907f53120794e6f66ad5582cfd2045082037840655df6a07941bc002a48ff4775aac90600090a35050505050505050505050565b610bf7610cba565b610c016000610d52565b565b610c0b610cba565b73ffffffffffffffffffffffffffffffffffffffff8116610cae576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161031e565b610cb781610d52565b50565b60005473ffffffffffffffffffffffffffffffffffffffff163314610c01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161031e565b6000610d48848484610dc7565b90505b9392505050565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080610dd48585610e6b565b90508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e13576001915050610d4b565b6000610e1f8686610f15565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e5f57600192505050610d4b565b50600095945050505050565b600080600080610e7a86610f35565b9250925092506000610e8b86610fc3565b60408051600081526020810180835283905260ff851691810191909152606081018690526080810185905290915060019060a0016020604051602081039080840390855afa158015610ee1573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0015198975050505050505050565b600080600080610f2486610f35565b9250925092506000610e8b86611025565b60008060008351604114610fa5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f696e76616c6964207369676e6174757265206c656e6774680000000000000000604482015260640161031e565b50505060208101516040820151606090920151909260009190911a90565b6040805160208101829052601c60608201527f19457468657265756d205369676e6564204d6573736167653a0a333200000000608082015290810182905260009060a0015b604051602081830303815290604052805190602001209050919050565b6040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101829052600090605c01611008565b803573ffffffffffffffffffffffffffffffffffffffff8116811461108457600080fd5b919050565b60006020828403121561109b57600080fd5b610d4b82611060565b60008083601f8401126110b657600080fd5b50813567ffffffffffffffff8111156110ce57600080fd5b6020830191508360208285010111156110e657600080fd5b9250929050565b60008060008060008060008060e0898b03121561110957600080fd5b8835975061111960208a01611060565b965060408901359550606089013594506080890135935060a0890135925060c089013567ffffffffffffffff81111561115157600080fd5b61115d8b828c016110a4565b999c989b5096995094979396929594505050565b6000806000806000806000806000806101008b8d03121561119157600080fd5b8a3599506111a160208c01611060565b985060408b0135975060608b0135965060808b013567ffffffffffffffff808211156111cc57600080fd5b818d0191508d601f8301126111e057600080fd5b8135818111156111ef57600080fd5b8e60208260051b850101111561120457600080fd5b6020830198508097505060a08d0135955060c08d0135945060e08d013591508082111561123057600080fd5b5061123d8d828e016110a4565b915080935050809150509295989b9194979a5092959850565b60006020828403121561126857600080fd5b5035919050565b8183823760009101908152919050565b60006020828403121561129157600080fd5b81518015158114610d4b57600080fd5b60007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8311156112d057600080fd5b8260051b80858437919091019392505050565b73ffffffffffffffffffffffffffffffffffffffff841681526040602082015281604082015260007f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83111561133857600080fd5b8260051b808560608501379190910160600194935050505056fea26469706673582212208a96d59ed604005c826b42b4e8561fabb80868d50fad9098891fc68b7de7ecb464736f6c63430008110033

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.