ETH Price: $1,601.33 (+1.52%)
 
Transaction Hash
Method
Block
From
To
0x075f040a3da5f2946143c1ec461a136f18d34999da392bc8d8188281c5aabc8f Bond(pending)2025-04-13 14:15:163 days ago1744553716IN
Livepeer: Proxy Bonding Manager
0 ETH(Pending)(Pending)
0x14583391a6598c903a05aa38e0d979671ea860e5c728021045adc0759942d7fc Claim Snapshot E...(pending)2025-04-13 6:37:154 days ago1744526235IN
Livepeer: Proxy Bonding Manager
0 ETH(Pending)(Pending)
0xdd852e5f7f4988f771192d20ddb82ef32cd847f5e96b608efd319223b0c83af4 Bond(pending)2025-04-13 6:19:174 days ago1744525157IN
Livepeer: Proxy Bonding Manager
0 ETH(Pending)(Pending)
Bond With Hint217835512025-02-05 23:22:1170 days ago1738797731IN
Livepeer: Proxy Bonding Manager
0 ETH0.000038581
Claim Earnings204533642024-08-04 6:22:11256 days ago1722752531IN
Livepeer: Proxy Bonding Manager
0 ETH0.000037351
Bond With Hint203940452024-07-26 23:36:35264 days ago1722036995IN
Livepeer: Proxy Bonding Manager
0 ETH0.0036645994
Claim Snapshot E...201450212024-06-22 5:00:23299 days ago1719032423IN
Livepeer: Proxy Bonding Manager
0 ETH0.000135353
Claim Snapshot E...201450202024-06-22 5:00:11299 days ago1719032411IN
Livepeer: Proxy Bonding Manager
0 ETH0.000090232
Withdraw Stake165743862023-02-07 4:00:47800 days ago1675742447IN
Livepeer: Proxy Bonding Manager
0 ETH0.0011210130
Bond With Hint160867452022-12-01 1:43:23868 days ago1669859003IN
Livepeer: Proxy Bonding Manager
0 ETH0.0004525311.71966271
Bond With Hint152919222022-08-07 0:16:23984 days ago1659831383IN
Livepeer: Proxy Bonding Manager
0 ETH0.000092612.4
Claim Snapshot E...152486472022-07-31 6:33:37991 days ago1659249217IN
Livepeer: Proxy Bonding Manager
0 ETH0.000135353
Bond With Hint151985792022-07-23 11:13:21999 days ago1658574801IN
Livepeer: Proxy Bonding Manager
0 ETH0.00015444
Claim Earnings150662642022-07-03 0:19:471019 days ago1656807587IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662642022-07-03 0:19:471019 days ago1656807587IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662642022-07-03 0:19:471019 days ago1656807587IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662642022-07-03 0:19:471019 days ago1656807587IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662322022-07-03 0:13:081019 days ago1656807188IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662322022-07-03 0:13:081019 days ago1656807188IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662322022-07-03 0:13:081019 days ago1656807188IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Reward With Hint146458332022-04-24 6:18:141089 days ago1650781094IN
Livepeer: Proxy Bonding Manager
0 ETH0.000771920.30967342
Reward With Hint146458332022-04-24 6:18:141089 days ago1650781094IN
Livepeer: Proxy Bonding Manager
0 ETH0.000771920.30967342
Unbond With Hint144609482022-03-26 9:06:281118 days ago1648285588IN
Livepeer: Proxy Bonding Manager
0 ETH0.0008178921.69946347
Unbond With Hint144609102022-03-26 8:58:441118 days ago1648285124IN
Livepeer: Proxy Bonding Manager
0 ETH0.0007379419.5783347
Unbond With Hint144254212022-03-20 20:28:501123 days ago1647808130IN
Livepeer: Proxy Bonding Manager
0 ETH0.0009958426.40380109
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 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
/**
 *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"}]

Deployed Bytecode

0x6060604052600436106100565763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166351720b41811461012957806392eefe9b1461014e578063f77c47911461016f575b60008054600154600160a060020a039091169063e16c7d989083604051602001526040517c010000000000000000000000000000000000000000000000000000000063ffffffff84160281526004810191909152602401602060405180830381600087803b15156100c657600080fd5b6102c65a03f115156100d757600080fd5b50505060405180519150506000600160a060020a038216116100f857600080fd5b60408051368101825236600082376000803683865af482513d810184523d6000823e818015610125573d82f35b3d82fd5b341561013457600080fd5b61013c61019e565b60405190815260200160405180910390f35b341561015957600080fd5b61016d600160a060020a03600435166101a4565b005b341561017a57600080fd5b610182610227565b604051600160a060020a03909116815260200160405180910390f35b60015481565b60005433600160a060020a039081169116146101bf57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383161790557f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f7081604051600160a060020a03909116815260200160405180910390a150565b600054600160a060020a0316815600a165627a7a72305820fa5f0289c65e778974a9053cc084cca4243aeff0c7e397916217d67d484740450029

Swarm Source

bzzr://fa5f0289c65e778974a9053cc084cca4243aeff0c7e397916217d67d48474045

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.