ETH Price: $2,661.21 (+1.34%)

Contract

0xEefa2052FfA4213Df66b0631796DC9ACF0165b1D
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Push Latest Pric...77828542019-05-18 7:31:261924 days ago1558164686IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77802852019-05-17 21:58:181924 days ago1558130298IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77801232019-05-17 21:24:521924 days ago1558128292IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77800512019-05-17 21:10:501924 days ago1558127450IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77799892019-05-17 20:56:071924 days ago1558126567IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77799822019-05-17 20:54:471924 days ago1558126487IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77799182019-05-17 20:41:061924 days ago1558125666IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77799122019-05-17 20:39:341924 days ago1558125574IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77798592019-05-17 20:23:531924 days ago1558124633IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77798252019-05-17 20:16:411924 days ago1558124201IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77797862019-05-17 20:08:251924 days ago1558123705IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77797512019-05-17 20:01:171924 days ago1558123277IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77797112019-05-17 19:53:471924 days ago1558122827IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77796592019-05-17 19:44:531924 days ago1558122293IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77796162019-05-17 19:37:281924 days ago1558121848IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77795682019-05-17 19:29:031924 days ago1558121343IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77795392019-05-17 19:21:371924 days ago1558120897IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77795012019-05-17 19:13:101924 days ago1558120390IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77794652019-05-17 19:05:501924 days ago1558119950IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77794312019-05-17 18:57:271924 days ago1558119447IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77793972019-05-17 18:50:291924 days ago1558119029IN
0xEefa2052...CF0165b1D
0 ETH0.0007224820
Push Latest Pric...77793662019-05-17 18:41:571924 days ago1558118517IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77793352019-05-17 18:34:211924 days ago1558118061IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77792902019-05-17 18:25:371924 days ago1558117537IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
Push Latest Pric...77792582019-05-17 18:18:211924 days ago1558117101IN
0xEefa2052...CF0165b1D
0 ETH0.0007237620
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:
ManualPriceFeed

Compiler Version
v0.5.0+commit.1d4f565a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-03-25
*/

pragma solidity ^0.5.0;

/**
 * @title ERC20 interface
 * @dev see https://github.com/ethereum/EIPs/issues/20
 */
interface IERC20 {
    function transfer(address to, uint256 value) external returns (bool);

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

/**
 * @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 private _owner;

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

    /**
     * @dev The Ownable constructor sets the original `owner` of the contract to the sender
     * account.
     */
    constructor () internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

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

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner());
        _;
    }

    /**
     * @return true if `msg.sender` is the owner of the contract.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Allows the current owner to relinquish control of the contract.
     * @notice Renouncing to ownership will leave the contract without an owner.
     * It will not be possible to call the functions with the `onlyOwner`
     * modifier anymore.
     */
    function renounceOwnership() public onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @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) public onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers control of the contract to a newOwner.
     * @param newOwner The address to transfer ownership to.
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0));
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

/**
 * @title SafeMath
 * @dev Unsigned math operations with safety checks that revert on error
 */
library SafeMath {
    /**
    * @dev Multiplies two unsigned integers, reverts on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b);

        return c;
    }

    /**
    * @dev Integer division of two unsigned integers truncating the quotient, reverts on division by zero.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
    * @dev Subtracts two unsigned integers, reverts on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b <= a);
        uint256 c = a - b;

        return c;
    }

    /**
    * @dev Adds two unsigned integers, reverts on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a);

        return c;
    }

    /**
    * @dev Divides two unsigned integers and returns the remainder (unsigned integer modulo),
    * reverts when dividing by zero.
    */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b != 0);
        return a % b;
    }
}

// This interface allows contracts to query unverified prices.
interface PriceFeedInterface {
    // Whether this PriceFeeds provides prices for the given identifier.
    function isIdentifierSupported(bytes32 identifier) external view returns (bool isSupported);

    // Gets the latest time-price pair at which a price was published. The transaction will revert if no prices have
    // been published for this identifier.
    function latestPrice(bytes32 identifier) external view returns (uint publishTime, int price);

    // An event fired when a price is published.
    event PriceUpdated(bytes32 indexed identifier, uint indexed time, int price);
}

contract Withdrawable is Ownable {
    // Withdraws ETH from the contract.
    function withdraw(uint amount) external onlyOwner {
        msg.sender.transfer(amount);
    }

    // Withdraws ERC20 tokens from the contract.
    function withdrawErc20(address erc20Address, uint amount) external onlyOwner {
        IERC20 erc20 = IERC20(erc20Address);
        require(erc20.transfer(msg.sender, amount));
    }
}

