Contract 0xb1b9fb937a11873380b3b87a1ef8063a66e54822 1

 
 
Txn Hash
Method
Block
From
To
Value [Txn Fee]
0xc44623718f273f2553e63aa1273ac82c7742ab6bf0503774ea0b1c2fe346c165Register396535602023-02-24 10:45:07210 days 48 mins ago0x3aea738fde85cf147746733bbf4d3a4f11a16bf4 IN  0xb1b9fb937a11873380b3b87a1ef8063a66e548220 MATIC0.023600859579 198.256578177
0x618be0dacce891e71d93bf59bb593c1c3048e6cfbfd336616f0988ee356d7d10Register396522172023-02-24 9:54:19210 days 1 hr ago0x3aea738fde85cf147746733bbf4d3a4f11a16bf4 IN  0xb1b9fb937a11873380b3b87a1ef8063a66e548220 MATIC0.017663534858 148.395655368
0x2848aed90ef75be988d7f16d4b509fd1624e35170aa189bc9cb7c59151b0fdb8Register396518882023-02-24 9:42:09210 days 1 hr ago0x3aea738fde85cf147746733bbf4d3a4f11a16bf4 IN  0xb1b9fb937a11873380b3b87a1ef8063a66e548220 MATIC0.015782789155 132.581686764
0x70e4a403890b82de67d2356f734196aea0599681046f1aa2e75ee8bba0eb062aRegister396490182023-02-24 7:49:38210 days 3 hrs ago0x3aea738fde85cf147746733bbf4d3a4f11a16bf4 IN  0xb1b9fb937a11873380b3b87a1ef8063a66e548220 MATIC0.016093080971 135.188261046
0x7427e1b415cccd7c091634c4f46fa9fe32f6628f16ae0d3fd368b52ee28294ffRegister186178592021-09-01 8:18:07751 days 3 hrs ago0xa974a0436b5d2842f47312832618900b1b633617 IN  0xb1b9fb937a11873380b3b87a1ef8063a66e548220 MATIC0.0119042100
0xc4fc1282f77f5e996dbff720441226560dc58c8a2e4ce8a80b0362e62a046d510x60806040186178532021-09-01 8:17:47751 days 3 hrs ago0xa974a0436b5d2842f47312832618900b1b633617 IN  Create: FIFSResolvingRegistrar0 MATIC0.0423489100
[ Download CSV Export 
Parent Txn Hash Block From To Value
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FIFSResolvingRegistrar

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion
File 1 of 4 : FIFSResolvingRegistrar.sol
pragma solidity 0.4.24;

import "@aragon/os/contracts/lib/ens/AbstractENS.sol";
import "./ens/IPublicResolver.sol";
import "./IFIFSResolvingRegistrar.sol";


/**
 * A registrar that allocates subdomains and sets resolvers to the first person to claim them.
 *
 * Adapted from ENS' FIFSRegistrar:
 *   https://github.com/ethereum/ens/blob/master/contracts/FIFSRegistrar.sol
 */
contract FIFSResolvingRegistrar is IFIFSResolvingRegistrar {
    bytes32 public rootNode;
    AbstractENS internal ens;
    IPublicResolver internal defaultResolver;

    bytes4 private constant ADDR_INTERFACE_ID = 0x3b3b57de;

    event ClaimSubdomain(bytes32 indexed subnode, address indexed owner, address indexed resolver);

    /**
     * Constructor.
     * @param _ensAddr The address of the ENS registry.
     * @param _defaultResolver The address of the default resolver to use for subdomains.
     * @param _node The node that this registrar administers.
     */
    constructor(AbstractENS _ensAddr, IPublicResolver _defaultResolver, bytes32 _node)
        public
    {
        ens = _ensAddr;
        defaultResolver = _defaultResolver;
        rootNode = _node;
    }

    /**
     * Register a subdomain with the default resolver if it hasn't been claimed yet.
     * @param _subnode The hash of the label to register.
     * @param _owner The address of the new owner.
     */
    function register(bytes32 _subnode, address _owner) external {
        registerWithResolver(_subnode, _owner, defaultResolver);
    }

    /**
     * Register a subdomain if it hasn't been claimed yet.
     * @param _subnode The hash of the label to register.
     * @param _owner The address of the new owner.
     * @param _resolver The address of the resolver.
     *                  If the resolver supports the address interface, the subdomain's address will
     *                  be set to the new owner.
     */
    function registerWithResolver(bytes32 _subnode, address _owner, IPublicResolver _resolver) public {
        bytes32 node = keccak256(rootNode, _subnode);
        address currentOwner = ens.owner(node);
        require(currentOwner == address(0));

        ens.setSubnodeOwner(rootNode, _subnode, address(this));
        ens.setResolver(node, _resolver);
        if (_resolver.supportsInterface(ADDR_INTERFACE_ID)) {
            _resolver.setAddr(node, _owner);
        }

        // Give ownership to the claimer
        ens.setOwner(node, _owner);

        emit ClaimSubdomain(_subnode, _owner, address(_resolver));
    }
}

File 2 of 4 : AbstractENS.sol
// See https://github.com/ensdomains/ens/blob/7e377df83f/contracts/AbstractENS.sol

pragma solidity ^0.4.15;


interface AbstractENS {
    function owner(bytes32 _node) public constant returns (address);
    function resolver(bytes32 _node) public constant returns (address);
    function ttl(bytes32 _node) public constant returns (uint64);
    function setOwner(bytes32 _node, address _owner) public;
    function setSubnodeOwner(bytes32 _node, bytes32 label, address _owner) public;
    function setResolver(bytes32 _node, address _resolver) public;
    function setTTL(bytes32 _node, uint64 _ttl) public;

    // 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);
}

File 3 of 4 : IPublicResolver.sol
pragma solidity ^0.4.0;


interface IPublicResolver {
    function supportsInterface(bytes4 interfaceID) constant returns (bool);
    function addr(bytes32 node) constant returns (address ret);
    function setAddr(bytes32 node, address addr);
    function hash(bytes32 node) constant returns (bytes32 ret);
    function setHash(bytes32 node, bytes32 hash);
}

File 4 of 4 : IFIFSResolvingRegistrar.sol
pragma solidity 0.4.24;

import "./ens/IPublicResolver.sol";


interface IFIFSResolvingRegistrar {
    function register(bytes32 _subnode, address _owner) external;
    function registerWithResolver(bytes32 _subnode, address _owner, IPublicResolver _resolver) public;
}

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

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_subnode","type":"bytes32"},{"name":"_owner","type":"address"}],"name":"register","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_subnode","type":"bytes32"},{"name":"_owner","type":"address"},{"name":"_resolver","type":"address"}],"name":"registerWithResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"rootNode","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ensAddr","type":"address"},{"name":"_defaultResolver","type":"address"},{"name":"_node","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"subnode","type":"bytes32"},{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"resolver","type":"address"}],"name":"ClaimSubdomain","type":"event"}]

608060405234801561001057600080fd5b506040516060806105ef83398101604090815281516020830151919092015160018054600160a060020a03948516600160a060020a0319918216179091556002805494909316931692909217905560005561057f806100706000396000f3006080604052600436106100565763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663d22057a9811461005b578063f858fc0b1461008e578063faff50a8146100c5575b600080fd5b34801561006757600080fd5b5061008c60043573ffffffffffffffffffffffffffffffffffffffff602435166100ec565b005b34801561009a57600080fd5b5061008c60043573ffffffffffffffffffffffffffffffffffffffff60243581169060443516610116565b3480156100d157600080fd5b506100da61054d565b60408051918252519081900360200190f35b600254610112908390839073ffffffffffffffffffffffffffffffffffffffff16610116565b5050565b60008054604080519182526020808301879052815192839003820183206001547f02571be300000000000000000000000000000000000000000000000000000000855260048501829052925190949373ffffffffffffffffffffffffffffffffffffffff909316926302571be392602480830193919282900301818787803b1580156101a157600080fd5b505af11580156101b5573d6000803e3d6000fd5b505050506040513d60208110156101cb57600080fd5b5051905073ffffffffffffffffffffffffffffffffffffffff8116156101f057600080fd5b60015460008054604080517f06ab59230000000000000000000000000000000000000000000000000000000081526004810192909252602482018990523060448301525173ffffffffffffffffffffffffffffffffffffffff909316926306ab59239260648084019391929182900301818387803b15801561027157600080fd5b505af1158015610285573d6000803e3d6000fd5b5050600154604080517f1896f70a0000000000000000000000000000000000000000000000000000000081526004810187905273ffffffffffffffffffffffffffffffffffffffff88811660248301529151919092169350631896f70a9250604480830192600092919082900301818387803b15801561030457600080fd5b505af1158015610318573d6000803e3d6000fd5b5050604080517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f3b3b57de000000000000000000000000000000000000000000000000000000006004820152905173ffffffffffffffffffffffffffffffffffffffff871693506301ffc9a7925060248083019260209291908290030181600087803b1580156103aa57600080fd5b505af11580156103be573d6000803e3d6000fd5b505050506040513d60208110156103d457600080fd5b50511561046c57604080517fd5fa2b000000000000000000000000000000000000000000000000000000000081526004810184905273ffffffffffffffffffffffffffffffffffffffff868116602483015291519185169163d5fa2b009160448082019260009290919082900301818387803b15801561045357600080fd5b505af1158015610467573d6000803e3d6000fd5b505050505b600154604080517f5b0fc9c30000000000000000000000000000000000000000000000000000000081526004810185905273ffffffffffffffffffffffffffffffffffffffff878116602483015291519190921691635b0fc9c391604480830192600092919082900301818387803b1580156104e757600080fd5b505af11580156104fb573d6000803e3d6000fd5b505060405173ffffffffffffffffffffffffffffffffffffffff80871693508716915087907fe27a5a369e0d2c5056ccfcbd5f83f145f43350142d42aaf46ff9a9e461d543df90600090a45050505050565b600054815600a165627a7a72305820dde468816802a83e6e70692ba51c6f095c5710a84ecdb601b5ac001740eaaaeb00290000000000000000000000003c70a0190d09f34519e6e218364451add21b7d4b0000000000000000000000009d9f6ed265ef82f3c129292b171705e44d69b03f7e74a86b6e146964fb965db04dc2590516da77f720bb6759337bf5632415fd86

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

0000000000000000000000003c70a0190d09f34519e6e218364451add21b7d4b0000000000000000000000009d9f6ed265ef82f3c129292b171705e44d69b03f7e74a86b6e146964fb965db04dc2590516da77f720bb6759337bf5632415fd86

-----Decoded View---------------
Arg [0] : _ensAddr (address): 0x3c70a0190d09f34519e6e218364451add21b7d4b
Arg [1] : _defaultResolver (address): 0x9d9f6ed265ef82f3c129292b171705e44d69b03f
Arg [2] : _node (bytes32): 0x7e74a86b6e146964fb965db04dc2590516da77f720bb6759337bf5632415fd86

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 0000000000000000000000003c70a0190d09f34519e6e218364451add21b7d4b
Arg [1] : 0000000000000000000000009d9f6ed265ef82f3c129292b171705e44d69b03f
Arg [2] : 7e74a86b6e146964fb965db04dc2590516da77f720bb6759337bf5632415fd86


Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.