ETH Price: $2,740.02 (-1.90%)

Contract

0x731822E17364b013820F48B2C9F905921fAc1212

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Caller11060922025-02-06 20:03:2817 hrs ago1738872208IN
0x731822E1...21fAc1212
0 ETH0.000004270.04525

Latest 1 internal transaction

Parent Transaction Hash Block From To
11039632025-02-06 19:27:5517 hrs ago1738870075  Contract Creation0 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GelatoRNG

Compiler Version
v0.8.25+commit.b61c2a91

ZkSolc Version
v1.5.11

Optimization Enabled:
Yes with Mode 3

Other Settings:
cancun EvmVersion
File 1 of 4 : GelatoRNG.sol
/// SPDX-License-Identifier: MIT
pragma solidity ^0.8.25;

import { Owned } from "lib/solmate/src/auth/Owned.sol";

import { GelatoVRFConsumerBase } from "vrf-contracts/GelatoVRFConsumerBase.sol";

/// @title GelatoRNG
/// @author CopyPaste
/// @dev Gelato RNG is an implemenation of an RNG Source for the Sofamon
///   Gacha machine using Gelato VRF
contract GelatoRNG is GelatoVRFConsumerBase, Owned(msg.sender) {
    error NotCorrectCaller();

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

    /// @param initialOperator The initial Gelato Operator Address
    constructor(address initialOperator) GelatoVRFConsumerBase() {
        operator = initialOperator;
    }

    /// @return operator The authorized Gelato VRF Operator
    function _operator() internal view override returns (address) {
        return operator;
    }

    /// @param newOperator The new Gelato Operator Address
    function setOperator(address newOperator) public onlyOwner {
        operator = newOperator;
    }

    /// @param newCaller The new address authorized to call rng()
    function setCaller(address newCaller) public onlyOwner {
        caller = newCaller;
    }

    /*//////////////////////////////////////////////////////////////
                             GELATO VRF
    //////////////////////////////////////////////////////////////*/
    /// @dev Tracks Nonce to RNG result
    mapping(uint256 nonce => bytes32 result) public rngForNonce;
    /// @dev caller The address authorized to use this rng source
    address public caller;
    /// @dev operator Address for GelatoVRF to report back random result
    address public operator;

    /// @dev GelatoVRF override function to store our result
    /// @param randomness The random result reported back by vrf
    /// @param requestId The Id / request the result is assosiated with
    function _fulfillRandomness(uint256 randomness, uint256 requestId, bytes memory) internal override {
        // Since our view function returns 0 by default, we need to force a non-zero result
        if (randomness == 0) {
            randomness = 1;
        }
        rngForNonce[requestId] = bytes32(randomness);
    }

    /*//////////////////////////////////////////////////////////////
                                IRNG
    //////////////////////////////////////////////////////////////*/

    /// @dev The main function, used to commit to a random result
    /// @return nonce The ticket to be used later to fetch a random result
    function rng() external returns (uint256 nonce) {
        if (msg.sender != caller) {
            revert NotCorrectCaller();
        }

        nonce = uint256(_requestRandomness(""));
    }

    /// @param nonce The nonce for the generated randomness
    /// @return randomness A random slice of 32 bytes
    function viewRngForNonce(uint256 nonce) external view returns (bytes32 randomness) {
        randomness = rngForNonce[nonce];
    }
}

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

