ETH Price: $3,450.43 (-1.06%)
Gas: 2 Gwei

Contract

0x52Ae12ABe5D8BD778BD5397F99cA900624CfADD4
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Register Address160314652022-11-23 8:20:59586 days ago1669191659IN
Bancor: Contract Registry
0 ETH0.0005164915.50484476
Register Address149927862022-06-19 20:44:39743 days ago1655671479IN
Bancor: Contract Registry
0 ETH0.0017814353.47715893
Register Address147417962022-05-09 10:06:29784 days ago1652090789IN
Bancor: Contract Registry
0 ETH0.0009643928.95049667
Register Address147251002022-05-06 18:23:23787 days ago1651861403IN
Bancor: Contract Registry
0 ETH0.0013991242.00049299
Accept Ownership146880132022-04-30 21:33:58793 days ago1651354438IN
Bancor: Contract Registry
0 ETH0.0020828372.39600512
Transfer Ownersh...146879962022-04-30 21:29:22793 days ago1651354162IN
Bancor: Contract Registry
0 ETH0.0036406677.98859439
Register Address136136332021-11-14 11:11:49960 days ago1636888309IN
Bancor: Contract Registry
0 ETH0.0027266682
Register Address127632822021-07-04 20:48:591093 days ago1625431739IN
Bancor: Contract Registry
0 ETH0.0003325210
Register Address124534312021-05-17 18:00:201141 days ago1621274420IN
Bancor: Contract Registry
0 ETH0.00469699141
Register Address122915072021-04-22 18:02:021166 days ago1619114522IN
Bancor: Contract Registry
0 ETH0.00592953178
Register Address121745822021-04-04 17:48:021184 days ago1617558482IN
Bancor: Contract Registry
0 ETH0.00391344124
Register Address121745502021-04-04 17:40:191184 days ago1617558019IN
Bancor: Contract Registry
0 ETH0.01626621116
Register Address120683982021-03-19 9:37:011200 days ago1616146621IN
Bancor: Contract Registry
0 ETH0.0047178150
Register Address120569102021-03-17 15:10:111202 days ago1615993811IN
Bancor: Contract Registry
0 ETH0.00729686232
Register Address120189482021-03-11 18:42:181208 days ago1615488138IN
Bancor: Contract Registry
0 ETH0.00437182139
Register Address118158552021-02-08 12:39:361239 days ago1612787976IN
Bancor: Contract Registry
0 ETH0.00642844204
Register Address117776702021-02-02 15:39:111245 days ago1612280351IN
Bancor: Contract Registry
0 ETH0.009513302
Register Address117582432021-01-30 16:02:451248 days ago1612022565IN
Bancor: Contract Registry
0 ETH0.00591072188
Register Address117378702021-01-27 12:35:231251 days ago1611750923IN
Bancor: Contract Registry
0 ETH0.0123388388
Register Address116730022021-01-17 13:32:241261 days ago1610890344IN
Bancor: Contract Registry
0 ETH0.0019537462
Unregister Addre...115436232020-12-28 16:55:201281 days ago1609174520IN
Bancor: Contract Registry
0 ETH0.00729144234
Register Address115436022020-12-28 16:47:371281 days ago1609174057IN
Bancor: Contract Registry
0 ETH0.00586123186
Register Address114520112020-12-14 15:47:511295 days ago1607960871IN
Bancor: Contract Registry
0 ETH0.0138966399
Register Address114519622020-12-14 15:35:171295 days ago1607960117IN
Bancor: Contract Registry
0 ETH0.002905492.2
Register Address114515302020-12-14 13:53:301295 days ago1607954010IN
Bancor: Contract Registry
0 ETH0.0028088489
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:
ContractRegistry

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes with 200 runs

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

pragma solidity ^0.4.24;

// File: contracts/utility/interfaces/IOwned.sol

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

// File: contracts/utility/Owned.sol

/*
    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
    */
    constructor() public {
        owner = msg.sender;
    }

    // allows execution by the owner only
    modifier ownerOnly {
        require(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);
    }
}

// File: contracts/utility/Utils.sol

