BERA Price: $6.05 (-1.74%)

Contract

0x3c05f49Af5fa3b13ba780e3f1924D1c112BdE922

Overview

BERA Balance

Berachain LogoBerachain LogoBerachain Logo0 BERA

BERA Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Name25950962025-03-20 13:00:144 hrs ago1742475614IN
0x3c05f49A...112BdE922
0 BERA00.00000994
Set Name25721242025-03-20 0:38:3417 hrs ago1742431114IN
0x3c05f49A...112BdE922
0 BERA00.00001048
Set Name24724932025-03-17 18:44:032 days ago1742237043IN
0x3c05f49A...112BdE922
0 BERA00.00000005
Set Name24652552025-03-17 14:47:303 days ago1742222850IN
0x3c05f49A...112BdE922
0 BERA00.000002
Set Name24192752025-03-16 13:58:104 days ago1742133490IN
0x3c05f49A...112BdE922
0 BERA00.00000012
Set Name For Add...23333592025-03-14 15:25:216 days ago1741965921IN
0x3c05f49A...112BdE922
0 BERA00.000002
Set Name23183502025-03-14 7:14:386 days ago1741936478IN
0x3c05f49A...112BdE922
0 BERA00.00000012
Set Name22864542025-03-13 13:53:197 days ago1741873999IN
0x3c05f49A...112BdE922
0 BERA0.000001570.013364
Set Name21934342025-03-11 11:06:579 days ago1741691217IN
0x3c05f49A...112BdE922
0 BERA00.0000003
Set Name21515072025-03-10 12:21:0010 days ago1741609260IN
0x3c05f49A...112BdE922
0 BERA00.000004
Set Name21061622025-03-09 8:01:3311 days ago1741507293IN
0x3c05f49A...112BdE922
0 BERA00.000003
Set Name20651592025-03-08 10:04:4212 days ago1741428282IN
0x3c05f49A...112BdE922
0 BERA00.00000003
Set Name19301802025-03-05 9:05:3015 days ago1741165530IN
0x3c05f49A...112BdE922
0 BERA00.00000147
Set Name19265612025-03-05 7:02:3215 days ago1741158152IN
0x3c05f49A...112BdE922
0 BERA00.000002
Claim19235152025-03-05 5:19:2415 days ago1741151964IN
0x3c05f49A...112BdE922
0 BERA0.000005030.11000003
Claim With Resol...19231392025-03-05 5:06:3315 days ago1741151193IN
0x3c05f49A...112BdE922
0 BERA0.000004840.11000001
Set Name19231202025-03-05 5:05:5615 days ago1741151156IN
0x3c05f49A...112BdE922
0 BERA00.000002
Claim19230662025-03-05 5:04:1015 days ago1741151050IN
0x3c05f49A...112BdE922
0 BERA0.00000910.11000001
Set Name19125402025-03-04 23:04:2315 days ago1741129463IN
0x3c05f49A...112BdE922
0 BERA00.00000069
Set Name19118152025-03-04 22:40:0415 days ago1741128004IN
0x3c05f49A...112BdE922
0 BERA00.000002
Set Name18719682025-03-04 0:44:2616 days ago1741049066IN
0x3c05f49A...112BdE922
0 BERA0.000000080.001391
Set Name18710492025-03-04 0:14:0316 days ago1741047243IN
0x3c05f49A...112BdE922
0 BERA0.00029765
Set Name18436762025-03-03 9:29:5517 days ago1740994195IN
0x3c05f49A...112BdE922
0 BERA00.000004
Set Name18081772025-03-02 14:29:0018 days ago1740925740IN
0x3c05f49A...112BdE922
0 BERA00.000009
Set Name17974912025-03-02 8:38:1518 days ago1740904695IN
0x3c05f49A...112BdE922
0 BERA00.000002
View all transactions

Parent Transaction Hash Block From To
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ReverseRegistrar

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 200 runs

Other Settings:
cancun EvmVersion, MIT license
File 1 of 8 : ReverseRegistrar.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.4;

import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";

import {BNS} from "src/registry/interfaces/BNS.sol";
import {IReverseRegistrar} from "src/registrar/interfaces/IReverseRegistrar.sol";
import {Controllable} from "src/registrar/types/Controllable.sol";
import {AbstractNameResolver} from "src/resolver/interfaces/INameResolver.sol";

import {ADDR_REVERSE_NODE} from "src/utils/Constants.sol";

