ETH Price: $3,338.51 (-0.02%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Set Owner178309042023-08-03 0:30:11517 days ago1691022611IN
0xe68EbDA2...f96CE0Baf
0 ETH0.0004862215.66155998
Register Address178308742023-08-03 0:24:11517 days ago1691022251IN
0xe68EbDA2...f96CE0Baf
0 ETH0.0004918517.28838545
Register Address178308622023-08-03 0:21:35517 days ago1691022095IN
0xe68EbDA2...f96CE0Baf
0 ETH0.0005428217.37055538
Register Address124148072021-05-11 18:43:461330 days ago1620758626IN
0xe68EbDA2...f96CE0Baf
0 ETH0.0053023170
Register Address107278042020-08-25 5:54:021589 days ago1598334842IN
0xe68EbDA2...f96CE0Baf
0 ETH0.00332734106
Register Address93729142020-01-28 21:22:321799 days ago1580246552IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000063142
Register Address93411772020-01-24 0:18:411804 days ago1579825121IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000094713.01743793
Register Address92285562020-01-06 18:28:461821 days ago1578335326IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000094173
Set Owner85360152019-09-12 16:34:341937 days ago1568306074IN
0xe68EbDA2...f96CE0Baf
0 ETH0.0005369115
Register Address85112012019-09-08 19:44:031941 days ago1567971843IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000224777
Register Address85110652019-09-08 19:12:551941 days ago1567969975IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000220297
Register Address84366722019-08-28 5:02:311953 days ago1566968551IN
0xe68EbDA2...f96CE0Baf
0 ETH0.00004731.5
Register Address83947542019-08-21 16:37:311959 days ago1566405451IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000126394
Register Address83947542019-08-21 16:37:311959 days ago1566405451IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000126134
Register Address83947542019-08-21 16:37:311959 days ago1566405451IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000125114
Register Address83947532019-08-21 16:37:081959 days ago1566405428IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000125884
Register Address83947532019-08-21 16:37:081959 days ago1566405428IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000125884
Register Address83947532019-08-21 16:37:081959 days ago1566405428IN
0xe68EbDA2...f96CE0Baf
0 ETH0.00012464
Register Address83947532019-08-21 16:37:081959 days ago1566405428IN
0xe68EbDA2...f96CE0Baf
0 ETH0.00012464
Register Address83947532019-08-21 16:37:081959 days ago1566405428IN
0xe68EbDA2...f96CE0Baf
0 ETH0.00012464
Register Address83907392019-08-21 1:31:381960 days ago1566351098IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000063322
Register Address83907392019-08-21 1:31:381960 days ago1566351098IN
0xe68EbDA2...f96CE0Baf
0 ETH0.000062942
Register Address83907392019-08-21 1:31:381960 days ago1566351098IN
0xe68EbDA2...f96CE0Baf
0 ETH0.00006232
Register Address83907392019-08-21 1:31:381960 days ago1566351098IN
0xe68EbDA2...f96CE0Baf
0 ETH0.00006232
Register Address83907392019-08-21 1:31:381960 days ago1566351098IN
0xe68EbDA2...f96CE0Baf
0 ETH0.00006232
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.23+commit.124ca40d

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2019-08-19
*/

// File: contracts/library/Owned.sol

pragma solidity ^0.4.23;

contract Owned {
    address public owner;
    address public newOwner;

    event OwnerUpdate(address _prevOwner, address _newOwner);

    constructor () public { owner = msg.sender; }

    modifier ownerOnly {
        assert(msg.sender == owner);
        _;
    }

    function setOwner(address _newOwner) public ownerOnly {
        require(_newOwner != owner && _newOwner != address(0));
        emit OwnerUpdate(owner, _newOwner);
        owner = _newOwner;
        newOwner = address(0);
    }

    function transferOwnership(address _newOwner) public ownerOnly {
        require(_newOwner != owner);
        newOwner = _newOwner;
    }

    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnerUpdate(owner, newOwner);
        owner = newOwner;
        newOwner = 0x0;
    }
}

// File: contracts/library/Utils.sol

pragma solidity ^0.4.23;

/*
    Utilities & Common Modifiers
*/
contract Utils {

    // 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 != 0x0);
        _;
    }

    // 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/interfaces/IContractRegistry.sol

