Contract 0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a91

Contract Overview

Balance:
0 Ether
TxHash Block Age From To Value [TxFee]
0xb6aa3c2c272dcbe45b3e3ab226fb10720b2241dc11f48f089593842a3f18d9b9378183950 days 8 hrs ago0xd5f4b9718de2053ef115fdd91a2ffde188edec53 IN  0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether0.00026176
0x6957588f6cc513185ad55ed60fb841673f09c8e90af36e1c604a295536664858378183650 days 8 hrs ago0xd5f4b9718de2053ef115fdd91a2ffde188edec53 IN  0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether0.00026176
0xd753f7b32ca6a50f137c2b7b59b05df84ebe19952b8826d36ec298eaa91e1bd7378183450 days 8 hrs ago0xd5f4b9718de2053ef115fdd91a2ffde188edec53 IN  0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether0.00026176
0xd57796f8ac1b74545e68427f127c67b7162279dfe8a1b9dcf7438267d30defbf378181850 days 8 hrs ago0xd5f4b9718de2053ef115fdd91a2ffde188edec53 IN  0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether0.00026176
0xbd0db3b9b8d3a2dcb8228f2baf9ef9e139f2431d1b36acd95eade07b8aaf6bcc378181550 days 8 hrs ago0xd5f4b9718de2053ef115fdd91a2ffde188edec53 IN  0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether0.00026176
0x84a624ab1abaaf2188fdaecd7dca0ceb4a43b9f95bbcf44bde1c3e21b31bb0ce378180050 days 8 hrs ago0xd5f4b9718de2053ef115fdd91a2ffde188edec53 IN  0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether0.00026176
0x5602af18b901c48d66d1514d1a6010098caed3aa6d26fd959b68c37d67f7d6c32811852219 days 10 hrs ago0xf16294a979a027f297dace2f618cb57bc4bf5d16 IN  0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether0.000024844
0xbe15d43823ca05a2a74450aaa7074e397226ca75c4cfa5297d6fbcaa48f5abe72542450266 days 5 hrs ago0xf85d1a0e1b71e72013db51139f285c6d5356b712 IN  Contract Creation0 Ether0.001716715
[ Download CSV Export 

Latest 25 internal transaction, Click here to view more Internal Transactions as a result of Contract Execution

Parent TxHash Block Age From To Value
0xc5f32c03b3ce6886d99383f7d6138f91b51ed30d7d14accfc2e686ea900d9d0a385172438 days 5 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0xc5f32c03b3ce6886d99383f7d6138f91b51ed30d7d14accfc2e686ea900d9d0a385172438 days 5 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0x67c72abfc516b1bb6895686d05b3f8b87ccc92efe3bb161a39c7717697174f08385079638 days 9 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0x67c72abfc516b1bb6895686d05b3f8b87ccc92efe3bb161a39c7717697174f08385079638 days 9 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0x67c72abfc516b1bb6895686d05b3f8b87ccc92efe3bb161a39c7717697174f08385079638 days 9 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0x67c72abfc516b1bb6895686d05b3f8b87ccc92efe3bb161a39c7717697174f08385079638 days 9 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0xe05a1aa2588b704f2a806f8f393f750cd0615e07e0c6f8f22c64b5b3d32372c2385010838 days 12 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0xe05a1aa2588b704f2a806f8f393f750cd0615e07e0c6f8f22c64b5b3d32372c2385010838 days 12 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0xe05a1aa2588b704f2a806f8f393f750cd0615e07e0c6f8f22c64b5b3d32372c2385010838 days 12 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0xe05a1aa2588b704f2a806f8f393f750cd0615e07e0c6f8f22c64b5b3d32372c2385010838 days 12 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0xac7c324e004c6cfb2c7b8a751b2c9cebb281cf89572dc22f8e96f16654b13ead384990838 days 12 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0xac7c324e004c6cfb2c7b8a751b2c9cebb281cf89572dc22f8e96f16654b13ead384990838 days 12 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0xac7c324e004c6cfb2c7b8a751b2c9cebb281cf89572dc22f8e96f16654b13ead384990838 days 12 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0xac7c324e004c6cfb2c7b8a751b2c9cebb281cf89572dc22f8e96f16654b13ead384990838 days 12 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0x58b22332e05d4dea283d0554e79cc07e934974003aa74a1ab94d6184c26b0522384985438 days 13 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0x58b22332e05d4dea283d0554e79cc07e934974003aa74a1ab94d6184c26b0522384985438 days 13 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0x654104db693d200e61fb8e5ef0ac1f919d2e5e9f11b9fc5c67599ccf39dd5a41383479341 days 3 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0x654104db693d200e61fb8e5ef0ac1f919d2e5e9f11b9fc5c67599ccf39dd5a41383479341 days 3 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0xc072b963fc412bab4f29e0538fb7b4e9cfb992ef63ad6ff0ac139cc47aa38e4f383479041 days 3 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0xc072b963fc412bab4f29e0538fb7b4e9cfb992ef63ad6ff0ac139cc47aa38e4f383479041 days 3 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0x958cd2ed416c2deb983ec2aac7bf287099b53f4e44c845218543e712a42870e8383478841 days 3 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0x958cd2ed416c2deb983ec2aac7bf287099b53f4e44c845218543e712a42870e8383478841 days 3 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0x6728f5ef8bd390da19e9dba688ce4320832b67c5079f419fe5f5cd980acf6711383476941 days 3 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
0x6728f5ef8bd390da19e9dba688ce4320832b67c5079f419fe5f5cd980acf6711383476941 days 3 hrs ago0x4e69969d9270ff55fc7c5043b074d4e45f7955870xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910 Ether
0x661aec1776d7351ba43e2b216efddaba2dc765be33c5c32a4da8e32b21220262383448841 days 5 hrs ago0xa6a644ef9da924b3ecea6cbfd137a825d1ff2a910xbfff80b73f081cc159534d922712551c5ed8b3d30 Ether
[ Download CSV Export 
Warning: The compiled contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) Solidity Compiler Bugs.

Contract Source Code Verified (Exact Match)

Contract Name:
PriceOracleInterface

Compiler Version
v0.4.24+commit.e67f0147

Optimization Enabled:
Yes

Runs (Optimizer):
200

Contract Source Code

pragma solidity ^0.4.21;

// File: contracts/Oracle/DSAuth.sol

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);
        }
    }
}

