ETH Price: $3,189.37 (+3.56%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Post108077342020-09-06 11:36:501604 days ago1599392210IN
0x20eD7758...341E35907
0 ETH0.01407314102.2
Post108071162020-09-06 9:19:441605 days ago1599383984IN
0x20eD7758...341E35907
0 ETH0.02199351159
Post108070442020-09-06 9:05:471605 days ago1599383147IN
0x20eD7758...341E35907
0 ETH0.0202744159
Post108069152020-09-06 8:39:481605 days ago1599381588IN
0x20eD7758...341E35907
0 ETH0.02304848159
Post108066312020-09-06 7:33:511605 days ago1599377631IN
0x20eD7758...341E35907
0 ETH0.01943412125
Post108064342020-09-06 6:54:181605 days ago1599375258IN
0x20eD7758...341E35907
0 ETH0.01800472121.5
Post108058572020-09-06 4:49:461605 days ago1599367786IN
0x20eD7758...341E35907
0 ETH0.01802374119
Post108050792020-09-06 1:55:081605 days ago1599357308IN
0x20eD7758...341E35907
0 ETH0.01809775119
Post108046132020-09-06 0:14:231605 days ago1599351263IN
0x20eD7758...341E35907
0 ETH0.01904814123
Post108035842020-09-05 20:23:331605 days ago1599337413IN
0x20eD7758...341E35907
0 ETH0.06602176445.5000016
Post108034062020-09-05 19:45:431605 days ago1599335143IN
0x20eD7758...341E35907
0 ETH0.0598481426.305
Post108033542020-09-05 19:33:041605 days ago1599334384IN
0x20eD7758...341E35907
0 ETH0.0622695415
Post108032322020-09-05 19:07:261605 days ago1599332846IN
0x20eD7758...341E35907
0 ETH0.05619854373.75
Post108032102020-09-05 19:01:481605 days ago1599332508IN
0x20eD7758...341E35907
0 ETH0.05474278373.75
Post108031402020-09-05 18:48:161605 days ago1599331696IN
0x20eD7758...341E35907
0 ETH0.04736466315
Post108028442020-09-05 17:48:221605 days ago1599328102IN
0x20eD7758...341E35907
0 ETH0.04441391296
Post108025672020-09-05 16:46:451605 days ago1599324405IN
0x20eD7758...341E35907
0 ETH0.04305224290
Post108017592020-09-05 13:49:091605 days ago1599313749IN
0x20eD7758...341E35907
0 ETH0.074923500
Post108017132020-09-05 13:38:411605 days ago1599313121IN
0x20eD7758...341E35907
0 ETH0.06421361448.2
Post108014602020-09-05 12:43:531605 days ago1599309833IN
0x20eD7758...341E35907
0 ETH0.05960703402.5
Post108010982020-09-05 11:26:551605 days ago1599305215IN
0x20eD7758...341E35907
0 ETH0.05201728343.85
Post108005012020-09-05 9:16:061606 days ago1599297366IN
0x20eD7758...341E35907
0 ETH0.03705438253
Post108000742020-09-05 7:39:531606 days ago1599291593IN
0x20eD7758...341E35907
0 ETH0.03307744220
Post107990472020-09-05 3:48:331606 days ago1599277713IN
0x20eD7758...341E35907
0 ETH0.02211416155
Post107960292020-09-04 16:47:021606 days ago1599238022IN
0x20eD7758...341E35907
0 ETH0.04696748310
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0x8a4774FE...a5E21F973
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
PriceFeed

Compiler Version
v0.4.17+commit.bdeb9e52

Optimization Enabled:
Yes with 200 runs

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

/// price-feed.sol

// Copyright (C) 2017  DappHub, LLC

// Licensed under the Apache License, Version 2.0 (the "License").
// You may not use this file except in compliance with the License.

// 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 (express or implied).

pragma solidity ^0.4.15;

contract DSAuthority {
    function canCall(
        address src, address dst, bytes4 sig
    ) public view returns (bool);
}

contract DSAuthEvents {
    event LogSetAuthority (address indexed authority);
    event LogSetOwner     (address indexed owner);
}

contract DSAuth is DSAuthEvents {
    DSAuthority  public  authority;
    address      public  owner;

    function DSAuth() public {
        owner = msg.sender;
        LogSetOwner(msg.sender);
    }

    function setOwner(address owner_)
        public
        auth
    {
        owner = owner_;
        LogSetOwner(owner);
    }

    function setAuthority(DSAuthority authority_)
        public
        auth
    {
        authority = authority_;
        LogSetAuthority(authority);
    }

    modifier auth {
        require(isAuthorized(msg.sender, msg.sig));
        _;
    }

    function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
        if (src == address(this)) {
            return true;
        } else if (src == owner) {
            return true;
        } else if (authority == DSAuthority(0)) {
            return false;
        } else {
            return authority.canCall(src, this, sig);
        }
    }
}