pragma solidity ^0.4.23;

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

// File: contracts/ContractIds.sol

pragma solidity ^0.4.23;

contract ContractIds {
    bytes32 public constant STABLE_TOKEN = "StableToken";
    bytes32 public constant COLLATERAL_TOKEN = "CollateralToken";

    bytes32 public constant PEGUSD_TOKEN = "PEGUSD";

    bytes32 public constant VAULT_A = "VaultA";
    bytes32 public constant VAULT_B = "VaultB";

    bytes32 public constant PEG_LOGIC = "PegLogic";
    bytes32 public constant PEG_LOGIC_ACTIONS = "LogicActions";
    bytes32 public constant AUCTION_ACTIONS = "AuctionActions";

    bytes32 public constant PEG_SETTINGS = "PegSettings";
    bytes32 public constant ORACLE = "Oracle";
    bytes32 public constant FEE_RECIPIENT = "StabilityFeeRecipient";
}

// File: contracts/ContractRegistry.sol

pragma solidity ^0.4.23;





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

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

        if (items[_contractName].contractAddress == address(0)) {
            // 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;
        }

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

        // 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
        require(items[_contractName].contractAddress != address(0));

        // 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 _string) private pure returns (bytes32) {
        bytes32 result;
        assembly {
            result := mload(add(_string,32))
        }
        return result;
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"VAULT_B","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"PEG_LOGIC_ACTIONS","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":"ORACLE","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"contractNames","outputs":[{"name":"","type":"string"}],"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":"VAULT_A","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"itemCount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"STABLE_TOKEN","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":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"AUCTION_ACTIONS","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PEG_SETTINGS","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":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PEG_LOGIC","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"FEE_RECIPIENT","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"COLLATERAL_TOKEN","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"PEGUSD_TOKEN","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_contractName","type":"bytes32"},{"indexed":false,"name":"_contractAddress","type":"address"}],"name":"AddressUpdate","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_prevOwner","type":"address"},{"indexed":false,"name":"_newOwner","type":"address"}],"name":"OwnerUpdate","type":"event"}]

