[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click here To View More View All
ParentTxHash Block Age From To Value
0xfb462998731d19ea4c830de18676672ddf86856a1dee0d00e6558c70e2d22f3438915931 day 8 mins ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0xfb462998731d19ea4c830de18676672ddf86856a1dee0d00e6558c70e2d22f3438915931 day 8 mins ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x8312077001569d29d39d343420b68ede5afd5f31bd4b91829e896d056894a62d38915741 day 13 mins ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x8312077001569d29d39d343420b68ede5afd5f31bd4b91829e896d056894a62d38915741 day 13 mins ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x6233aa5c558ea6278536a6d3ebdadd83b64e655e430561946fbde9ba65445ba738915691 day 14 mins ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x6233aa5c558ea6278536a6d3ebdadd83b64e655e430561946fbde9ba65445ba738915691 day 14 mins ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x30006c7314ea16dbd47d0d7e667cfaefb2006083179c7f6ea13bb42af201e2f938915581 day 17 mins ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x30006c7314ea16dbd47d0d7e667cfaefb2006083179c7f6ea13bb42af201e2f938915581 day 17 mins ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x1c10cdbce5c784f27752f8ea0456e1806bf5365cc3ffaec270288965e031368c38689734 days 22 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x1c10cdbce5c784f27752f8ea0456e1806bf5365cc3ffaec270288965e031368c38689734 days 22 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x6c6605d50cf6181177d6d8760a6043daf611e45053c01b2e9bd42eb1014a2b6e38689574 days 22 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x6c6605d50cf6181177d6d8760a6043daf611e45053c01b2e9bd42eb1014a2b6e38689574 days 22 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0xabf5d5e917bfd2c174c06a1a9e2deecb8a995351727996321c7fc957e83bc3ab38689154 days 22 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0xabf5d5e917bfd2c174c06a1a9e2deecb8a995351727996321c7fc957e83bc3ab38689154 days 22 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0xabd9ea7156303988507bd585f62985939e8f49d7084d0da6612ef02bba858ac138621656 days 2 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0xabd9ea7156303988507bd585f62985939e8f49d7084d0da6612ef02bba858ac138621656 days 2 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x1f0a5b702da21dc06f32e10645c86f17bcfac403b925312bd46a6a37ffde8de038621646 days 2 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x1f0a5b702da21dc06f32e10645c86f17bcfac403b925312bd46a6a37ffde8de038621646 days 2 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x4aa31c7cbbdf3f32db5739bbfc0cdecbeb1cfeae2b2d877b30e2b69a492308a638621636 days 2 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0xa640ffbc736f9b3bec47d599c6941f173579e9f278c250f31d262a855d0c529838621636 days 2 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0xb6798a8e0a0b9fe95c19514b4b9debc913e0755c65b6786d5af10f8fdd4b9ca138621636 days 2 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x7fad470890b963cf878c5fcae350bf1a9fee8f2cc50cbb1d07f91ff8ab9ac6e338621636 days 2 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x6998e5eaab692c5f86ea35b3ca473ee247fb042e874634289fc0a06f8fe2655038621636 days 2 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x6998e5eaab692c5f86ea35b3ca473ee247fb042e874634289fc0a06f8fe2655038621636 days 2 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
0x8cbeacca8ad7f38e90127c501647810d9a68a8652ae78b5f9e7ec6854dc524f938621636 days 2 hrs ago0xeb0ef46b5771d523402234ff0d7596d2c62411de0xe0f05ad1eeb0abf849e843632ecaedbf56ca29010 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: RoundsManager
Compiler Version: v0.4.18+commit.9cf6e910
Optimization Enabled: Yes
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity 0.4.18;

/**
 * @title SafeMath
 * @dev Math operations with safety checks that throw on error
 */
library SafeMath {
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

library MathUtils {
    using SafeMath for uint256;

    // Divisor used for representing percentages
    uint256 public constant PERC_DIVISOR = 1000000;

    /*
     * @dev Returns whether an amount is a valid percentage out of PERC_DIVISOR
     * @param _amount Amount that is supposed to be a percentage
     */
    function validPerc(uint256 _amount) internal pure returns (bool) {
        return _amount <= PERC_DIVISOR;
    }

    /*
     * @dev Compute percentage of a value with the percentage represented by a fraction
     * @param _amount Amount to take the percentage of
     * @param _fracNum Numerator of fraction representing the percentage
     * @param _fracDenom Denominator of fraction representing the percentage
     */
    function percOf(uint256 _amount, uint256 _fracNum, uint256 _fracDenom) internal pure returns (uint256) {
        return _amount.mul(percPoints(_fracNum, _fracDenom)).div(PERC_DIVISOR);
    }

    /*
     * @dev Compute percentage of a value with the percentage represented by a fraction over PERC_DIVISOR
     * @param _amount Amount to take the percentage of
     * @param _fracNum Numerator of fraction representing the percentage with PERC_DIVISOR as the denominator
     */
    function percOf(uint256 _amount, uint256 _fracNum) internal pure returns (uint256) {
        return _amount.mul(_fracNum).div(PERC_DIVISOR);
    }

    /*
     * @dev Compute percentage representation of a fraction
     * @param _fracNum Numerator of fraction represeting the percentage
     * @param _fracDenom Denominator of fraction represeting the percentage
     */
    function percPoints(uint256 _fracNum, uint256 _fracDenom) internal pure returns (uint256) {
        return _fracNum.mul(PERC_DIVISOR).div(_fracDenom);
    }
}

/**
 * @title Ownable
 * @dev The Ownable contract has an owner address, and provides basic authorization control
 * functions, this simplifies the implementation of "user permissions".
 */
contract Ownable {
  address public owner;


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


  /**
   * @dev The Ownable constructor sets the original `owner` of the contract to the sender
   * account.
   */
  function Ownable() public {
    owner = msg.sender;
  }


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


  /**
   * @dev Allows the current owner to transfer control of the contract to a newOwner.
   * @param newOwner The address to transfer ownership to.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    require(newOwner != address(0));
    OwnershipTransferred(owner, newOwner);
    owner = newOwner;
  }

}

/**
 * @title Pausable
 * @dev Base contract which allows children to implement an emergency stop mechanism.
 */
contract Pausable is Ownable {
    event Pause();
    event Unpause();

    bool public paused = false;


    /**
     * @dev Modifier to make a function callable only when the contract is not paused.
     */
    modifier whenNotPaused() {
        require(!paused);
        _;
    }

    /**
     * @dev Modifier to make a function callable only when the contract is paused.
     */
    modifier whenPaused() {
        require(paused);
        _;
    }

    /**
     * @dev called by the owner to pause, triggers stopped state
     */
    function pause() onlyOwner whenNotPaused public {
        paused = true;
        Pause();
    }

    /**
     * @dev called by the owner to unpause, returns to normal state
     */
    function unpause() onlyOwner whenPaused public {
        paused = false;
        Unpause();
    }
}

contract IController is Pausable {
    event SetContractInfo(bytes32 id, address contractAddress, bytes20 gitCommitHash);

    function setContractInfo(bytes32 _id, address _contractAddress, bytes20 _gitCommitHash) external;
    function updateController(bytes32 _id, address _controller) external;
    function getContract(bytes32 _id) public view returns (address);
}

contract IManager {
    event SetController(address controller);
    event ParameterUpdate(string param);

    function setController(address _controller) external;
}

contract Manager is IManager {
    // Controller that contract is registered with
    IController public controller;

    // Check if sender is controller
    modifier onlyController() {
        require(msg.sender == address(controller));
        _;
    }

    // Check if sender is controller owner
    modifier onlyControllerOwner() {
        require(msg.sender == controller.owner());
        _;
    }

    // Check if controller is not paused
    modifier whenSystemNotPaused() {
        require(!controller.paused());
        _;
    }

    // Check if controller is paused
    modifier whenSystemPaused() {
        require(controller.paused());
        _;
    }

    function Manager(address _controller) public {
        controller = IController(_controller);
    }

    /*
     * @dev Set controller. Only callable by current controller
     * @param _controller Controller contract address
     */
    function setController(address _controller) external onlyController {
        controller = IController(_controller);

        SetController(_controller);
    }
}

/**
 * @title ManagerProxyTarget
 * @dev The base contract that target contracts used by a proxy contract should inherit from
 * Note: Both the target contract and the proxy contract (implemented as ManagerProxy) MUST inherit from ManagerProxyTarget in order to guarantee
 * that both contracts have the same storage layout. Differing storage layouts in a proxy contract and target contract can
 * potentially break the delegate proxy upgradeability mechanism
 */
contract ManagerProxyTarget is Manager {
    // Used to look up target contract address in controller's registry
    bytes32 public targetContractId;
}

/**
 * @title Minter interface
 */
contract IMinter {
    // Events
    event SetCurrentRewardTokens(uint256 currentMintableTokens, uint256 currentInflation);

    // External functions
    function createReward(uint256 _fracNum, uint256 _fracDenom) external returns (uint256);
    function trustedTransferTokens(address _to, uint256 _amount) external;
    function trustedBurnTokens(uint256 _amount) external;
    function trustedWithdrawETH(address _to, uint256 _amount) external;
    function depositETH() external payable returns (bool);
    function setCurrentRewardTokens() external;

    // Public functions
    function getController() public view returns (IController);
}

/*
 * @title Interface for BondingManager
 */
contract IBondingManager {
    event TranscoderUpdate(address indexed transcoder, uint256 pendingRewardCut, uint256 pendingFeeShare, uint256 pendingPricePerSegment, bool registered);
    event TranscoderEvicted(address indexed transcoder);
    event TranscoderResigned(address indexed transcoder);
    event TranscoderSlashed(address indexed transcoder, address finder, uint256 penalty, uint256 finderReward);
    event Reward(address indexed transcoder, uint256 amount);
    event Bond(address indexed delegate, address indexed delegator);
    event Unbond(address indexed delegate, address indexed delegator);
    event WithdrawStake(address indexed delegator);
    event WithdrawFees(address indexed delegator);

    // External functions
    function setActiveTranscoders() external;
    function updateTranscoderWithFees(address _transcoder, uint256 _fees, uint256 _round) external;
    function slashTranscoder(address _transcoder, address _finder, uint256 _slashAmount, uint256 _finderFee) external;
    function electActiveTranscoder(uint256 _maxPricePerSegment, bytes32 _blockHash, uint256 _round) external view returns (address);

    // Public functions
    function transcoderTotalStake(address _transcoder) public view returns (uint256);
    function activeTranscoderTotalStake(address _transcoder, uint256 _round) public view returns (uint256);
    function isRegisteredTranscoder(address _transcoder) public view returns (bool);
    function getTotalBonded() public view returns (uint256);
}

/**
 * @title RoundsManager interface
 */
contract IRoundsManager {
    // Events
    event NewRound(uint256 round);

    // External functions
    function initializeRound() external;

    // Public functions
    function blockNum() public view returns (uint256);
    function blockHash(uint256 _block) public view returns (bytes32);
    function currentRound() public view returns (uint256);
    function currentRoundStartBlock() public view returns (uint256);
    function currentRoundInitialized() public view returns (bool);
    function currentRoundLocked() public view returns (bool);
}

/**
 * @title RoundsManager
 * @dev Manages round progression and other blockchain time related operations of the Livepeer protocol
 */
contract RoundsManager is ManagerProxyTarget, IRoundsManager {
    using SafeMath for uint256;

    // Round length in blocks
    uint256 public roundLength;
    // Lock period of a round as a % of round length
    // Transcoders cannot join the transcoder pool or change their rates during the lock period at the end of a round
    // The lock period provides delegators time to review transcoder information without changes
    // # of blocks in the lock period = (roundLength * roundLockAmount) / PERC_DIVISOR
    uint256 public roundLockAmount;
    // Last initialized round. After first round, this is the last round during which initializeRound() was called
    uint256 public lastInitializedRound;
    // Round in which roundLength was last updated
    uint256 public lastRoundLengthUpdateRound;
    // Start block of the round in which roundLength was last updated
    uint256 public lastRoundLengthUpdateStartBlock;

    /**
     * @dev RoundsManager constructor. Only invokes constructor of base Manager contract with provided Controller address
     * @param _controller Address of Controller that this contract will be registered with
     */
    function RoundsManager(address _controller) public Manager(_controller) {}

    /**
     * @dev Set round length. Only callable by the controller owner
     * @param _roundLength Round length in blocks
     */
    function setRoundLength(uint256 _roundLength) external onlyControllerOwner {
        // Round length cannot be 0
        require(_roundLength > 0);

        if (roundLength == 0) {
            // If first time initializing roundLength, set roundLength before
            // lastRoundLengthUpdateRound and lastRoundLengthUpdateStartBlock
            roundLength = _roundLength;
            lastRoundLengthUpdateRound = currentRound();
            lastRoundLengthUpdateStartBlock = currentRoundStartBlock();
        } else {
            // If updating roundLength, set roundLength after
            // lastRoundLengthUpdateRound and lastRoundLengthUpdateStartBlock
            lastRoundLengthUpdateRound = currentRound();
            lastRoundLengthUpdateStartBlock = currentRoundStartBlock();
            roundLength = _roundLength;
        }

        ParameterUpdate("roundLength");
    }

    /**
     * @dev Set round lock amount. Only callable by the controller owner
     * @param _roundLockAmount Round lock amount as a % of the number of blocks in a round
     */
    function setRoundLockAmount(uint256 _roundLockAmount) external onlyControllerOwner {
        roundLockAmount = _roundLockAmount;

        ParameterUpdate("roundLockAmount");
    }

    /**
     * @dev Initialize the current round. Called once at the start of any round
     */
    function initializeRound() external whenSystemNotPaused {
        uint256 currRound = currentRound();

        // Check if already called for the current round
        require(lastInitializedRound < currRound);

        // Set current round as initialized
        lastInitializedRound = currRound;
        // Set active transcoders for the round
        bondingManager().setActiveTranscoders();
        // Set mintable rewards for the round
        minter().setCurrentRewardTokens();

        NewRound(currRound);
    }

    /**
     * @dev Return current block number
     */
    function blockNum() public view returns (uint256) {
        return block.number;
    }

    /**
     * @dev Return blockhash for a block
     */
    function blockHash(uint256 _block) public view returns (bytes32) {
        uint256 currentBlock = blockNum();
        // Can only retrieve past block hashes
        require(_block < currentBlock);
        // Can only retrieve hashes for last 256 blocks
        require(currentBlock < 256 || _block >= currentBlock - 256);

        return block.blockhash(_block);
    }

    /**
     * @dev Return current round
     */
    function currentRound() public view returns (uint256) {
        // Compute # of rounds since roundLength was last updated
        uint256 roundsSinceUpdate = blockNum().sub(lastRoundLengthUpdateStartBlock).div(roundLength);
        // Current round = round that roundLength was last updated + # of rounds since roundLength was last updated
        return lastRoundLengthUpdateRound.add(roundsSinceUpdate);
    }

    /**
     * @dev Return start block of current round
     */
    function currentRoundStartBlock() public view returns (uint256) {
        // Compute # of rounds since roundLength was last updated
        uint256 roundsSinceUpdate = blockNum().sub(lastRoundLengthUpdateStartBlock).div(roundLength);
        // Current round start block = start block of round that roundLength was last updated + (# of rounds since roundLenght was last updated * roundLength)
        return lastRoundLengthUpdateStartBlock.add(roundsSinceUpdate.mul(roundLength));
    }

    /**
     * @dev Check if current round is initialized
     */
    function currentRoundInitialized() public view returns (bool) {
        return lastInitializedRound == currentRound();
    }

    /**
     * @dev Check if we are in the lock period of the current round
     */
    function currentRoundLocked() public view returns (bool) {
        uint256 lockedBlocks = MathUtils.percOf(roundLength, roundLockAmount);
        return blockNum().sub(currentRoundStartBlock()) >= roundLength.sub(lockedBlocks);
    }

    /**
     * @dev Return BondingManager interface
     */
    function bondingManager() internal view returns (IBondingManager) {
        return IBondingManager(controller.getContract(keccak256("BondingManager")));
    }

    /**
     * @dev Return Minter interface
     */
    function minter() internal view returns (IMinter) {
        return IMinter(controller.getContract(keccak256("Minter")));
    }
}

    Contract ABI  
[{"constant":false,"inputs":[{"name":"_roundLockAmount","type":"uint256"}],"name":"setRoundLockAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lastRoundLengthUpdateRound","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentRoundInitialized","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"targetContractId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastRoundLengthUpdateStartBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_roundLength","type":"uint256"}],"name":"setRoundLength","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentRoundLocked","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_block","type":"uint256"}],"name":"blockHash","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lastInitializedRound","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentRound","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"blockNum","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"roundLength","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"currentRoundStartBlock","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_controller","type":"address"}],"name":"setController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"initializeRound","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"roundLockAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_controller","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"round","type":"uint256"}],"name":"NewRound","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"controller","type":"address"}],"name":"SetController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"param","type":"string"}],"name":"ParameterUpdate","type":"event"}]

  Contract Creation Code Switch To Opcodes View
6060604052341561000f57600080fd5b604051602080610a1a8339810160405280805160008054600160a060020a03909216600160a060020a031990921691909117905550506109c6806100546000396000f3006060604052600436106100d75763ffffffff60e060020a6000350416630b1573b881146100dc5780630fe1dfa8146100f4578063219bc76c1461011957806351720b4114610140578063668abff714610153578063681312f5146101665780636841f2531461017c57806385df51fd1461018f5780638807f36e146101a55780638a19c8bc146101b85780638ae63d6d146101cb5780638b649b94146101de5780638fa148f2146101f157806392eefe9b14610204578063d4807fb214610223578063f5b490d514610236578063f77c479114610249575b600080fd5b34156100e757600080fd5b6100f2600435610278565b005b34156100ff57600080fd5b610107610368565b60405190815260200160405180910390f35b341561012457600080fd5b61012c61036e565b604051901515815260200160405180910390f35b341561014b57600080fd5b610107610381565b341561015e57600080fd5b610107610387565b341561017157600080fd5b6100f260043561038d565b341561018757600080fd5b61012c6104ca565b341561019a57600080fd5b610107600435610518565b34156101b057600080fd5b610107610556565b34156101c357600080fd5b61010761055c565b34156101d657600080fd5b61010761059b565b34156101e957600080fd5b61010761059f565b34156101fc57600080fd5b6101076105a5565b341561020f57600080fd5b6100f2600160a060020a03600435166105e5565b341561022e57600080fd5b6100f2610668565b341561024157600080fd5b6101076107da565b341561025457600080fd5b61025c6107e0565b604051600160a060020a03909116815260200160405180910390f35b60008054600160a060020a031690638da5cb5b90604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102c157600080fd5b6102c65a03f115156102d257600080fd5b50505060405180519050600160a060020a031633600160a060020a03161415156102fb57600080fd5b60038190557f9f5033568d78ae30f29f01e944f97b2216493bd19d1b46d429673acff3dcd6746040516020808252600f908201527f726f756e644c6f636b416d6f756e7400000000000000000000000000000000006040808301919091526060909101905180910390a150565b60055481565b600061037861055c565b60045414905090565b60015481565b60065481565b60008054600160a060020a031690638da5cb5b90604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156103d657600080fd5b6102c65a03f115156103e757600080fd5b50505060405180519050600160a060020a031633600160a060020a031614151561041057600080fd5b6000811161041d57600080fd5b600254151561044657600281905561043361055c565b60055561043e6105a5565b600655610462565b61044e61055c565b6005556104596105a5565b60065560028190555b7f9f5033568d78ae30f29f01e944f97b2216493bd19d1b46d429673acff3dcd6746040516020808252600b908201527f726f756e644c656e6774680000000000000000000000000000000000000000006040808301919091526060909101905180910390a150565b6000806104db6002546003546107ef565b6002549091506104f1908263ffffffff61080f16565b6105106104fc6105a5565b61050461059b565b9063ffffffff61080f16565b101591505090565b60008061052361059b565b905080831061053157600080fd5b610100811080610545575061010081038310155b151561055057600080fd5b50504090565b60045481565b60008061057f60025461057360065461050461059b565b9063ffffffff61082116565b600554909150610595908263ffffffff61083d16565b91505090565b4390565b60025481565b6000806105bc60025461057360065461050461059b565b90506105956105d66002548361084c90919063ffffffff16565b6006549063ffffffff61083d16565b60005433600160a060020a0390811691161461060057600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790557f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f7081604051600160a060020a03909116815260200160405180910390a150565b60008054600160a060020a0316635c975abb82604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156106b057600080fd5b6102c65a03f115156106c157600080fd5b50505060405180511590506106d557600080fd5b6106dd61055c565b9050806004541015156106ef57600080fd5b60048190556106fc610877565b600160a060020a031663242ed69f6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561073857600080fd5b6102c65a03f1151561074957600080fd5b505050610754610918565b600160a060020a031663ece2064c6040518163ffffffff1660e060020a028152600401600060405180830381600087803b151561079057600080fd5b6102c65a03f115156107a157600080fd5b5050507fa2b5357eea32aeb35142ba36b087f9fe674f34f8b57ce94d30e9f4f572195bcf8160405190815260200160405180910390a150565b60035481565b600054600160a060020a031681565b6000610808620f4240610573858563ffffffff61084c16565b9392505050565b60008282111561081b57fe5b50900390565b600080828481151561082f57fe5b0490508091505b5092915050565b60008282018381101561080857fe5b60008083151561085f5760009150610836565b5082820282848281151561086f57fe5b041461080857fe5b60008054600160a060020a031663e16c7d986040517f426f6e64696e674d616e616765720000000000000000000000000000000000008152600e01604051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156108f957600080fd5b6102c65a03f1151561090a57600080fd5b505050604051805191505090565b60008054600160a060020a031663e16c7d986040517f4d696e74657200000000000000000000000000000000000000000000000000008152600601604051809103902060006040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156108f957600080fd00a165627a7a72305820cbbe49a065f406ecf07c367231b6b480f0a0cc2ffcc5345d70a8f35ee9cd4827002900000000000000000000000037dc71366ec655093b9930bc816e16e6b587f968

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

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


   Swarm Source:
bzzr://cbbe49a065f406ecf07c367231b6b480f0a0cc2ffcc5345d70a8f35ee9cd4827

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward