Sponsored:   Temco - Join the Largest VC Backed ICO on the Bitcoin Network! TEMCO KYC Whitelist Starts Now!!
Contract Overview
Balance: 0 Ether
Ether Value: $0
Transactions: 10 txns
Misc:
Address Watch: Add To Watch List
Contract Creator: 0xb10c85274d2a58ddec72c1d826e75256ff93deadat txn 0x7a8475debbb65f8c28070928bf36881040ca5621f916e0bc6ec35935c41e6360
 Latest 10 txns

TxHash Age From To Value [TxFee]
0x90d23d75486eefb16409fc87d0f2d2952221ae02c8b13eaee12e48317fd24946125 days 3 hrs ago0xb0a23f40de7f776a4f20153e8995ed3e7d7c8487  IN   0xed231a75b03c2cd388ee26d4f74abf88cb683e8c0 Ether0.07395766
0x64634e425558c6d10e10fae2c9efc88f5b17c2bca1e13a497aea149b16c4fdb8125 days 19 hrs ago0xb0a23f40de7f776a4f20153e8995ed3e7d7c8487  IN   0xed231a75b03c2cd388ee26d4f74abf88cb683e8c0 Ether0.02
0x3028279309f3473a5a4c4e9bb9d3c7a1bbaef0620122cfa5f1fa77815b76ff25125 days 21 hrs ago0xb0a23f40de7f776a4f20153e8995ed3e7d7c8487  IN   0xed231a75b03c2cd388ee26d4f74abf88cb683e8c0 Ether0.008
0x3182cd670864c53a5a80268395a544ea5dc999b4a83618c97fb08de828bc3a9c125 days 21 hrs ago0xb0a23f40de7f776a4f20153e8995ed3e7d7c8487  IN   0xed231a75b03c2cd388ee26d4f74abf88cb683e8c0 Ether0.00054826
0x477e567a222058b411fc076ff4745d5593addea33b2b8fd293c33ed87a8efd39134 days 16 hrs ago0xb0a23f40de7f776a4f20153e8995ed3e7d7c8487  IN   0xed231a75b03c2cd388ee26d4f74abf88cb683e8c0 Ether0.00038122
0x36d582a668dd52d6faaf2358d4304973fd7c86089045ab6bf3b9538d64cd3174137 days 10 hrs ago0xb10c85274d2a58ddec72c1d826e75256ff93dead  IN   0xed231a75b03c2cd388ee26d4f74abf88cb683e8c0 Ether0.00044712
0x527da70f32479aa0cd9c47ba7fac186c8ef3798b7bb1ba49a4d62b2ec096c2fb175 days 19 hrs ago0xb10c85274d2a58ddec72c1d826e75256ff93dead  IN   0xed231a75b03c2cd388ee26d4f74abf88cb683e8c0 Ether0.000141306
0x3922b510bb86993ac5884748f98563d4d384876f40435f5fd7a1f3bc994e5f16175 days 19 hrs ago0xb10c85274d2a58ddec72c1d826e75256ff93dead  IN   0xed231a75b03c2cd388ee26d4f74abf88cb683e8c0 Ether0.00024977
0xf89f5cc996cae1f88d09732d0cf7e367a93a1c4325fdb84dfc4f3c2f60322db5181 days 13 hrs ago0xb10c85274d2a58ddec72c1d826e75256ff93dead  IN   0xed231a75b03c2cd388ee26d4f74abf88cb683e8c0 Ether0.000576963
0x7a8475debbb65f8c28070928bf36881040ca5621f916e0bc6ec35935c41e6360181 days 13 hrs ago0xb10c85274d2a58ddec72c1d826e75256ff93dead  IN    Contract Creation0 Ether0.006452865
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
View All
ParentTxHash Block Age From To Value
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: CollateralMonitor
Compiler Text: v0.4.24+commit.e67f0147
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

/*
 * CollateralMonitor
 *
 * This contract reports aggregated issuance
 * and collateralisation statistics for the 
 * Havven stablecoin system.
 * 
 * Author: Anton Jurisevic
 * Date: 14/06/2018
 * Version: nUSDa 1.0
 */

pragma solidity ^0.4.24;


contract Havven {
    uint public price;
    uint public issuanceRatio;
    mapping(address => uint) public nominsIssued;
    function balanceOf(address account) public view returns (uint);
    function totalSupply() public view returns (uint);
    function availableHavvens(address account) public view returns (uint);
}