/// @notice Simple single owner authorization mixin.
/// @author Solmate (https://github.com/transmissions11/solmate/blob/main/src/auth/Owned.sol)
abstract contract Owned {
    /*//////////////////////////////////////////////////////////////
                                 EVENTS
    //////////////////////////////////////////////////////////////*/

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

    /*//////////////////////////////////////////////////////////////
                            OWNERSHIP STORAGE
    //////////////////////////////////////////////////////////////*/

    address public owner;

    modifier onlyOwner() virtual {
        require(msg.sender == owner, "UNAUTHORIZED");

        _;
    }

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

    constructor(address _owner) {
        owner = _owner;

        emit OwnershipTransferred(address(0), _owner);
    }

    /*//////////////////////////////////////////////////////////////
                             OWNERSHIP LOGIC
    //////////////////////////////////////////////////////////////*/

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

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

File 3 of 4 : GelatoVRFConsumerBase.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import {IGelatoVRFConsumer} from "./IGelatoVRFConsumer.sol";

/// @title GelatoVRFConsumerBase
/// @dev This contract can be inherit by upgradeable smart contracts as well.
/// @dev This contract handles domain separation between consecutive randomness requests
/// The contract has to be implemented by contracts willing to use the gelato VRF system.
/// This base contract enhances the GelatoVRFConsumer by introducing request IDs and
/// ensuring unique random values.
/// for different request IDs by hashing them with the random number provided by drand.
/// For security considerations, refer to the Gelato documentation.
abstract contract GelatoVRFConsumerBase is IGelatoVRFConsumer {
    uint256 private constant _PERIOD = 3;
    uint256 private constant _GENESIS = 1692803367;
    bool[] public requestPending;
    mapping(uint256 => bytes32) public requestedHash;

    /// @notice Returns the address of the dedicated msg.sender.
    /// @dev The operator can be found on the Gelato dashboard after a VRF is deployed.
    /// @return Address of the operator.
    function _operator() internal view virtual returns (address);

    /// @notice User logic to handle the random value received.
    /// @param randomness The random number generated by Gelato VRF.
    /// @param requestId The ID for the randomness request.
    /// @param extraData Additional data from the randomness request.
    function _fulfillRandomness(
        uint256 randomness,
        uint256 requestId,
        bytes memory extraData
    ) internal virtual;

    /// @notice Requests randomness from the Gelato VRF.
    /// @dev The extraData parameter allows for additional data to be passed to
    /// the VRF, which is then forwarded to the callback. This is useful for
    /// request tracking purposes if requestId is not enough.
    /// @param extraData Additional data for the randomness request.
    /// @return requestId The ID for the randomness request.
    function _requestRandomness(
        bytes memory extraData
    ) internal returns (uint256 requestId) {
        requestId = uint256(requestPending.length);
        requestPending.push();
        requestPending[requestId] = true;

        bytes memory data = abi.encode(requestId, extraData);
        uint256 round = _round();

        bytes memory dataWithRound = abi.encode(round, data);
        bytes32 requestHash = keccak256(dataWithRound);

        requestedHash[requestId] = requestHash;

        emit RequestedRandomness(round, data);
    }

    /// @notice Callback function used by Gelato VRF to return the random number.
    /// The randomness is derived by hashing the provided randomness with the request ID.
    /// @param randomness The random number generated by Gelato VRF.
    /// @param dataWithRound Additional data provided by Gelato VRF containing request details.
    function fulfillRandomness(
        uint256 randomness,
        bytes calldata dataWithRound
    ) external {
        require(msg.sender == _operator(), "only operator");

        (, bytes memory data) = abi.decode(dataWithRound, (uint256, bytes));
        (uint256 requestId, bytes memory extraData) = abi.decode(
            data,
            (uint256, bytes)
        );

        bytes32 requestHash = keccak256(dataWithRound);
        bool isValidRequestHash = requestHash == requestedHash[requestId];

        require(requestPending[requestId], "request fulfilled or missing");

        if (isValidRequestHash) {
            randomness = uint(
                keccak256(
                    abi.encode(
                        randomness,
                        address(this),
                        block.chainid,
                        requestId
                    )
                )
            );

            _fulfillRandomness(randomness, requestId, extraData);
            requestPending[requestId] = false;

            delete requestedHash[requestId];
        }

        delete requestedHash[requestId];
    }

    /// @notice Computes and returns the round number of drand to request randomness from.
    function _round() private view returns (uint256 round) {
        // solhint-disable-next-line not-rely-on-time
        uint256 elapsedFromGenesis = block.timestamp - _GENESIS;
        uint256 currentRound = (elapsedFromGenesis / _PERIOD) + 1;

        round = block.chainid == 1 ? currentRound + 4 : currentRound + 1;
    }
}

File 4 of 4 : IGelatoVRFConsumer.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

/// @title IGelatoVRFConsumer
/// @dev Interface for consuming random number provided by Drand.
/// @notice This interface allows contracts to receive a random number provided by Gelato VRF.
interface IGelatoVRFConsumer {
    /// @notice Event emitted when a randomness request is made.
    /// @param data The round of randomness to request.
    /// @param data Additional data associated with the request.
    event RequestedRandomness(uint256 round, bytes data);

    /// @notice Callback function used by Gelato to return the random number.
    /// @dev The random number is fetched from one among many drand endpoints
    /// and passed back to this function like in a Gelato Web3 Function.
    /// @param randomness The random number generated by drand.
    /// @param data Additional data provided by Gelato VRF or the user, typically unused.
    function fulfillRandomness(
        uint256 randomness,
        bytes calldata data
    ) external;
}

Settings
{
  "viaIR": true,
  "codegen": "yul",
  "remappings": [
    "@pythnetwork/entropy-sdk-solidity/=node_modules/@pythnetwork/entropy-sdk-solidity/",
    "@manifoldxyz/=lib/lssvm2/lib/",
    "@openzeppelin/contracts-upgradeable/=lib/lssvm2/lib/openzeppelin-contracts-upgradeable/contracts/",
    "@openzeppelin/contracts/=lib/lssvm2/lib/openzeppelin-contracts/contracts/",
    "@prb/math/=lib/lssvm2/lib/prb-math/src/",
    "chainlink/=lib/chainlink/",
    "clones-with-immutable-args/=lib/lssvm2/lib/clones-with-immutable-args/src/",
    "create2-helpers/=lib/lssvm2/lib/royalty-registry-solidity/lib/create2-helpers/",
    "create3-factory/=lib/lssvm2/lib/create3-factory/",
    "ds-test/=lib/solmate/lib/ds-test/src/",
    "erc4626-tests/=lib/lssvm2/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/",
    "forge-std/=lib/forge-std/src/",
    "foundry-huff/=lib/lssvm2/lib/foundry-huff/src/",
    "huffmate/=lib/lssvm2/lib/huffmate/src/",
    "libraries-solidity/=lib/lssvm2/lib/libraries-solidity/contracts/",
    "lssvm2/=lib/lssvm2/src/",
    "manifoldxyz/=lib/lssvm2/lib/royalty-registry-solidity/contracts/",
    "openzeppelin-contracts-upgradeable/=lib/lssvm2/lib/openzeppelin-contracts-upgradeable/",
    "openzeppelin-contracts/=lib/lssvm2/lib/openzeppelin-contracts/",
    "prb-math/=lib/lssvm2/lib/prb-math/src/",
    "prb-test/=lib/lssvm2/lib/prb-math/lib/prb-test/src/",
    "royalty-registry-solidity/=lib/lssvm2/lib/royalty-registry-solidity/",
    "solady/=lib/solady/src/",
    "solmate/=lib/solmate/src/",
    "stringutils/=lib/lssvm2/lib/foundry-huff/lib/solidity-stringutils/",
    "vrf-contracts/=lib/vrf-contracts/contracts/"
  ],
  "evmVersion": "cancun",
  "outputSelection": {
    "*": {
      "*": [
        "abi"
      ]
    }
  },
  "optimizer": {
    "enabled": true,
    "mode": "3",
    "fallback_to_optimizing_for_size": false,
    "disable_system_request_memoization": true
  },
  "metadata": {},
  "libraries": {},
  "enableEraVMExtensions": false,
  "forceEVMLA": false
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"initialOperator","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"NotCorrectCaller","type":"error"},{"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":false,"internalType":"uint256","name":"round","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"data","type":"bytes"}],"name":"RequestedRandomness","type":"event"},{"inputs":[],"name":"caller","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"randomness","type":"uint256"},{"internalType":"bytes","name":"dataWithRound","type":"bytes"}],"name":"fulfillRandomness","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"operator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"requestPending","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"requestedHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rng","outputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"rngForNonce","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newCaller","type":"address"}],"name":"setCaller","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"setOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nonce","type":"uint256"}],"name":"viewRngForNonce","outputs":[{"internalType":"bytes32","name":"randomness","type":"bytes32"}],"stateMutability":"view","type":"function"}]

