ETH Price: $3,280.77 (-1.49%)

Contract

0x6843291BD86857D97F0D269e698939fb10D60772
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00
Transaction Hash
Method
Block
From
To
Register204518792024-08-04 1:24:23141 days ago1722734663IN
0x6843291B...b10D60772
0 ETH0.000048181
Register203958922024-07-27 5:48:35149 days ago1722059315IN
0x6843291B...b10D60772
0 ETH0.0003622310
Register203958912024-07-27 5:48:23149 days ago1722059303IN
0x6843291B...b10D60772
0 ETH0.000036221
Register170386302023-04-13 12:47:11619 days ago1681390031IN
0x6843291B...b10D60772
0 ETH0.0098707732.3292816
Register170297682023-04-12 5:09:11621 days ago1681276151IN
0x6843291B...b10D60772
0 ETH0.0069027122.84782242
Register170290022023-04-12 2:34:59621 days ago1681266899IN
0x6843291B...b10D60772
0 ETH0.0066553321.97503047
Register170274972023-04-11 21:28:59621 days ago1681248539IN
0x6843291B...b10D60772
0 ETH0.006905624.12691989
Register170206802023-04-10 22:18:11622 days ago1681165091IN
0x6843291B...b10D60772
0 ETH0.006173820.87699411
Register170128462023-04-09 19:38:35623 days ago1681069115IN
0x6843291B...b10D60772
0 ETH0.0061253720.15955329
Register170127082023-04-09 19:10:35623 days ago1681067435IN
0x6843291B...b10D60772
0 ETH0.0052447618.07143958
Register170087652023-04-09 5:44:35624 days ago1681019075IN
0x6843291B...b10D60772
0 ETH0.0061052420.00099456
Register170076412023-04-09 1:55:23624 days ago1681005323IN
0x6843291B...b10D60772
0 ETH0.0049865917.36097046
Register170074722023-04-09 1:20:59624 days ago1681003259IN
0x6843291B...b10D60772
0 ETH0.0054379418.34378719
Register170073622023-04-09 0:58:35624 days ago1681001915IN
0x6843291B...b10D60772
0 ETH0.0067276822.99756926
Register170073542023-04-09 0:56:47624 days ago1681001807IN
0x6843291B...b10D60772
0 ETH0.0049775117.19775608
Register170072482023-04-09 0:35:23624 days ago1681000523IN
0x6843291B...b10D60772
0 ETH0.006045321.00259679
Register170070752023-04-09 0:00:47624 days ago1680998447IN
0x6843291B...b10D60772
0 ETH0.0052138517.96492071
Register170070592023-04-08 23:57:35624 days ago1680998255IN
0x6843291B...b10D60772
0 ETH0.0062138521.52862616
Register170069962023-04-08 23:44:47624 days ago1680997487IN
0x6843291B...b10D60772
0 ETH0.0049979917.17407573
Register170069762023-04-08 23:40:35624 days ago1680997235IN
0x6843291B...b10D60772
0 ETH0.0060134220.66327232
Register169998792023-04-07 23:33:23625 days ago1680910403IN
0x6843291B...b10D60772
0 ETH0.0057051919.7763462
Register169977012023-04-07 16:10:11625 days ago1680883811IN
0x6843291B...b10D60772
0 ETH0.008532128.86162183
Register169948032023-04-07 6:17:23626 days ago1680848243IN
0x6843291B...b10D60772
0 ETH0.0059742620.20224694
Register169870232023-04-06 3:38:23627 days ago1680752303IN
0x6843291B...b10D60772
0 ETH0.0085167129.58878478
Register169869052023-04-06 3:14:35627 days ago1680750875IN
0x6843291B...b10D60772
0 ETH0.0093408831.8516825
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DCLController

Compiler Version
v0.5.15+commit.6a57276f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-02-04
*/

// File: openzeppelin-solidity/contracts/GSN/Context.sol

pragma solidity ^0.5.0;

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN 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.
 */
contract Context {
    // Empty internal constructor, to prevent people from mistakenly deploying
    // an instance of this contract, which should be used via inheritance.
    constructor () internal { }
    // solhint-disable-previous-line no-empty-blocks

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }

    function _msgData() internal view returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