// File: contracts/Oracle/DSMath.sol

contract DSMath {
    
    /*
    standard uint256 functions
     */

    function add(uint256 x, uint256 y) constant internal returns (uint256 z) {
        assert((z = x + y) >= x);
    }

    function sub(uint256 x, uint256 y) constant internal returns (uint256 z) {
        assert((z = x - y) <= x);
    }

    function mul(uint256 x, uint256 y) constant internal returns (uint256 z) {
        assert((z = x * y) >= x);
    }

    function div(uint256 x, uint256 y) constant internal returns (uint256 z) {
        z = x / y;
    }

    function min(uint256 x, uint256 y) constant internal returns (uint256 z) {
        return x <= y ? x : y;
    }
    function max(uint256 x, uint256 y) constant internal returns (uint256 z) {
        return x >= y ? x : y;
    }

    /*
    uint128 functions (h is for half)
     */


    function hadd(uint128 x, uint128 y) constant internal returns (uint128 z) {
        assert((z = x + y) >= x);
    }

    function hsub(uint128 x, uint128 y) constant internal returns (uint128 z) {
        assert((z = x - y) <= x);
    }

    function hmul(uint128 x, uint128 y) constant internal returns (uint128 z) {
        assert((z = x * y) >= x);
    }

    function hdiv(uint128 x, uint128 y) constant internal returns (uint128 z) {
        z = x / y;
    }

    function hmin(uint128 x, uint128 y) constant internal returns (uint128 z) {
        return x <= y ? x : y;
    }
    function hmax(uint128 x, uint128 y) constant internal returns (uint128 z) {
        return x >= y ? x : y;
    }


    /*
    int256 functions
     */

    function imin(int256 x, int256 y) constant internal returns (int256 z) {
        return x <= y ? x : y;
    }
    function imax(int256 x, int256 y) constant internal returns (int256 z) {
        return x >= y ? x : y;
    }

    /*
    WAD math
     */

    uint128 constant WAD = 10 ** 18;

    function wadd(uint128 x, uint128 y) constant internal returns (uint128) {
        return hadd(x, y);
    }

    function wsub(uint128 x, uint128 y) constant internal returns (uint128) {
        return hsub(x, y);
    }

    function wmul(uint128 x, uint128 y) constant internal returns (uint128 z) {
        z = cast((uint256(x) * y + WAD / 2) / WAD);
    }

    function wdiv(uint128 x, uint128 y) constant internal returns (uint128 z) {
        z = cast((uint256(x) * WAD + y / 2) / y);
    }

    function wmin(uint128 x, uint128 y) constant internal returns (uint128) {
        return hmin(x, y);
    }
    function wmax(uint128 x, uint128 y) constant internal returns (uint128) {
        return hmax(x, y);
    }

    /*
    RAY math
     */

    uint128 constant RAY = 10 ** 27;

    function radd(uint128 x, uint128 y) constant internal returns (uint128) {
        return hadd(x, y);
    }

    function rsub(uint128 x, uint128 y) constant internal returns (uint128) {
        return hsub(x, y);
    }

    function rmul(uint128 x, uint128 y) constant internal returns (uint128 z) {
        z = cast((uint256(x) * y + RAY / 2) / RAY);
    }

    function rdiv(uint128 x, uint128 y) constant internal returns (uint128 z) {
        z = cast((uint256(x) * RAY + y / 2) / y);
    }

    function rpow(uint128 x, uint64 n) constant internal returns (uint128 z) {
        // 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].

        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);
            }
        }
    }

    function rmin(uint128 x, uint128 y) constant internal returns (uint128) {
        return hmin(x, y);
    }
    function rmax(uint128 x, uint128 y) constant internal returns (uint128) {
        return hmax(x, y);
    }

    function cast(uint256 x) constant internal returns (uint128 z) {
        assert((z = uint128(x)) == x);
    }

}