608060405260008054600160a060020a033316600160a060020a0319909116179055610ced806100306000396000f30060806040526004361061011c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663109b221c811461012157806313af403514610148578063153ea0f41461016b5780632bbd95301461018057806338013f02146101985780633ca6bb92146101ad578063662de3791461023a57806367c0037c1461025e5780636bfb0d01146102735780637754f8871461028857806379ba50971461029d5780638da5cb5b146102b257806394200c4a146102e3578063b366802c146102f8578063bb34534c1461030d578063d4ee1d9014610325578063df99e9e71461033a578063ebd090541461034f578063f2fde38b14610364578063f5f1f1a714610385578063f8c45d231461039a575b600080fd5b34801561012d57600080fd5b506101366103af565b60408051918252519081900360200190f35b34801561015457600080fd5b50610169600160a060020a03600435166103d3565b005b34801561017757600080fd5b5061013661049a565b34801561018c57600080fd5b506101696004356104be565b3480156101a457600080fd5b506101366106aa565b3480156101b957600080fd5b506101c56004356106ce565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ff5781810151838201526020016101e7565b50505050905090810190601f16801561022c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024657600080fd5b50610169600435600160a060020a0360243516610775565b34801561026a57600080fd5b50610136610885565b34801561027f57600080fd5b506101366108a9565b34801561029457600080fd5b506101366108b0565b3480156102a957600080fd5b506101696108d4565b3480156102be57600080fd5b506102c761096f565b60408051600160a060020a039092168252519081900360200190f35b3480156102ef57600080fd5b5061013661097e565b34801561030457600080fd5b506101366109a2565b34801561031957600080fd5b506102c76004356109c6565b34801561033157600080fd5b506102c76109e1565b34801561034657600080fd5b506101366109f0565b34801561035b57600080fd5b50610136610a14565b34801561037057600080fd5b50610169600160a060020a0360043516610a38565b34801561039157600080fd5b50610136610a9a565b3480156103a657600080fd5b50610136610abe565b7f5661756c7442000000000000000000000000000000000000000000000000000081565b60005433600160a060020a039081169116146103eb57fe5b600054600160a060020a038281169116148015906104115750600160a060020a03811615155b151561041c57600080fd5b60005460408051600160a060020a039283168152918316602083015280517f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a9281900390910190a160008054600160a060020a0390921673ffffffffffffffffffffffffffffffffffffffff19928316179055600180549091169055565b7f4c6f676963416374696f6e73000000000000000000000000000000000000000081565b60008054606091908190819033600160a060020a039081169116146104df57fe5b600085815260026020526040902054600160a060020a0316151561050257600080fd5b6000858152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055600354600110156106475760038054600019810190811061054857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156105d65780601f106105ab576101008083540402835291602001916105d6565b820191906000526020600020905b8154815290600101906020018083116105b957829003601f168201915b505050600088815260026020526040902060010154600380549498509096508793909250869150811061060557fe5b906000526020600020019080519060200190610622929190610b96565b5061062c84610ae2565b60008181526002602052604090206001810185905590925090505b600380549061065a906000198301610c14565b50600085815260026020908152604080832060010183905580519283525187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25050505050565b7f4f7261636c65000000000000000000000000000000000000000000000000000081565b60038054829081106106dc57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529350909183018282801561076d5780601f106107425761010080835404028352916020019161076d565b820191906000526020600020905b81548152906001019060200180831161075057829003601f168201915b505050505081565b6000805433600160a060020a0390811691161461078e57fe5b81600160a060020a03811615156107a457600080fd5b600084815260026020526040902054600160a060020a031615156108125760036107cd85610ae9565b8154600181018084556000938452602093849020835191946107f59491909301920190610b96565b506000858152600260205260409020600019820160019091015591505b600084815260026020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387169081179091558251908152915186927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a250505050565b7f5661756c7441000000000000000000000000000000000000000000000000000081565b6003545b90565b7f537461626c65546f6b656e00000000000000000000000000000000000000000081565b60015433600160a060020a039081169116146108ef57600080fd5b60005460015460408051600160a060020a03938416815292909116602083015280517f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a9281900390910190a1600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b7f41756374696f6e416374696f6e7300000000000000000000000000000000000081565b7f50656753657474696e677300000000000000000000000000000000000000000081565b600090815260026020526040902054600160a060020a031690565b600154600160a060020a031681565b7f5065674c6f67696300000000000000000000000000000000000000000000000081565b7f53746162696c697479466565526563697069656e74000000000000000000000081565b60005433600160a060020a03908116911614610a5057fe5b600054600160a060020a0382811691161415610a6b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b7f436f6c6c61746572616c546f6b656e000000000000000000000000000000000081565b7f504547555344000000000000000000000000000000000000000000000000000081565b6020015190565b6040805160208082528183019092526060918291600091808201610400803883390190505091505b6020811015610b8f57838160208110610b2657fe5b1a7f0100000000000000000000000000000000000000000000000000000000000000028282815181101515610b5757fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101610b11565b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610bd757805160ff1916838001178555610c04565b82800160010185558215610c04579182015b82811115610c04578251825591602001919060010190610be9565b50610c10929150610c3d565b5090565b815481835581811115610c3857600083815260209020610c38918101908301610c57565b505050565b6108ad91905b80821115610c105760008155600101610c43565b6108ad91905b80821115610c10576000610c718282610c7a565b50600101610c5d565b50805460018160011615610100020316600290046000825580601f10610ca05750610cbe565b601f016020900490600052602060002090810190610cbe9190610c3d565b505600a165627a7a72305820c7ba47c90a8de4c866a8b4440c52f58f167c0527cc837adb63674e25cf50a2610029

Deployed Bytecode