/*
    Utilities & Common Modifiers
*/
contract Utils {
    /**
        constructor
    */
    constructor() public {
    }

    // verifies that an amount is greater than zero
    modifier greaterThanZero(uint256 _amount) {
        require(_amount > 0);
        _;
    }

    // validates an address - currently only checks that it isn't null
    modifier validAddress(address _address) {
        require(_address != address(0));
        _;
    }

    // verifies that the address is different than this contract address
    modifier notThis(address _address) {
        require(_address != address(this));
        _;
    }

    // Overflow protected math functions

    /**
        @dev returns the sum of _x and _y, asserts if the calculation overflows

        @param _x   value 1
        @param _y   value 2

        @return sum
    */
    function safeAdd(uint256 _x, uint256 _y) internal pure returns (uint256) {
        uint256 z = _x + _y;
        assert(z >= _x);
        return z;
    }

    /**
        @dev returns the difference of _x minus _y, asserts if the subtraction results in a negative number

        @param _x   minuend
        @param _y   subtrahend

        @return difference
    */
    function safeSub(uint256 _x, uint256 _y) internal pure returns (uint256) {
        assert(_x >= _y);
        return _x - _y;
    }

    /**
        @dev returns the product of multiplying _x by _y, asserts if the calculation overflows

        @param _x   factor 1
        @param _y   factor 2

        @return product
    */
    function safeMul(uint256 _x, uint256 _y) internal pure returns (uint256) {
        uint256 z = _x * _y;
        assert(_x == 0 || z / _x == _y);
        return z;
    }
}

// File: contracts/utility/interfaces/IContractRegistry.sol

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

    // deprecated, backward compatibility
    function getAddress(bytes32 _contractName) public view returns (address);
}

// File: contracts/ContractIds.sol

/**
    Id definitions for bancor contracts

    Can be used in conjunction with the contract registry to get contract addresses
*/
contract ContractIds {
    // generic
    bytes32 public constant CONTRACT_FEATURES = "ContractFeatures";
    bytes32 public constant CONTRACT_REGISTRY = "ContractRegistry";

    // bancor logic
    bytes32 public constant BANCOR_NETWORK = "BancorNetwork";
    bytes32 public constant BANCOR_FORMULA = "BancorFormula";
    bytes32 public constant BANCOR_GAS_PRICE_LIMIT = "BancorGasPriceLimit";
    bytes32 public constant BANCOR_CONVERTER_UPGRADER = "BancorConverterUpgrader";
    bytes32 public constant BANCOR_CONVERTER_FACTORY = "BancorConverterFactory";

    // Ids of BNT converter and BNT token
    bytes32 public constant BNT_TOKEN = "BNTToken";
    bytes32 public constant BNT_CONVERTER = "BNTConverter";

    // Id of BancorX contract
    bytes32 public constant BANCOR_X = "BancorX";
}

// File: contracts/utility/ContractRegistry.sol

/**
    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 encoded ASCII strings to optimize gas costs
*/
contract ContractRegistry is IContractRegistry, Owned, Utils, ContractIds {
    struct RegistryItem {
        address contractAddress;    // contract address
        uint256 nameIndex;          // index of the item in the list of contract names
        bool isSet;                 // used to tell if the mapping element is defined
    }

    mapping (bytes32 => RegistryItem) private items;    // name -> RegistryItem mapping
    string[] public contractNames;                      // list of all registered contract names

    // triggered when an address pointed to by a contract name is modified
    event AddressUpdate(bytes32 indexed _contractName, address _contractAddress);

    /**
        @dev constructor
    */
    constructor() public {
        registerAddress(ContractIds.CONTRACT_REGISTRY, address(this));
    }

    /**
        @dev returns the number of items in the registry

        @return number of items
    */
    function itemCount() public view returns (uint256) {
        return contractNames.length;
    }

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

        @param _contractName    contract name

        @return contract address
    */
    function addressOf(bytes32 _contractName) public view returns (address) {
        return items[_contractName].contractAddress;
    }

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

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

        // update the address in the registry
        items[_contractName].contractAddress = _contractAddress;

        if (!items[_contractName].isSet) {
            // mark the item as set
            items[_contractName].isSet = true;
            // add the contract name to the name list
            uint256 i = contractNames.push(bytes32ToString(_contractName));
            // update the item's index in the list
            items[_contractName].nameIndex = i - 1;
        }

        // dispatch the address update event
        emit AddressUpdate(_contractName, _contractAddress);
    }

    /**
        @dev removes an existing contract address from the registry

        @param _contractName contract name
    */
    function unregisterAddress(bytes32 _contractName) public ownerOnly {
        require(_contractName.length > 0); // validate input

        // remove the address from the registry
        items[_contractName].contractAddress = address(0);

        // if there are multiple items in the registry, move the last element to the deleted element's position
        // and modify last element's registryItem.nameIndex in the items collection to point to the right position in contractNames
        if (contractNames.length > 1) {
            string memory lastContractNameString = contractNames[contractNames.length - 1];
            uint256 unregisterIndex = items[_contractName].nameIndex;

            contractNames[unregisterIndex] = lastContractNameString;
            bytes32 lastContractName = stringToBytes32(lastContractNameString);
            RegistryItem storage registryItem = items[lastContractName];
            registryItem.nameIndex = unregisterIndex;
        }

        // remove the last element from the name list
        contractNames.length--;
        // zero the deleted element's index
        items[_contractName].nameIndex = 0;

        // dispatch the address update event
        emit AddressUpdate(_contractName, address(0));
    }

    /**
        @dev utility, converts bytes32 to a string
        note that the bytes32 argument is assumed to be UTF8 encoded ASCII string

        @return string representation of the given bytes32 argument
    */
    function bytes32ToString(bytes32 _bytes) private pure returns (string) {
        bytes memory byteArray = new bytes(32);
        for (uint256 i; i < 32; i++) {
            byteArray[i] = _bytes[i];
        }

        return string(byteArray);
    }

    // @dev utility, converts string to bytes32
    function stringToBytes32(string memory _string) private pure returns (bytes32) {
        bytes32 result;
        assembly {
            result := mload(add(_string,32))
        }
        return result;
    }

    // deprecated, backward compatibility
    function getAddress(bytes32 _contractName) public view returns (address) {
        return addressOf(_contractName);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"BANCOR_CONVERTER_UPGRADER","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BNT_TOKEN","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_contractName","type":"bytes32"}],"name":"getAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"CONTRACT_REGISTRY","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_contractName","type":"bytes32"}],"name":"unregisterAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"contractNames","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BANCOR_CONVERTER_FACTORY","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BNT_CONVERTER","outputs":[{"name":"","type":"bytes32"}],"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":true,"inputs":[],"name":"itemCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BANCOR_FORMULA","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"CONTRACT_FEATURES","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BANCOR_NETWORK","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BANCOR_GAS_PRICE_LIMIT","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_contractName","type":"bytes32"}],"name":"addressOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BANCOR_X","outputs":[{"name":"","type":"bytes32"}],"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"}]