// File: openzeppelin-solidity/contracts/ownership/Ownable.sol

pragma solidity ^0.5.0;

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

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

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        _owner = _msgSender();
        emit OwnershipTransferred(address(0), _owner);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        return _msgSender() == _owner;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = 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 onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: openzeppelin-solidity/contracts/utils/Address.sol

pragma solidity ^0.5.5;

/**
 * @dev Collection of functions related to the address type
 */
library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * This test is non-exhaustive, and there may be false-negatives: during the
     * execution of a contract's constructor, its address will be reported as
     * not containing a contract.
     *
     * IMPORTANT: It is unsafe to assume that an address for which this
     * function returns false is an externally-owned account (EOA) and not a
     * contract.
     */
    function isContract(address account) internal view returns (bool) {
        // This method relies in extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != 0x0 && codehash != accountHash);
    }

    /**
     * @dev Converts an `address` into `address payable`. Note that this is
     * simply a type cast: the actual underlying value is not changed.
     *
     * _Available since v2.4.0._
     */
    function toPayable(address account) internal pure returns (address payable) {
        return address(uint160(account));
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     *
     * _Available since v2.4.0._
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-call-value
        (bool success, ) = recipient.call.value(amount)("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

// File: contracts/interfaces/IENSRegistry.sol

pragma solidity ^0.5.15;

/**
 * @title EnsRegistry
 * @dev Extract of the interface for ENS Registry
*/
contract IENSRegistry {
    function setOwner(bytes32 node, address owner) public;
    function setSubnodeOwner(bytes32 node, bytes32 label, address owner) public;
    function setResolver(bytes32 node, address resolver) public;
    function owner(bytes32 node) public view returns (address);
    function resolver(bytes32 node) public view returns (address);
}

// File: contracts/interfaces/IDCLRegistrar.sol

pragma solidity ^0.5.15;

contract IDCLRegistrar {
    /**
	 * @dev Allows to create a subdomain (e.g. "nacho.dcl.eth"), set its resolver, owner and target address
	 * @param _subdomain - subdomain  (e.g. "nacho")
	 * @param _beneficiary - address that will become owner of this new subdomain
	 */
    function register(string calldata _subdomain, address _beneficiary) external;

     /**
	 * @dev Re-claim the ownership of a subdomain (e.g. "nacho").
     * @notice After a subdomain is transferred by this contract, the owner in the ENS registry contract
     * is still the old owner. Therefore, the owner should call `reclaim` to update the owner of the subdomain.
	 * @param _tokenId - erc721 token id which represents the node (subdomain).
     * @param _owner - new owner.
     */
    function reclaim(uint256 _tokenId, address _owner) external;

    /**
     * @dev Transfer a name to a new owner.
     * @param _from - current owner of the node.
     * @param _to - new owner of the node.
     * @param _id - node id.
     */
    function transferFrom(address _from, address _to, uint256 _id) public;

    /**
	 * @dev Check whether a name is available to be registered or not
	 * @param _labelhash - hash of the name to check
     * @return whether the name is available or not
     */
    function available(bytes32 _labelhash) public view returns (bool);

}

// File: openzeppelin-eth/contracts/token/ERC20/IERC20.sol

pragma solidity ^0.5.2;

/**
 * @title ERC20 interface
 * @dev see https://eips.ethereum.org/EIPS/eip-20
 */
interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

    function approve(address spender, uint256 value) external returns (bool);

    function transferFrom(address from, address to, uint256 value) external returns (bool);

    function totalSupply() external view returns (uint256);

    function balanceOf(address who) external view returns (uint256);

    function allowance(address owner, address spender) external view returns (uint256);

    event Transfer(address indexed from, address indexed to, uint256 value);

    event Approval(address indexed owner, address indexed spender, uint256 value);
}

// File: contracts/interfaces/IERC20Token.sol

pragma solidity ^0.5.15;


contract IERC20Token is IERC20{
    function balanceOf(address from) public view returns (uint256);
    function transferFrom(address from, address to, uint tokens) public returns (bool);
    function allowance(address owner, address spender) public view returns (uint256);
    function burn(uint256 amount) public;
}

// File: contracts/ens/DCLController.sol

pragma solidity ^0.5.15;






contract DCLController is Ownable {
    using Address for address;

    // Price of each name
    uint256 constant public PRICE = 100 ether;

    // Accepted ERC20 token
    IERC20Token public acceptedToken;
    // DCL Registrar
    IDCLRegistrar public registrar;

    // Price of each name
    uint256 public maxGasPrice = 20000000000; // 20 gwei

    // Emitted when a name is bought
    event NameBought(address indexed _caller, address indexed _beneficiary, uint256 _price, string _name);

    // Emitted when the max gas price is changed
    event MaxGasPriceChanged(uint256 indexed _oldMaxGasPrice, uint256 indexed _newMaxGasPrice);

    /**
	 * @dev Constructor of the contract
     * @param _acceptedToken - address of the accepted token
     * @param _registrar - address of the DCL registrar contract
	 */
    constructor(IERC20Token _acceptedToken, IDCLRegistrar _registrar) public {
        require(address(_acceptedToken).isContract(), "Accepted token should be a contract");
        require(address(_registrar).isContract(), "Registrar should be a contract");

        // Accepted token
        acceptedToken = _acceptedToken;
        // DCL registrar
        registrar = _registrar;
    }

    /**
	 * @dev Register a name
     * @param _name - name to be registered
	 * @param _beneficiary - owner of the name
	 */
    function register(string memory _name, address _beneficiary) public {
        // Check gas price
        require(tx.gasprice <= maxGasPrice, "Maximum gas price allowed exceeded");
        // Check for valid beneficiary
        require(_beneficiary != address(0), "Invalid beneficiary");

        // Check if the name is valid
        _requireNameValid(_name);
        // Check if the sender has at least `price` and the contract has allowance to use on its behalf
        _requireBalance(msg.sender);

        // Register the name
        registrar.register(_name, _beneficiary);
        // Debit `price` from sender
        acceptedToken.transferFrom(msg.sender, address(this), PRICE);
        // Burn it
        acceptedToken.burn(PRICE);
        // Log
        emit NameBought(msg.sender, _beneficiary, PRICE, _name);
    }

    /**
     * @dev Update max gas price
     * @param _maxGasPrice - new max gas price to be used
     */
    function updateMaxGasPrice(uint256 _maxGasPrice) external onlyOwner {
        require(_maxGasPrice != maxGasPrice, "Max gas price should be different");
        require(
            _maxGasPrice >= 1000000000,
            "Max gas price should be greater than or equal to 1 gwei"
        );

        emit MaxGasPriceChanged(maxGasPrice, _maxGasPrice);

        maxGasPrice = _maxGasPrice;
    }

    /**
     * @dev Validate if a user has balance and the contract has enough allowance
     * to use user's accepted token on his belhalf
     * @param _user - address of the user
     */
    function _requireBalance(address _user) internal view {
        require(
            acceptedToken.balanceOf(_user) >= PRICE,
            "Insufficient funds"
        );
        require(
            acceptedToken.allowance(_user, address(this)) >= PRICE,
            "The contract is not authorized to use the accepted token on sender behalf"
        );
    }

    /**
    * @dev Validate a nane
    * @notice that only a-z is allowed
    * @param _name - string for the name
    */
    function _requireNameValid(string memory _name) internal pure {
        bytes memory tempName = bytes(_name);
        require(
            tempName.length >= 2 && tempName.length <= 15,
            "Name should be greather than or equal to 2 and less than or equal to 15"
        );
        for(uint256 i = 0; i < tempName.length; i++) {
            require(_isLetter(tempName[i]) || _isNumber(tempName[i]), "Invalid Character");
        }
    }

    function _isLetter(bytes1 _char) internal pure returns (bool) {
        return (_char >= 0x41 && _char <= 0x5A) || (_char >= 0x61 && _char <= 0x7A);
    }

    function _isNumber(bytes1 _char) internal pure returns (bool) {
        return (_char >= 0x30 && _char <= 0x39);
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"contract IERC20Token","name":"_acceptedToken","type":"address"},{"internalType":"contract IDCLRegistrar","name":"_registrar","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_oldMaxGasPrice","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"_newMaxGasPrice","type":"uint256"}],"name":"MaxGasPriceChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_caller","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_price","type":"uint256"},{"indexed":false,"internalType":"string","name":"_name","type":"string"}],"name":"NameBought","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"},{"constant":true,"inputs":[],"name":"PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"acceptedToken","outputs":[{"internalType":"contract IERC20Token","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxGasPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"register","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"registrar","outputs":[{"internalType":"contract IDCLRegistrar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_maxGasPrice","type":"uint256"}],"name":"updateMaxGasPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040526404a817c80060035534801561001957600080fd5b50604051610f30380380610f308339818101604052604081101561003c57600080fd5b5080516020909101516100566001600160e01b0361019316565b600080546001600160a01b0319166001600160a01b03928316178082556040519216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a36100ba826001600160a01b031661019760201b610b8a1760201c565b6100f55760405162461bcd60e51b8152600401808060200182810382526023815260200180610f0d6023913960400191505060405180910390fd5b610111816001600160a01b031661019760201b610b8a1760201c565b610162576040805162461bcd60e51b815260206004820152601e60248201527f5265676973747261722073686f756c64206265206120636f6e74726163740000604482015290519081900360640190fd5b600180546001600160a01b039384166001600160a01b031991821617909155600280549290931691161790556101d3565b3390565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081158015906101cb5750808214155b949350505050565b610d2b806101e26000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a6146101b95780638d859f3e146101c15780638da5cb5b146101c95780638f32d59b146101d1578063f2fde38b146101ed5761009e565b80631e59c529146100a35780632b20e397146101565780633de39c111461017a578063451c3d8014610194578063481463411461019c575b600080fd5b610154600480360360408110156100b957600080fd5b8101906020810181356401000000008111156100d457600080fd5b8201836020820111156100e657600080fd5b8035906020019184600183028401116401000000008311171561010857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506102139050565b005b61015e610540565b604080516001600160a01b039092168252519081900360200190f35b61018261054f565b60408051918252519081900360200190f35b61015e610555565b610154600480360360208110156101b257600080fd5b5035610564565b610154610675565b610182610718565b61015e610725565b6101d9610734565b604080519115158252519081900360200190f35b6101546004803603602081101561020357600080fd5b50356001600160a01b0316610758565b6003543a11156102545760405162461bcd60e51b8152600401808060200182810382526022815260200180610c6d6022913960400191505060405180910390fd5b6001600160a01b0381166102a5576040805162461bcd60e51b8152602060048201526013602482015272496e76616c69642062656e656669636961727960681b604482015290519081900360640190fd5b6102ae826107bd565b6102b7336108b8565b60025460408051631e59c52960e01b81526001600160a01b03848116602483015260048201928352855160448301528551931692631e59c5299286928692829160640190602086019080838360005b8381101561031e578181015183820152602001610306565b50505050905090810190601f16801561034b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561036b57600080fd5b505af115801561037f573d6000803e3d6000fd5b5050600154604080516323b872dd60e01b815233600482015230602482015268056bc75e2d63100000604482015290516001600160a01b0390921693506323b872dd92506064808201926020929091908290030181600087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b505050506040513d602081101561040f57600080fd5b505060015460408051630852cd8d60e31b815268056bc75e2d63100000600482015290516001600160a01b03909216916342966c689160248082019260009290919082900301818387803b15801561046657600080fd5b505af115801561047a573d6000803e3d6000fd5b50505050806001600160a01b0316336001600160a01b03167fb8c56202a5ae8b00edfcd57a54ec6c3fb8d2f6deb3067a7ba11408a7bd014a3e68056bc75e2d63100000856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156105015781810151838201526020016104e9565b50505050905090810190601f16801561052e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a35050565b6002546001600160a01b031681565b60035481565b6001546001600160a01b031681565b61056c610734565b6105bd576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6003548114156105fe5760405162461bcd60e51b8152600401808060200182810382526021815260200180610c8f6021913960400191505060405180910390fd5b633b9aca008110156106415760405162461bcd60e51b8152600401808060200182810382526037815260200180610c366037913960400191505060405180910390fd5b6003546040518291907f9ea22ceb38b7339ccae6a8436afbae71421e5a0cc5f08b9e8114f5fc1dee288c90600090a3600355565b61067d610734565b6106ce576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b68056bc75e2d6310000081565b6000546001600160a01b031690565b600080546001600160a01b0316610749610a4d565b6001600160a01b031614905090565b610760610734565b6107b1576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107ba81610a51565b50565b805181906002118015906107d35750600f815111155b61080e5760405162461bcd60e51b8152600401808060200182810382526047815260200180610cb06047913960600191505060405180910390fd5b60005b81518110156108b35761083d82828151811061082957fe5b01602001516001600160f81b031916610af1565b80610866575061086682828151811061085257fe5b01602001516001600160f81b031916610b57565b6108ab576040805162461bcd60e51b815260206004820152601160248201527024b73b30b634b21021b430b930b1ba32b960791b604482015290519081900360640190fd5b600101610811565b505050565b600154604080516370a0823160e01b81526001600160a01b038481166004830152915168056bc75e2d631000009392909216916370a0823191602480820192602092909190829003018186803b15801561091157600080fd5b505afa158015610925573d6000803e3d6000fd5b505050506040513d602081101561093b57600080fd5b50511015610985576040805162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b604482015290519081900360640190fd5b60015460408051636eb1769f60e11b81526001600160a01b038481166004830152306024830152915168056bc75e2d6310000093929092169163dd62ed3e91604480820192602092909190829003018186803b1580156109e457600080fd5b505afa1580156109f8573d6000803e3d6000fd5b505050506040513d6020811015610a0e57600080fd5b505110156107ba5760405162461bcd60e51b8152600401808060200182810382526049815260200180610bed6049913960600191505060405180910390fd5b3390565b6001600160a01b038116610a965760405162461bcd60e51b8152600401808060200182810382526026815260200180610bc76026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000604160f81b6001600160f81b0319831610801590610b1f5750602d60f91b6001600160f81b0319831611155b80610b515750606160f81b6001600160f81b0319831610801590610b515750603d60f91b6001600160f81b0319831611155b92915050565b6000600360fc1b6001600160f81b0319831610801590610b51575050603960f81b6001600160f81b031991909116111590565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590610bbe5750808214155b94935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737354686520636f6e7472616374206973206e6f7420617574686f72697a656420746f207573652074686520616363657074656420746f6b656e206f6e2073656e64657220626568616c664d6178206761732070726963652073686f756c642062652067726561746572207468616e206f7220657175616c20746f203120677765694d6178696d756d2067617320707269636520616c6c6f7765642065786365656465644d6178206761732070726963652073686f756c6420626520646966666572656e744e616d652073686f756c64206265206772656174686572207468616e206f7220657175616c20746f203220616e64206c657373207468616e206f7220657175616c20746f203135a265627a7a723158206c6835532431a4d51504cb76e3b1be00de1e2a9a8e2bd9fac831c15cca25404164736f6c634300050f0032416363657074656420746f6b656e2073686f756c64206265206120636f6e74726163740000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc9420000000000000000000000002a187453064356c898cae034eaed119e1663acb8

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063715018a611610066578063715018a6146101b95780638d859f3e146101c15780638da5cb5b146101c95780638f32d59b146101d1578063f2fde38b146101ed5761009e565b80631e59c529146100a35780632b20e397146101565780633de39c111461017a578063451c3d8014610194578063481463411461019c575b600080fd5b610154600480360360408110156100b957600080fd5b8101906020810181356401000000008111156100d457600080fd5b8201836020820111156100e657600080fd5b8035906020019184600183028401116401000000008311171561010857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550505090356001600160a01b031691506102139050565b005b61015e610540565b604080516001600160a01b039092168252519081900360200190f35b61018261054f565b60408051918252519081900360200190f35b61015e610555565b610154600480360360208110156101b257600080fd5b5035610564565b610154610675565b610182610718565b61015e610725565b6101d9610734565b604080519115158252519081900360200190f35b6101546004803603602081101561020357600080fd5b50356001600160a01b0316610758565b6003543a11156102545760405162461bcd60e51b8152600401808060200182810382526022815260200180610c6d6022913960400191505060405180910390fd5b6001600160a01b0381166102a5576040805162461bcd60e51b8152602060048201526013602482015272496e76616c69642062656e656669636961727960681b604482015290519081900360640190fd5b6102ae826107bd565b6102b7336108b8565b60025460408051631e59c52960e01b81526001600160a01b03848116602483015260048201928352855160448301528551931692631e59c5299286928692829160640190602086019080838360005b8381101561031e578181015183820152602001610306565b50505050905090810190601f16801561034b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801561036b57600080fd5b505af115801561037f573d6000803e3d6000fd5b5050600154604080516323b872dd60e01b815233600482015230602482015268056bc75e2d63100000604482015290516001600160a01b0390921693506323b872dd92506064808201926020929091908290030181600087803b1580156103e557600080fd5b505af11580156103f9573d6000803e3d6000fd5b505050506040513d602081101561040f57600080fd5b505060015460408051630852cd8d60e31b815268056bc75e2d63100000600482015290516001600160a01b03909216916342966c689160248082019260009290919082900301818387803b15801561046657600080fd5b505af115801561047a573d6000803e3d6000fd5b50505050806001600160a01b0316336001600160a01b03167fb8c56202a5ae8b00edfcd57a54ec6c3fb8d2f6deb3067a7ba11408a7bd014a3e68056bc75e2d63100000856040518083815260200180602001828103825283818151815260200191508051906020019080838360005b838110156105015781810151838201526020016104e9565b50505050905090810190601f16801561052e5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a35050565b6002546001600160a01b031681565b60035481565b6001546001600160a01b031681565b61056c610734565b6105bd576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6003548114156105fe5760405162461bcd60e51b8152600401808060200182810382526021815260200180610c8f6021913960400191505060405180910390fd5b633b9aca008110156106415760405162461bcd60e51b8152600401808060200182810382526037815260200180610c366037913960400191505060405180910390fd5b6003546040518291907f9ea22ceb38b7339ccae6a8436afbae71421e5a0cc5f08b9e8114f5fc1dee288c90600090a3600355565b61067d610734565b6106ce576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b68056bc75e2d6310000081565b6000546001600160a01b031690565b600080546001600160a01b0316610749610a4d565b6001600160a01b031614905090565b610760610734565b6107b1576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6107ba81610a51565b50565b805181906002118015906107d35750600f815111155b61080e5760405162461bcd60e51b8152600401808060200182810382526047815260200180610cb06047913960600191505060405180910390fd5b60005b81518110156108b35761083d82828151811061082957fe5b01602001516001600160f81b031916610af1565b80610866575061086682828151811061085257fe5b01602001516001600160f81b031916610b57565b6108ab576040805162461bcd60e51b815260206004820152601160248201527024b73b30b634b21021b430b930b1ba32b960791b604482015290519081900360640190fd5b600101610811565b505050565b600154604080516370a0823160e01b81526001600160a01b038481166004830152915168056bc75e2d631000009392909216916370a0823191602480820192602092909190829003018186803b15801561091157600080fd5b505afa158015610925573d6000803e3d6000fd5b505050506040513d602081101561093b57600080fd5b50511015610985576040805162461bcd60e51b8152602060048201526012602482015271496e73756666696369656e742066756e647360701b604482015290519081900360640190fd5b60015460408051636eb1769f60e11b81526001600160a01b038481166004830152306024830152915168056bc75e2d6310000093929092169163dd62ed3e91604480820192602092909190829003018186803b1580156109e457600080fd5b505afa1580156109f8573d6000803e3d6000fd5b505050506040513d6020811015610a0e57600080fd5b505110156107ba5760405162461bcd60e51b8152600401808060200182810382526049815260200180610bed6049913960600191505060405180910390fd5b3390565b6001600160a01b038116610a965760405162461bcd60e51b8152600401808060200182810382526026815260200180610bc76026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000604160f81b6001600160f81b0319831610801590610b1f5750602d60f91b6001600160f81b0319831611155b80610b515750606160f81b6001600160f81b0319831610801590610b515750603d60f91b6001600160f81b0319831611155b92915050565b6000600360fc1b6001600160f81b0319831610801590610b51575050603960f81b6001600160f81b031991909116111590565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708115801590610bbe5750808214155b94935050505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737354686520636f6e7472616374206973206e6f7420617574686f72697a656420746f207573652074686520616363657074656420746f6b656e206f6e2073656e64657220626568616c664d6178206761732070726963652073686f756c642062652067726561746572207468616e206f7220657175616c20746f203120677765694d6178696d756d2067617320707269636520616c6c6f7765642065786365656465644d6178206761732070726963652073686f756c6420626520646966666572656e744e616d652073686f756c64206265206772656174686572207468616e206f7220657175616c20746f203220616e64206c657373207468616e206f7220657175616c20746f203135a265627a7a723158206c6835532431a4d51504cb76e3b1be00de1e2a9a8e2bd9fac831c15cca25404164736f6c634300050f0032

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

0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc9420000000000000000000000002a187453064356c898cae034eaed119e1663acb8

-----Decoded View---------------
Arg [0] : _acceptedToken (address): 0x0F5D2fB29fb7d3CFeE444a200298f468908cC942
Arg [1] : _registrar (address): 0x2A187453064356c898cAe034EAed119E1663ACb8

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000f5d2fb29fb7d3cfee444a200298f468908cc942
Arg [1] : 0000000000000000000000002a187453064356c898cae034eaed119e1663acb8


Deployed Bytecode Sourcemap

10150:4201:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10150:4201:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11526:845;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11526:845:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;11526:845:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;11526:845:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;11526:845:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;11526:845:0;;-1:-1:-1;;;11526:845:0;;-1:-1:-1;;;;;11526:845:0;;-1:-1:-1;11526:845:0;;-1:-1:-1;11526:845:0:i;:::-;;10392:30;;;:::i;:::-;;;;-1:-1:-1;;;;;10392:30:0;;;;;;;;;;;;;;10458:40;;;:::i;:::-;;;;;;;;;;;;;;;;10331:32;;;:::i;12490:404::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12490:404:0;;:::i;2936:140::-;;;:::i;10252:41::-;;;:::i;2125:79::-;;;:::i;2491:94::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;3231:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3231:109:0;-1:-1:-1;;;;;3231:109:0;;:::i;11526:845::-;11656:11;;11641;:26;;11633:73;;;;-1:-1:-1;;;11633:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11765:26:0;;11757:58;;;;;-1:-1:-1;;;11757:58:0;;;;;;;;;;;;-1:-1:-1;;;11757:58:0;;;;;;;;;;;;;;;11867:24;11885:5;11867:17;:24::i;:::-;12007:27;12023:10;12007:15;:27::i;:::-;12077:9;;:39;;;-1:-1:-1;;;12077:39:0;;-1:-1:-1;;;;;12077:39:0;;;;;;;;;;;;;;;;;;;;;:9;;;:18;;12096:5;;12103:12;;12077:39;;;;;;;;;;;;:9;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12077:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12077:39:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12165:13:0;;:60;;;-1:-1:-1;;;12165:60:0;;12192:10;12165:60;;;;12212:4;12165:60;;;;10284:9;12165:60;;;;;;-1:-1:-1;;;;;12165:13:0;;;;-1:-1:-1;12165:26:0;;-1:-1:-1;12165:60:0;;;;;;;;;;;;;;;:13;;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;12165:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12165:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;12256:13:0;;:25;;;-1:-1:-1;;;12256:25:0;;10284:9;12256:25;;;;;;-1:-1:-1;;;;;12256:13:0;;;;:18;;:25;;;;;:13;;:25;;;;;;;;:13;;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;12256:25:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12256:25:0;;;;12336:12;-1:-1:-1;;;;;12313:50:0;12324:10;-1:-1:-1;;;;;12313:50:0;;10284:9;12357:5;12313:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;12313:50:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11526:845;;:::o;10392:30::-;;;-1:-1:-1;;;;;10392:30:0;;:::o;10458:40::-;;;;:::o;10331:32::-;;;-1:-1:-1;;;;;10331:32:0;;:::o;12490:404::-;2337:9;:7;:9::i;:::-;2329:54;;;;;-1:-1:-1;;;2329:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12593:11;;12577:12;:27;;12569:73;;;;-1:-1:-1;;;12569:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12691:10;12675:12;:26;;12653:131;;;;-1:-1:-1;;;12653:131:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12821:11;;12802:45;;12834:12;;12821:11;12802:45;;;;;12860:11;:26;12490:404::o;2936:140::-;2337:9;:7;:9::i;:::-;2329:54;;;;;-1:-1:-1;;;2329:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3035:1;3019:6;;2998:40;;-1:-1:-1;;;;;3019:6:0;;;;2998:40;;3035:1;;2998:40;3066:1;3049:19;;-1:-1:-1;;;;;;3049:19:0;;;2936:140::o;10252:41::-;10284:9;10252:41;:::o;2125:79::-;2163:7;2190:6;-1:-1:-1;;;;;2190:6:0;2125:79;:::o;2491:94::-;2531:4;2571:6;;-1:-1:-1;;;;;2571:6:0;2555:12;:10;:12::i;:::-;-1:-1:-1;;;;;2555:22:0;;2548:29;;2491:94;:::o;3231:109::-;2337:9;:7;:9::i;:::-;2329:54;;;;;-1:-1:-1;;;2329:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3304:28;3323:8;3304:18;:28::i;:::-;3231:109;:::o;13600:454::-;13742:15;;13703:5;;13761:1;-1:-1:-1;13742:20:0;;;:45;;;13785:2;13766:8;:15;:21;;13742:45;13720:166;;;;-1:-1:-1;;;13720:166:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13901:9;13897:150;13920:8;:15;13916:1;:19;13897:150;;;13965:22;13975:8;13984:1;13975:11;;;;;;;;;;;;-1:-1:-1;;;;;;13975:11:0;13965:9;:22::i;:::-;:48;;;;13991:22;14001:8;14010:1;14001:11;;;;;;;;;;;;-1:-1:-1;;;;;;14001:11:0;13991:9;:22::i;:::-;13957:78;;;;;-1:-1:-1;;;13957:78:0;;;;;;;;;;;;-1:-1:-1;;;13957:78:0;;;;;;;;;;;;;;;13937:3;;13897:150;;;;13600:454;;:::o;13097:368::-;13184:13;;:30;;;-1:-1:-1;;;13184:30:0;;-1:-1:-1;;;;;13184:30:0;;;;;;;;;10284:9;;13184:13;;;;;:23;;:30;;;;;;;;;;;;;;;:13;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;13184:30:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13184:30:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13184:30:0;:39;;13162:107;;;;;-1:-1:-1;;;13162:107:0;;;;;;;;;;;;-1:-1:-1;;;13162:107:0;;;;;;;;;;;;;;;13302:13;;:45;;;-1:-1:-1;;;13302:45:0;;-1:-1:-1;;;;;13302:45:0;;;;;;;13341:4;13302:45;;;;;;10284:9;;13302:13;;;;;:23;;:45;;;;;;;;;;;;;;;:13;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;13302:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13302:45:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13302:45:0;:54;;13280:177;;;;-1:-1:-1;;;13280:177:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;866:98;946:10;866:98;:::o;3446:229::-;-1:-1:-1;;;;;3520:22:0;;3512:73;;;;-1:-1:-1;;;3512:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3622:6;;;3601:38;;-1:-1:-1;;;;;3601:38:0;;;;3622:6;;;3601:38;;;3650:6;:17;;-1:-1:-1;;;;;;3650:17:0;-1:-1:-1;;;;;3650:17:0;;;;;;;;;;3446:229::o;14062:156::-;14118:4;-1:-1:-1;;;;;;;;;14143:13:0;;;;;;:30;;-1:-1:-1;;;;;;;;;;14160:13:0;;;;14143:30;14142:68;;;-1:-1:-1;;;;;;;;;;14179:13:0;;;;;;:30;;-1:-1:-1;;;;;;;;;;14196:13:0;;;;14179:30;14135:75;14062:156;-1:-1:-1;;14062:156:0:o;14226:120::-;14282:4;-1:-1:-1;;;;;;;;;14307:13:0;;;;;;:30;;-1:-1:-1;;;;;;;;;;;14324:13:0;;;;;;;14226:120::o;4318:810::-;4378:4;5037:20;;4880:66;5077:15;;;;;:42;;;5108:11;5096:8;:23;;5077:42;5069:51;4318:810;-1:-1:-1;;;;4318:810:0:o

Swarm Source

bzzr://6c6835532431a4d51504cb76e3b1be00de1e2a9a8e2bd9fac831c15cca254041

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.