ETH Price: $2,706.22 (-0.56%)
Gas: 0.76 Gwei

Contract

0x974e1e639b5a3c5f44909E1959Ab786AF21B7086
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Register Token49503862018-01-22 4:47:132579 days ago1516596433IN
0x974e1e63...AF21B7086
0 ETH0.000121171
Register Token47643982017-12-20 7:45:052612 days ago1513755905IN
0x974e1e63...AF21B7086
0 ETH0.0044181736.5
Register Token47236002017-12-13 4:31:072620 days ago1513139467IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47235882017-12-13 4:27:592620 days ago1513139279IN
0x974e1e63...AF21B7086
0 ETH0.0024234820
Register Token47235792017-12-13 4:24:512620 days ago1513139091IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47234942017-12-13 4:02:022620 days ago1513137722IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47234812017-12-13 3:58:062620 days ago1513137486IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47234702017-12-13 3:55:242620 days ago1513137324IN
0x974e1e63...AF21B7086
0 ETH0.002422220
Register Token47234642017-12-13 3:53:222620 days ago1513137202IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47234482017-12-13 3:45:592620 days ago1513136759IN
0x974e1e63...AF21B7086
0 ETH0.002422220
Register Token47234402017-12-13 3:43:122620 days ago1513136592IN
0x974e1e63...AF21B7086
0 ETH0.002422220
Register Token47234022017-12-13 3:35:362620 days ago1513136136IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47233802017-12-13 3:32:082620 days ago1513135928IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47233672017-12-13 3:28:462620 days ago1513135726IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47233292017-12-13 3:18:442620 days ago1513135124IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47232902017-12-13 3:09:472620 days ago1513134587IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47231602017-12-13 2:39:102620 days ago1513132750IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47231532017-12-13 2:37:532620 days ago1513132673IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47231342017-12-13 2:32:192620 days ago1513132339IN
0x974e1e63...AF21B7086
0 ETH0.002422220
Register Token47231232017-12-13 2:30:282620 days ago1513132228IN
0x974e1e63...AF21B7086
0 ETH0.0024196420
Register Token47230472017-12-13 2:10:532620 days ago1513131053IN
0x974e1e63...AF21B7086
0 ETH0.0005070420
Register Token47196422017-12-12 11:38:312620 days ago1513078711IN
0x974e1e63...AF21B7086
0 ETH0.0005070420
Register Token47196352017-12-12 11:36:142620 days ago1513078574IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
Register Token47196232017-12-12 11:32:382620 days ago1513078358IN
0x974e1e63...AF21B7086
0 ETH0.0024234820
Register Token47196042017-12-12 11:27:562620 days ago1513078076IN
0x974e1e63...AF21B7086
0 ETH0.0024209220
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:
TokenRegistry

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

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