9c4d535b000000000000000000000000000000000000000000000000000000000000000001000137878d8e7efa4cfd981cd6594e6a9c92951e32e4694cf8f69fdcf131c3000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000200000000000000000000000008b2c5ea8bcff5e002725f17c937c1067dfcadde7

Deployed Bytecode

0x0001000000000002000500000000000200000000000103550000006003100270000001020430019700000001002001900000001c0000c13d0000008002000039000000400020043f000000040040008c000003b70000413d000000000201043b000000e0022002700000010a0020009c0000005d0000213d000001120020009c0000007a0000213d000001160020009c000000a90000613d000001170020009c000000b20000613d000001180020009c000003b70000c13d0000000001000416000000000001004b000003b70000c13d0000000201000039000000ad0000013d0000000002000416000000000002004b000003b70000c13d0000001f0240003900000103022001970000008002200039000000400020043f0000001f0340018f000001040540019800000080025000390000002d0000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b000000290000c13d000000000003004b0000003a0000613d000000000151034f0000000303300210000000000502043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000120435000000200040008c000003b70000413d000000800300043d000001050030009c000003b70000213d0000000201000039000000000201041a00000106022001970000000006000411000000000262019f000000000021041b0000000001000414000001020010009c0000010201008041000000c00110021000000107011001c70000800d02000039000500000003001d000000030300003900000108040000410000000005000019040203f80000040f00000005030000290000000100200190000003b70000613d0000000501000039000000000201041a0000010602200197000000000232019f000000000021041b0000002001000039000001000010044300000120000004430000010901000041000004030001042e0000010b0020009c000000940000213d0000010f0020009c0000009f0000613d000001100020009c000000ce0000613d000001110020009c000003b70000c13d0000000001000416000000000001004b000003b70000c13d0000000401000039000000000101041a00000105011001970000000002000411000000000012004b000001af0000c13d000000a001000039000000400010043f000000800000043f000000000500041a0000011f0050009c000001b30000a13d0000012901000041000000000010043f0000004101000039000000040010043f0000012a010000410000040400010430000001130020009c000000df0000613d000001140020009c000000f80000613d000001150020009c000003b70000c13d000000240040008c000003b70000413d0000000002000416000000000002004b000003b70000c13d0000000401100370000000000101043b000001050010009c000003b70000213d000500000001001d0000000201000039000000000101041a00000105011001970000000002000411000000000012004b00000000010000390000000101006039040203ce0000040f0000000401000039000000f20000013d0000010c0020009c0000009f0000613d0000010d0020009c0000018f0000613d0000010e0020009c000003b70000c13d0000000001000416000000000001004b000003b70000c13d0000000401000039000000ad0000013d000000240040008c000003b70000413d0000000002000416000000000002004b000003b70000c13d0000000401100370000000000101043b000000000010043f0000000301000039000000d70000013d0000000001000416000000000001004b000003b70000c13d0000000501000039000000000101041a0000010501100197000000800010043f0000011901000041000004030001042e000000240040008c000003b70000413d0000000002000416000000000002004b000003b70000c13d0000000401100370000000000101043b000000000200041a000000000021004b000003b70000813d040203c00000040f0000000302200210000000000101041a000000000121022f000000ff001001900000000001000039000000010100c039000001000020008c00000000020000390000000102004039000000000112016f000000400200043d0000000000120435000001020020009c0000010202008041000000400120021000000128011001c7000004030001042e000000240040008c000003b70000413d0000000002000416000000000002004b000003b70000c13d0000000401100370000000000101043b000000000010043f0000000101000039000000200010043f00000040020000390000000001000019040203e30000040f000000000101041a000000800010043f0000011901000041000004030001042e000000240040008c000003b70000413d0000000002000416000000000002004b000003b70000c13d0000000401100370000000000101043b000001050010009c000003b70000213d000500000001001d0000000201000039000000000101041a00000105011001970000000002000411000000000012004b00000000010000390000000101006039040203ce0000040f0000000501000039000000000201041a000001060220019700000005022001af000000000021041b0000000001000019000004030001042e000000440040008c000003b70000413d0000000002000416000000000002004b000003b70000c13d0000002402100370000000000502043b0000011f0050009c000003b70000213d0000002302500039000000000042004b000003b70000813d0000000407500039000000000271034f000000000202043b0000011f0020009c000003b70000213d00000024035000390000000006320019000000000046004b000003b70000213d0000000504000039000000000404041a00000105044001970000000008000411000000000048004b000001e90000c13d000000400020008c000003b70000413d0000004004700039000000000441034f000000000404043b0000011f0040009c000003b70000213d00000000085400190000004304800039000000000064004b000003b70000813d0000002407800039000000000471034f000000000504043b0000012c0050009c000000740000813d0000001f0950003900000133099001970000003f0990003900000133099001970000012d0090009c000000740000213d00000044088000390000008009900039000000400090043f000000800050043f0000000008850019000000000068004b000003b70000213d0000002006700039000000000761034f00000133085001980000001f0950018f000000a0068000390000013c0000613d000000a00a000039000000000b07034f00000000bc0b043c000000000aca043600000000006a004b000001380000c13d000000000009004b000001490000613d000000000787034f0000000308900210000000000906043300000000098901cf000000000989022f000000000707043b0000010008800089000000000787022f00000000078701cf000000000797019f0000000000760435000000a0055000390000000000050435000000800500043d0000012e0050009c000003b70000213d000000400050008c000003b70000413d000000c00700043d0000011f0070009c000003b70000213d000000a008500039000000bf05700039000000000085004b00000000060000190000012f060080410000012f098001970000012f05500197000000000a95013f000000000095004b00000000050000190000012f050040410000012f00a0009c000000000506c019000000000005004b000003b70000c13d000000a00570003900000000050504330000011f0050009c000000740000213d0000001f0650003900000133066001970000003f066000390000013309600197000000400600043d0000000009960019000000000069004b000000000a000039000000010a0040390000011f0090009c000000740000213d0000000100a00190000000740000c13d000000a00a00043d00050000000a001d000000400090043f0000000006560436000000c0077000390000000009750019000000000089004b000003b70000213d00000133095001970000001f0850018f000000000067004b000002c40000813d000000000009004b0000018b0000613d000000000b870019000000000a860019000000200aa0008a000000200bb0008a000000000c9a0019000000000d9b0019000000000d0d04330000000000dc0435000000200990008c000001850000c13d000000000008004b000002da0000613d000000000a060019000002d00000013d000000240040008c000003b70000413d0000000002000416000000000002004b000003b70000c13d0000000401100370000000000101043b000001050010009c000003b70000213d0000000202000039000000000302041a00000105043001970000000005000411000000000045004b000001df0000c13d00000105061001970000010601300197000000000161019f000000000012041b0000000001000414000001020010009c0000010201008041000000c00110021000000107011001c70000800d0200003900000003030000390000010804000041040203f80000040f0000000100200190000003b70000613d0000000001000019000004030001042e0000011d01000041000000800010043f0000011e0100004100000404000104300000000101500039000000000010041b0000000301500210000000f80110018f000000ff0210020f0000013402200167000000000000043f0000000503500270000001200330009a000000000403041a000000000224016f000000010110020f000000000112019f000000000013041b000500000005001d000000c00050043f0000004001000039000000e00010043f000001000000043f000001200000043f0000006001000039000000a00010043f0000012001000039000000400010043f000001210100004100000000001004430000000001000414000001020010009c0000010201008041000000c00110021000000122011001c70000800b02000039040203fd0000040f0000000100200190000003b90000613d000000000101043b000001250110009c000001f30000813d0000012901000041000000000010043f0000001101000039000000040010043f0000012a0100004100000404000104300000011a01000041000000800010043f0000002001000039000000840010043f0000000c01000039000000a40010043f0000011b01000041000000c40010043f0000011c0100004100000404000104300000011a01000041000000800010043f0000002001000039000000840010043f0000000d01000039000000a40010043f0000012b01000041000000c40010043f0000011c010000410000040400010430000400000001001d000001240100004100000000001004430000000001000414000001020010009c0000010201008041000000c00110021000000122011001c70000800b02000039040203fd0000040f0000000100200190000003b90000613d000000000201043b000000400100043d0000004003100039000000400400003900000000004304350000000403000029000000030330011a000000010020008c00000002020000390000000502006039000000000c32001900000020021000390000000000c204350000006004100039000000a00300043d000000000034043500000133063001970000001f0530018f0000008004100039000000c10040008c000002240000413d000000000006004b0000021f0000613d0000000008540019000000a0075001bf000000200880008a0000000009680019000000000a670019000000000a0a04330000000000a90435000000200660008c000002190000c13d000000000005004b0000023a0000613d000000c0060000390000000007040019000002300000013d0000000007640019000000000006004b0000022d0000613d000000c0080000390000000009040019000000008a0804340000000009a90436000000000079004b000002290000c13d000000000005004b0000023a0000613d000000c0066000390000000305500210000000000807043300000000085801cf000000000858022f00000000060604330000010005500089000000000656022f00000000055601cf000000000585019f0000000000570435000000000443001900000000000404350000001f033000390000013303300197000000600430003900000000004104350000009f0330003900000133043001970000000003140019000000000043004b000000000400003900000001040040390000011f0030009c000000740000213d0000000100400190000000740000c13d00040000000c001d000000400030043f000001020020009c000001020200804100000040022002100000000001010433000001020010009c00000102010080410000006001100210000000000121019f0000000002000414000001020020009c0000010202008041000000c002200210000000000112019f00000107011001c70000801002000039040203fd0000040f0000000100200190000003b70000613d000000000101043b000300000001001d0000000501000029000000000010043f0000000101000039000000200010043f0000000001000414000001020010009c0000010201008041000000c00110021000000126011001c70000801002000039040203fd0000040f0000000100200190000003b70000613d000000000101043b0000000302000029000000000021041b000000400100043d000000200210003900000040030000390000000000320435000000040200002900000000002104350000004003100039000000a00200043d000000000023043500000133052001970000001f0420018f0000006003100039000000c10030008c0000028e0000413d000000000005004b000002890000613d0000000007430019000000a0064001bf000000200770008a0000000008570019000000000956001900000000090904330000000000980435000000200550008c000002830000c13d000000000004004b000002a40000613d000000c00500003900000000060300190000029a0000013d0000000006530019000000000005004b000002970000613d000000c007000039000000000803001900000000790704340000000008980436000000000068004b000002930000c13d000000000004004b000002a40000613d000000c0055000390000000304400210000000000706043300000000074701cf000000000747022f00000000050504330000010004400089000000000545022f00000000044501cf000000000474019f00000000004604350000001f042000390000013304400197000000000232001900000000000204350000006002400039000001020020009c00000102020080410000006002200210000001020010009c00000102010080410000004001100210000000000112019f0000000002000414000001020020009c0000010202008041000000c002200210000000000121019f00000107011001c70000800d0200003900000001030000390000012704000041040203f80000040f0000000100200190000003b70000613d000000400100043d00000005020000290000000000210435000001020010009c0000010201008041000000400110021000000128011001c7000004030001042e000000000a960019000000000009004b000002cd0000613d000000000b070019000000000c06001900000000bd0b0434000000000cdc04360000000000ac004b000002c90000c13d000000000008004b000002da0000613d0000000007970019000000030880021000000000090a043300000000098901cf000000000989022f00000000070704330000010008800089000000000787022f00000000078701cf000000000797019f00000000007a0435000000000556001900000000000504350000001f0520003900000133055001970000003f055000390000013306500197000000400500043d0000000006650019000000000056004b000000000700003900000001070040390000011f0060009c000000740000213d0000000100700190000000740000c13d000000400060043f000000000631034f000000000125043600000133042001980000001f0720018f0000000003410019000002f60000613d000000000806034f0000000009010019000000008a08043c0000000009a90436000000000039004b000002f20000c13d000000000007004b000003030000613d000000000446034f0000000306700210000000000703043300000000076701cf000000000767022f000000000404043b0000010006600089000000000464022f00000000046401cf000000000474019f000000000043043500000000022100190000000000020435000001020010009c000001020100804100000040011002100000000002050433000001020020009c00000102020080410000006002200210000000000112019f0000000002000414000001020020009c0000010202008041000000c002200210000000000112019f00000107011001c70000801002000039040203fd0000040f0000000100200190000003b70000613d000000000101043b000400000001001d0000000501000029000000000010043f0000000101000039000000200010043f0000000001000414000001020010009c0000010201008041000000c00110021000000126011001c70000801002000039040203fd0000040f0000000100200190000003b70000613d000000000101043b000000000200041a000000050020006c000003ba0000a13d000000000101041a000000000000043f00000005030000290000000302300210000000f80220018f000000ff0420020f0000000502300270000001200220009a000300000002001d000000000202041a000200000004001d0000000000420170000003480000c13d000000400100043d00000044021000390000013103000041000000000032043500000024021000390000001c0300003900000000003204350000011a020000410000000000210435000000040210003900000020030000390000000000320435000001020010009c0000010201008041000000400110021000000132011001c70000040400010430000000040010006b000003ad0000c13d00000004010000390000000001100367000000000101043b000000400400043d000000400240003900000000030004100000000000320435000400000004001d0000002002400039000100000002001d0000000000120435000001240100004100000000001004430000000001000414000001020010009c0000010201008041000000c00110021000000122011001c70000800b02000039040203fd0000040f0000000100200190000003b90000613d000000000101043b00000004040000290000008002400039000000050300002900000000003204350000006002400039000000000012043500000080010000390000000000140435000001300040009c000000740000213d0000000402000029000000a001200039000000400010043f0000000101000029000001020010009c000001020100804100000040011002100000000002020433000001020020009c00000102020080410000006002200210000000000112019f0000000002000414000001020020009c0000010202008041000000c002200210000000000112019f00000107011001c70000801002000039040203fd0000040f0000000100200190000003b70000613d000000000101043b000400000001001d0000000501000029000000000010043f0000000301000039000000200010043f0000000001000414000001020010009c0000010201008041000000c00110021000000126011001c70000801002000039040203fd0000040f0000000100200190000003b70000613d000000000101043b0000000402000029000000010020008c000000010200a039000000000021041b000000000100041a000000050010006c000003ba0000a13d000000010100008a000000020110014f0000000303000029000000000203041a000000000112016f000000000013041b0000000501000029000000000010043f0000000101000039000000200010043f0000000001000414000001020010009c0000010201008041000000c00110021000000126011001c70000801002000039040203fd0000040f0000000100200190000003b70000613d000000000101043b000000000001041b0000000501000029000000000010043f0000000101000039000000200010043f00000040020000390000000001000019040203e30000040f000000000001041b0000000001000019000004030001042e00000000010000190000040400010430000000000001042f0000012901000041000000000010043f0000003201000039000000040010043f0000012a010000410000040400010430000000000200041a000000000012004b000003c80000a13d0000001f0210018f0000000501100270000001200110009a000000000000043f000000000001042d0000012901000041000000000010043f0000003201000039000000040010043f0000012a010000410000040400010430000000000001004b000003d10000613d000000000001042d000000400100043d00000044021000390000011b03000041000000000032043500000024021000390000000c0300003900000000003204350000011a020000410000000000210435000000040210003900000020030000390000000000320435000001020010009c0000010201008041000000400110021000000132011001c70000040400010430000000000001042f000001020010009c00000102010080410000004001100210000001020020009c00000102020080410000006002200210000000000112019f0000000002000414000001020020009c0000010202008041000000c002200210000000000112019f00000107011001c70000801002000039040203fd0000040f0000000100200190000003f60000613d000000000101043b000000000001042d00000000010000190000040400010430000003fb002104210000000102000039000000000001042d0000000002000019000000000001042d00000400002104230000000102000039000000000001042d0000000002000019000000000001042d0000040200000432000004030001042e000004040001043000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000bf82fe0e00000000000000000000000000000000000000000000000000000000d728d3ba00000000000000000000000000000000000000000000000000000000d728d3bb00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000fc9c8d3900000000000000000000000000000000000000000000000000000000bf82fe0f00000000000000000000000000000000000000000000000000000000c4f8f27b00000000000000000000000000000000000000000000000000000000d605787b00000000000000000000000000000000000000000000000000000000b3ab15fa00000000000000000000000000000000000000000000000000000000b3ab15fb00000000000000000000000000000000000000000000000000000000b3f6b99a00000000000000000000000000000000000000000000000000000000beb92f5500000000000000000000000000000000000000000000000000000000570ca7350000000000000000000000000000000000000000000000000000000075ce7fff000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000002000000080000000000000000008c379a000000000000000000000000000000000000000000000000000000000554e415554484f52495a454400000000000000000000000000000000000000000000000000000000000000000000000000000064000000800000000000000000f24f2486000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000800000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffd6f21326ab749d5729fcba5677c79037b459436ab7bff709c9d06ce9f10c1a9d796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913202000002000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000064e621269a8a0592ac89c5ad3bc6df8224c17b485976f597df104ee20d0df415241f670b0000000000000000000000000000000000000000000000000000000064e621270200000000000000000000000000000000000040000000000000000000000000d91fc3685b930310b008ec37d2334870cab88a023ed8cc628a2e2ccd4e55d20200000000000000000000000000000000000000200000000000000000000000004e487b710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000000000000000000000006f6e6c79206f70657261746f72000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff5f726571756573742066756c66696c6c6564206f72206d697373696e67000000000000000000000000000000000000000000000064000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000006f0635ad98be0ec4e05aa28e60b102dd2b2aa76861bb270243a0ce6af63c587b

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

0000000000000000000000008b2c5ea8bcff5e002725f17c937c1067dfcadde7

-----Decoded View---------------
Arg [0] : initialOperator (address): 0x8B2c5EA8bcfF5e002725f17c937C1067dFCADDE7

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000008b2c5ea8bcff5e002725f17c937c1067dfcadde7


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