contract DSNote {
    event LogNote(
        bytes4   indexed  sig,
        address  indexed  guy,
        bytes32  indexed  foo,
        bytes32  indexed  bar,
        uint              wad,
        bytes             fax
    ) anonymous;

    modifier note {
        bytes32 foo;
        bytes32 bar;

        assembly {
            foo := calldataload(4)
            bar := calldataload(36)
        }

        LogNote(msg.sig, msg.sender, foo, bar, msg.value, msg.data);

        _;
    }
}

contract DSMath {
    function add(uint x, uint y) internal pure returns (uint z) {
        require((z = x + y) >= x);
    }
    function sub(uint x, uint y) internal pure returns (uint z) {
        require((z = x - y) <= x);
    }
    function mul(uint x, uint y) internal pure returns (uint z) {
        require(y == 0 || (z = x * y) / y == x);
    }

    function min(uint x, uint y) internal pure returns (uint z) {
        return x <= y ? x : y;
    }
    function max(uint x, uint y) internal pure returns (uint z) {
        return x >= y ? x : y;
    }
    function imin(int x, int y) internal pure returns (int z) {
        return x <= y ? x : y;
    }
    function imax(int x, int y) internal pure returns (int z) {
        return x >= y ? x : y;
    }

    uint constant WAD = 10 ** 18;
    uint constant RAY = 10 ** 27;

    function wmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), WAD / 2) / WAD;
    }
    function rmul(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, y), RAY / 2) / RAY;
    }
    function wdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, WAD), y / 2) / y;
    }
    function rdiv(uint x, uint y) internal pure returns (uint z) {
        z = add(mul(x, RAY), y / 2) / y;
    }

    // This famous algorithm is called "exponentiation by squaring"
    // and calculates x^n with x as fixed-point and n as regular unsigned.
    //
    // It's O(log n), instead of O(n) for naive repeated multiplication.
    //
    // These facts are why it works:
    //
    //  If n is even, then x^n = (x^2)^(n/2).
    //  If n is odd,  then x^n = x * x^(n-1),
    //   and applying the equation for even x gives
    //    x^n = x * (x^2)^((n-1) / 2).
    //
    //  Also, EVM division is flooring and
    //    floor[(n-1) / 2] = floor[n / 2].
    //
    function rpow(uint x, uint n) internal pure returns (uint z) {
        z = n % 2 != 0 ? x : RAY;

        for (n /= 2; n != 0; n /= 2) {
            x = rmul(x, x);

            if (n % 2 != 0) {
                z = rmul(z, x);
            }
        }
    }
}

contract DSThing is DSAuth, DSNote, DSMath {
}

contract PriceFeed is DSThing {

    uint128 val;
    uint32 public zzz;

    function peek() public view
        returns (bytes32,bool)
    {
        return (bytes32(val), now < zzz);
    }

    function read() public view
        returns (bytes32)
    {
        assert(now < zzz);
        return bytes32(val);
    }

    function post(uint128 val_, uint32 zzz_, address med_) public note auth
    {
        val = val_;
        zzz = zzz_;
        bool ret = med_.call(bytes4(keccak256("poke()")));
        ret;
    }

    function void() public note auth
    {
        zzz = 0;
    }

}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"owner_","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"read","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"peek","outputs":[{"name":"","type":"bytes32"},{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"val_","type":"uint128"},{"name":"zzz_","type":"uint32"},{"name":"med_","type":"address"}],"name":"post","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"authority_","type":"address"}],"name":"setAuthority","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":"zzz","outputs":[{"name":"","type":"uint32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"void","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"authority","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":true,"inputs":[{"indexed":true,"name":"sig","type":"bytes4"},{"indexed":true,"name":"guy","type":"address"},{"indexed":true,"name":"foo","type":"bytes32"},{"indexed":true,"name":"bar","type":"bytes32"},{"indexed":false,"name":"wad","type":"uint256"},{"indexed":false,"name":"fax","type":"bytes"}],"name":"LogNote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"authority","type":"address"}],"name":"LogSetAuthority","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"}],"name":"LogSetOwner","type":"event"}]

Deployed Bytecode

0x6060604052361561007d5763ffffffff60e060020a60003504166313af4035811461008257806357de26a4146100a357806359e02dd7146100c85780635a686699146100f55780637a9e5e4b146101325780638da5cb5b14610151578063a4dff0a214610180578063ac4c25b2146101ac578063bf7e214f146101bf575b600080fd5b341561008d57600080fd5b6100a1600160a060020a03600435166101d2565b005b34156100ae57600080fd5b6100b6610251565b60405190815260200160405180910390f35b34156100d357600080fd5b6100db610292565b604051918252151560208201526040908101905180910390f35b341561010057600080fd5b6100a16fffffffffffffffffffffffffffffffff6004351663ffffffff60243516600160a060020a03604435166102c9565b341561013d57600080fd5b6100a1600160a060020a0360043516610413565b341561015c57600080fd5b610164610492565b604051600160a060020a03909116815260200160405180910390f35b341561018b57600080fd5b6101936104a1565b60405163ffffffff909116815260200160405180910390f35b34156101b757600080fd5b6100a16104c1565b34156101ca57600080fd5b610164610559565b6101e833600035600160e060020a031916610568565b15156101f357600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055167fce241d7ca1f669fee44b6fc00b8eba2df3bb514eed0f6f668f8f89096e81ed9460405160405180910390a250565b600254600090700100000000000000000000000000000000900463ffffffff16421061027957fe5b506002546fffffffffffffffffffffffffffffffff1690565b6002546fffffffffffffffffffffffffffffffff81169170010000000000000000000000000000000090910463ffffffff16421090565b60006004356024358082600160a060020a033316600160e060020a031986351634873660405183815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a461033433600035600160e060020a031916610568565b151561033f57600080fd5b600280546fffffffffffffffffffffffffffffffff19166fffffffffffffffffffffffffffffffff88161773ffffffff00000000000000000000000000000000191670010000000000000000000000000000000063ffffffff881602179055600160a060020a0384166040517f706f6b65282900000000000000000000000000000000000000000000000000008152600601604051809103902060e060020a90046040518163ffffffff1660e060020a02815260040160006040518083038160008761646e5a03f150505050505050505050565b61042933600035600160e060020a031916610568565b151561043457600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038381169190911791829055167f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada460405160405180910390a250565b600154600160a060020a031681565b600254700100000000000000000000000000000000900463ffffffff1681565b600435602435808233600160a060020a031660008035600160e060020a0319169034903660405183815260406020820181815290820183905260608201848480828437820191505094505050505060405180910390a461052d33600035600160e060020a031916610568565b151561053857600080fd5b50506002805473ffffffff0000000000000000000000000000000019169055565b600054600160a060020a031681565b600030600160a060020a031683600160a060020a0316141561058c5750600161065a565b600154600160a060020a03848116911614156105aa5750600161065a565b600054600160a060020a031615156105c45750600061065a565b60008054600160a060020a03169063b7009613908590309086906040516020015260405160e060020a63ffffffff8616028152600160a060020a039384166004820152919092166024820152600160e060020a03199091166044820152606401602060405180830381600087803b151561063d57600080fd5b6102c65a03f1151561064e57600080fd5b50505060405180519150505b929150505600a165627a7a723058200eda71a83b0b96fea324dd78b968bfd8c316d366f80f45d9bde86517e7de9a440029

Swarm Source

bzzr://0eda71a83b0b96fea324dd78b968bfd8c316d366f80f45d9bde86517e7de9a44

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.