0x60806040526004361061011c5763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663109b221c811461012157806313af403514610148578063153ea0f41461016b5780632bbd95301461018057806338013f02146101985780633ca6bb92146101ad578063662de3791461023a57806367c0037c1461025e5780636bfb0d01146102735780637754f8871461028857806379ba50971461029d5780638da5cb5b146102b257806394200c4a146102e3578063b366802c146102f8578063bb34534c1461030d578063d4ee1d9014610325578063df99e9e71461033a578063ebd090541461034f578063f2fde38b14610364578063f5f1f1a714610385578063f8c45d231461039a575b600080fd5b34801561012d57600080fd5b506101366103af565b60408051918252519081900360200190f35b34801561015457600080fd5b50610169600160a060020a03600435166103d3565b005b34801561017757600080fd5b5061013661049a565b34801561018c57600080fd5b506101696004356104be565b3480156101a457600080fd5b506101366106aa565b3480156101b957600080fd5b506101c56004356106ce565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101ff5781810151838201526020016101e7565b50505050905090810190601f16801561022c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561024657600080fd5b50610169600435600160a060020a0360243516610775565b34801561026a57600080fd5b50610136610885565b34801561027f57600080fd5b506101366108a9565b34801561029457600080fd5b506101366108b0565b3480156102a957600080fd5b506101696108d4565b3480156102be57600080fd5b506102c761096f565b60408051600160a060020a039092168252519081900360200190f35b3480156102ef57600080fd5b5061013661097e565b34801561030457600080fd5b506101366109a2565b34801561031957600080fd5b506102c76004356109c6565b34801561033157600080fd5b506102c76109e1565b34801561034657600080fd5b506101366109f0565b34801561035b57600080fd5b50610136610a14565b34801561037057600080fd5b50610169600160a060020a0360043516610a38565b34801561039157600080fd5b50610136610a9a565b3480156103a657600080fd5b50610136610abe565b7f5661756c7442000000000000000000000000000000000000000000000000000081565b60005433600160a060020a039081169116146103eb57fe5b600054600160a060020a038281169116148015906104115750600160a060020a03811615155b151561041c57600080fd5b60005460408051600160a060020a039283168152918316602083015280517f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a9281900390910190a160008054600160a060020a0390921673ffffffffffffffffffffffffffffffffffffffff19928316179055600180549091169055565b7f4c6f676963416374696f6e73000000000000000000000000000000000000000081565b60008054606091908190819033600160a060020a039081169116146104df57fe5b600085815260026020526040902054600160a060020a0316151561050257600080fd5b6000858152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055600354600110156106475760038054600019810190811061054857fe5b600091825260209182902001805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156105d65780601f106105ab576101008083540402835291602001916105d6565b820191906000526020600020905b8154815290600101906020018083116105b957829003601f168201915b505050600088815260026020526040902060010154600380549498509096508793909250869150811061060557fe5b906000526020600020019080519060200190610622929190610b96565b5061062c84610ae2565b60008181526002602052604090206001810185905590925090505b600380549061065a906000198301610c14565b50600085815260026020908152604080832060010183905580519283525187927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a25050505050565b7f4f7261636c65000000000000000000000000000000000000000000000000000081565b60038054829081106106dc57fe5b600091825260209182902001805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529350909183018282801561076d5780601f106107425761010080835404028352916020019161076d565b820191906000526020600020905b81548152906001019060200180831161075057829003601f168201915b505050505081565b6000805433600160a060020a0390811691161461078e57fe5b81600160a060020a03811615156107a457600080fd5b600084815260026020526040902054600160a060020a031615156108125760036107cd85610ae9565b8154600181018084556000938452602093849020835191946107f59491909301920190610b96565b506000858152600260205260409020600019820160019091015591505b600084815260026020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387169081179091558251908152915186927ffc08d1253c81bcd5444fc7056ef1f5a5df4c9220b6fd70d7449267f1f0f2991892908290030190a250505050565b7f5661756c7441000000000000000000000000000000000000000000000000000081565b6003545b90565b7f537461626c65546f6b656e00000000000000000000000000000000000000000081565b60015433600160a060020a039081169116146108ef57600080fd5b60005460015460408051600160a060020a03938416815292909116602083015280517f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a9281900390910190a1600180546000805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b600054600160a060020a031681565b7f41756374696f6e416374696f6e7300000000000000000000000000000000000081565b7f50656753657474696e677300000000000000000000000000000000000000000081565b600090815260026020526040902054600160a060020a031690565b600154600160a060020a031681565b7f5065674c6f67696300000000000000000000000000000000000000000000000081565b7f53746162696c697479466565526563697069656e74000000000000000000000081565b60005433600160a060020a03908116911614610a5057fe5b600054600160a060020a0382811691161415610a6b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b7f436f6c6c61746572616c546f6b656e000000000000000000000000000000000081565b7f504547555344000000000000000000000000000000000000000000000000000081565b6020015190565b6040805160208082528183019092526060918291600091808201610400803883390190505091505b6020811015610b8f57838160208110610b2657fe5b1a7f0100000000000000000000000000000000000000000000000000000000000000028282815181101515610b5757fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600101610b11565b5092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610bd757805160ff1916838001178555610c04565b82800160010185558215610c04579182015b82811115610c04578251825591602001919060010190610be9565b50610c10929150610c3d565b5090565b815481835581811115610c3857600083815260209020610c38918101908301610c57565b505050565b6108ad91905b80821115610c105760008155600101610c43565b6108ad91905b80821115610c10576000610c718282610c7a565b50600101610c5d565b50805460018160011615610100020316600290046000825580601f10610ca05750610cbe565b601f016020900490600052602060002090810190610cbe9190610c3d565b505600a165627a7a72305820c7ba47c90a8de4c866a8b4440c52f58f167c0527cc837adb63674e25cf50a2610029