/*
  Copyright 2017 Loopring Project Ltd (Loopring Foundation).
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  http://www.apache.org/licenses/LICENSE-2.0
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/
pragma solidity 0.4.18;
/*
  Copyright 2017 Loopring Project Ltd (Loopring Foundation).
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  http://www.apache.org/licenses/LICENSE-2.0
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/
/*
  Copyright 2017 Loopring Project Ltd (Loopring Foundation).
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at
  http://www.apache.org/licenses/LICENSE-2.0
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
*/
/// @title Ownable
/// @dev The Ownable contract has an owner address, and provides basic
///      authorization control functions, this simplifies the implementation of
///      "user permissions".
contract Ownable {
    address public owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    /// @dev The Ownable constructor sets the original `owner` of the contract
    ///      to the sender.
    function Ownable() public {
        owner = msg.sender;
    }
    /// @dev Throws if called by any account other than the owner.
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }
    /// @dev Allows the current owner to transfer control of the contract to a
    ///      newOwner.
    /// @param newOwner The address to transfer ownership to.
    function transferOwnership(address newOwner) onlyOwner public {
        require(newOwner != 0x0);
        OwnershipTransferred(owner, newOwner);
        owner = newOwner;
    }
}
/// @title Claimable
/// @dev Extension for the Ownable contract, where the ownership needs
///      to be claimed. This allows the new owner to accept the transfer.
contract Claimable is Ownable {
    address public pendingOwner;
    /// @dev Modifier throws if called by any account other than the pendingOwner.
    modifier onlyPendingOwner() {
        require(msg.sender == pendingOwner);
        _;
    }
    /// @dev Allows the current owner to set the pendingOwner address.
    /// @param newOwner The address to transfer ownership to.
    function transferOwnership(address newOwner) onlyOwner public {
        require(newOwner != 0x0 && newOwner != owner);
        pendingOwner = newOwner;
    }
    /// @dev Allows the pendingOwner address to finalize the transfer.
    function claimOwnership() onlyPendingOwner public {
        OwnershipTransferred(owner, pendingOwner);
        owner = pendingOwner;
        pendingOwner = 0x0;
    }
}
/// @title Token Register Contract
/// @dev This contract maintains a list of tokens the Protocol supports.
/// @author Kongliang Zhong - <[email protected]>,
/// @author Daniel Wang - <[email protected]>.
contract TokenRegistry is Claimable {
    address[] public addresses;
    mapping (address => TokenInfo) addressMap;
    mapping (string => address) symbolMap;
    
    uint8 public constant TOKEN_STANDARD_ERC20   = 0;
    uint8 public constant TOKEN_STANDARD_ERC223  = 1;
    
    ////////////////////////////////////////////////////////////////////////////
    /// Structs                                                              ///
    ////////////////////////////////////////////////////////////////////////////
    struct TokenInfo {
        uint   pos;      // 0 mens unregistered; if > 0, pos + 1 is the
                         // token's position in `addresses`.
        uint8  standard; // ERC20 or ERC223
        string symbol;   // Symbol of the token
    }
    
    ////////////////////////////////////////////////////////////////////////////
    /// Events                                                               ///
    ////////////////////////////////////////////////////////////////////////////
    event TokenRegistered(address addr, string symbol);
    event TokenUnregistered(address addr, string symbol);
    
    ////////////////////////////////////////////////////////////////////////////
    /// Public Functions                                                     ///
    ////////////////////////////////////////////////////////////////////////////
    /// @dev Disable default function.
    function () payable public {
        revert();
    }
    function registerToken(
        address addr,
        string  symbol
        )
        external
        onlyOwner
    {
        registerStandardToken(addr, symbol, TOKEN_STANDARD_ERC20);    
    }
    function registerStandardToken(
        address addr,
        string  symbol,
        uint8   standard
        )
        public
        onlyOwner
    {
        require(0x0 != addr);
        require(bytes(symbol).length > 0);
        require(0x0 == symbolMap[symbol]);
        require(0 == addressMap[addr].pos);
        require(standard <= TOKEN_STANDARD_ERC223);
        addresses.push(addr);
        symbolMap[symbol] = addr;
        addressMap[addr] = TokenInfo(addresses.length, standard, symbol);
        TokenRegistered(addr, symbol);      
    }
    function unregisterToken(
        address addr,
        string  symbol
        )
        external
        onlyOwner
    {
        require(addr != 0x0);
        require(symbolMap[symbol] == addr);
        delete symbolMap[symbol];
        
        uint pos = addressMap[addr].pos;
        require(pos != 0);
        delete addressMap[addr];
        
        // We will replace the token we need to unregister with the last token
        // Only the pos of the last token will need to be updated
        address lastToken = addresses[addresses.length - 1];
        
        // Don't do anything if the last token is the one we want to delete
        if (addr != lastToken) {
            // Swap with the last token and update the pos
            addresses[pos - 1] = lastToken;
            addressMap[lastToken].pos = pos;
        }
        addresses.length--;
        TokenUnregistered(addr, symbol);
    }
    function isTokenRegisteredBySymbol(string symbol)
        public
        view
        returns (bool)
    {
        return symbolMap[symbol] != 0x0;
    }
    function isTokenRegistered(address addr)
        public
        view
        returns (bool)
    {
        return addressMap[addr].pos != 0;
    }
    function areAllTokensRegistered(address[] addressList)
        external
        view
        returns (bool)
    {
        for (uint i = 0; i < addressList.length; i++) {
            if (addressMap[addressList[i]].pos == 0) {
                return false;
            }
        }
        return true;
    }
    
    function getTokenStandard(address addr)
        public
        view
        returns (uint8)
    {
        TokenInfo memory info = addressMap[addr];
        require(info.pos != 0);
        return info.standard;
    }
    function getAddressBySymbol(string symbol)
        external
        view
        returns (address)
    {
        return symbolMap[symbol];
    }
    
    function getTokens(
        uint start,
        uint count
        )
        public
        view
        returns (address[] addressList)
    {
        uint num = addresses.length;
        
        if (start >= num) {
            return;
        }
        
        uint end = start + count;
        if (end > num) {
            end = num;
        }
        if (start == num) {
            return;
        }
        
        addressList = new address[](end - start);
        for (uint i = start; i < end; i++) {
            addressList[i - start] = addresses[i];
        }
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"symbol","type":"string"}],"name":"unregisterToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"symbol","type":"string"}],"name":"getAddressBySymbol","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addressList","type":"address[]"}],"name":"areAllTokensRegistered","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"isTokenRegistered","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOKEN_STANDARD_ERC223","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"addr","type":"address"}],"name":"getTokenStandard","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"start","type":"uint256"},{"name":"count","type":"uint256"}],"name":"getTokens","outputs":[{"name":"addressList","type":"address[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","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":"TOKEN_STANDARD_ERC20","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"symbol","type":"string"},{"name":"standard","type":"uint8"}],"name":"registerStandardToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"addr","type":"address"},{"name":"symbol","type":"string"}],"name":"registerToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"addresses","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"},{"constant":true,"inputs":[{"name":"symbol","type":"string"}],"name":"isTokenRegisteredBySymbol","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"symbol","type":"string"}],"name":"TokenRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"addr","type":"address"},{"indexed":false,"name":"symbol","type":"string"}],"name":"TokenUnregistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]