contract Nomin {
    function totalSupply() public view returns (uint);
}

contract HavvenEscrow {
    function balanceOf(address account) public view returns (uint);
}

/**
 * @title Safely manipulate unsigned fixed-point decimals at a given precision level.
 * @dev Functions accepting uints in this contract and derived contracts
 * are taken to be such fixed point decimals (including fiat, ether, and nomin quantities).
 */
contract SafeDecimalMath {

    /* Number of decimal places in the representation. */
    uint8 public constant decimals = 18;

    /* The number representing 1.0. */
    uint public constant UNIT = 10 ** uint(decimals);

    /**
     * @return True iff adding x and y will not overflow.
     */
    function addIsSafe(uint x, uint y)
        pure
        internal
        returns (bool)
    {
        return x + y >= y;
    }

    /**
     * @return The result of adding x and y, throwing an exception in case of overflow.
     */
    function safeAdd(uint x, uint y)
        pure
        internal
        returns (uint)
    {
        require(x + y >= y);
        return x + y;
    }

    /**
     * @return True iff subtracting y from x will not overflow in the negative direction.
     */
    function subIsSafe(uint x, uint y)
        pure
        internal
        returns (bool)
    {
        return y <= x;
    }

    /**
     * @return The result of subtracting y from x, throwing an exception in case of overflow.
     */
    function safeSub(uint x, uint y)
        pure
        internal
        returns (uint)
    {
        require(y <= x);
        return x - y;
    }

    /**
     * @return True iff multiplying x and y would not overflow.
     */
    function mulIsSafe(uint x, uint y)
        pure
        internal
        returns (bool)
    {
        if (x == 0) {
            return true;
        }
        return (x * y) / x == y;
    }

    /**
     * @return The result of multiplying x and y, throwing an exception in case of overflow.
     */
    function safeMul(uint x, uint y)
        pure
        internal
        returns (uint)
    {
        if (x == 0) {
            return 0;
        }
        uint p = x * y;
        require(p / x == y);
        return p;
    }

    /**
     * @return The result of multiplying x and y, interpreting the operands as fixed-point
     * decimals. Throws an exception in case of overflow.
     * 
     * @dev A unit factor is divided out after the product of x and y is evaluated,
     * so that product must be less than 2**256.
     * Incidentally, the internal division always rounds down: one could have rounded to the nearest integer,
     * but then one would be spending a significant fraction of a cent (of order a microether
     * at present gas prices) in order to save less than one part in 0.5 * 10^18 per operation, if the operands
     * contain small enough fractional components. It would also marginally diminish the 
     * domain this function is defined upon. 
     */
    function safeMul_dec(uint x, uint y)
        pure
        internal
        returns (uint)
    {
        /* Divide by UNIT to remove the extra factor introduced by the product. */
        return safeMul(x, y) / UNIT;

    }

    /**
     * @return True iff the denominator of x/y is nonzero.
     */
    function divIsSafe(uint x, uint y)
        pure
        internal
        returns (bool)
    {
        return y != 0;
    }

    /**
     * @return The result of dividing x by y, throwing an exception if the divisor is zero.
     */
    function safeDiv(uint x, uint y)
        pure
        internal
        returns (uint)
    {
        /* Although a 0 denominator already throws an exception,
         * it is equivalent to a THROW operation, which consumes all gas.
         * A require statement emits REVERT instead, which remits remaining gas. */
        require(y != 0);
        return x / y;
    }

    /**
     * @return The result of dividing x by y, interpreting the operands as fixed point decimal numbers.
     * @dev Throws an exception in case of overflow or zero divisor; x must be less than 2^256 / UNIT.
     * Internal rounding is downward: a similar caveat holds as with safeDecMul().
     */
    function safeDiv_dec(uint x, uint y)
        pure
        internal
        returns (uint)
    {
        /* Reintroduce the UNIT factor that will be divided out by y. */
        return safeDiv(safeMul(x, UNIT), y);
    }

    /**
     * @dev Convert an unsigned integer to a unsigned fixed-point decimal.
     * Throw an exception if the result would be out of range.
     */
    function intToDec(uint i)
        pure
        internal
        returns (uint)
    {
        return safeMul(i, UNIT);
    }

    function min(uint a, uint b) 
        pure
        internal
        returns (uint)
    {
        return a < b ? a : b;
    }

    function max(uint a, uint b) 
        pure
        internal
        returns (uint)
    {
        return a > b ? a : b;
    }
}

