ETH Price: $3,423.88 (-2.25%)

Contract

0x3984fc4ceEeF1739135476f625D36d6c35c40dc3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Initialize Round142041612022-02-14 12:00:101368 days ago1644840010IN
Livepeer: Proxy Rounds Manager
0 ETH0.0055989939.60218553
Initialize Round141984012022-02-13 14:48:391368 days ago1644763719IN
Livepeer: Proxy Rounds Manager
0 ETH0.0059133141.82541158
Initialize Round141926432022-02-12 17:32:221369 days ago1644687142IN
Livepeer: Proxy Rounds Manager
0 ETH0.0070560349.90792788
Initialize Round141868832022-02-11 20:20:381370 days ago1644610838IN
Livepeer: Proxy Rounds Manager
0 ETH0.0122702386.78840206
Initialize Round141811212022-02-10 22:50:471371 days ago1644533447IN
Livepeer: Proxy Rounds Manager
0 ETH0.0170104120.31609503
Initialize Round141753612022-02-10 1:19:181372 days ago1644455958IN
Livepeer: Proxy Rounds Manager
0 ETH0.0091689964.85312514
Initialize Round141696022022-02-09 4:01:251373 days ago1644379285IN
Livepeer: Proxy Rounds Manager
0 ETH0.009860869.7463208
Initialize Round141638412022-02-08 6:34:091374 days ago1644302049IN
Livepeer: Proxy Rounds Manager
0 ETH0.0141247299.90536894
Initialize Round141580812022-02-07 9:16:341375 days ago1644225394IN
Livepeer: Proxy Rounds Manager
0 ETH0.0123481787.33967232
Initialize Round141523232022-02-06 11:48:411376 days ago1644148121IN
Livepeer: Proxy Rounds Manager
0 ETH0.0067878248.01087169
Initialize Round141466482022-02-05 14:53:471376 days ago1644072827IN
Livepeer: Proxy Rounds Manager
0 ETH0.0062309144.07179599
Initialize Round141408012022-02-04 17:14:141377 days ago1643994854IN
Livepeer: Proxy Rounds Manager
0 ETH0.02511897177.66867836
Initialize Round141350412022-02-03 19:54:071378 days ago1643918047IN
Livepeer: Proxy Rounds Manager
0 ETH0.0180714127.82058956
Initialize Round141292832022-02-02 22:22:411379 days ago1643840561IN
Livepeer: Proxy Rounds Manager
0 ETH0.02750814194.56746121
Initialize Round141235222022-02-02 0:59:251380 days ago1643763565IN
Livepeer: Proxy Rounds Manager
0 ETH0.02282935161.47402729
Initialize Round141177622022-02-01 3:40:501381 days ago1643686850IN
Livepeer: Proxy Rounds Manager
0 ETH0.02023125143.09741777
Initialize Round141120012022-01-31 6:25:421382 days ago1643610342IN
Livepeer: Proxy Rounds Manager
0 ETH0.0119146284.27316103
Initialize Round141062422022-01-30 9:09:121383 days ago1643533752IN
Livepeer: Proxy Rounds Manager
0 ETH0.0101060171.48070686
Initialize Round141004812022-01-29 11:50:441384 days ago1643457044IN
Livepeer: Proxy Rounds Manager
0 ETH0.012279486.85332488
Initialize Round140947222022-01-28 14:32:251384 days ago1643380345IN
Livepeer: Proxy Rounds Manager
0 ETH0.0140373499.2873193
Initialize Round140889622022-01-27 17:08:431385 days ago1643303323IN
Livepeer: Proxy Rounds Manager
0 ETH0.029271207.03636417
Initialize Round140832012022-01-26 19:39:451386 days ago1643225985IN
Livepeer: Proxy Rounds Manager
0 ETH0.03627969256.60941563
Initialize Round140774412022-01-25 22:22:051387 days ago1643149325IN
Livepeer: Proxy Rounds Manager
0 ETH0.02124938150.29872376
Initialize Round140716832022-01-25 0:52:561388 days ago1643071976IN
Livepeer: Proxy Rounds Manager
0 ETH0.02195281155.27411851
Initialize Round140659222022-01-24 3:33:131389 days ago1642995193IN
Livepeer: Proxy Rounds Manager
0 ETH0.01751392123.87752668
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

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

Contract Name:
ManagerProxy

Compiler Version
v0.4.18+commit.9cf6e910

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2018-04-30
*/

pragma solidity 0.4.18;