contract ReverseRegistrar is Controllable, IReverseRegistrar {
    BNS public immutable registry;
    AbstractNameResolver public defaultResolver;

    event ReverseClaimed(address indexed addr, bytes32 indexed node);
    event DefaultResolverChanged(AbstractNameResolver indexed resolver);

    /**
     * @dev Constructor
     * @param registry_ The address of the BNS registry.
     */
    constructor(BNS registry_) Controllable(msg.sender) {
        if (address(registry_) == address(0)) revert InvalidRegistry();

        registry = registry_;
        // Note: caller needs to assign ownership of the reverse record to the registrar
    }

    modifier authorised(address addr) {
        require(
            addr == msg.sender || controllers[msg.sender] || registry.isApprovedForAll(addr, msg.sender)
                || ownsContract(addr),
            "ReverseRegistrar: Caller is not a controller or authorised by address or the address itself"
        );
        _;
    }

    function setDefaultResolver(address resolver) public onlyOwner {
        require(address(resolver) != address(0), "ReverseRegistrar: Resolver address must not be 0");
        defaultResolver = AbstractNameResolver(resolver);
        emit DefaultResolverChanged(AbstractNameResolver(resolver));
    }

    /**
     * @dev Transfers ownership of the reverse BNS record associated with the
     *      calling account.
     * @param owner The address to set as the owner of the reverse record in BNS.
     * @return The BNS node hash of the reverse record.
     */
    function claim(address owner) public returns (bytes32) {
        return claimForAddr(msg.sender, owner, address(defaultResolver));
    }

    /**
     * @dev Transfers ownership of the reverse BNS record associated with the
     *      calling account.
     * @param addr The reverse record to set
     * @param owner The address to set as the owner of the reverse record in BNS.
     * @param resolver The resolver of the reverse node
     * @return The BNS node hash of the reverse record.
     */
    function claimForAddr(address addr, address owner, address resolver) public authorised(addr) returns (bytes32) {
        bytes32 labelHash = sha3HexAddress(addr);
        bytes32 reverseNode = keccak256(abi.encodePacked(ADDR_REVERSE_NODE, labelHash));
        registry.setSubnodeRecord(ADDR_REVERSE_NODE, labelHash, owner, resolver, 0);
        emit ReverseClaimed(addr, reverseNode);
        return reverseNode;
    }

    /**
     * @dev Transfers ownership of the reverse BNS record associated with the
     *      calling account.
     * @param owner The address to set as the owner of the reverse record in BNS.
     * @param resolver The address of the resolver to set; 0 to leave unchanged.
     * @return The BNS node hash of the reverse record.
     */
    function claimWithResolver(address owner, address resolver) public returns (bytes32) {
        return claimForAddr(msg.sender, owner, resolver);
    }

    /**
     * @dev Sets the `name()` record for the reverse BNS record associated with
     * the calling account. First updates the resolver to the default reverse
     * resolver if necessary.
     * @param name The name to set for this address.
     * @return The BNS node hash of the reverse record.
     */
    function setName(string memory name) public returns (bytes32) {
        return setNameForAddr(msg.sender, msg.sender, address(defaultResolver), name);
    }

    /**
     * @dev Sets the `name()` record for the reverse BNS record associated with
     * the account provided. Updates the resolver to a designated resolver
     * Only callable by controllers and authorised users
     * @param addr The reverse record to set
     * @param owner The owner of the reverse node
     * @param resolver The resolver of the reverse node
     * @param name The name to set for this address.
     * @return The BNS node hash of the reverse record.
     */
    function setNameForAddr(address addr, address owner, address resolver, string memory name)
        public
        override
        returns (bytes32)
    {
        bytes32 node_ = claimForAddr(addr, owner, resolver);
        AbstractNameResolver(resolver).setName(node_, name);
        return node_;
    }

    /**
     * @dev Returns the node hash for a given account's reverse records.
     * @param addr The address to hash
     * @return The BNS node hash.
     */
    function node(address addr) public pure returns (bytes32) {
        return keccak256(abi.encodePacked(ADDR_REVERSE_NODE, sha3HexAddress(addr)));
    }

    /**
     * @dev An optimised function to compute the sha3 of the lower-case
     *      hexadecimal representation of an Ethereum address.
     * @param addr The address to hash
     * @return ret The SHA3 hash of the lower-case hexadecimal encoding of the
     *         input address.
     */
    function sha3HexAddress(address addr) private pure returns (bytes32 ret) {
        bytes16 lookup = "0123456789abcdef";
        assembly {
            for { let i := 40 } gt(i, 0) {} {
                i := sub(i, 1)
                mstore8(i, byte(and(addr, 0xf), lookup))
                addr := div(addr, 0x10)
                i := sub(i, 1)
                mstore8(i, byte(and(addr, 0xf), lookup))
                addr := div(addr, 0x10)
            }

            ret := keccak256(0, 40)
        }
    }

    function ownsContract(address addr) internal view returns (bool) {
        try Ownable(addr).owner() returns (address owner) {
            return owner == msg.sender;
        } catch {
            return false;
        }
    }
}

File 2 of 8 : Ownable.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol)

pragma solidity ^0.8.20;

import {Context} from "../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.
 *
 * The initial owner is set to the address provided by the deployer. 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;

    /**
     * @dev The caller account is not authorized to perform an operation.
     */
    error OwnableUnauthorizedAccount(address account);

    /**
     * @dev The owner is not a valid owner account. (eg. `address(0)`)
     */
    error OwnableInvalidOwner(address owner);

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

    /**
     * @dev Initializes the contract setting the address provided by the deployer as the initial owner.
     */
    constructor(address initialOwner) {
        if (initialOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _transferOwnership(initialOwner);
    }

    /**
     * @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 {
        if (owner() != _msgSender()) {
            revert OwnableUnauthorizedAccount(_msgSender());
        }
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby disabling 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 {
        if (newOwner == address(0)) {
            revert OwnableInvalidOwner(address(0));
        }
        _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 8 : BNS.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.4;

interface BNS {
    // Logged when the owner of a node assigns a new owner to a subnode.
    event NewOwner(bytes32 indexed node, bytes32 indexed label, address owner);

    // Logged when the owner of a node transfers ownership to a new account.
    event Transfer(bytes32 indexed node, address owner);

    // Logged when the resolver for a node changes.
    event NewResolver(bytes32 indexed node, address resolver);

    // Logged when the TTL of a node changes
    event NewTTL(bytes32 indexed node, uint64 ttl);

    // Logged when an operator is added or removed.
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    function setRecord(bytes32 node, address owner, address resolver, uint64 ttl) external;

    function setSubnodeRecord(bytes32 node, bytes32 label, address owner, address resolver, uint64 ttl) external;

    function setSubnodeOwner(bytes32 node, bytes32 label, address owner) external returns (bytes32);

    function setResolver(bytes32 node, address resolver) external;

    function setOwner(bytes32 node, address owner) external;

    function setTTL(bytes32 node, uint64 ttl) external;

    function setApprovalForAll(address operator, bool approved) external;

    function owner(bytes32 node) external view returns (address);

    function resolver(bytes32 node) external view returns (address);

    function ttl(bytes32 node) external view returns (uint64);

    function recordExists(bytes32 node) external view returns (bool);

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

File 4 of 8 : IReverseRegistrar.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

interface IReverseRegistrar {
    /// @notice Thrown when the registry is invalid.
    error InvalidRegistry();

    function claim(address claimant) external returns (bytes32);

    function setNameForAddr(address addr, address owner, address resolver, string memory name)
        external
        returns (bytes32);
}

File 5 of 8 : Controllable.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;

import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";

contract Controllable is Ownable {
    mapping(address => bool) public controllers;

    event ControllerChanged(address indexed controller, bool enabled);

    modifier onlyController() {
        require(controllers[msg.sender], "Controllable: Caller is not a controller");
        _;
    }

    constructor(address owner_) Ownable(owner_) {}

    function setController(address controller, bool enabled) public onlyOwner {
        controllers[controller] = enabled;
        emit ControllerChanged(controller, enabled);
    }
}

File 6 of 8 : INameResolver.sol
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.4;

interface INameResolver {
    event NameChanged(bytes32 indexed node, string name);

    /**
     * Returns the name associated with an BNS node, for reverse records.
     * Defined in EIP181.
     * @param node The BNS node to query.
     * @return The associated name.
     */
    function name(bytes32 node) external view returns (string memory);
}

abstract contract AbstractNameResolver {
    function setName(bytes32 node, string memory name) public virtual;
}

File 7 of 8 : Constants.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.23;

// @param BERA_NODE The node hash of "bera"
bytes32 constant BERA_NODE = 0xcac7291742cc038df280cfdc67517aa5d83fe6f4716c336481273a83a877997b;

// @param REVERSE_NODE The node hash of "reverse"
bytes32 constant REVERSE_NODE = 0xa097f6721ce401e757d1223a763fef49b8b5f90bb18567ddb86fd205dff71d34;

// @param ADDR_REVERSE_NODE The node hash of "addr.reverse"
bytes32 constant ADDR_REVERSE_NODE = 0x91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e2;

// @param GRACE_PERIOD the grace period for expired names
uint256 constant GRACE_PERIOD = 30 days;

// @param RECLAIM_ID InterfaceId for the Reclaim interface
bytes4 constant RECLAIM_ID = bytes4(keccak256("reclaim(uint256,address)"));

uint64 constant DEFAULT_TTL = 3600;

File 8 of 8 : Context.sol
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.1) (utils/Context.sol)

pragma solidity ^0.8.20;

