ETH Price: $3,557.10 (+2.15%)

Contract

0x136f79af3232b5A0B6E398F499C50beeb68f13ea
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Sponsored

Transaction Hash
Method
Block
From
To
Value
Mint1113670072023-10-26 15:06:31237 days ago1698332791IN
0x136f79af...eb68f13ea
0 ETH0.000000790.0266901
Mint1113637692023-10-26 13:18:35237 days ago1698326315IN
0x136f79af...eb68f13ea
0 ETH0.000000470.01589819
Add Signer1113629852023-10-26 12:52:27237 days ago1698324747IN
0x136f79af...eb68f13ea
0 ETH0.000000830.01685499
0x608060401113629542023-10-26 12:51:25237 days ago1698324685IN
 Create: FxNFT
0 ETH0.004223253.01532352

View more zero value Internal Transactions in Advanced View mode

Advanced mode:

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FxNFT

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
paris EvmVersion
File 1 of 4 : FxNFT.sol
//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

import {ERC721} from "solmate/tokens/ERC721.sol";
import {LibString} from "solmate/utils/LibString.sol";
import {Auth, Authority} from "solmate/auth/Auth.sol";

contract FxNFT is ERC721, Auth {
    using LibString for uint256;

    string private _baseURI;

    mapping (address => bool) signers;

    constructor(
        string memory _name,
        string memory _symbol
    ) ERC721(_name, _symbol) Auth(msg.sender, Authority(address(0x0))) {}

    function mint(address to, uint256 id, bytes memory data) external {
        (uint8 v, bytes32 r, bytes32 s) = splitSignature(data);
        bytes32 signedHash = keccak256(abi.encode(to, id));
        bytes32 signedMessage = keccak256(
            abi.encodePacked("\x19Ethereum Signed Message:\n32", signedHash)
        );
        address signer = ecrecover(signedMessage, v, r, s);
        require(signers[signer], "fxNFT:signer-mismatch");

        _mint(to, id);
    }

    function tokenURI(
        uint256 id
    ) public view virtual override returns (string memory) {
        return string.concat(_baseURI, id.toString());
    }

    function setURI(string calldata newURI) external requiresAuth {
        _baseURI = newURI;
    }

    function addSigner(address _signer) external requiresAuth {
        signers[_signer] = true;
        emit SignerAdded(_signer);
    }

    function removeSigner(address _signer) external requiresAuth {
        signers[_signer] = false;
        emit SignerRemoved(_signer);
    }

    function splitSignature(bytes memory _sig) internal pure returns (uint8, bytes32, bytes32) {
        require(_sig.length == 65);

        bytes32 r;
        bytes32 s;
        uint8 v;

        assembly {
            // 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)))
        }

        return (v, r, s);
    }

    // Add new signer
    event SignerAdded(address indexed newSigner);

    // Remove old signer
    event SignerRemoved(address indexed oldSigner);
}

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/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
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 BALANCE/OWNER STORAGE
    //////////////////////////////////////////////////////////////*/

    mapping(uint256 => address) internal _ownerOf;

    mapping(address => uint256) internal _balanceOf;

    function ownerOf(uint256 id) public view virtual returns (address owner) {
        require((owner = _ownerOf[id]) != address(0), "NOT_MINTED");
    }

    function balanceOf(address owner) public view virtual returns (uint256) {
        require(owner != address(0), "ZERO_ADDRESS");

        return _balanceOf[owner];
    }

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

    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 || isApprovedForAll[from][msg.sender] || msg.sender == getApproved[id],
            "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 calldata 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 view 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
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(address to, uint256 id) internal virtual {
        require(to != address(0), "INVALID_RECIPIENT");

        require(_ownerOf[id] == address(0), "ALREADY_MINTED");

        // Counter overflow is incredibly unrealistic.
        unchecked {
            _balanceOf[to]++;
        }

        _ownerOf[id] = to;

        emit Transfer(address(0), to, id);
    }

    function _burn(uint256 id) internal virtual {
        address owner = _ownerOf[id];

        require(owner != address(0), "NOT_MINTED");

        // Ownership check above ensures no underflow.
        unchecked {
            _balanceOf[owner]--;
        }

        delete _ownerOf[id];

        delete getApproved[id];

        emit Transfer(owner, address(0), id);
    }

    /*//////////////////////////////////////////////////////////////
                        INTERNAL SAFE MINT LOGIC
    //////////////////////////////////////////////////////////////*/

    function _safeMint(address to, uint256 id) internal virtual {
        _mint(to, id);

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

    function _safeMint(
        address to,
        uint256 id,
        bytes memory data
    ) internal virtual {
        _mint(to, id);

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

/// @notice A generic interface for a contract which properly accepts ERC721 tokens.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC721.sol)
abstract contract ERC721TokenReceiver {
    function onERC721Received(
        address,
        address,
        uint256,
        bytes calldata
    ) external virtual returns (bytes4) {
        return ERC721TokenReceiver.onERC721Received.selector;
    }
}

File 3 of 4 : LibString.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

/// @notice Efficient library for creating string representations of integers.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/utils/LibString.sol)
/// @author Modified from Solady (https://github.com/Vectorized/solady/blob/main/src/utils/LibString.sol)
library LibString {
    function toString(int256 value) internal pure returns (string memory str) {
        if (value >= 0) return toString(uint256(value));

        unchecked {
            str = toString(uint256(-value));

            /// @solidity memory-safe-assembly
            assembly {
                // Note: This is only safe because we over-allocate memory
                // and write the string from right to left in toString(uint256),
                // and thus can be sure that sub(str, 1) is an unused memory location.

                let length := mload(str) // Load the string length.
                // Put the - character at the start of the string contents.
                mstore(str, 45) // 45 is the ASCII code for the - character.
                str := sub(str, 1) // Move back the string pointer by a byte.
                mstore(str, add(length, 1)) // Update the string length.
            }
        }
    }

    function toString(uint256 value) internal pure returns (string memory str) {
        /// @solidity memory-safe-assembly
        assembly {
            // The maximum value of a uint256 contains 78 digits (1 byte per digit), but we allocate 160 bytes
            // to keep the free memory pointer word aligned. We'll need 1 word for the length, 1 word for the
            // trailing zeros padding, and 3 other words for a max of 78 digits. In total: 5 * 32 = 160 bytes.
            let newFreeMemoryPointer := add(mload(0x40), 160)

            // Update the free memory pointer to avoid overriding our string.
            mstore(0x40, newFreeMemoryPointer)

            // Assign str to the end of the zone of newly allocated memory.
            str := sub(newFreeMemoryPointer, 32)

            // Clean the last word of memory it may not be overwritten.
            mstore(str, 0)

            // Cache the end of the memory to calculate the length later.
            let end := str

            // We write the string from rightmost digit to leftmost digit.
            // The following is essentially a do-while loop that also handles the zero case.
            // prettier-ignore
            for { let temp := value } 1 {} {
                // Move the pointer 1 byte to the left.
                str := sub(str, 1)

                // Write the character to the pointer.
                // The ASCII index of the '0' character is 48.
                mstore8(str, add(48, mod(temp, 10)))

                // Keep dividing temp until zero.
                temp := div(temp, 10)

                 // prettier-ignore
                if iszero(temp) { break }
            }

            // Compute and cache the final total length of the string.
            let length := sub(end, str)

            // Move the pointer 32 bytes leftwards to make room for the length.
            str := sub(str, 32)

            // Store the string's length at the start of memory allocated for our string.
            mstore(str, length)
        }
    }
}

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

/// @notice Provides a flexible and updatable auth pattern which is completely separate from application logic.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Auth.sol)
/// @author Modified from Dappsys (https://github.com/dapphub/ds-auth/blob/master/src/auth.sol)
abstract contract Auth {
    event OwnershipTransferred(address indexed user, address indexed newOwner);

    event AuthorityUpdated(address indexed user, Authority indexed newAuthority);

    address public owner;

    Authority public authority;

    constructor(address _owner, Authority _authority) {
        owner = _owner;
        authority = _authority;

        emit OwnershipTransferred(msg.sender, _owner);
        emit AuthorityUpdated(msg.sender, _authority);
    }

    modifier requiresAuth() virtual {
        require(isAuthorized(msg.sender, msg.sig), "UNAUTHORIZED");

        _;
    }

    function isAuthorized(address user, bytes4 functionSig) internal view virtual returns (bool) {
        Authority auth = authority; // Memoizing authority saves us a warm SLOAD, around 100 gas.

        // Checking if the caller is the owner only after calling the authority saves gas in most cases, but be
        // aware that this makes protected functions uncallable even to the owner if the authority is out of order.
        return (address(auth) != address(0) && auth.canCall(user, address(this), functionSig)) || user == owner;
    }

    function setAuthority(Authority newAuthority) public virtual {
        // We check if the caller is the owner first because we want to ensure they can
        // always swap out the authority even if it's reverting or using up a lot of gas.
        require(msg.sender == owner || authority.canCall(msg.sender, address(this), msg.sig));

        authority = newAuthority;

        emit AuthorityUpdated(msg.sender, newAuthority);
    }

    function transferOwnership(address newOwner) public virtual requiresAuth {
        owner = newOwner;

        emit OwnershipTransferred(msg.sender, newOwner);
    }
}

/// @notice A generic interface for a contract which provides authorization data to an Auth instance.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Auth.sol)
/// @author Modified from Dappsys (https://github.com/dapphub/ds-auth/blob/master/src/auth.sol)
interface Authority {
    function canCall(
        address user,
        address target,
        bytes4 functionSig
    ) external view returns (bool);
}

Settings
{
  "remappings": [
    "ds-test/=lib/forge-std/lib/ds-test/src/",
    "forge-std/=lib/forge-std/src/",
    "solmate/=lib/solmate/src/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "devdoc",
        "userdoc",
        "metadata",
        "abi"
      ]
    }
  },
  "evmVersion": "paris",
  "libraries": {}
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"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":"user","type":"address"},{"indexed":true,"internalType":"contract Authority","name":"newAuthority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newSigner","type":"address"}],"name":"SignerAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldSigner","type":"address"}],"name":"SignerRemoved","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":[{"internalType":"address","name":"_signer","type":"address"}],"name":"addSigner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"contract Authority","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","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":"id","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_signer","type":"address"}],"name":"removeSigner","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":"contract Authority","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newURI","type":"string"}],"name":"setURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162001a5438038062001a548339810160408190526200003491620001b8565b336000838382620000468382620002b1565b506001620000558282620002b1565b5050600680546001600160a01b038086166001600160a01b03199283168117909355600780549186169190921617905560405190915033907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36040516001600160a01b0382169033907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a3505050506200037d565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200011b57600080fd5b81516001600160401b0380821115620001385762000138620000f3565b604051601f8301601f19908116603f01168101908282118183101715620001635762000163620000f3565b816040528381526020925086838588010111156200018057600080fd5b600091505b83821015620001a4578582018301518183018401529082019062000185565b600093810190920192909252949350505050565b60008060408385031215620001cc57600080fd5b82516001600160401b0380821115620001e457600080fd5b620001f28683870162000109565b935060208501519150808211156200020957600080fd5b50620002188582860162000109565b9150509250929050565b600181811c908216806200023757607f821691505b6020821081036200025857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002ac57600081815260208120601f850160051c81016020861015620002875750805b601f850160051c820191505b81811015620002a85782815560010162000293565b5050505b505050565b81516001600160401b03811115620002cd57620002cd620000f3565b620002e581620002de845462000222565b846200025e565b602080601f8311600181146200031d5760008415620003045750858301515b600019600386901b1c1916600185901b178555620002a8565b600085815260208120601f198616915b828110156200034e578886015182559484019460019091019084016200032d565b50858210156200036d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6116c7806200038d6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80637a9e5e4b116100b8578063b88d4fde1161007c578063b88d4fde146102a3578063bf7e214f146102b6578063c87b56dd146102c9578063e985e9c5146102dc578063eb12d61e1461030a578063f2fde38b1461031d57600080fd5b80637a9e5e4b1461024f5780638da5cb5b1461026257806394d008ef1461027557806395d89b4114610288578063a22cb4651461029057600080fd5b80630e316ab7116100ff5780630e316ab7146101e257806323b872dd146101f557806342842e0e146102085780636352211e1461021b57806370a082311461022e57600080fd5b806301ffc9a71461013c57806302fe53051461016457806306fdde0314610179578063081812fc1461018e578063095ea7b3146101cf575b600080fd5b61014f61014a366004611058565b610330565b60405190151581526020015b60405180910390f35b6101776101723660046110c5565b610382565b005b6101816103cf565b60405161015b919061112b565b6101b761019c36600461115e565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b6101776101dd36600461118c565b61045d565b6101776101f03660046111b8565b61053f565b6101776102033660046111d5565b6105ba565b6101776102163660046111d5565b610781565b6101b761022936600461115e565b610874565b61024161023c3660046111b8565b6108cb565b60405190815260200161015b565b61017761025d3660046111b8565b61092e565b6006546101b7906001600160a01b031681565b61017761028336600461122c565b610a18565b610181610b86565b61017761029e366004611307565b610b93565b6101776102b1366004611340565b610bff565b6007546101b7906001600160a01b031681565b6101816102d736600461115e565b610ce7565b61014f6102ea3660046113b3565b600560209081526000928352604080842090915290825290205460ff1681565b6101776103183660046111b8565b610d1b565b61017761032b3660046111b8565b610d99565b60006301ffc9a760e01b6001600160e01b03198316148061036157506380ac58cd60e01b6001600160e01b03198316145b8061037c5750635b5e139f60e01b6001600160e01b03198316145b92915050565b610398336000356001600160e01b031916610e17565b6103bd5760405162461bcd60e51b81526004016103b4906113e1565b60405180910390fd5b60086103ca82848361148f565b505050565b600080546103dc90611407565b80601f016020809104026020016040519081016040528092919081815260200182805461040890611407565b80156104555780601f1061042a57610100808354040283529160200191610455565b820191906000526020600020905b81548152906001019060200180831161043857829003601f168201915b505050505081565b6000818152600260205260409020546001600160a01b0316338114806104a657506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6104e35760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016103b4565b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610555336000356001600160e01b031916610e17565b6105715760405162461bcd60e51b81526004016103b4906113e1565b6001600160a01b038116600081815260096020526040808220805460ff19169055517f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b9190a250565b6000818152600260205260409020546001600160a01b038481169116146106105760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016103b4565b6001600160a01b03821661065a5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103b4565b336001600160a01b038416148061069457506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b806106b557506000818152600460205260409020546001600160a01b031633145b6106f25760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016103b4565b6001600160a01b0380841660008181526003602090815260408083208054600019019055938616808352848320805460010190558583526002825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61078c8383836105ba565b6001600160a01b0382163b15806108355750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610805573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610829919061154f565b6001600160e01b031916145b6103ca5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016103b4565b6000818152600260205260409020546001600160a01b0316806108c65760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016103b4565b919050565b60006001600160a01b0382166109125760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016103b4565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314806109c3575060075460405163b700961360e01b81526001600160a01b039091169063b70096139061098290339030906001600160e01b0319600035169060040161156c565b602060405180830381865afa15801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190611599565b6109cc57600080fd5b600780546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a350565b6000806000610a2684610ec1565b604080516001600160a01b038b166020808301919091528183018b90528251808303840181526060830190935282519201919091207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006080830152609c8201819052939650919450925060009060bc0160408051601f198184030181528282528051602091820120600080855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0016020604051602081039080840390855afa158015610b01573d6000803e3d6000fd5b505060408051601f1901516001600160a01b03811660009081526009602052919091205490925060ff169050610b715760405162461bcd60e51b81526020600482015260156024820152740ccf09c8ca874e6d2cedccae45adad2e6dac2e8c6d605b1b60448201526064016103b4565b610b7b8989610ef0565b505050505050505050565b600180546103dc90611407565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610c0a8585856105ba565b6001600160a01b0384163b1580610ca15750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610c529033908a908990899089906004016115b6565b6020604051808303816000875af1158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c95919061154f565b6001600160e01b031916145b610ce05760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016103b4565b5050505050565b60606008610cf483610ffb565b604051602001610d0592919061160a565b6040516020818303038152906040529050919050565b610d31336000356001600160e01b031916610e17565b610d4d5760405162461bcd60e51b81526004016103b4906113e1565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f249190a250565b610daf336000356001600160e01b031916610e17565b610dcb5760405162461bcd60e51b81526004016103b4906113e1565b600680546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b6007546000906001600160a01b03168015801590610ea1575060405163b700961360e01b81526001600160a01b0382169063b700961390610e609087903090889060040161156c565b602060405180830381865afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea19190611599565b80610eb957506006546001600160a01b038581169116145b949350505050565b60008060008351604114610ed457600080fd5b5050506020810151604082015160609092015160001a92909190565b6001600160a01b038216610f3a5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103b4565b6000818152600260205260409020546001600160a01b031615610f905760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016103b4565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806110155750819003601f19909101908152919050565b6001600160e01b03198116811461105557600080fd5b50565b60006020828403121561106a57600080fd5b81356110758161103f565b9392505050565b60008083601f84011261108e57600080fd5b50813567ffffffffffffffff8111156110a657600080fd5b6020830191508360208285010111156110be57600080fd5b9250929050565b600080602083850312156110d857600080fd5b823567ffffffffffffffff8111156110ef57600080fd5b6110fb8582860161107c565b90969095509350505050565b60005b8381101561112257818101518382015260200161110a565b50506000910152565b602081526000825180602084015261114a816040850160208701611107565b601f01601f19169190910160400192915050565b60006020828403121561117057600080fd5b5035919050565b6001600160a01b038116811461105557600080fd5b6000806040838503121561119f57600080fd5b82356111aa81611177565b946020939093013593505050565b6000602082840312156111ca57600080fd5b813561107581611177565b6000806000606084860312156111ea57600080fd5b83356111f581611177565b9250602084013561120581611177565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561124157600080fd5b833561124c81611177565b925060208401359150604084013567ffffffffffffffff8082111561127057600080fd5b818601915086601f83011261128457600080fd5b81358181111561129657611296611216565b604051601f8201601f19908116603f011681019083821181831017156112be576112be611216565b816040528281528960208487010111156112d757600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b801515811461105557600080fd5b6000806040838503121561131a57600080fd5b823561132581611177565b91506020830135611335816112f9565b809150509250929050565b60008060008060006080868803121561135857600080fd5b853561136381611177565b9450602086013561137381611177565b935060408601359250606086013567ffffffffffffffff81111561139657600080fd5b6113a28882890161107c565b969995985093965092949392505050565b600080604083850312156113c657600080fd5b82356113d181611177565b9150602083013561133581611177565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b600181811c9082168061141b57607f821691505b60208210810361143b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156103ca57600081815260208120601f850160051c810160208610156114685750805b601f850160051c820191505b8181101561148757828155600101611474565b505050505050565b67ffffffffffffffff8311156114a7576114a7611216565b6114bb836114b58354611407565b83611441565b6000601f8411600181146114ef57600085156114d75750838201355b600019600387901b1c1916600186901b178355610ce0565b600083815260209020601f19861690835b828110156115205786850135825560209485019460019092019101611500565b508682101561153d5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60006020828403121561156157600080fd5b81516110758161103f565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b6000602082840312156115ab57600080fd5b8151611075816112f9565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b600080845461161881611407565b60018281168015611630576001811461164557611674565b60ff1984168752821515830287019450611674565b8860005260208060002060005b8581101561166b5781548a820152908401908201611652565b50505082870194505b505050508351611688818360208801611107565b0194935050505056fea2646970667358221220e0738ea2a418ceb726740426bec6792a5c3bd7d6d00f04cfd876795c54c4c9ac64736f6c6343000813003300000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001b506f6c796e6f6d69616c2054726164696e6720536561736f6e20320000000000000000000000000000000000000000000000000000000000000000000000000e66785472616465536561736f6e32000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101375760003560e01c80637a9e5e4b116100b8578063b88d4fde1161007c578063b88d4fde146102a3578063bf7e214f146102b6578063c87b56dd146102c9578063e985e9c5146102dc578063eb12d61e1461030a578063f2fde38b1461031d57600080fd5b80637a9e5e4b1461024f5780638da5cb5b1461026257806394d008ef1461027557806395d89b4114610288578063a22cb4651461029057600080fd5b80630e316ab7116100ff5780630e316ab7146101e257806323b872dd146101f557806342842e0e146102085780636352211e1461021b57806370a082311461022e57600080fd5b806301ffc9a71461013c57806302fe53051461016457806306fdde0314610179578063081812fc1461018e578063095ea7b3146101cf575b600080fd5b61014f61014a366004611058565b610330565b60405190151581526020015b60405180910390f35b6101776101723660046110c5565b610382565b005b6101816103cf565b60405161015b919061112b565b6101b761019c36600461115e565b6004602052600090815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161015b565b6101776101dd36600461118c565b61045d565b6101776101f03660046111b8565b61053f565b6101776102033660046111d5565b6105ba565b6101776102163660046111d5565b610781565b6101b761022936600461115e565b610874565b61024161023c3660046111b8565b6108cb565b60405190815260200161015b565b61017761025d3660046111b8565b61092e565b6006546101b7906001600160a01b031681565b61017761028336600461122c565b610a18565b610181610b86565b61017761029e366004611307565b610b93565b6101776102b1366004611340565b610bff565b6007546101b7906001600160a01b031681565b6101816102d736600461115e565b610ce7565b61014f6102ea3660046113b3565b600560209081526000928352604080842090915290825290205460ff1681565b6101776103183660046111b8565b610d1b565b61017761032b3660046111b8565b610d99565b60006301ffc9a760e01b6001600160e01b03198316148061036157506380ac58cd60e01b6001600160e01b03198316145b8061037c5750635b5e139f60e01b6001600160e01b03198316145b92915050565b610398336000356001600160e01b031916610e17565b6103bd5760405162461bcd60e51b81526004016103b4906113e1565b60405180910390fd5b60086103ca82848361148f565b505050565b600080546103dc90611407565b80601f016020809104026020016040519081016040528092919081815260200182805461040890611407565b80156104555780601f1061042a57610100808354040283529160200191610455565b820191906000526020600020905b81548152906001019060200180831161043857829003601f168201915b505050505081565b6000818152600260205260409020546001600160a01b0316338114806104a657506001600160a01b038116600090815260056020908152604080832033845290915290205460ff165b6104e35760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016103b4565b60008281526004602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b610555336000356001600160e01b031916610e17565b6105715760405162461bcd60e51b81526004016103b4906113e1565b6001600160a01b038116600081815260096020526040808220805460ff19169055517f3525e22824a8a7df2c9a6029941c824cf95b6447f1e13d5128fd3826d35afe8b9190a250565b6000818152600260205260409020546001600160a01b038481169116146106105760405162461bcd60e51b815260206004820152600a60248201526957524f4e475f46524f4d60b01b60448201526064016103b4565b6001600160a01b03821661065a5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103b4565b336001600160a01b038416148061069457506001600160a01b038316600090815260056020908152604080832033845290915290205460ff165b806106b557506000818152600460205260409020546001600160a01b031633145b6106f25760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b60448201526064016103b4565b6001600160a01b0380841660008181526003602090815260408083208054600019019055938616808352848320805460010190558583526002825284832080546001600160a01b03199081168317909155600490925284832080549092169091559251849392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b61078c8383836105ba565b6001600160a01b0382163b15806108355750604051630a85bd0160e11b8082523360048301526001600160a01b03858116602484015260448301849052608060648401526000608484015290919084169063150b7a029060a4016020604051808303816000875af1158015610805573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610829919061154f565b6001600160e01b031916145b6103ca5760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016103b4565b6000818152600260205260409020546001600160a01b0316806108c65760405162461bcd60e51b815260206004820152600a6024820152691393d517d3525395115160b21b60448201526064016103b4565b919050565b60006001600160a01b0382166109125760405162461bcd60e51b815260206004820152600c60248201526b5a45524f5f4144445245535360a01b60448201526064016103b4565b506001600160a01b031660009081526003602052604090205490565b6006546001600160a01b03163314806109c3575060075460405163b700961360e01b81526001600160a01b039091169063b70096139061098290339030906001600160e01b0319600035169060040161156c565b602060405180830381865afa15801561099f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c39190611599565b6109cc57600080fd5b600780546001600160a01b0319166001600160a01b03831690811790915560405133907fa3396fd7f6e0a21b50e5089d2da70d5ac0a3bbbd1f617a93f134b7638998019890600090a350565b6000806000610a2684610ec1565b604080516001600160a01b038b166020808301919091528183018b90528251808303840181526060830190935282519201919091207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006080830152609c8201819052939650919450925060009060bc0160408051601f198184030181528282528051602091820120600080855291840180845281905260ff89169284019290925260608301879052608083018690529092509060019060a0016020604051602081039080840390855afa158015610b01573d6000803e3d6000fd5b505060408051601f1901516001600160a01b03811660009081526009602052919091205490925060ff169050610b715760405162461bcd60e51b81526020600482015260156024820152740ccf09c8ca874e6d2cedccae45adad2e6dac2e8c6d605b1b60448201526064016103b4565b610b7b8989610ef0565b505050505050505050565b600180546103dc90611407565b3360008181526005602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b610c0a8585856105ba565b6001600160a01b0384163b1580610ca15750604051630a85bd0160e11b808252906001600160a01b0386169063150b7a0290610c529033908a908990899089906004016115b6565b6020604051808303816000875af1158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c95919061154f565b6001600160e01b031916145b610ce05760405162461bcd60e51b815260206004820152601060248201526f155394d0519157d49150d2541251539560821b60448201526064016103b4565b5050505050565b60606008610cf483610ffb565b604051602001610d0592919061160a565b6040516020818303038152906040529050919050565b610d31336000356001600160e01b031916610e17565b610d4d5760405162461bcd60e51b81526004016103b4906113e1565b6001600160a01b038116600081815260096020526040808220805460ff19166001179055517f47d1c22a25bb3a5d4e481b9b1e6944c2eade3181a0a20b495ed61d35b5323f249190a250565b610daf336000356001600160e01b031916610e17565b610dcb5760405162461bcd60e51b81526004016103b4906113e1565b600680546001600160a01b0319166001600160a01b03831690811790915560405133907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a350565b6007546000906001600160a01b03168015801590610ea1575060405163b700961360e01b81526001600160a01b0382169063b700961390610e609087903090889060040161156c565b602060405180830381865afa158015610e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ea19190611599565b80610eb957506006546001600160a01b038581169116145b949350505050565b60008060008351604114610ed457600080fd5b5050506020810151604082015160609092015160001a92909190565b6001600160a01b038216610f3a5760405162461bcd60e51b81526020600482015260116024820152701253959053125117d49150d25412515395607a1b60448201526064016103b4565b6000818152600260205260409020546001600160a01b031615610f905760405162461bcd60e51b815260206004820152600e60248201526d1053149150511657d3525395115160921b60448201526064016103b4565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a9004806110155750819003601f19909101908152919050565b6001600160e01b03198116811461105557600080fd5b50565b60006020828403121561106a57600080fd5b81356110758161103f565b9392505050565b60008083601f84011261108e57600080fd5b50813567ffffffffffffffff8111156110a657600080fd5b6020830191508360208285010111156110be57600080fd5b9250929050565b600080602083850312156110d857600080fd5b823567ffffffffffffffff8111156110ef57600080fd5b6110fb8582860161107c565b90969095509350505050565b60005b8381101561112257818101518382015260200161110a565b50506000910152565b602081526000825180602084015261114a816040850160208701611107565b601f01601f19169190910160400192915050565b60006020828403121561117057600080fd5b5035919050565b6001600160a01b038116811461105557600080fd5b6000806040838503121561119f57600080fd5b82356111aa81611177565b946020939093013593505050565b6000602082840312156111ca57600080fd5b813561107581611177565b6000806000606084860312156111ea57600080fd5b83356111f581611177565b9250602084013561120581611177565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60008060006060848603121561124157600080fd5b833561124c81611177565b925060208401359150604084013567ffffffffffffffff8082111561127057600080fd5b818601915086601f83011261128457600080fd5b81358181111561129657611296611216565b604051601f8201601f19908116603f011681019083821181831017156112be576112be611216565b816040528281528960208487010111156112d757600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b801515811461105557600080fd5b6000806040838503121561131a57600080fd5b823561132581611177565b91506020830135611335816112f9565b809150509250929050565b60008060008060006080868803121561135857600080fd5b853561136381611177565b9450602086013561137381611177565b935060408601359250606086013567ffffffffffffffff81111561139657600080fd5b6113a28882890161107c565b969995985093965092949392505050565b600080604083850312156113c657600080fd5b82356113d181611177565b9150602083013561133581611177565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b600181811c9082168061141b57607f821691505b60208210810361143b57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156103ca57600081815260208120601f850160051c810160208610156114685750805b601f850160051c820191505b8181101561148757828155600101611474565b505050505050565b67ffffffffffffffff8311156114a7576114a7611216565b6114bb836114b58354611407565b83611441565b6000601f8411600181146114ef57600085156114d75750838201355b600019600387901b1c1916600186901b178355610ce0565b600083815260209020601f19861690835b828110156115205786850135825560209485019460019092019101611500565b508682101561153d5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b60006020828403121561156157600080fd5b81516110758161103f565b6001600160a01b0393841681529190921660208201526001600160e01b0319909116604082015260600190565b6000602082840312156115ab57600080fd5b8151611075816112f9565b6001600160a01b038681168252851660208201526040810184905260806060820181905281018290526000828460a0840137600060a0848401015260a0601f19601f85011683010190509695505050505050565b600080845461161881611407565b60018281168015611630576001811461164557611674565b60ff1984168752821515830287019450611674565b8860005260208060002060005b8581101561166b5781548a820152908401908201611652565b50505082870194505b505050508351611688818360208801611107565b0194935050505056fea2646970667358221220e0738ea2a418ceb726740426bec6792a5c3bd7d6d00f04cfd876795c54c4c9ac64736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000001b506f6c796e6f6d69616c2054726164696e6720536561736f6e20320000000000000000000000000000000000000000000000000000000000000000000000000e66785472616465536561736f6e32000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Polynomial Trading Season 2
Arg [1] : _symbol (string): fxTradeSeason2

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000001b
Arg [3] : 506f6c796e6f6d69616c2054726164696e6720536561736f6e20320000000000
Arg [4] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [5] : 66785472616465536561736f6e32000000000000000000000000000000000000


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
[ 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.