606060405260008054600160a060020a033316600160a060020a0319909116179055610ea8806100306000396000f3006060604052600436106100e55763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630b03ad1181146100ea5780631605dd611461011757806316066e691461015157806326aa101f146101835780632f7359a3146101a25780634676e7b9146101cb578063494cfc6c146101ea5780634e71e0c8146102565780638da5cb5b14610269578063a8366fef1461027c578063c5dfaa9e1461028f578063d4fbeb19146102f3578063e30c39781461031e578063edf26d9b14610331578063f2fde38b14610347578063fcd4580714610366575b600080fd5b34156100f557600080fd5b61011560048035600160a060020a031690602480359081019101356103b7565b005b341561012257600080fd5b61013560048035602481019101356105ba565b604051600160a060020a03909116815260200160405180910390f35b341561015c57600080fd5b61016f60048035602481019101356105f3565b604051901515815260200160405180910390f35b341561018e57600080fd5b61016f600160a060020a0360043516610668565b34156101ad57600080fd5b6101b5610685565b60405160ff909116815260200160405180910390f35b34156101d657600080fd5b6101b5600160a060020a036004351661068a565b34156101f557600080fd5b6102036004356024356107a1565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561024257808201518382015260200161022a565b505050509050019250505060405180910390f35b341561026157600080fd5b610115610861565b341561027457600080fd5b6101356108e2565b341561028757600080fd5b6101b56108f1565b341561029a57600080fd5b61011560048035600160a060020a03169060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923560ff1692506108f6915050565b34156102fe57600080fd5b61011560048035600160a060020a03169060248035908101910135610bc3565b341561032957600080fd5b610135610c1f565b341561033c57600080fd5b610135600435610c2e565b341561035257600080fd5b610115600160a060020a0360043516610c56565b341561037157600080fd5b61016f60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610cc495505050505050565b60008054819033600160a060020a039081169116146103d557600080fd5b600160a060020a03851615156103ea57600080fd5b84600160a060020a0316600485856040518083838082843782019150509250505090815260200160405190819003902054600160a060020a03161461042e57600080fd5b60048484604051808383808284378201915050925050509081526020016040519081900390208054600160a060020a0319169055600160a060020a038516600090815260036020526040902054915081151561048957600080fd5b600160a060020a038516600090815260036020526040812081815560018101805460ff19169055906104be6002830182610d3e565b50506002805460001981019081106104d257fe5b600091825260209091200154600160a060020a03908116915085168114610540578060026001840381548110151561050657fe5b60009182526020808320919091018054600160a060020a031916600160a060020a0394851617905591831681526003909152604090208290555b6002805490610553906000198301610d85565b507fee98311a96660ce4ab10cd82053f767653901305ec8acf91ec60311de919e28a858585604051600160a060020a038416815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a15050505050565b6000600483836040518083838082843782019150509250505090815260200160405190819003902054600160a060020a03169392505050565b6000805b8281101561065c576003600085858481811061060f57fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060000154600014156106545760009150610661565b6001016105f7565b600191505b5092915050565b600160a060020a0316600090815260036020526040902054151590565b600181565b6000610694610da9565b600160a060020a0383166000908152600360205260409081902090606090519081016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff168152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561077a5780601f1061074f5761010080835404028352916020019161077a565b820191906000526020600020905b81548152906001019060200180831161075d57829003601f168201915b50505050508152505090508060000151151561079557600080fd5b80602001519392505050565b6107a9610dcf565b6002546000808286106107bb57610858565b8486019150828211156107cc578291505b828614156107d957610858565b8582036040518059106107e95750595b908082528060200260200182016040525093508590505b8181101561085857600280548290811061081657fe5b600091825260209091200154600160a060020a0316848783038151811061083957fe5b600160a060020a03909216602092830290910190910152600101610800565b50505092915050565b60015433600160a060020a0390811691161461087c57600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600081565b60005433600160a060020a0390811691161461091157600080fd5b600160a060020a038316151561092657600080fd5b600082511161093457600080fd5b6004826040518082805190602001908083835b602083106109665780518252601f199092019160209182019101610947565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a0316156109ae57600080fd5b600160a060020a038316600090815260036020526040902054156109d157600080fd5b600160ff821611156109e257600080fd5b60028054600181016109f48382610d85565b5060009182526020909120018054600160a060020a031916600160a060020a038516179055826004836040518082805190602001908083835b60208310610a4c5780518252601f199092019160209182019101610a2d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040519081900390208054600160a060020a031916600160a060020a039290921691909117905560606040519081016040908152600254825260ff8316602080840191909152818301859052600160a060020a038616600090815260039091522081518155602082015160018201805460ff191660ff92909216919091179055604082015181600201908051610b11929160200190610de1565b509050507faaed15520cc86e95b7c2522d968096283afbef7858bdf194b2f60d28a1a8d63e8383604051600160a060020a038316815260406020820181815290820183818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050565b60005433600160a060020a03908116911614610bde57600080fd5b610c1a8383838080601f016020809104026020016040519081016040528181529291906020840183838082843750600094506108f69350505050565b505050565b600154600160a060020a031681565b6002805482908110610c3c57fe5b600091825260209091200154600160a060020a0316905081565b60005433600160a060020a03908116911614610c7157600080fd5b600160a060020a03811615801590610c975750600054600160a060020a03828116911614155b1515610ca257600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60006004826040518082805190602001908083835b60208310610cf85780518252601f199092019160209182019101610cd9565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a0316151592915050565b50805460018160011615610100020316600290046000825580601f10610d645750610d82565b601f016020900490600052602060002090810190610d829190610e5f565b50565b815481835581811511610c1a57600083815260209020610c1a918101908301610e5f565b60606040519081016040908152600080835260208301528101610dca610dcf565b905290565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610e2257805160ff1916838001178555610e4f565b82800160010185558215610e4f579182015b82811115610e4f578251825591602001919060010190610e34565b50610e5b929150610e5f565b5090565b610e7991905b80821115610e5b5760008155600101610e65565b905600a165627a7a7230582028749ef34211469f9065b2799b7fd927e02d5f6c6d30ab0fa58e3c1a71f264e70029