contract Testable is Ownable {

    // Is the contract being run on the test network. Note: this variable should be set on construction and never
    // modified.
    bool public isTest;

    uint private currentTime;

    constructor(bool _isTest) internal {
        isTest = _isTest;
        if (_isTest) {
            currentTime = now; // solhint-disable-line not-rely-on-time
        }
    }

    modifier onlyIfTest {
        require(isTest);
        _;
    }

    function setCurrentTime(uint _time) external onlyOwner onlyIfTest {
        currentTime = _time;
    }

    function getCurrentTime() public view returns (uint) {
        if (isTest) {
            return currentTime;
        } else {
            return now; // solhint-disable-line not-rely-on-time
        }
    }
}

// Implementation of PriceFeedInterface with the ability to push prices.
contract ManualPriceFeed is PriceFeedInterface, Withdrawable, Testable {

    using SafeMath for uint;

    // A single price update.
    struct PriceTick {
        uint timestamp;
        int price;
    }

    // Mapping from identifier to the latest price for that identifier.
    mapping(bytes32 => PriceTick) private prices;

    // Ethereum timestamp tolerance.
    // Note: this is technically the amount of time that a block timestamp can be *ahead* of the current time. However,
    // we are assuming that blocks will never get more than this amount *behind* the current time. The only requirement
    // limiting how early the timestamp can be is that it must have a later timestamp than its parent. However,
    // this bound will probably work reasonably well in both directions.
    uint constant private BLOCK_TIMESTAMP_TOLERANCE = 900;

    constructor(bool _isTest) public Testable(_isTest) {} // solhint-disable-line no-empty-blocks

    // Adds a new price to the series for a given identifier. The pushed publishTime must be later than the last time
    // pushed so far.
    function pushLatestPrice(bytes32 identifier, uint publishTime, int newPrice) external onlyOwner {
        require(publishTime <= getCurrentTime().add(BLOCK_TIMESTAMP_TOLERANCE));
        require(publishTime > prices[identifier].timestamp);
        prices[identifier] = PriceTick(publishTime, newPrice);
        emit PriceUpdated(identifier, publishTime, newPrice);
    }

    // Whether this feed has ever published any prices for this identifier.
    function isIdentifierSupported(bytes32 identifier) external view returns (bool isSupported) {
        isSupported = _isIdentifierSupported(identifier);
    }

    function latestPrice(bytes32 identifier) external view returns (uint publishTime, int price) {
        require(_isIdentifierSupported(identifier));
        publishTime = prices[identifier].timestamp;
        price = prices[identifier].price;
    }

    function _isIdentifierSupported(bytes32 identifier) private view returns (bool isSupported) {
        isSupported = prices[identifier].timestamp > 0;
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_time","type":"uint256"}],"name":"setCurrentTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getCurrentTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"identifier","type":"bytes32"}],"name":"latestPrice","outputs":[{"name":"publishTime","type":"uint256"},{"name":"price","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"identifier","type":"bytes32"},{"name":"publishTime","type":"uint256"},{"name":"newPrice","type":"int256"}],"name":"pushLatestPrice","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":"isOwner","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"identifier","type":"bytes32"}],"name":"isIdentifierSupported","outputs":[{"name":"isSupported","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isTest","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"erc20Address","type":"address"},{"name":"amount","type":"uint256"}],"name":"withdrawErc20","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_isTest","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"identifier","type":"bytes32"},{"indexed":true,"name":"time","type":"uint256"},{"indexed":false,"name":"price","type":"int256"}],"name":"PriceUpdated","type":"event"}]