60806040523480156200001157600080fd5b5060008054600160a060020a03191633179055620000597f436f6e7472616374526567697374727900000000000000000000000000000000306401000000006200005f810204565b620002c2565b60008054600160a060020a031633146200007857600080fd5b81600160a060020a03811615156200008f57600080fd5b60008481526002602081905260409091208054600160a060020a031916600160a060020a038616178155015460ff1615156200013f57600084815260026020819052604090912001805460ff191660011790556003620000f88564010000000062000184810204565b8154600181018084556000938452602093849020835191946200012294919093019201906200021d565b506000858152600260205260409020600019820160019091015591505b60408051600160a060020a0385168152905185917ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918919081900360200190a250505050565b6040805160208082528183019092526060918291600091808201610400803883390190505091505b60208110156200021657838160208110620001c357fe5b1a7f0100000000000000000000000000000000000000000000000000000000000000028282815181101515620001f557fe5b906020010190600160f860020a031916908160001a905350600101620001ac565b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200026057805160ff191683800117855562000290565b8280016001018555821562000290579182015b828111156200029057825182559160200191906001019062000273565b506200029e929150620002a2565b5090565b620002bf91905b808211156200029e5760008155600101620002a9565b90565b610bc480620002d26000396000f3006080604052600436106101115763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c87355e81146101165780631d000b611461013d57806321f8a7211461015257806325f9bfef146101865780632bbd95301461019b5780633ca6bb92146101b55780635a46f06c1461024257806362614ae614610257578063662de3791461026c5780636bfb0d01146102905780636d7bd3fc146102a557806379ba5097146102ba57806383315b6e146102cf5780638da5cb5b146102e45780639232494e146102f95780639249993a1461030e578063bb34534c14610323578063c4a8598e1461033b578063d4ee1d9014610350578063f2fde38b14610365575b600080fd5b34801561012257600080fd5b5061012b610386565b60408051918252519081900360200190f35b34801561014957600080fd5b5061012b6103aa565b34801561015e57600080fd5b5061016a6004356103ce565b60408051600160a060020a039092168252519081900360200190f35b34801561019257600080fd5b5061012b6103df565b3480156101a757600080fd5b506101b3600435610403565b005b3480156101c157600080fd5b506101cd6004356105cb565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102075781810151838201526020016101ef565b50505050905090810190601f1680156102345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024e57600080fd5b5061012b610672565b34801561026357600080fd5b5061012b610696565b34801561027857600080fd5b506101b3600435600160a060020a03602435166106ba565b34801561029c57600080fd5b5061012b6107dc565b3480156102b157600080fd5b5061012b6107e3565b3480156102c657600080fd5b506101b3610807565b3480156102db57600080fd5b5061012b61088f565b3480156102f057600080fd5b5061016a6108b3565b34801561030557600080fd5b5061012b6108c2565b34801561031a57600080fd5b5061012b6108e6565b34801561032f57600080fd5b5061016a60043561090a565b34801561034757600080fd5b5061012b610925565b34801561035c57600080fd5b5061016a610949565b34801561037157600080fd5b506101b3600160a060020a0360043516610958565b7f42616e636f72436f6e766572746572557067726164657200000000000000000081565b7f424e54546f6b656e00000000000000000000000000000000000000000000000081565b60006103d98261090a565b92915050565b7f436f6e747261637452656769737472790000000000000000000000000000000081565b600080546060919081908190600160a060020a0316331461042357600080fd5b6000858152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055600354600110156105685760038054600019810190811061046957fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156104f75780601f106104cc576101008083540402835291602001916104f7565b820191906000526020600020905b8154815290600101906020018083116104da57829003601f168201915b505050600088815260026020526040902060010154600380549498509096508793909250869150811061052657fe5b906000526020600020019080519060200190610543929190610a6d565b5061054d846109b9565b60008181526002602052604090206001810185905590925090505b600380549061057b906000198301610aeb565b50600085815260026020908152604080832060010183905580519283525187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25050505050565b60038054829081106105d957fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529350909183018282801561066a5780601f1061063f5761010080835404028352916020019161066a565b820191906000526020600020905b81548152906001019060200180831161064d57829003601f168201915b505050505081565b7f42616e636f72436f6e766572746572466163746f72790000000000000000000081565b7f424e54436f6e766572746572000000000000000000000000000000000000000081565b60008054600160a060020a031633146106d257600080fd5b81600160a060020a03811615156106e857600080fd5b6000848152600260208190526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038616178155015460ff16151561079757600084815260026020819052604090912001805460ff191660011790556003610752856109c0565b81546001810180845560009384526020938490208351919461077a9491909301920190610a6d565b506000858152600260205260409020600019820160019091015591505b60408051600160a060020a0385168152905185917ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918919081900360200190a250505050565b6003545b90565b7f42616e636f72466f726d756c610000000000000000000000000000000000000081565b600154600160a060020a0316331461081e57600080fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b7f436f6e747261637446656174757265730000000000000000000000000000000081565b600054600160a060020a031681565b7f42616e636f724e6574776f726b0000000000000000000000000000000000000081565b7f42616e636f7247617350726963654c696d69740000000000000000000000000081565b600090815260026020526040902054600160a060020a031690565b7f42616e636f72580000000000000000000000000000000000000000000000000081565b600154600160a060020a031681565b600054600160a060020a0316331461096f57600080fd5b600054600160a060020a038281169116141561098a57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6020015190565b6040805160208082528183019092526060918291600091808201610400803883390190505091505b6020811015610a66578381602081106109fd57fe5b1a7f0100000000000000000000000000000000000000000000000000000000000000028282815181101515610a2e57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016109e8565b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610aae57805160ff1916838001178555610adb565b82800160010185558215610adb579182015b82811115610adb578251825591602001919060010190610ac0565b50610ae7929150610b14565b5090565b815481835581811115610b0f57600083815260209020610b0f918101908301610b2e565b505050565b6107e091905b80821115610ae75760008155600101610b1a565b6107e091905b80821115610ae7576000610b488282610b51565b50600101610b34565b50805460018160011615610100020316600290046000825580601f10610b775750610b95565b601f016020900490600052602060002090810190610b959190610b14565b505600a165627a7a72305820cd3e000b182ad7232346065f3c16b88629e59a9c082589a00b58e7f1fca33cab0029