Deployed Bytecode Sourcemap

4206:4333:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3266:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3266:42:0;;;;;;;;;;;;;;;;;;;;352:232;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;352:232:0;-1:-1:-1;;;;;352:232:0;;;;;;;3370:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3370:58:0;;;;6441:1348;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6441:1348:0;;;;;3561:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3561:41:0;;;;4557:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4557:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4557:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5537:766;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5537:766:0;;;-1:-1:-1;;;;;5537:766:0;;;;;3217:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3217:42:0;;;;4926:97;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4926:97:0;;;;3033:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3033:52:0;;;;740:180;;8:9:-1;5:2;;;30:1;27;20:12;5:2;740:180:0;;;;90:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;90:20:0;;;;;;;;-1:-1:-1;;;;;90:20:0;;;;;;;;;;;;;;3435:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3435:58:0;;;;3502:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3502:52:0;;;;5203:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5203:134:0;;;;;117:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;117:23:0;;;;3317:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3317:46:0;;;;3609:63;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3609:63:0;;;;592:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;592:140:0;-1:-1:-1;;;;;592:140:0;;;;;3092:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3092:60:0;;;;3161:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3161:47:0;;;;3266:42;;;:::o;352:232::-;318:5;;304:10;-1:-1:-1;;;;;304:19:0;;;318:5;;304:19;297:27;;;;438:5;;-1:-1:-1;;;;;425:18:0;;;438:5;;425:18;;;;:45;;-1:-1:-1;;;;;;447:23:0;;;;425:45;417:54;;;;;;;;499:5;;487:29;;;-1:-1:-1;;;;;499:5:0;;;487:29;;;;;;;;;;;;;;;;;;;;;527:5;:17;;-1:-1:-1;;;;;527:17:0;;;-1:-1:-1;;527:17:0;;;;;;;555:21;;;;;;;352:232::o;3370:58::-;;;:::o;6441:1348::-;7148:23;318:5;;7055:36;;7148:23;;;;;304:10;-1:-1:-1;;;;;304:19:0;;;318:5;;304:19;297:27;;;;6637:1;6589:20;;;:5;:20;;;;;:36;-1:-1:-1;;;;;6589:36:0;:50;;6581:59;;;;;;6749:1;6702:20;;;:5;:20;;;;;:49;;-1:-1:-1;;6702:49:0;;;7014:13;:20;6702:49;-1:-1:-1;7010:488:0;;;7094:13;7108:20;;-1:-1:-1;;7108:24:0;;;7094:39;;;;;;;;;;;;;;;;7055:78;;;;;;;-1:-1:-1;;7055:78:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7094:39;7055:78;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7174:20:0;;;;:5;:20;;;;;:30;;;7221:13;:30;;7055:78;;-1:-1:-1;7174:30:0;;-1:-1:-1;7055:78:0;;7221:13;;-1:-1:-1;7174:30:0;;-1:-1:-1;7221:30:0;;;;;;;;;;;;;:55;;;;;;;;;;;;:::i;:::-;;7318:39;7334:22;7318:15;:39::i;:::-;7408:23;;;;:5;:23;;;;;7446:22;;;:40;;;7291:66;;-1:-1:-1;7408:23:0;-1:-1:-1;7010:488:0;7565:13;:22;;;;;-1:-1:-1;;7565:22:0;;;:::i;:::-;-1:-1:-1;7676:1:0;7643:20;;;:5;:20;;;;;;;;:30;;:34;;;7741:40;;;;;;7649:13;;7741:40;;;;;;;;;6441:1348;;;;;:::o;3561:41::-;;;:::o;4557:29::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4557:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4557:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5537:766::-;5892:9;318:5;;304:10;-1:-1:-1;;;;;304:19:0;;;318:5;;304:19;297:27;;;;5668:16;-1:-1:-1;;;;;1346:15:0;;;;1338:24;;;;;;5818:1;5770:20;;;:5;:20;;;;;:36;-1:-1:-1;;;;;5770:36:0;:50;5766:305;;;5904:13;5923:30;5939:13;5923:15;:30::i;:::-;27:10:-1;;39:1;23:18;;45:23;;;-1:-1;5904:50:0;;;;;;;;;;23:18:-1;;5904:50:0;;;;;;;;;;:::i;:::-;-1:-1:-1;6021:20:0;;;;:5;:20;;;;;-1:-1:-1;;6054:5:0;;6058:1;6021:30;;;:38;6054:5;-1:-1:-1;5766:305:0;6130:20;;;;:5;:20;;;;;;;;;:55;;-1:-1:-1;;6130:55:0;-1:-1:-1;;;;;6130:55:0;;;;;;;;6249:46;;;;;;;6130:20;;6249:46;;;;;;;;;335:1;5537:766;;;:::o;3217:42::-;;;:::o;4926:97::-;4995:13;:20;4926:97;;:::o;3033:52::-;;;:::o;740:180::-;807:8;;793:10;-1:-1:-1;;;;;793:22:0;;;807:8;;793:22;785:31;;;;;;844:5;;;851:8;832:28;;;-1:-1:-1;;;;;844:5:0;;;832:28;;851:8;;;;832:28;;;;;;;;;;;;;;;;879:8;;;;871:16;;-1:-1:-1;;871:16:0;;;-1:-1:-1;;;;;879:8:0;;871:16;;;;898:14;;;740:180::o;90:20::-;;;-1:-1:-1;;;;;90:20:0;;:::o;3435:58::-;;;:::o;3502:52::-;;;:::o;5203:134::-;5266:7;5293:20;;;:5;:20;;;;;:36;-1:-1:-1;;;;;5293:36:0;;5203:134::o;117:23::-;;;-1:-1:-1;;;;;117:23:0;;:::o;3317:46::-;;;:::o;3609:63::-;;;:::o;592:140::-;318:5;;304:10;-1:-1:-1;;;;;304:19:0;;;318:5;;304:19;297:27;;;;687:5;;-1:-1:-1;;;;;674:18:0;;;687:5;;674:18;;666:27;;;;;;704:8;:20;;-1:-1:-1;;704:20:0;-1:-1:-1;;;;;704:20:0;;;;;;;;;;592:140::o;3092:60::-;;;:::o;3161:47::-;;;:::o;8330:206::-;8490:2;8478:15;8472:22;;8330:206::o;8018:255::-;8125:13;;;8135:2;8125:13;;;;;;;;;8081:6;;;;8154:9;;8125:13;;;17:15:-1;;105:10;8125:13:0;88:34:-1;136:17;;-1:-1;8125:13:0;8100:38;;8149:80;8169:2;8165:1;:6;8149:80;;;8208:6;8215:1;8208:9;;;;;;;;;;8193;8203:1;8193:12;;;;;;;;;;;;;;:24;;;;;;;;;;-1:-1:-1;8173:3:0;;8149:80;;;-1:-1:-1;8255:9:0;8018:255;-1:-1:-1;;8018:255:0:o;4206:4333::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4206:4333:0;;;-1:-1:-1;4206:4333:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o

Swarm Source

bzzr://c7ba47c90a8de4c866a8b4440c52f58f167c0527cc837adb63674e25cf50a261

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.