// File: contracts/Oracle/DSNote.sol

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

        _;
    }
}

// File: contracts/Oracle/DSThing.sol

contract DSThing is DSAuth, DSNote, DSMath {
}

// File: contracts/Oracle/DSValue.sol

contract DSValue is DSThing {
    bool    has;
    bytes32 val;
    function peek() constant returns (bytes32, bool) {
        return (val,has);
    }
    function read() constant returns (bytes32) {
        var (wut, has) = peek();
        assert(has);
        return wut;
    }
    function poke(bytes32 wut) note auth {
        val = wut;
        has = true;
    }
    function void() note auth { // unset the value
        has = false;
    }
}

// File: contracts/Oracle/Medianizer.sol

contract Medianizer is DSValue {
    mapping (bytes12 => address) public values;
    mapping (address => bytes12) public indexes;
    bytes12 public next = 0x1;

    uint96 public min = 0x1;

    function set(address wat) auth {
        bytes12 nextId = bytes12(uint96(next) + 1);
        assert(nextId != 0x0);
        set(next, wat);
        next = nextId;
    }

    function set(bytes12 pos, address wat) note auth {
        if (pos == 0x0) throw;

        if (wat != 0 && indexes[wat] != 0) throw;

        indexes[values[pos]] = 0; // Making sure to remove a possible existing address in that position

        if (wat != 0) {
            indexes[wat] = pos;
        }

        values[pos] = wat;
    }

    function setMin(uint96 min_) note auth {
        if (min_ == 0x0) throw;
        min = min_;
    }

    function setNext(bytes12 next_) note auth {
        if (next_ == 0x0) throw;
        next = next_;
    }

    function unset(bytes12 pos) {
        set(pos, 0);
    }

    function unset(address wat) {
        set(indexes[wat], 0);
    }

    function poke() {
        poke(0);
    }

    function poke(bytes32) note {
        (val, has) = compute();
    }

    function compute() constant returns (bytes32, bool) {
        bytes32[] memory wuts = new bytes32[](uint96(next) - 1);
        uint96 ctr = 0;
        for (uint96 i = 1; i < uint96(next); i++) {
            if (values[bytes12(i)] != 0) {
                var (wut, wuz) = DSValue(values[bytes12(i)]).peek();
                if (wuz) {
                    if (ctr == 0 || wut >= wuts[ctr - 1]) {
                        wuts[ctr] = wut;
                    } else {
                        uint96 j = 0;
                        while (wut >= wuts[j]) {
                            j++;
                        }
                        for (uint96 k = ctr; k > j; k--) {
                            wuts[k] = wuts[k - 1];
                        }
                        wuts[j] = wut;
                    }
                    ctr++;
                }
            }
        }

        if (ctr < min) return (val, false);

        bytes32 value;
        if (ctr % 2 == 0) {
            uint128 val1 = uint128(wuts[(ctr / 2) - 1]);
            uint128 val2 = uint128(wuts[ctr / 2]);
            value = bytes32(wdiv(hadd(val1, val2), 2 ether));
        } else {
            value = wuts[(ctr - 1) / 2];
        }

        return (value, true);
    }
}

// File: contracts/Oracle/PriceFeed.sol

/// 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).



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

}

// File: contracts/Oracle/PriceOracleInterface.sol

/*
This contract is the interface between the MakerDAO priceFeed and our DX platform.
*/



