ETH Price: $1,592.12 (+0.76%)
Gas: 8 Gwei
 
Transaction Hash
Method
Block
From
To
Value
0xa45e49183084401c9999a3b692db2ed92beff6376f915f3af1642532833dbb37Claim Snapshot E...(pending)2023-09-24 18:52:391 day 7 hrs ago1695581559IN
Livepeer: Proxy Bonding Manager
0 ETH(Pending)(Pending)
0x6ef214d194c687c211f3fdf869a32781d08148dfc53f2c1e3538014bf517bb2dBond With Hint(pending)2023-09-24 9:04:071 day 17 hrs ago1695546247IN
Livepeer: Proxy Bonding Manager
0 ETH(Pending)(Pending)
0x24c907629fe86b889b0a52ce2e0956e9f938769f3dd0cf392c81cca4a2f7f1daClaim Snapshot E...(pending)2023-09-24 6:24:171 day 19 hrs ago1695536657IN
Livepeer: Proxy Bonding Manager
0 ETH(Pending)(Pending)
0x81ff043210b5be8d737f16c90ad6f19ea07d4292f4dab992af71a5137400f847Claim Earnings(pending)2023-09-24 4:10:501 day 21 hrs ago1695528650IN
Livepeer: Proxy Bonding Manager
0 ETH(Pending)(Pending)
Withdraw Stake165743862023-02-07 4:00:47230 days 22 hrs ago1675742447IN
Livepeer: Proxy Bonding Manager
0 ETH0.0011210130
Bond With Hint160867452022-12-01 1:43:23299 days 22 mins ago1669859003IN
Livepeer: Proxy Bonding Manager
0 ETH0.0004525311.71966271
Bond With Hint152919222022-08-07 0:16:23415 days 1 hr ago1659831383IN
Livepeer: Proxy Bonding Manager
0 ETH0.000092612.4
Claim Snapshot E...152486472022-07-31 6:33:37421 days 19 hrs ago1659249217IN
Livepeer: Proxy Bonding Manager
0 ETH0.000135353
Bond With Hint151985792022-07-23 11:13:21429 days 14 hrs ago1658574801IN
Livepeer: Proxy Bonding Manager
0 ETH0.00015444
Claim Earnings150662642022-07-03 0:19:47450 days 1 hr ago1656807587IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662642022-07-03 0:19:47450 days 1 hr ago1656807587IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662642022-07-03 0:19:47450 days 1 hr ago1656807587IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662642022-07-03 0:19:47450 days 1 hr ago1656807587IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662322022-07-03 0:13:08450 days 1 hr ago1656807188IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662322022-07-03 0:13:08450 days 1 hr ago1656807188IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Claim Earnings150662322022-07-03 0:13:08450 days 1 hr ago1656807188IN
Livepeer: Proxy Bonding Manager
0 ETH0.000224146
Reward With Hint146458332022-04-24 6:18:14519 days 19 hrs ago1650781094IN
Livepeer: Proxy Bonding Manager
0 ETH0.000771920.30967342
Reward With Hint146458332022-04-24 6:18:14519 days 19 hrs ago1650781094IN
Livepeer: Proxy Bonding Manager
0 ETH0.000771920.30967342
Unbond With Hint144609482022-03-26 9:06:28548 days 16 hrs ago1648285588IN
Livepeer: Proxy Bonding Manager
0 ETH0.0008178921.69946347
Unbond With Hint144609102022-03-26 8:58:44548 days 17 hrs ago1648285124IN
Livepeer: Proxy Bonding Manager
0 ETH0.0007379419.5783347
Unbond With Hint144254212022-03-20 20:28:50554 days 5 hrs ago1647808130IN
Livepeer: Proxy Bonding Manager
0 ETH0.0009958426.40380109
Unbond With Hint144253832022-03-20 20:22:13554 days 5 hrs ago1647807733IN
Livepeer: Proxy Bonding Manager
0 ETH0.0010383627.53123078
Unbond With Hint144253692022-03-20 20:19:37554 days 5 hrs ago1647807577IN
Livepeer: Proxy Bonding Manager
0 ETH0.0014000737.12161167
Unbond With Hint144253572022-03-20 20:16:50554 days 5 hrs ago1647807410IN
Livepeer: Proxy Bonding Manager
0 ETH0.0013534835.88625019
Bond With Hint143713172022-03-12 10:05:34562 days 16 hrs ago1647079534IN
Livepeer: Proxy Bonding Manager
0 ETH0.0003871310.02592204
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 0x1f86cb...d4ACAF93
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

[{"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
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ 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.