Deployed Bytecode

0x6080604052600436106101115763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630c87355e81146101165780631d000b611461013d57806321f8a7211461015257806325f9bfef146101865780632bbd95301461019b5780633ca6bb92146101b55780635a46f06c1461024257806362614ae614610257578063662de3791461026c5780636bfb0d01146102905780636d7bd3fc146102a557806379ba5097146102ba57806383315b6e146102cf5780638da5cb5b146102e45780639232494e146102f95780639249993a1461030e578063bb34534c14610323578063c4a8598e1461033b578063d4ee1d9014610350578063f2fde38b14610365575b600080fd5b34801561012257600080fd5b5061012b610386565b60408051918252519081900360200190f35b34801561014957600080fd5b5061012b6103aa565b34801561015e57600080fd5b5061016a6004356103ce565b60408051600160a060020a039092168252519081900360200190f35b34801561019257600080fd5b5061012b6103df565b3480156101a757600080fd5b506101b3600435610403565b005b3480156101c157600080fd5b506101cd6004356105cb565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102075781810151838201526020016101ef565b50505050905090810190601f1680156102345780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024e57600080fd5b5061012b610672565b34801561026357600080fd5b5061012b610696565b34801561027857600080fd5b506101b3600435600160a060020a03602435166106ba565b34801561029c57600080fd5b5061012b6107dc565b3480156102b157600080fd5b5061012b6107e3565b3480156102c657600080fd5b506101b3610807565b3480156102db57600080fd5b5061012b61088f565b3480156102f057600080fd5b5061016a6108b3565b34801561030557600080fd5b5061012b6108c2565b34801561031a57600080fd5b5061012b6108e6565b34801561032f57600080fd5b5061016a60043561090a565b34801561034757600080fd5b5061012b610925565b34801561035c57600080fd5b5061016a610949565b34801561037157600080fd5b506101b3600160a060020a0360043516610958565b7f42616e636f72436f6e766572746572557067726164657200000000000000000081565b7f424e54546f6b656e00000000000000000000000000000000000000000000000081565b60006103d98261090a565b92915050565b7f436f6e747261637452656769737472790000000000000000000000000000000081565b600080546060919081908190600160a060020a0316331461042357600080fd5b6000858152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055600354600110156105685760038054600019810190811061046957fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156104f75780601f106104cc576101008083540402835291602001916104f7565b820191906000526020600020905b8154815290600101906020018083116104da57829003601f168201915b505050600088815260026020526040902060010154600380549498509096508793909250869150811061052657fe5b906000526020600020019080519060200190610543929190610a6d565b5061054d846109b9565b60008181526002602052604090206001810185905590925090505b600380549061057b906000198301610aeb565b50600085815260026020908152604080832060010183905580519283525187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25050505050565b60038054829081106105d957fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529350909183018282801561066a5780601f1061063f5761010080835404028352916020019161066a565b820191906000526020600020905b81548152906001019060200180831161064d57829003601f168201915b505050505081565b7f42616e636f72436f6e766572746572466163746f72790000000000000000000081565b7f424e54436f6e766572746572000000000000000000000000000000000000000081565b60008054600160a060020a031633146106d257600080fd5b81600160a060020a03811615156106e857600080fd5b6000848152600260208190526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038616178155015460ff16151561079757600084815260026020819052604090912001805460ff191660011790556003610752856109c0565b81546001810180845560009384526020938490208351919461077a9491909301920190610a6d565b506000858152600260205260409020600019820160019091015591505b60408051600160a060020a0385168152905185917ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f29918919081900360200190a250505050565b6003545b90565b7f42616e636f72466f726d756c610000000000000000000000000000000000000081565b600154600160a060020a0316331461081e57600080fd5b60015460008054604051600160a060020a0393841693909116917f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91a3600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b7f436f6e747261637446656174757265730000000000000000000000000000000081565b600054600160a060020a031681565b7f42616e636f724e6574776f726b0000000000000000000000000000000000000081565b7f42616e636f7247617350726963654c696d69740000000000000000000000000081565b600090815260026020526040902054600160a060020a031690565b7f42616e636f72580000000000000000000000000000000000000000000000000081565b600154600160a060020a031681565b600054600160a060020a0316331461096f57600080fd5b600054600160a060020a038281169116141561098a57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6020015190565b6040805160208082528183019092526060918291600091808201610400803883390190505091505b6020811015610a66578381602081106109fd57fe5b1a7f0100000000000000000000000000000000000000000000000000000000000000028282815181101515610a2e57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001016109e8565b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610aae57805160ff1916838001178555610adb565b82800160010185558215610adb579182015b82811115610adb578251825591602001919060010190610ac0565b50610ae7929150610b14565b5090565b815481835581811115610b0f57600083815260209020610b0f918101908301610b2e565b505050565b6107e091905b80821115610ae75760008155600101610b1a565b6107e091905b80821115610ae7576000610b488282610b51565b50600101610b34565b50805460018160011615610100020316600290046000825580601f10610b775750610b95565b601f016020900490600052602060002090810190610b959190610b14565b505600a165627a7a72305820cd3e000b182ad7232346065f3c16b88629e59a9c082589a00b58e7f1fca33cab0029

Swarm Source

bzzr://cd3e000b182ad7232346065f3c16b88629e59a9c082589a00b58e7f1fca33cab

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.