ETH Price: $1,578.28 (-1.50%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Register Address102874372020-06-18 3:57:111765 days ago1592452631IN
0xD1997064...C548738B3
0 ETH0.0010826636
Register Address102826112020-06-17 10:10:021765 days ago1592388602IN
0xD1997064...C548738B3
0 ETH0.0013232544
Register Address102770152020-06-16 13:18:241766 days ago1592313504IN
0xD1997064...C548738B3
0 ETH0.0014736249
Register Address102766622020-06-16 12:01:461766 days ago1592308906IN
0xD1997064...C548738B3
0 ETH0.0013533345
Register Address92475122020-01-09 16:19:211925 days ago1578586761IN
0xD1997064...C548738B3
0 ETH0.000180446
Accept Ownership92475042020-01-09 16:17:201925 days ago1578586640IN
0xD1997064...C548738B3
0 ETH0.000131256
Transfer Ownersh...59366222018-07-10 2:52:312474 days ago1531191151IN
0xD1997064...C548738B3
0 ETH0.0013095930
Accept Ownership59354212018-07-09 21:59:272474 days ago1531173567IN
0xD1997064...C548738B3
0 ETH0.0005724930
Transfer Ownersh...59354152018-07-09 21:57:442474 days ago1531173464IN
0xD1997064...C548738B3
0 ETH0.0013076730
Register Address58416982018-06-23 19:04:192490 days ago1529780659IN
0xD1997064...C548738B3
0 ETH0.000094123
Register Address57662632018-06-10 19:41:092503 days ago1528659669IN
0xD1997064...C548738B3
0 ETH0.0003657312
Register Address57662632018-06-10 19:41:092503 days ago1528659669IN
0xD1997064...C548738B3
0 ETH0.0005572512
Register Address57662612018-06-10 19:40:032503 days ago1528659603IN
0xD1997064...C548738B3
0 ETH0.0005564812
Register Address57662572018-06-10 19:39:272503 days ago1528659567IN
0xD1997064...C548738B3
0 ETH0.0005541812
Register Address57662552018-06-10 19:38:502503 days ago1528659530IN
0xD1997064...C548738B3
0 ETH0.0005457312
Register Address57479182018-06-07 13:37:052506 days ago1528378625IN
0xD1997064...C548738B3
0 ETH0.0004157713.5
Register Address57430282018-06-06 16:39:442507 days ago1528303184IN
0xD1997064...C548738B3
0 ETH0.0006869715
Register Address57429252018-06-06 16:13:092507 days ago1528301589IN
0xD1997064...C548738B3
0 ETH0.0006888915
Register Address57429232018-06-06 16:12:262507 days ago1528301546IN
0xD1997064...C548738B3
0 ETH0.0006869715

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ContractRegistry

Compiler Version
v0.4.21+commit.dfe3193c

Optimization Enabled:
Yes with 500 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-06-06
*/

pragma solidity ^0.4.21;

/*
    Owned contract interface
*/
contract IOwned {
    // this function isn't abstract since the compiler emits automatically generated getter functions as external
    function owner() public view returns (address) {}

    function transferOwnership(address _newOwner) public;
    function acceptOwnership() public;
}

/*
    Provides support and utilities for contract ownership
*/
contract Owned is IOwned {
    address public owner;
    address public newOwner;

    event OwnerUpdate(address indexed _prevOwner, address indexed _newOwner);

    /**
        @dev constructor
    */
    function Owned() public {
        owner = msg.sender;
    }

    // allows execution by the owner only
    modifier ownerOnly {
        assert(msg.sender == owner);
        _;
    }

    /**
        @dev allows transferring the contract ownership
        the new owner still needs to accept the transfer
        can only be called by the contract owner

        @param _newOwner    new contract owner
    */
    function transferOwnership(address _newOwner) public ownerOnly {
        require(_newOwner != owner);
        newOwner = _newOwner;
    }

    /**
        @dev used by a new owner to accept an ownership transfer
    */
    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnerUpdate(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

/*
    Contract Registry interface
*/
contract IContractRegistry {
    function getAddress(bytes32 _contractName) public view returns (address);
}

/**
    Contract Registry

    The contract registry keeps contract addresses by name.
    The owner can update contract addresses so that a contract name always points to the latest version
    of the given contract.
    Other contracts can query the registry to get updated addresses instead of depending on specific
    addresses.

    Note that contract names are limited to 32 bytes, UTF8 strings to optimize gas costs
*/
contract ContractRegistry is IContractRegistry, Owned {
    mapping (bytes32 => address) addresses;

    event AddressUpdate(bytes32 indexed _contractName, address _contractAddress);

    /**
        @dev constructor
    */
    function ContractRegistry() public {
    }

    /**
        @dev returns the address associated with the given contract name

        @param _contractName    contract name

        @return contract address
    */
    function getAddress(bytes32 _contractName) public view returns (address) {
        return addresses[_contractName];
    }

    /**
        @dev registers a new address for the contract name

       @param _contractName     contract name
       @param _contractAddress  contract address
    */
    function registerAddress(bytes32 _contractName, address _contractAddress) public ownerOnly {
        require(_contractName.length > 0); // validating input

        addresses[_contractName] = _contractAddress;
        emit AddressUpdate(_contractName, _contractAddress);
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[{"name":"_contractName","type":"bytes32"}],"name":"getAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_contractName","type":"bytes32"},{"name":"_contractAddress","type":"address"}],"name":"registerAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_contractName","type":"bytes32"},{"indexed":false,"name":"_contractAddress","type":"address"}],"name":"AddressUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_prevOwner","type":"address"},{"indexed":true,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","type":"event"}]

6060604052341561000f57600080fd5b60008054600160a060020a033316600160a060020a03199091161790556103d38061003b6000396000f3006060604052600436106100775763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166321f8a721811461007c578063662de379146100bb57806379ba5097146100ec5780638da5cb5b146100ff578063d4ee1d9014610112578063f2fde38b14610125575b600080fd5b341561008757600080fd5b610092600435610151565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100c657600080fd5b6100ea60043573ffffffffffffffffffffffffffffffffffffffff60243516610179565b005b34156100f757600080fd5b6100ea610231565b341561010a57600080fd5b6100926102e6565b341561011d57600080fd5b610092610302565b341561013057600080fd5b6100ea73ffffffffffffffffffffffffffffffffffffffff6004351661031e565b60009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161461019e57fe5b60008281526002602052604090819020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff841617905582907ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f299189083905173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a25050565b6001543373ffffffffffffffffffffffffffffffffffffffff90811691161461025957600080fd5b60015460005473ffffffffffffffffffffffffffffffffffffffff91821691167f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a60405160405180910390a3600180546000805473ffffffffffffffffffffffffffffffffffffffff1990811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161461034357fe5b60005473ffffffffffffffffffffffffffffffffffffffff8281169116141561036b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff929092169190911790555600a165627a7a723058203f31c817cb2ad76ddb76aa2d6bbb4b3326362386c8cc6144c2d1c80680a861a80029

Deployed Bytecode

0x6060604052600436106100775763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166321f8a721811461007c578063662de379146100bb57806379ba5097146100ec5780638da5cb5b146100ff578063d4ee1d9014610112578063f2fde38b14610125575b600080fd5b341561008757600080fd5b610092600435610151565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f35b34156100c657600080fd5b6100ea60043573ffffffffffffffffffffffffffffffffffffffff60243516610179565b005b34156100f757600080fd5b6100ea610231565b341561010a57600080fd5b6100926102e6565b341561011d57600080fd5b610092610302565b341561013057600080fd5b6100ea73ffffffffffffffffffffffffffffffffffffffff6004351661031e565b60009081526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161461019e57fe5b60008281526002602052604090819020805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff841617905582907ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f299189083905173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a25050565b6001543373ffffffffffffffffffffffffffffffffffffffff90811691161461025957600080fd5b60015460005473ffffffffffffffffffffffffffffffffffffffff91821691167f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a60405160405180910390a3600180546000805473ffffffffffffffffffffffffffffffffffffffff1990811673ffffffffffffffffffffffffffffffffffffffff841617909155169055565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b6000543373ffffffffffffffffffffffffffffffffffffffff90811691161461034357fe5b60005473ffffffffffffffffffffffffffffffffffffffff8281169116141561036b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff191673ffffffffffffffffffffffffffffffffffffffff929092169190911790555600a165627a7a723058203f31c817cb2ad76ddb76aa2d6bbb4b3326362386c8cc6144c2d1c80680a861a80029

Swarm Source

bzzr://3f31c817cb2ad76ddb76aa2d6bbb4b3326362386c8cc6144c2d1c80680a861a8

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.