Deployed Bytecode

0x6060604052600436106100e55763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630b03ad1181146100ea5780631605dd611461011757806316066e691461015157806326aa101f146101835780632f7359a3146101a25780634676e7b9146101cb578063494cfc6c146101ea5780634e71e0c8146102565780638da5cb5b14610269578063a8366fef1461027c578063c5dfaa9e1461028f578063d4fbeb19146102f3578063e30c39781461031e578063edf26d9b14610331578063f2fde38b14610347578063fcd4580714610366575b600080fd5b34156100f557600080fd5b61011560048035600160a060020a031690602480359081019101356103b7565b005b341561012257600080fd5b61013560048035602481019101356105ba565b604051600160a060020a03909116815260200160405180910390f35b341561015c57600080fd5b61016f60048035602481019101356105f3565b604051901515815260200160405180910390f35b341561018e57600080fd5b61016f600160a060020a0360043516610668565b34156101ad57600080fd5b6101b5610685565b60405160ff909116815260200160405180910390f35b34156101d657600080fd5b6101b5600160a060020a036004351661068a565b34156101f557600080fd5b6102036004356024356107a1565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561024257808201518382015260200161022a565b505050509050019250505060405180910390f35b341561026157600080fd5b610115610861565b341561027457600080fd5b6101356108e2565b341561028757600080fd5b6101b56108f1565b341561029a57600080fd5b61011560048035600160a060020a03169060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505050923560ff1692506108f6915050565b34156102fe57600080fd5b61011560048035600160a060020a03169060248035908101910135610bc3565b341561032957600080fd5b610135610c1f565b341561033c57600080fd5b610135600435610c2e565b341561035257600080fd5b610115600160a060020a0360043516610c56565b341561037157600080fd5b61016f60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610cc495505050505050565b60008054819033600160a060020a039081169116146103d557600080fd5b600160a060020a03851615156103ea57600080fd5b84600160a060020a0316600485856040518083838082843782019150509250505090815260200160405190819003902054600160a060020a03161461042e57600080fd5b60048484604051808383808284378201915050925050509081526020016040519081900390208054600160a060020a0319169055600160a060020a038516600090815260036020526040902054915081151561048957600080fd5b600160a060020a038516600090815260036020526040812081815560018101805460ff19169055906104be6002830182610d3e565b50506002805460001981019081106104d257fe5b600091825260209091200154600160a060020a03908116915085168114610540578060026001840381548110151561050657fe5b60009182526020808320919091018054600160a060020a031916600160a060020a0394851617905591831681526003909152604090208290555b6002805490610553906000198301610d85565b507fee98311a96660ce4ab10cd82053f767653901305ec8acf91ec60311de919e28a858585604051600160a060020a038416815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a15050505050565b6000600483836040518083838082843782019150509250505090815260200160405190819003902054600160a060020a03169392505050565b6000805b8281101561065c576003600085858481811061060f57fe5b90506020020135600160a060020a0316600160a060020a0316600160a060020a0316815260200190815260200160002060000154600014156106545760009150610661565b6001016105f7565b600191505b5092915050565b600160a060020a0316600090815260036020526040902054151590565b600181565b6000610694610da9565b600160a060020a0383166000908152600360205260409081902090606090519081016040529081600082015481526020016001820160009054906101000a900460ff1660ff1660ff168152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561077a5780601f1061074f5761010080835404028352916020019161077a565b820191906000526020600020905b81548152906001019060200180831161075d57829003601f168201915b50505050508152505090508060000151151561079557600080fd5b80602001519392505050565b6107a9610dcf565b6002546000808286106107bb57610858565b8486019150828211156107cc578291505b828614156107d957610858565b8582036040518059106107e95750595b908082528060200260200182016040525093508590505b8181101561085857600280548290811061081657fe5b600091825260209091200154600160a060020a0316848783038151811061083957fe5b600160a060020a03909216602092830290910190910152600101610800565b50505092915050565b60015433600160a060020a0390811691161461087c57600080fd5b600154600054600160a060020a0391821691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001805460008054600160a060020a0319908116600160a060020a03841617909155169055565b600054600160a060020a031681565b600081565b60005433600160a060020a0390811691161461091157600080fd5b600160a060020a038316151561092657600080fd5b600082511161093457600080fd5b6004826040518082805190602001908083835b602083106109665780518252601f199092019160209182019101610947565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a0316156109ae57600080fd5b600160a060020a038316600090815260036020526040902054156109d157600080fd5b600160ff821611156109e257600080fd5b60028054600181016109f48382610d85565b5060009182526020909120018054600160a060020a031916600160a060020a038516179055826004836040518082805190602001908083835b60208310610a4c5780518252601f199092019160209182019101610a2d565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040519081900390208054600160a060020a031916600160a060020a039290921691909117905560606040519081016040908152600254825260ff8316602080840191909152818301859052600160a060020a038616600090815260039091522081518155602082015160018201805460ff191660ff92909216919091179055604082015181600201908051610b11929160200190610de1565b509050507faaed15520cc86e95b7c2522d968096283afbef7858bdf194b2f60d28a1a8d63e8383604051600160a060020a038316815260406020820181815290820183818151815260200191508051906020019080838360005b83811015610b83578082015183820152602001610b6b565b50505050905090810190601f168015610bb05780820380516001836020036101000a031916815260200191505b50935050505060405180910390a1505050565b60005433600160a060020a03908116911614610bde57600080fd5b610c1a8383838080601f016020809104026020016040519081016040528181529291906020840183838082843750600094506108f69350505050565b505050565b600154600160a060020a031681565b6002805482908110610c3c57fe5b600091825260209091200154600160a060020a0316905081565b60005433600160a060020a03908116911614610c7157600080fd5b600160a060020a03811615801590610c975750600054600160a060020a03828116911614155b1515610ca257600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055565b60006004826040518082805190602001908083835b60208310610cf85780518252601f199092019160209182019101610cd9565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a0316151592915050565b50805460018160011615610100020316600290046000825580601f10610d645750610d82565b601f016020900490600052602060002090810190610d829190610e5f565b50565b815481835581811511610c1a57600083815260209020610c1a918101908301610e5f565b60606040519081016040908152600080835260208301528101610dca610dcf565b905290565b60206040519081016040526000815290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10610e2257805160ff1916838001178555610e4f565b82800160010185558215610e4f579182015b82811115610e4f578251825591602001919060010190610e34565b50610e5b929150610e5f565b5090565b610e7991905b80821115610e5b5760008155600101610e65565b905600a165627a7a7230582028749ef34211469f9065b2799b7fd927e02d5f6c6d30ab0fa58e3c1a71f264e70029

Swarm Source

bzzr://28749ef34211469f9065b2799b7fd927e02d5f6c6d30ab0fa58e3c1a71f264e7

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.