/**
 * @title A contract with an owner.
 * @notice Contract ownership can be transferred by first nominating the new owner,
 * who must then accept the ownership, which prevents accidental incorrect ownership transfers.
 */
contract Owned {
    address public owner;
    address public nominatedOwner;

    /**
     * @dev Owned Constructor
     */
    constructor(address _owner)
        public
    {
        require(_owner != address(0));
        owner = _owner;
        emit OwnerChanged(address(0), _owner);
    }

    /**
     * @notice Nominate a new owner of this contract.
     * @dev Only the current owner may nominate a new owner.
     */
    function nominateNewOwner(address _owner)
        external
        onlyOwner
    {
        nominatedOwner = _owner;
        emit OwnerNominated(_owner);
    }

    /**
     * @notice Accept the nomination to be owner.
     */
    function acceptOwnership()
        external
        onlyNominatedOwner
    {
        owner = nominatedOwner;
        nominatedOwner = address(0);
        emit OwnerChanged(owner, nominatedOwner);
    }

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

    modifier onlyNominatedOwner
    {
        require(msg.sender == nominatedOwner);
        _;
    }

    event OwnerNominated(address newOwner);
    event OwnerChanged(address oldOwner, address newOwner);
}


/*
 * The CollateralMonitor queries and reports information
 * about collateralisation levels of the network.
 */