/**
 * @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 ManagerProxy
 * @dev A proxy contract that uses delegatecall to execute function calls on a target contract using its own storage context.
 * The target contract is a Manager contract that is registered with the Controller.
 * Note: Both this proxy contract and its target contract 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 ManagerProxy is ManagerProxyTarget {
    /**
     * @dev ManagerProxy constructor. Invokes constructor of base Manager contract with provided Controller address.
     * Also, sets the contract ID of the target contract that function calls will be executed on.
     * @param _controller Address of Controller that this contract will be registered with
     * @param _targetContractId contract ID of the target contract
     */
    function ManagerProxy(address _controller, bytes32 _targetContractId) public Manager(_controller) {
        targetContractId = _targetContractId;
    }

    /**
     * @dev Uses delegatecall to execute function calls on this proxy contract's target contract using its own storage context.
     * This fallback function will look up the address of the target contract using the Controller and the target contract ID.
     * It will then use the calldata for a function call as the data payload for a delegatecall on the target contract. The return value
     * of the executed function call will also be returned
     */
    function() public payable {
        address target = controller.getContract(targetContractId);
        // Target contract must be registered
        require(target > 0);

        assembly {
            // Solidity keeps a free memory pointer at position 0x40 in memory
            let freeMemoryPtrPosition := 0x40
            // Load the free memory pointer
            let calldataMemoryOffset := mload(freeMemoryPtrPosition)
            // Update free memory pointer to after memory space we reserve for calldata
            mstore(freeMemoryPtrPosition, add(calldataMemoryOffset, calldatasize))
            // Copy calldata (method signature and params of the call) to memory
            calldatacopy(calldataMemoryOffset, 0x0, calldatasize)

            // Call method on target contract using calldata which is loaded into memory
            let ret := delegatecall(gas, target, calldataMemoryOffset, calldatasize, 0, 0)

            // Load the free memory pointer
            let returndataMemoryOffset := mload(freeMemoryPtrPosition)
            // Update free memory pointer to after memory space we reserve for returndata
            mstore(freeMemoryPtrPosition, add(returndataMemoryOffset, returndatasize))
            // Copy returndata (result of the method invoked by the delegatecall) to memory
            returndatacopy(returndataMemoryOffset, 0x0, returndatasize)

            switch ret
            case 0 {
                // Method call failed - revert
                // Return any error message stored in mem[returndataMemoryOffset..(returndataMemoryOffset + returndatasize)]
                revert(returndataMemoryOffset, returndatasize)
            } default {
                // Return result of method call stored in mem[returndataMemoryOffset..(returndataMemoryOffset + returndatasize)]
                return(returndataMemoryOffset, returndatasize)
            }
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":true,"inputs":[],"name":"targetContractId","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_controller","type":"address"}],"name":"setController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_controller","type":"address"},{"name":"_targetContractId","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"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"}]

0x6060604052341561000f57600080fd5b6040516040806102c1833981016040528080519190602001805160008054600160a060020a03909516600160a060020a03199095169490941790935550506001556102628061005f6000396000f3006060604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166351720b41811461012957806392eefe9b1461014e578063f77c47911461016f575b60008054600154600160a060020a039091169063e16c7d989083604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156100c657600080fd5b6102c65a03f115156100d757600080fd5b50505060405180519150506000600160a060020a038216116100f857600080fd5b60408051368101825236600082376000803683865af482513d810184523d6000823e818015610125573d82f35b3d82fd5b341561013457600080fd5b61013c61019e565b60405190815260200160405180910390f35b341561015957600080fd5b61016d600160a060020a03600435166101a4565b005b341561017a57600080fd5b610182610227565b604051600160a060020a03909116815260200160405180910390f35b60015481565b60005433600160a060020a039081169116146101bf57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790557f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f7081604051600160a060020a03909116815260200160405180910390a150565b600054600160a060020a0316815600a165627a7a72305820fa5f0289c65e778974a9053cc084cca4243aeff0c7e397916217d67d484740450029000000000000000000000000f96d54e490317c557a967abfa5d6e33006be69b356f65aba3e3e5b6d5adbc6cdc14c51957893b21d4a6a56260af4e03af7e1a51d

Deployed Bytecode

0x6060604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166351720b41811461012957806392eefe9b1461014e578063f77c47911461016f575b60008054600154600160a060020a039091169063e16c7d989083604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156100c657600080fd5b6102c65a03f115156100d757600080fd5b50505060405180519150506000600160a060020a038216116100f857600080fd5b60408051368101825236600082376000803683865af482513d810184523d6000823e818015610125573d82f35b3d82fd5b341561013457600080fd5b61013c61019e565b60405190815260200160405180910390f35b341561015957600080fd5b61016d600160a060020a03600435166101a4565b005b341561017a57600080fd5b610182610227565b604051600160a060020a03909116815260200160405180910390f35b60015481565b60005433600160a060020a039081169116146101bf57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790557f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f7081604051600160a060020a03909116815260200160405180910390a150565b600054600160a060020a0316815600a165627a7a72305820fa5f0289c65e778974a9053cc084cca4243aeff0c7e397916217d67d484740450029

Swarm Source

bzzr://fa5f0289c65e778974a9053cc084cca4243aeff0c7e397916217d67d48474045

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.