608060405234801561001057600080fd5b50604051602080610af48339810180604052602081101561003057600080fd5b810190808051906020019092919050505080336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600060146101000a81548160ff021916908315150217905550801561012657426001819055505b50506109bd806101376000396000f3fe6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806322f8e566146100bf57806329cb924d146100fa5780632e1a7d4d146101255780634eec7c2b14610160578063715018a6146101b657806388be38ac146101cd5780638da5cb5b1461021c5780638f32d59b1461027357806390978d1b146102a25780639381a345146102f5578063bd1f4b5214610324578063f2fde38b1461037f575b600080fd5b3480156100cb57600080fd5b506100f8600480360360208110156100e257600080fd5b81019080803590602001909291905050506103d0565b005b34801561010657600080fd5b5061010f610408565b6040518082815260200191505060405180910390f35b34801561013157600080fd5b5061015e6004803603602081101561014857600080fd5b810190808035906020019092919050505061042f565b005b34801561016c57600080fd5b506101996004803603602081101561018357600080fd5b810190808035906020019092919050505061048c565b604051808381526020018281526020019250505060405180910390f35b3480156101c257600080fd5b506101cb6104da565b005b3480156101d957600080fd5b5061021a600480360360608110156101f057600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506105ac565b005b34801561022857600080fd5b5061023161068a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027f57600080fd5b506102886106b3565b604051808215151515815260200191505060405180910390f35b3480156102ae57600080fd5b506102db600480360360208110156102c557600080fd5b810190808035906020019092919050505061070a565b604051808215151515815260200191505060405180910390f35b34801561030157600080fd5b5061030a61071c565b604051808215151515815260200191505060405180910390f35b34801561033057600080fd5b5061037d6004803603604081101561034757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b005b34801561038b57600080fd5b506103ce600480360360208110156103a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610835565b005b6103d86106b3565b15156103e357600080fd5b600060149054906101000a900460ff1615156103fe57600080fd5b8060018190555050565b60008060149054906101000a900460ff161561042857600154905061042c565b4290505b90565b6104376106b3565b151561044257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610488573d6000803e3d6000fd5b5050565b60008061049883610854565b15156104a357600080fd5b6002600084815260200190815260200160002060000154915060026000848152602001908152602001600020600101549050915091565b6104e26106b3565b15156104ed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6105b46106b3565b15156105bf57600080fd5b6105db6103846105cd610408565b61087690919063ffffffff16565b82111515156105e957600080fd5b60026000848152602001908152602001600020600001548211151561060d57600080fd5b60408051908101604052808381526020018281525060026000858152602001908152602001600020600082015181600001556020820151816001015590505081837f7b68a704e7137c4430422c835b46aecc2dd2d5e3eb0ec8fd92785c9e97648bd9836040518082815260200191505060405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600061071582610854565b9050919050565b600060149054906101000a900460ff1681565b6107376106b3565b151561074257600080fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050506040513d602081101561081457600080fd5b8101908080519060200190929190505050151561083057600080fd5b505050565b61083d6106b3565b151561084857600080fd5b61085181610897565b50565b6000806002600084815260200190815260200160002060000154119050919050565b600080828401905083811015151561088d57600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156108d357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fea165627a7a72305820a9ba8e87a0bbf2020c2890b1f24036037195122869bfe15eab173f327f37d54600290000000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106100ba576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806322f8e566146100bf57806329cb924d146100fa5780632e1a7d4d146101255780634eec7c2b14610160578063715018a6146101b657806388be38ac146101cd5780638da5cb5b1461021c5780638f32d59b1461027357806390978d1b146102a25780639381a345146102f5578063bd1f4b5214610324578063f2fde38b1461037f575b600080fd5b3480156100cb57600080fd5b506100f8600480360360208110156100e257600080fd5b81019080803590602001909291905050506103d0565b005b34801561010657600080fd5b5061010f610408565b6040518082815260200191505060405180910390f35b34801561013157600080fd5b5061015e6004803603602081101561014857600080fd5b810190808035906020019092919050505061042f565b005b34801561016c57600080fd5b506101996004803603602081101561018357600080fd5b810190808035906020019092919050505061048c565b604051808381526020018281526020019250505060405180910390f35b3480156101c257600080fd5b506101cb6104da565b005b3480156101d957600080fd5b5061021a600480360360608110156101f057600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506105ac565b005b34801561022857600080fd5b5061023161068a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561027f57600080fd5b506102886106b3565b604051808215151515815260200191505060405180910390f35b3480156102ae57600080fd5b506102db600480360360208110156102c557600080fd5b810190808035906020019092919050505061070a565b604051808215151515815260200191505060405180910390f35b34801561030157600080fd5b5061030a61071c565b604051808215151515815260200191505060405180910390f35b34801561033057600080fd5b5061037d6004803603604081101561034757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061072f565b005b34801561038b57600080fd5b506103ce600480360360208110156103a257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610835565b005b6103d86106b3565b15156103e357600080fd5b600060149054906101000a900460ff1615156103fe57600080fd5b8060018190555050565b60008060149054906101000a900460ff161561042857600154905061042c565b4290505b90565b6104376106b3565b151561044257600080fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610488573d6000803e3d6000fd5b5050565b60008061049883610854565b15156104a357600080fd5b6002600084815260200190815260200160002060000154915060026000848152602001908152602001600020600101549050915091565b6104e26106b3565b15156104ed57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6105b46106b3565b15156105bf57600080fd5b6105db6103846105cd610408565b61087690919063ffffffff16565b82111515156105e957600080fd5b60026000848152602001908152602001600020600001548211151561060d57600080fd5b60408051908101604052808381526020018281525060026000858152602001908152602001600020600082015181600001556020820151816001015590505081837f7b68a704e7137c4430422c835b46aecc2dd2d5e3eb0ec8fd92785c9e97648bd9836040518082815260200191505060405180910390a3505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b600061071582610854565b9050919050565b600060149054906101000a900460ff1681565b6107376106b3565b151561074257600080fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050506040513d602081101561081457600080fd5b8101908080519060200190929190505050151561083057600080fd5b505050565b61083d6106b3565b151561084857600080fd5b61085181610897565b50565b6000806002600084815260200190815260200160002060000154119050919050565b600080828401905083811015151561088d57600080fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141515156108d357600080fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fea165627a7a72305820a9ba8e87a0bbf2020c2890b1f24036037195122869bfe15eab173f327f37d5460029

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

0000000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _isTest (bool): False

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000000


Swarm Source

bzzr://a9ba8e87a0bbf2020c2890b1f24036037195122869bfe15eab173f327f37d546

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.