contract PriceOracleInterface {

    address public priceFeedSource;
    address public owner;
    bool public emergencyMode;

    event NonValidPriceFeed(address priceFeedSource);

    // Modifiers
    modifier onlyOwner() {
        require(msg.sender == owner);
        _;
    }

    /// @dev constructor of the contract
    /// @param _priceFeedSource address of price Feed Source -> should be maker feeds Medianizer contract
    function PriceOracleInterface(
        address _owner,
        address _priceFeedSource
    )
        public
    {
        owner = _owner;
        priceFeedSource = _priceFeedSource;
    }
    /// @dev gives the owner the possibility to put the Interface into an emergencyMode, which will 
    /// output always a price of 600 USD. This gives everyone time to set up a new pricefeed.
    function raiseEmergency(bool _emergencyMode)
        public
        onlyOwner()
    {
        emergencyMode = _emergencyMode;
    }

    /// @dev updates the priceFeedSource
    /// @param _owner address of owner
    function updateCurator(
        address _owner
    )
        public
        onlyOwner()
    {
        owner = _owner;
    }

    /// @dev returns the USDETH price, ie gets the USD price from Maker feed with 18 digits, but last 18 digits are cut off
    function getUSDETHPrice() 
        public
        returns (uint256)
    {
        // if the contract is in the emergencyMode, because there is an issue with the oracle, we will simply return a price of 600 USD
        if(emergencyMode){
            return 600;
        }

        bytes32 price;
        bool valid=true;
        (price, valid) = Medianizer(priceFeedSource).peek();
        if (!valid) {
            NonValidPriceFeed(priceFeedSource);
        }
        // ensuring that there is no underflow or overflow possible,
        // even if the price is compromised
        uint priceUint = uint256(price)/(1 ether);
        if (priceUint == 0) return 1;
        if (priceUint > 1000000) return 1000000; 
        return priceUint;
    }  
}

Contract ABI

[{"constant":true,"inputs":[],"name":"emergencyMode","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"updateCurator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_emergencyMode","type":"bool"}],"name":"raiseEmergency","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"getUSDETHPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"priceFeedSource","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_owner","type":"address"},{"name":"_priceFeedSource","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"priceFeedSource","type":"address"}],"name":"NonValidPriceFeed","type":"event"}]

Contract Creation Code

608060405234801561001057600080fd5b5060405160408061040c83398101604052805160209091015160018054600160a060020a03938416600160a060020a031991821617909155600080549390921692169190911790556103a5806100676000396000f3006080604052600436106100775763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630905f560811461007c5780630c6a62dd146100a55780638da5cb5b146100c85780639e385fa4146100f9578063a3ca17b214610113578063c5ace4431461013a575b600080fd5b34801561008857600080fd5b5061009161014f565b604080519115158252519081900360200190f35b3480156100b157600080fd5b506100c6600160a060020a0360043516610170565b005b3480156100d457600080fd5b506100dd6101b6565b60408051600160a060020a039092168252519081900360200190f35b34801561010557600080fd5b506100c660043515156101c5565b34801561011f57600080fd5b5061012861021c565b60408051918252519081900360200190f35b34801561014657600080fd5b506100dd61036a565b60015474010000000000000000000000000000000000000000900460ff1681565b600154600160a060020a0316331461018757600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600154600160a060020a031681565b600154600160a060020a031633146101dc57600080fd5b60018054911515740100000000000000000000000000000000000000000274ff000000000000000000000000000000000000000019909216919091179055565b600080600080600160149054906101000a900460ff1615610241576102589350610364565b600191506000809054906101000a9004600160a060020a0316600160a060020a03166359e02dd76040518163ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004016040805180830381600087803b1580156102af57600080fd5b505af11580156102c3573d6000803e3d6000fd5b505050506040513d60408110156102d957600080fd5b508051602090910151909350915081151561032e5760005460408051600160a060020a039092168252517f364c0d3d8c056dff125868f781751ed53d48fb1b927b60ab972436741b61e3c99181900360200190a15b50670de0b6b3a7640000820480151561034a5760019350610364565b620f424081111561036057620f42409350610364565b8093505b50505090565b600054600160a060020a0316815600a165627a7a7230582034df1f04150ebcff116be2de71d69d6c315ffca4d695748083af65f11549884e0029000000000000000000000000f85d1a0e1b71e72013db51139f285c6d5356b712000000000000000000000000bfff80b73f081cc159534d922712551c5ed8b3d3

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

000000000000000000000000f85d1a0e1b71e72013db51139f285c6d5356b712000000000000000000000000bfff80b73f081cc159534d922712551c5ed8b3d3

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000f85d1a0e1b71e72013db51139f285c6d5356b712
Arg [1] : 000000000000000000000000bfff80b73f081cc159534d922712551c5ed8b3d3

Swarm Source

bzzr://34df1f04150ebcff116be2de71d69d6c315ffca4d695748083af65f11549884e
Block Age Transaction Difficulty GasUsed Reward
Block Age Uncle Number Difficulty GasUsed Reward