/**
 * @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;
    }

    function _contextSuffixLength() internal view virtual returns (uint256) {
        return 0;
    }
}

Settings
{
  "remappings": [
    "@pythnetwork/pyth-sdk-solidity/=node_modules/@pythnetwork/pyth-sdk-solidity/",
    "@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
    "forge-std/=lib/forge-std/src/",
    "ds-test/=lib/openzeppelin-contracts/lib/forge-std/lib/ds-test/src/",
    "erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/",
    "openzeppelin-contracts/=lib/openzeppelin-contracts/"
  ],
  "optimizer": {
    "enabled": true,
    "runs": 200
  },
  "metadata": {
    "useLiteralContent": false,
    "bytecodeHash": "ipfs",
    "appendCBOR": true
  },
  "outputSelection": {
    "*": {
      "*": [
        "evm.bytecode",
        "evm.deployedBytecode",
        "abi"
      ]
    }
  },
  "evmVersion": "cancun",
  "viaIR": false,
  "libraries": {}
}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"contract BNS","name":"registry_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidRegistry","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"controller","type":"address"},{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"ControllerChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"contract AbstractNameResolver","name":"resolver","type":"address"}],"name":"DefaultResolverChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"addr","type":"address"},{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"ReverseClaimed","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"claim","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"}],"name":"claimForAddr","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"}],"name":"claimWithResolver","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"controllers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"defaultResolver","outputs":[{"internalType":"contract AbstractNameResolver","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"node","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"registry","outputs":[{"internalType":"contract BNS","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"controller","type":"address"},{"internalType":"bool","name":"enabled","type":"bool"}],"name":"setController","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"resolver","type":"address"}],"name":"setDefaultResolver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"setName","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"},{"internalType":"string","name":"name","type":"string"}],"name":"setNameForAddr","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a060405234801561000f575f5ffd5b50604051610ce3380380610ce383398101604081905261002e916100e6565b33808061005457604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005d81610097565b50506001600160a01b038116610086576040516311a1e69760e01b815260040160405180910390fd5b6001600160a01b0316608052610113565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f602082840312156100f6575f5ffd5b81516001600160a01b038116811461010c575f5ffd5b9392505050565b608051610baa6101395f395f8181610157015281816102cb01526104950152610baa5ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638da5cb5b11610088578063c66485b211610063578063c66485b2146101da578063da8c229e146101ed578063e0dba60f1461021f578063f2fde38b14610232575f5ffd5b80638da5cb5b146101a4578063bffbe61c146101b4578063c47f0027146101c7575f5ffd5b8063715018a6116100c3578063715018a6146101355780637a806d6b1461013f5780637b10399914610152578063828eab0e14610191575f5ffd5b80630f5a5466146100e95780631e83409a1461010f5780636566963114610122575b5f5ffd5b6100fc6100f73660046108e5565b610245565b6040519081526020015b60405180910390f35b6100fc61011d36600461091c565b610258565b6100fc610130366004610937565b610279565b61013d61052b565b005b6100fc61014d366004610a1e565b61053e565b6101797f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610106565b600254610179906001600160a01b031681565b5f546001600160a01b0316610179565b6100fc6101c236600461091c565b6105b3565b6100fc6101d5366004610a8f565b61060d565b61013d6101e836600461091c565b610629565b61020f6101fb36600461091c565b60016020525f908152604090205460ff1681565b6040519015158152602001610106565b61013d61022d366004610ad6565b6106e9565b61013d61024036600461091c565b61074f565b5f610251338484610279565b9392505050565b6002545f9061027390339084906001600160a01b0316610279565b92915050565b5f836001600160a01b0381163314806102a05750335f9081526001602052604090205460ff165b80610334575060405163e985e9c560e01b81526001600160a01b0382811660048301523360248301527f0000000000000000000000000000000000000000000000000000000000000000169063e985e9c590604401602060405180830381865afa158015610310573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103349190610b02565b8061034357506103438161078c565b6103e05760405162461bcd60e51b815260206004820152605b60248201527f526576657273655265676973747261723a2043616c6c6572206973206e6f742060448201527f6120636f6e74726f6c6c6572206f7220617574686f726973656420627920616460648201527f6472657373206f7220746865206164647265737320697473656c660000000000608482015260a4015b60405180910390fd5b5f6103ea86610803565b604080517f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260208201529081018290529091505f9060600160408051808303601f190181529082905280516020909101206305ef2c7f60e41b82527f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e26004830152602482018490526001600160a01b03888116604484015287811660648401525f60848401529092507f00000000000000000000000000000000000000000000000000000000000000001690635ef2c7f09060a4015f604051808303815f87803b1580156104d6575f5ffd5b505af11580156104e8573d5f5f3e3d5ffd5b50506040518392506001600160a01b038a1691507f6ada868dd3058cf77a48a74489fd7963688e5464b2b0fa957ace976243270e92905f90a39695505050505050565b610533610856565b61053c5f610882565b565b5f5f61054b868686610279565b604051637737221360e01b81529091506001600160a01b0385169063773722139061057c9084908790600401610b1d565b5f604051808303815f87803b158015610593575f5ffd5b505af11580156105a5573d5f5f3e3d5ffd5b509298975050505050505050565b5f7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e26105de83610803565b604080516020810193909352820152606001604051602081830303815290604052805190602001209050919050565b6002545f9061027390339081906001600160a01b03168561053e565b610631610856565b6001600160a01b0381166106a05760405162461bcd60e51b815260206004820152603060248201527f526576657273655265676973747261723a205265736f6c76657220616464726560448201526f07373206d757374206e6f7420626520360841b60648201526084016103d7565b600280546001600160a01b0319166001600160a01b0383169081179091556040517feae17a84d9eb83d8c8eb317f9e7d64857bc363fa51674d996c023f4340c577cf905f90a250565b6106f1610856565b6001600160a01b0382165f81815260016020908152604091829020805460ff191685151590811790915591519182527f4c97694570a07277810af7e5669ffd5f6a2d6b74b6e9a274b8b870fd5114cf87910160405180910390a25050565b610757610856565b6001600160a01b03811661078057604051631e4fbdf760e01b81525f60048201526024016103d7565b61078981610882565b50565b5f816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156107e7575060408051601f3d908101601f191682019092526107e491810190610b59565b60015b6107f257505f919050565b6001600160a01b0316331492915050565b5f6f181899199a1a9b1b9c1cb0b131b232b360811b60285b801561084a575f1901600f841682901a81536010909304925f1901600f841682901a815360108404935061081b565b505060285f2092915050565b5f546001600160a01b0316331461053c5760405163118cdaa760e01b81523360048201526024016103d7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610789575f5ffd5b5f5f604083850312156108f6575f5ffd5b8235610901816108d1565b91506020830135610911816108d1565b809150509250929050565b5f6020828403121561092c575f5ffd5b8135610251816108d1565b5f5f5f60608486031215610949575f5ffd5b8335610954816108d1565b92506020840135610964816108d1565b91506040840135610974816108d1565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126109a2575f5ffd5b813567ffffffffffffffff8111156109bc576109bc61097f565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156109eb576109eb61097f565b604052818152838201602001851015610a02575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f5f60808587031215610a31575f5ffd5b8435610a3c816108d1565b93506020850135610a4c816108d1565b92506040850135610a5c816108d1565b9150606085013567ffffffffffffffff811115610a77575f5ffd5b610a8387828801610993565b91505092959194509250565b5f60208284031215610a9f575f5ffd5b813567ffffffffffffffff811115610ab5575f5ffd5b610ac184828501610993565b949350505050565b8015158114610789575f5ffd5b5f5f60408385031215610ae7575f5ffd5b8235610af2816108d1565b9150602083013561091181610ac9565b5f60208284031215610b12575f5ffd5b815161025181610ac9565b828152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f60208284031215610b69575f5ffd5b8151610251816108d156fea264697066735822122076b9e2b594bdb9428dd80d284ea2babcd959a3ca715d071ef274a662b2cda71b64736f6c634300081c00330000000000000000000000005b22280886a2f5e09a49bea7e320eab0e5320e28

Deployed Bytecode

0x608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80638da5cb5b11610088578063c66485b211610063578063c66485b2146101da578063da8c229e146101ed578063e0dba60f1461021f578063f2fde38b14610232575f5ffd5b80638da5cb5b146101a4578063bffbe61c146101b4578063c47f0027146101c7575f5ffd5b8063715018a6116100c3578063715018a6146101355780637a806d6b1461013f5780637b10399914610152578063828eab0e14610191575f5ffd5b80630f5a5466146100e95780631e83409a1461010f5780636566963114610122575b5f5ffd5b6100fc6100f73660046108e5565b610245565b6040519081526020015b60405180910390f35b6100fc61011d36600461091c565b610258565b6100fc610130366004610937565b610279565b61013d61052b565b005b6100fc61014d366004610a1e565b61053e565b6101797f0000000000000000000000005b22280886a2f5e09a49bea7e320eab0e5320e2881565b6040516001600160a01b039091168152602001610106565b600254610179906001600160a01b031681565b5f546001600160a01b0316610179565b6100fc6101c236600461091c565b6105b3565b6100fc6101d5366004610a8f565b61060d565b61013d6101e836600461091c565b610629565b61020f6101fb36600461091c565b60016020525f908152604090205460ff1681565b6040519015158152602001610106565b61013d61022d366004610ad6565b6106e9565b61013d61024036600461091c565b61074f565b5f610251338484610279565b9392505050565b6002545f9061027390339084906001600160a01b0316610279565b92915050565b5f836001600160a01b0381163314806102a05750335f9081526001602052604090205460ff165b80610334575060405163e985e9c560e01b81526001600160a01b0382811660048301523360248301527f0000000000000000000000005b22280886a2f5e09a49bea7e320eab0e5320e28169063e985e9c590604401602060405180830381865afa158015610310573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103349190610b02565b8061034357506103438161078c565b6103e05760405162461bcd60e51b815260206004820152605b60248201527f526576657273655265676973747261723a2043616c6c6572206973206e6f742060448201527f6120636f6e74726f6c6c6572206f7220617574686f726973656420627920616460648201527f6472657373206f7220746865206164647265737320697473656c660000000000608482015260a4015b60405180910390fd5b5f6103ea86610803565b604080517f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e260208201529081018290529091505f9060600160408051808303601f190181529082905280516020909101206305ef2c7f60e41b82527f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e26004830152602482018490526001600160a01b03888116604484015287811660648401525f60848401529092507f0000000000000000000000005b22280886a2f5e09a49bea7e320eab0e5320e281690635ef2c7f09060a4015f604051808303815f87803b1580156104d6575f5ffd5b505af11580156104e8573d5f5f3e3d5ffd5b50506040518392506001600160a01b038a1691507f6ada868dd3058cf77a48a74489fd7963688e5464b2b0fa957ace976243270e92905f90a39695505050505050565b610533610856565b61053c5f610882565b565b5f5f61054b868686610279565b604051637737221360e01b81529091506001600160a01b0385169063773722139061057c9084908790600401610b1d565b5f604051808303815f87803b158015610593575f5ffd5b505af11580156105a5573d5f5f3e3d5ffd5b509298975050505050505050565b5f7f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e26105de83610803565b604080516020810193909352820152606001604051602081830303815290604052805190602001209050919050565b6002545f9061027390339081906001600160a01b03168561053e565b610631610856565b6001600160a01b0381166106a05760405162461bcd60e51b815260206004820152603060248201527f526576657273655265676973747261723a205265736f6c76657220616464726560448201526f07373206d757374206e6f7420626520360841b60648201526084016103d7565b600280546001600160a01b0319166001600160a01b0383169081179091556040517feae17a84d9eb83d8c8eb317f9e7d64857bc363fa51674d996c023f4340c577cf905f90a250565b6106f1610856565b6001600160a01b0382165f81815260016020908152604091829020805460ff191685151590811790915591519182527f4c97694570a07277810af7e5669ffd5f6a2d6b74b6e9a274b8b870fd5114cf87910160405180910390a25050565b610757610856565b6001600160a01b03811661078057604051631e4fbdf760e01b81525f60048201526024016103d7565b61078981610882565b50565b5f816001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156107e7575060408051601f3d908101601f191682019092526107e491810190610b59565b60015b6107f257505f919050565b6001600160a01b0316331492915050565b5f6f181899199a1a9b1b9c1cb0b131b232b360811b60285b801561084a575f1901600f841682901a81536010909304925f1901600f841682901a815360108404935061081b565b505060285f2092915050565b5f546001600160a01b0316331461053c5760405163118cdaa760e01b81523360048201526024016103d7565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114610789575f5ffd5b5f5f604083850312156108f6575f5ffd5b8235610901816108d1565b91506020830135610911816108d1565b809150509250929050565b5f6020828403121561092c575f5ffd5b8135610251816108d1565b5f5f5f60608486031215610949575f5ffd5b8335610954816108d1565b92506020840135610964816108d1565b91506040840135610974816108d1565b809150509250925092565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126109a2575f5ffd5b813567ffffffffffffffff8111156109bc576109bc61097f565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156109eb576109eb61097f565b604052818152838201602001851015610a02575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f5f5f5f60808587031215610a31575f5ffd5b8435610a3c816108d1565b93506020850135610a4c816108d1565b92506040850135610a5c816108d1565b9150606085013567ffffffffffffffff811115610a77575f5ffd5b610a8387828801610993565b91505092959194509250565b5f60208284031215610a9f575f5ffd5b813567ffffffffffffffff811115610ab5575f5ffd5b610ac184828501610993565b949350505050565b8015158114610789575f5ffd5b5f5f60408385031215610ae7575f5ffd5b8235610af2816108d1565b9150602083013561091181610ac9565b5f60208284031215610b12575f5ffd5b815161025181610ac9565b828152604060208201525f82518060408401528060208501606085015e5f606082850101526060601f19601f8301168401019150509392505050565b5f60208284031215610b69575f5ffd5b8151610251816108d156fea264697066735822122076b9e2b594bdb9428dd80d284ea2babcd959a3ca715d071ef274a662b2cda71b64736f6c634300081c0033

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

0000000000000000000000005b22280886a2f5e09a49bea7e320eab0e5320e28

-----Decoded View---------------
Arg [0] : registry_ (address): 0x5B22280886a2F5e09A49bEa7E320eAB0e5320e28

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000005b22280886a2f5e09a49bea7e320eab0e5320e28


Deployed Bytecode Sourcemap

470:5609:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3292:150;;;;;;:::i;:::-;;:::i;:::-;;;689:25:8;;;677:2;662:18;3292:150:2;;;;;;;;2022:136;;;;;;:::i;:::-;;:::i;2526:418::-;;;;;;:::i;:::-;;:::i;2293:101:0:-;;;:::i;:::-;;4411:304:2;;;;;;:::i;:::-;;:::i;537:29::-;;;;;;;;-1:-1:-1;;;;;3294:32:8;;;3276:51;;3264:2;3249:18;537:29:2;3119:214:8;572:43:2;;;;;-1:-1:-1;;;;;572:43:2;;;1638:85:0;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;1638:85;;4883:150:2;;;;;;:::i;:::-;;:::i;3761:156::-;;;;;;:::i;:::-;;:::i;1456:299::-;;;;;;:::i;:::-;;:::i;165:43:4:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4274:14:8;;4267:22;4249:41;;4237:2;4222:18;165:43:4;4109:187:8;475:177:4;;;;;;:::i;:::-;;:::i;2543:215:0:-;;;;;;:::i;:::-;;:::i;3292:150:2:-;3368:7;3394:41;3407:10;3419:5;3426:8;3394:12;:41::i;:::-;3387:48;3292:150;-1:-1:-1;;;3292:150:2:o;2022:136::-;2134:15;;2068:7;;2094:57;;2107:10;;2119:5;;-1:-1:-1;;;;;2134:15:2;2094:12;:57::i;:::-;2087:64;2022:136;-1:-1:-1;;2022:136:2:o;2526:418::-;2628:7;2613:4;-1:-1:-1;;;;;1185:18:2;;1193:10;1185:18;;:45;;-1:-1:-1;1219:10:2;1207:23;;;;:11;:23;;;;;;;;1185:45;:92;;;-1:-1:-1;1234:43:2;;-1:-1:-1;;;1234:43:2;;-1:-1:-1;;;;;5003:32:8;;;1234:43:2;;;4985:51:8;1266:10:2;5052:18:8;;;5045:60;1234:8:2;:25;;;;4958:18:8;;1234:43:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1185:130;;;;1297:18;1310:4;1297:12;:18::i;:::-;1164:268;;;;-1:-1:-1;;;1164:268:2;;5568:2:8;1164:268:2;;;5550:21:8;5607:2;5587:18;;;5580:30;5646:34;5626:18;;;5619:62;5717:34;5697:18;;;5690:62;5789:29;5768:19;;;5761:58;5836:19;;1164:268:2;;;;;;;;;2647:17:::1;2667:20;2682:4;2667:14;:20::i;:::-;2729:46;::::0;;448:66:7::1;2729:46:2;::::0;::::1;6023:19:8::0;6058:12;;;6051:28;;;2647:40:2;;-1:-1:-1;2697:19:2::1;::::0;6095:12:8;;2729:46:2::1;::::0;;;;::::1;-1:-1:-1::0;;2729:46:2;;;;;;;2719:57;;2729:46:::1;2719:57:::0;;::::1;::::0;-1:-1:-1;;;2786:75:2;;448:66:7::1;2786:75:2;::::0;::::1;6384:25:8::0;6425:18;;;6418:34;;;-1:-1:-1;;;;;6488:32:8;;;6468:18;;;6461:60;6557:32;;;6537:18;;;6530:60;2812:17:2::1;6606:19:8::0;;;6599:60;2719:57:2;;-1:-1:-1;2786:8:2::1;:25;::::0;::::1;::::0;6356:19:8;;2786:75:2::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;2876:33:2::1;::::0;2897:11;;-1:-1:-1;;;;;;2876:33:2;::::1;::::0;-1:-1:-1;2876:33:2::1;::::0;;;::::1;2926:11:::0;2526:418;-1:-1:-1;;;;;;2526:418:2:o;2293:101:0:-;1531:13;:11;:13::i;:::-;2357:30:::1;2384:1;2357:18;:30::i;:::-;2293:101::o:0;4411:304:2:-;4551:7;4574:13;4590:35;4603:4;4609:5;4616:8;4590:12;:35::i;:::-;4635:51;;-1:-1:-1;;;4635:51:2;;4574;;-1:-1:-1;;;;;;4635:38:2;;;;;:51;;4574;;4681:4;;4635:51;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4703:5:2;;4411:304;-1:-1:-1;;;;;;;;4411:304:2:o;4883:150::-;4932:7;448:66:7;5004:20:2;5019:4;5004:14;:20::i;:::-;4968:57;;;;;;6023:19:8;;;;6058:12;;6051:28;6095:12;;4968:57:2;;;;;;;;;;;;4958:68;;;;;;4951:75;;4883:150;;;:::o;3761:156::-;3887:15;;3814:7;;3840:70;;3855:10;;;;-1:-1:-1;;;;;3887:15:2;3905:4;3840:14;:70::i;1456:299::-;1531:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;1537:31:2;::::1;1529:92;;;::::0;-1:-1:-1;;;1529:92:2;;7366:2:8;1529:92:2::1;::::0;::::1;7348:21:8::0;7405:2;7385:18;;;7378:30;7444:34;7424:18;;;7417:62;-1:-1:-1;;;7495:18:8;;;7488:46;7551:19;;1529:92:2::1;7164:412:8::0;1529:92:2::1;1631:15;:48:::0;;-1:-1:-1;;;;;;1631:48:2::1;-1:-1:-1::0;;;;;1631:48:2;::::1;::::0;;::::1;::::0;;;1694:54:::1;::::0;::::1;::::0;-1:-1:-1;;1694:54:2::1;1456:299:::0;:::o;475:177:4:-;1531:13:0;:11;:13::i;:::-;-1:-1:-1;;;;;559:23:4;::::1;;::::0;;;:11:::1;:23;::::0;;;;;;;;:33;;-1:-1:-1;;559:33:4::1;::::0;::::1;;::::0;;::::1;::::0;;;607:38;;4249:41:8;;;607:38:4::1;::::0;4222:18:8;607:38:4::1;;;;;;;475:177:::0;;:::o;2543:215:0:-;1531:13;:11;:13::i;:::-;-1:-1:-1;;;;;2627:22:0;::::1;2623:91;;2672:31;::::0;-1:-1:-1;;;2672:31:0;;2700:1:::1;2672:31;::::0;::::1;3276:51:8::0;3249:18;;2672:31:0::1;3119:214:8::0;2623:91:0::1;2723:28;2742:8;2723:18;:28::i;:::-;2543:215:::0;:::o;5851:226:2:-;5910:4;5938;-1:-1:-1;;;;;5930:19:2;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5930:21:2;;;;;;;;-1:-1:-1;;5930:21:2;;;;;;;;;;;;:::i;:::-;;;5926:145;;-1:-1:-1;6055:5:2;;5851:226;-1:-1:-1;5851:226:2:o;5926:145::-;-1:-1:-1;;;;;5997:19:2;6006:10;5997:19;;5851:226;-1:-1:-1;;5851:226:2:o;5338:507::-;5398:11;-1:-1:-1;;;5504:2:2;5489:303;5509:8;;5489:303;;-1:-1:-1;;5544:9:2;5596:3;5586:14;;5581:28;;;5544:9;5570:40;5645:4;5635:15;;;;-1:-1:-1;;5672:9:2;5724:3;5714:14;;5709:28;;;5672:9;5698:40;5773:4;5767;5763:15;5755:23;;5489:303;;;-1:-1:-1;;5826:2:2;5823:1;5813:16;;5338:507;-1:-1:-1;;5338:507:2:o;1796:162:0:-;1684:7;1710:6;-1:-1:-1;;;;;1710:6:0;735:10:1;1855:23:0;1851:101;;1901:40;;-1:-1:-1;;;1901:40:0;;735:10:1;1901:40:0;;;3276:51:8;3249:18;;1901:40:0;3119:214:8;2912:187:0;2985:16;3004:6;;-1:-1:-1;;;;;3020:17:0;;;-1:-1:-1;;;;;;3020:17:0;;;;;;3052:40;;3004:6;;;;;;;3052:40;;2985:16;3052:40;2975:124;2912:187;:::o;14:131:8:-;-1:-1:-1;;;;;89:31:8;;79:42;;69:70;;135:1;132;125:12;150:388;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;-1:-1:-1;460:2:8;445:18;;432:32;473:33;432:32;473:33;:::i;:::-;525:7;515:17;;;150:388;;;;;:::o;725:247::-;784:6;837:2;825:9;816:7;812:23;808:32;805:52;;;853:1;850;843:12;805:52;892:9;879:23;911:31;936:5;911:31;:::i;977:529::-;1054:6;1062;1070;1123:2;1111:9;1102:7;1098:23;1094:32;1091:52;;;1139:1;1136;1129:12;1091:52;1178:9;1165:23;1197:31;1222:5;1197:31;:::i;:::-;1247:5;-1:-1:-1;1304:2:8;1289:18;;1276:32;1317:33;1276:32;1317:33;:::i;:::-;1369:7;-1:-1:-1;1428:2:8;1413:18;;1400:32;1441:33;1400:32;1441:33;:::i;:::-;1493:7;1483:17;;;977:529;;;;;:::o;1511:127::-;1572:10;1567:3;1563:20;1560:1;1553:31;1603:4;1600:1;1593:15;1627:4;1624:1;1617:15;1643:726;1686:5;1739:3;1732:4;1724:6;1720:17;1716:27;1706:55;;1757:1;1754;1747:12;1706:55;1797:6;1784:20;1827:18;1819:6;1816:30;1813:56;;;1849:18;;:::i;:::-;1898:2;1892:9;1990:2;1952:17;;-1:-1:-1;;1948:31:8;;;1981:2;1944:40;1940:54;1928:67;;2025:18;2010:34;;2046:22;;;2007:62;2004:88;;;2072:18;;:::i;:::-;2108:2;2101:22;2132;;;2173:19;;;2194:4;2169:30;2166:39;-1:-1:-1;2163:59:8;;;2218:1;2215;2208:12;2163:59;2282:6;2275:4;2267:6;2263:17;2256:4;2248:6;2244:17;2231:58;2337:1;2309:19;;;2330:4;2305:30;2298:41;;;;2313:6;1643:726;-1:-1:-1;;;1643:726:8:o;2374:740::-;2470:6;2478;2486;2494;2547:3;2535:9;2526:7;2522:23;2518:33;2515:53;;;2564:1;2561;2554:12;2515:53;2603:9;2590:23;2622:31;2647:5;2622:31;:::i;:::-;2672:5;-1:-1:-1;2729:2:8;2714:18;;2701:32;2742:33;2701:32;2742:33;:::i;:::-;2794:7;-1:-1:-1;2853:2:8;2838:18;;2825:32;2866:33;2825:32;2866:33;:::i;:::-;2918:7;-1:-1:-1;2976:2:8;2961:18;;2948:32;3003:18;2992:30;;2989:50;;;3035:1;3032;3025:12;2989:50;3058;3100:7;3091:6;3080:9;3076:22;3058:50;:::i;:::-;3048:60;;;2374:740;;;;;;;:::o;3782:322::-;3851:6;3904:2;3892:9;3883:7;3879:23;3875:32;3872:52;;;3920:1;3917;3910:12;3872:52;3960:9;3947:23;3993:18;3985:6;3982:30;3979:50;;;4025:1;4022;4015:12;3979:50;4048;4090:7;4081:6;4070:9;4066:22;4048:50;:::i;:::-;4038:60;3782:322;-1:-1:-1;;;;3782:322:8:o;4301:118::-;4387:5;4380:13;4373:21;4366:5;4363:32;4353:60;;4409:1;4406;4399:12;4424:382;4489:6;4497;4550:2;4538:9;4529:7;4525:23;4521:32;4518:52;;;4566:1;4563;4556:12;4518:52;4605:9;4592:23;4624:31;4649:5;4624:31;:::i;:::-;4674:5;-1:-1:-1;4731:2:8;4716:18;;4703:32;4744:30;4703:32;4744:30;:::i;5116:245::-;5183:6;5236:2;5224:9;5215:7;5211:23;5207:32;5204:52;;;5252:1;5249;5242:12;5204:52;5284:9;5278:16;5303:28;5325:5;5303:28;:::i;6670:489::-;6847:6;6836:9;6829:25;6890:2;6885;6874:9;6870:18;6863:30;6810:4;6922:6;6916:13;6965:6;6960:2;6949:9;6945:18;6938:34;7024:6;7019:2;7011:6;7007:15;7002:2;6991:9;6987:18;6981:50;7080:1;7075:2;7066:6;7055:9;7051:22;7047:31;7040:42;7150:2;7143;7139:7;7134:2;7126:6;7122:15;7118:29;7107:9;7103:45;7099:54;7091:62;;;6670:489;;;;;:::o;7581:251::-;7651:6;7704:2;7692:9;7683:7;7679:23;7675:32;7672:52;;;7720:1;7717;7710:12;7672:52;7752:9;7746:16;7771:31;7796:5;7771:31;:::i

Swarm Source

ipfs://76b9e2b594bdb9428dd80d284ea2babcd959a3ca715d071ef274a662b2cda71b

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