contract CollateralMonitor is Owned, SafeDecimalMath {
    
    Havven havven;
    Nomin nomin;
    HavvenEscrow escrow;

    address[] issuers;
    uint maxIssuers = 10;

    constructor(Havven _havven, Nomin _nomin, HavvenEscrow _escrow)
        Owned(msg.sender)
        public
    {
        havven = _havven;
        nomin = _nomin;
        escrow = _escrow;
    }

    function setHavven(Havven _havven)
        onlyOwner
        external
    {
        havven = _havven;
    }

    function setNomin(Nomin _nomin)
         onlyOwner
         external
    {
        nomin = _nomin;
    }

    function setEscrow(HavvenEscrow _escrow)
        onlyOwner
        external
    {
        escrow = _escrow;
    }

    function setMaxIssuers(uint newMax)
        onlyOwner
        external
    {
        maxIssuers = newMax;
    }

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

    modifier onlyNominatedOwner {
        require(msg.sender == nominatedOwner);
        _;
    }

    function pushIssuer(address issuer)
        onlyOwner
        public
    {
        for (uint i = 0; i < issuers.length; i++) {
            require(issuers[i] != issuer);
        }
        issuers.push(issuer);
    }

    function pushIssuers(address[] newIssuers)
        onlyOwner
        external
    {
        for (uint i = 0; i < issuers.length; i++) {
            pushIssuer(newIssuers[i]);
        }
    }

    function deleteIssuer(uint index)
        onlyOwner
        external
    {
        uint length = issuers.length;
        require(index < length);
        issuers[index] = issuers[length - 1];
        delete issuers[length - 1];
    }

    function resizeIssuersArray(uint size)
        onlyOwner
        external
    {
        issuers.length = size;
    }


    /**********************************\
      collateral()

      Reports the collateral available 
      for issuance of a given issuer.
    \**********************************/

    function collateral(address account)
        public
        view
        returns (uint)
    {
        return safeAdd(havven.balanceOf(account), escrow.balanceOf(account));
    }


    /**********************************\
      totalIssuingCollateral()

      Reports the collateral available 
      for issuance of all issuers.
    \**********************************/

    function _limitedTotalIssuingCollateral(uint sumLimit)
        internal
        view
        returns (uint)
    {
        uint sum;
        uint limit = min(sumLimit, issuers.length);
        for (uint i = 0; i < limit; i++) {
            sum += collateral(issuers[i]);
        } 
        return sum;
    }

    function totalIssuingCollateral()
        public
        view
        returns (uint)
    {
        return _limitedTotalIssuingCollateral(issuers.length);
    }

    function totalIssuingCollateral_limitedSum()
        public
        view
        returns (uint)
    {
        return _limitedTotalIssuingCollateral(maxIssuers);
    } 



    /********************************\
      collateralisation()
    
      Reports the collateralisation
      ratio of one account, assuming
      a nomin price of one dollar.
    \********************************/

    function collateralisation(address account)
        public
        view
        returns (uint)
    {
        safeDiv_dec(safeMul_dec(collateral(account), havven.price()), 
                    havven.nominsIssued(account));
    }


    /********************************\
      totalIssuerCollateralisation()
    
      Reports the collateralisation
      ratio of all issuers, assuming
      a nomin price of one dollar.
    \********************************/

    function totalIssuerCollateralisation()
        public
        view
        returns (uint)
    {
        safeDiv_dec(safeMul_dec(totalIssuingCollateral(), havven.price()),
                    nomin.totalSupply());
    }


    /********************************\
      totalNetworkCollateralisation()
    
      Reports the collateralisation
      ratio of the entire network,
      assuming a nomin price of one
      dollar, and that havvens can
      flow from non-issuer to issuer
      accounts.
    \********************************/

    function totalNetworkCollateralisation()
        public
        view
        returns (uint)
    {
        safeDiv_dec(safeMul_dec(havven.totalSupply(), havven.price()),
                    nomin.totalSupply());
    }


    /**************************************\
      totalIssuanceDebt()

      Reports the the (unbounded) number
      of havvens that would be locked by
      all issued nomins, if the collateral
      backing them was unlimited.
    \**************************************/

    function totalIssuanceDebt()
        public
        view
        returns (uint)
    {
        return safeDiv_dec(nomin.totalSupply(),
                           safeMul_dec(havven.issuanceRatio(), havven.price()));
    }

    function totalIssuanceDebt_limitedSum()
        public
        view
        returns (uint)
    {
        uint sum;
        uint limit = min(maxIssuers, issuers.length);
        for (uint i = 0; i < limit; i++) {
            sum += havven.nominsIssued(issuers[i]);
        }
        return safeDiv_dec(sum,
                           safeMul_dec(havven.issuanceRatio(), havven.price()));
    }


    /*************************************\
      totalLockedHavvens()

      Reports the the number of havvens
      locked by all issued nomins.
      This is capped by the actual number
      of havvens in circulation.
    \*************************************/

    function totalLockedHavvens()
        public
        view
        returns (uint)
    {
        return min(totalIssuanceDebt(), totalIssuingCollateral());
    }

    function totalLockedHavvens_limitedSum()
        public
        view
        returns (uint)
    { 
        return min(totalIssuanceDebt_limitedSum(), totalIssuingCollateral());
    }


    /****************************************************\
      totalLockedHavvens_byAvailableHavvens_limitedSum()
      
      Should be equivalent to
      totalLockedHavvens_limitedSum() but it uses an
      alternate computation method.
    \****************************************************/

    function totalLockedHavvens_byAvailableHavvens_limitedSum()
        public
        view
        returns (uint)
    {
        uint sum;
        uint limit = min(maxIssuers, issuers.length);
        for (uint i = 0; i < limit; i++) {
            address issuer = issuers[i];
            sum += safeSub(collateral(issuer), havven.availableHavvens(issuer));
        }
        return sum;
    }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"issuer","type":"address"}],"name":"pushIssuer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"nominateNewOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newIssuers","type":"address[]"}],"name":"pushIssuers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newMax","type":"uint256"}],"name":"setMaxIssuers","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"size","type":"uint256"}],"name":"resizeIssuersArray","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalIssuanceDebt_limitedSum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLockedHavvens_byAvailableHavvens_limitedSum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_havven","type":"address"}],"name":"setHavven","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalNetworkCollateralisation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nominatedOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLockedHavvens_limitedSum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_nomin","type":"address"}],"name":"setNomin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalIssuanceDebt","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalIssuingCollateral_limitedSum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLockedHavvens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNIT","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"index","type":"uint256"}],"name":"deleteIssuer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"collateral","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalIssuingCollateral","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_escrow","type":"address"}],"name":"setEscrow","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalIssuerCollateralisation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"account","type":"address"}],"name":"collateralisation","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_havven","type":"address"},{"name":"_nomin","type":"address"},{"name":"_escrow","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerNominated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"oldOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6080604052600a60065534801561001557600080fd5b506040516060806111748339810160409081528151602083015191909201513380151561004157600080fd5b60008054600160a060020a031916600160a060020a038316908117825560408051928352602083019190915280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a15060028054600160a060020a03948516600160a060020a03199182161790915560038054938516938216939093179092556004805491909316911617905561108e806100e66000396000f30060806040526004361061012f5763ffffffff60e060020a60003504166309d3770481146101345780631627540c1461015757806323fe614614610178578063244c91d4146101985780632a9ba092146101b0578063313ce567146101c857806337b9756b146101f35780633d1bd1bf1461021a5780634fa2b0a51461022f57806350754fac1461025057806353a47bb7146102655780635ab58d64146102965780635c8ea7fe146102ab57806362abda69146102cc5780636359b5b1146102e157806373d0fe48146102f657806379ba50971461030b5780638da5cb5b146103205780639d8e217714610335578063a021d76d1461034a578063a5fdc5de14610362578063b9c7ce4914610383578063c10c354614610398578063c747f120146103b9578063db6648c0146103ce575b600080fd5b34801561014057600080fd5b50610155600160a060020a03600435166103ef565b005b34801561016357600080fd5b50610155600160a060020a03600435166104a9565b34801561018457600080fd5b506101556004803560248101910135610514565b3480156101a457600080fd5b5061015560043561056b565b3480156101bc57600080fd5b50610155600435610587565b3480156101d457600080fd5b506101dd6105ae565b6040805160ff9092168252519081900360200190f35b3480156101ff57600080fd5b506102086105b3565b60408051918252519081900360200190f35b34801561022657600080fd5b506102086107aa565b34801561023b57600080fd5b50610155600160a060020a03600435166108b4565b34801561025c57600080fd5b506102086108ed565b34801561027157600080fd5b5061027a6109d0565b60408051600160a060020a039092168252519081900360200190f35b3480156102a257600080fd5b506102086109df565b3480156102b757600080fd5b50610155600160a060020a03600435166109ff565b3480156102d857600080fd5b50610208610a38565b3480156102ed57600080fd5b50610208610b1d565b34801561030257600080fd5b50610208610b2a565b34801561031757600080fd5b50610155610b37565b34801561032c57600080fd5b5061027a610bb5565b34801561034157600080fd5b50610208610bc4565b34801561035657600080fd5b50610155600435610bd0565b34801561036e57600080fd5b50610208600160a060020a0360043516610c88565b34801561038f57600080fd5b50610208610dc2565b3480156103a457600080fd5b50610155600160a060020a0360043516610dd1565b3480156103c557600080fd5b50610208610e0a565b3480156103da57600080fd5b50610208600160a060020a0360043516610e6d565b60008054600160a060020a0316331461040757600080fd5b5060005b6005548110156104565781600160a060020a031660058281548110151561042e57fe5b600091825260209091200154600160a060020a0316141561044e57600080fd5b60010161040b565b50600580546001810182556000919091527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0018054600160a060020a031916600160a060020a0392909216919091179055565b600054600160a060020a031633146104c057600080fd5b60018054600160a060020a038316600160a060020a0319909116811790915560408051918252517f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce229181900360200190a150565b60008054600160a060020a0316331461052c57600080fd5b5060005b6005548110156105665761055e83838381811061054957fe5b90506020020135600160a060020a03166103ef565b600101610530565b505050565b600054600160a060020a0316331461058257600080fd5b600655565b600054600160a060020a0316331461059e57600080fd5b806105aa600582611029565b5050565b601281565b6000806000806105ca600654600580549050610eec565b9150600090505b818110156106865760025460058054600160a060020a0390921691636fb8f3509190849081106105fd57fe5b60009182526020808320909101546040805160e060020a63ffffffff8716028152600160a060020a0390921660048301525160248083019491928390030190829087803b15801561064d57600080fd5b505af1158015610661573d6000803e3d6000fd5b505050506040513d602081101561067757600080fd5b505192909201916001016105d1565b6107a28361079d600260009054906101000a9004600160a060020a0316600160a060020a031663b410a0346040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106e057600080fd5b505af11580156106f4573d6000803e3d6000fd5b505050506040513d602081101561070a57600080fd5b5051600254604080517fa035b1fe0000000000000000000000000000000000000000000000000000000081529051600160a060020a039092169163a035b1fe916004808201926020929091908290030181600087803b15801561076c57600080fd5b505af1158015610780573d6000803e3d6000fd5b505050506040513d602081101561079657600080fd5b5051610f04565b610f2a565b935050505090565b60008060008060006107c3600654600580549050610eec565b9250600091505b828210156108ab5760058054839081106107e057fe5b600091825260209091200154600160a060020a0316905061089c61080382610c88565b600254604080517ff876fe1a000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301529151919092169163f876fe1a9160248083019260209291908290030181600087803b15801561086b57600080fd5b505af115801561087f573d6000803e3d6000fd5b505050506040513d602081101561089557600080fd5b5051610f47565b909301926001909101906107ca565b50919392505050565b600054600160a060020a031633146108cb57600080fd5b60028054600160a060020a031916600160a060020a0392909216919091179055565b60006109cc610948600260009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106e057600080fd5b600360009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561099b57600080fd5b505af11580156109af573d6000803e3d6000fd5b505050506040513d60208110156109c557600080fd5b5051610f2a565b5090565b600154600160a060020a031681565b60006109f96109ec6105b3565b6109f4610dc2565b610eec565b90505b90565b600054600160a060020a03163314610a1657600080fd5b60038054600160a060020a031916600160a060020a0392909216919091179055565b60006109f9600360009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610a9057600080fd5b505af1158015610aa4573d6000803e3d6000fd5b505050506040513d6020811015610aba57600080fd5b5051600254604080517fb410a034000000000000000000000000000000000000000000000000000000008152905161079d92600160a060020a03169163b410a0349160048083019260209291908290030181600087803b1580156106e057600080fd5b60006109f9600654610f5c565b60006109f96109ec610a38565b600154600160a060020a03163314610b4e57600080fd5b6001805460008054600160a060020a03808416600160a060020a0319928316178084559190931690935560408051939092168352602083015280517fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c9281900390910190a1565b600054600160a060020a031681565b670de0b6b3a764000081565b60008054600160a060020a03163314610be857600080fd5b50600554808210610bf857600080fd5b600580546000198301908110610c0a57fe5b60009182526020909120015460058054600160a060020a039092169184908110610c3057fe5b60009182526020909120018054600160a060020a031916600160a060020a0392909216919091179055600580546000198301908110610c6b57fe5b60009182526020909120018054600160a060020a03191690555050565b600254604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0384811660048301529151600093610dbc9316916370a0823191602480830192602092919082900301818887803b158015610cf357600080fd5b505af1158015610d07573d6000803e3d6000fd5b505050506040513d6020811015610d1d57600080fd5b505160048054604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a0388811694820194909452905192909116916370a08231916024808201926020929091908290030181600087803b158015610d8b57600080fd5b505af1158015610d9f573d6000803e3d6000fd5b505050506040513d6020811015610db557600080fd5b5051610fc1565b92915050565b6005546000906109f990610f5c565b600054600160a060020a03163314610de857600080fd5b60048054600160a060020a031916600160a060020a0392909216919091179055565b60006109cc610948610e1a610dc2565b600260009054906101000a9004600160a060020a0316600160a060020a031663a035b1fe6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561076c57600080fd5b6000610ee6610e7e610e1a84610c88565b600254604080517f6fb8f350000000000000000000000000000000000000000000000000000000008152600160a060020a03878116600483015291519190921691636fb8f3509160248083019260209291908290030181600087803b15801561099b57600080fd5b50919050565b6000818310610efb5781610efd565b825b9392505050565b6000670de0b6b3a7640000610f198484610fd7565b811515610f2257fe5b049392505050565b6000610efd610f4184670de0b6b3a7640000610fd7565b83611010565b600082821115610f5657600080fd5b50900390565b600080600080610f7185600580549050610eec565b9150600090505b81811015610fb857610fac600582815481101515610f9257fe5b600091825260209091200154600160a060020a0316610c88565b90920191600101610f78565b50909392505050565b6000828201821115610fd257600080fd5b500190565b600080831515610fea5760009150611009565b50828202828482811515610ffa57fe5b041461100557600080fd5b8091505b5092915050565b600081151561101e57600080fd5b8183811515610f2257fe5b815481835581811115610566576000838152602090206105669181019083016109fc91905b808211156109cc576000815560010161104e5600a165627a7a723058205cc452b13fa9ffb16eff776d42640f35cb9f2c12aac5e3e4d805c1b4a03a69b10029000000000000000000000000c011a72400e58ecd99ee497cf89e3775d4bd732f00000000000000000000000057ab1e02fee23774580c119740129eac7081e9d3000000000000000000000000971e78e0c92392a4e39099835cf7e6ab535b2227

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

-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000c011a72400e58ecd99ee497cf89e3775d4bd732f
Arg [1] : 00000000000000000000000057ab1e02fee23774580c119740129eac7081e9d3
Arg [2] : 000000000000000000000000971e78e0c92392a4e39099835cf7e6ab535b2227


   Swarm Source:
bzzr://5cc452b13fa9ffb16eff776d42640f35cb9f2c12aac5e3e4d805c1b4a03a69b1

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.