Livepeer: Proxy Ticket Broker
Source Code (Proxy)
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| 0xb066a2566cf6a4ab9e7fade1059d1717798c4d4a2c7eee41ee90387ea9c945a7 | Redeem Winning T... | (pending) | 34 hrs ago | IN | 0 ETH | (Pending) | |||
| 0x82aaa3c1c02fae727619bc6a89579bf1204f904412447d432310d02477f9fa5c | Redeem Winning T... | (pending) | 46 hrs ago | IN | 0 ETH | (Pending) | |||
| Redeem Winning T... | 14204542 | 1470 days ago | IN | 0 ETH | 0.01666518 | ||||
| Redeem Winning T... | 14204316 | 1470 days ago | IN | 0 ETH | 0.0145564 | ||||
| Redeem Winning T... | 14201299 | 1471 days ago | IN | 0 ETH | 0.01191253 | ||||
| Redeem Winning T... | 14201258 | 1471 days ago | IN | 0 ETH | 0.01008567 | ||||
| Redeem Winning T... | 14199973 | 1471 days ago | IN | 0 ETH | 0.0222594 | ||||
| Redeem Winning T... | 14196507 | 1472 days ago | IN | 0 ETH | 0.00685848 | ||||
| Redeem Winning T... | 14194779 | 1472 days ago | IN | 0 ETH | 0.00822618 | ||||
| Redeem Winning T... | 14193117 | 1472 days ago | IN | 0 ETH | 0.02283696 | ||||
| Redeem Winning T... | 14191293 | 1472 days ago | IN | 0 ETH | 0.01579181 | ||||
| Fund Deposit And... | 14188396 | 1473 days ago | IN | 3 ETH | 0.00393672 | ||||
| Redeem Winning T... | 14186702 | 1473 days ago | IN | 0 ETH | 0.03444632 | ||||
| Redeem Winning T... | 14185842 | 1473 days ago | IN | 0 ETH | 0.03096643 | ||||
| Redeem Winning T... | 14184487 | 1473 days ago | IN | 0 ETH | 0.01429581 | ||||
| Redeem Winning T... | 14183766 | 1473 days ago | IN | 0 ETH | 0.01570077 | ||||
| Redeem Winning T... | 14181532 | 1474 days ago | IN | 0 ETH | 0.01840859 | ||||
| Redeem Winning T... | 14179996 | 1474 days ago | IN | 0 ETH | 0.03585819 | ||||
| Redeem Winning T... | 14168635 | 1476 days ago | IN | 0 ETH | 0.04685393 | ||||
| Redeem Winning T... | 14161604 | 1477 days ago | IN | 0 ETH | 0.02155049 | ||||
| Redeem Winning T... | 14161422 | 1477 days ago | IN | 0 ETH | 0.02278083 | ||||
| Redeem Winning T... | 14152191 | 1478 days ago | IN | 0 ETH | 0.01973943 | ||||
| Redeem Winning T... | 14148020 | 1479 days ago | IN | 0 ETH | 0.03716052 | ||||
| Redeem Winning T... | 14147897 | 1479 days ago | IN | 0 ETH | 0.03587314 | ||||
| Redeem Winning T... | 14146337 | 1479 days ago | IN | 0 ETH | 0.01817812 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 14188396 | 1473 days ago | 3 ETH | ||||
| - | 14130393 | 1482 days ago | 3.99 ETH | ||||
| - | 14127848 | 1482 days ago | 0.5 ETH | ||||
| - | 14127706 | 1482 days ago | 0.3 ETH | ||||
| - | 14123904 | 1483 days ago | 1 ETH | ||||
| - | 14064537 | 1492 days ago | 5 ETH | ||||
| - | 14020257 | 1499 days ago | 5 ETH | ||||
| - | 13939178 | 1511 days ago | 6 ETH | ||||
| - | 13852240 | 1525 days ago | 5 ETH | ||||
| - | 13780262 | 1536 days ago | 4 ETH | ||||
| - | 13681436 | 1552 days ago | 5 ETH | ||||
| - | 13604994 | 1564 days ago | 5 ETH | ||||
| - | 13545987 | 1573 days ago | 2.9 ETH | ||||
| - | 13470878 | 1585 days ago | 4 ETH | ||||
| - | 13397777 | 1596 days ago | 4.99 ETH | ||||
| - | 13368059 | 1601 days ago | 4.99 ETH | ||||
| - | 13304835 | 1611 days ago | 4.99 ETH | ||||
| - | 13299040 | 1612 days ago | 0.011 ETH | ||||
| - | 13221034 | 1624 days ago | 5 ETH | ||||
| - | 13135672 | 1637 days ago | 4.99 ETH | ||||
| - | 12918322 | 1671 days ago | 5 ETH | ||||
| - | 12910145 | 1672 days ago | 0.72 ETH | ||||
| - | 12841982 | 1683 days ago | 4 ETH | ||||
| - | 12771177 | 1694 days ago | 5 ETH | ||||
| - | 12697581 | 1705 days ago | 0.02 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ManagerProxy
Compiler Version
v0.5.11+commit.c082d0b4
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-01-13
*/
// File: contracts/IManager.sol
pragma solidity ^0.5.11;
contract IManager {
event SetController(address controller);
event ParameterUpdate(string param);
function setController(address _controller) external;
}
// File: contracts/zeppelin/Ownable.sol
pragma solidity ^0.5.11;
/**
* @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.
*/
constructor() 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));
emit OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
// File: contracts/zeppelin/Pausable.sol
pragma solidity ^0.5.11;
/**
* @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() public onlyOwner whenNotPaused {
paused = true;
emit Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function unpause() public onlyOwner whenPaused {
paused = false;
emit Unpause();
}
}
// File: contracts/IController.sol
pragma solidity ^0.5.11;
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);
}
// File: contracts/Manager.sol
pragma solidity ^0.5.11;
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), "caller must be Controller");
_;
}
// Check if sender is controller owner
modifier onlyControllerOwner() {
require(msg.sender == controller.owner(), "caller must be Controller owner");
_;
}
// Check if controller is not paused
modifier whenSystemNotPaused() {
require(!controller.paused(), "system is paused");
_;
}
// Check if controller is paused
modifier whenSystemPaused() {
require(controller.paused(), "system is not paused");
_;
}
constructor(address _controller) public {
controller = IController(_controller);
}
/**
* @notice Set controller. Only callable by current controller
* @param _controller Controller contract address
*/
function setController(address _controller) external onlyController {
controller = IController(_controller);
emit SetController(_controller);
}
}
// File: contracts/ManagerProxyTarget.sol
pragma solidity ^0.5.11;
/**
* @title ManagerProxyTarget
* @notice The base contract that target contracts used by a proxy contract should inherit from
* @dev 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;
}
// File: contracts/ManagerProxy.sol
pragma solidity ^0.5.11;
/**
* @title ManagerProxy
* @notice 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.
* @dev 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. Since this proxy contract inherits from ManagerProxyTarget which inherits
from Manager, it implements the setController() function. The target contract will also implement setController() since it also inherits
from ManagerProxyTarget. Thus, any transaction sent to the proxy that calls setController() will execute against the proxy instead
of the target. As a result, developers should keep in mind that the proxy will always execute the same logic for setController() regardless
of the setController() implementation on the target contract. Generally, developers should not add any additional functions to this proxy contract
because any function implemented on the proxy will always be executed against the proxy and the call **will not** be forwarded to the target contract
*/
contract ManagerProxy is ManagerProxyTarget {
/**
* @notice 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
*/
constructor(address _controller, bytes32 _targetContractId) public Manager(_controller) {
targetContractId = _targetContractId;
}
/**
* @notice 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() external payable {
address target = controller.getContract(targetContractId);
require(
target != address(0),
"target contract must be registered"
);
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
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"targetContractId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_controller","type":"address"}],"name":"setController","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"controller","outputs":[{"internalType":"contract IController","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_controller","type":"address"},{"internalType":"bytes32","name":"_targetContractId","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"controller","type":"address"}],"name":"SetController","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"param","type":"string"}],"name":"ParameterUpdate","type":"event"}]Contract Creation Code
608060405234801561001057600080fd5b506040516103423803806103428339818101604052604081101561003357600080fd5b508051602090910151600080546001600160a01b0319166001600160a01b039093169290921782556001556102d490819061006e90396000f3fe6080604052600436106100345760003560e01c806351720b411461012857806392eefe9b1461014f578063f77c479114610184575b6000805460015460408051631c2d8fb360e31b81526004810192909252516001600160a01b039092169163e16c7d9891602480820192602092909190829003018186803b15801561008457600080fd5b505afa158015610098573d6000803e3d6000fd5b505050506040513d60208110156100ae57600080fd5b505190506001600160a01b0381166100f75760405162461bcd60e51b815260040180806020018281038252602281526020018061027e6022913960400191505060405180910390fd5b60408051368101825236600082376000803683865af482513d810184523d6000823e818015610124573d82f35b3d82fd5b34801561013457600080fd5b5061013d6101b5565b60408051918252519081900360200190f35b34801561015b57600080fd5b506101826004803603602081101561017257600080fd5b50356001600160a01b03166101bb565b005b34801561019057600080fd5b5061019961026e565b604080516001600160a01b039092168252519081900360200190f35b60015481565b6000546001600160a01b0316331461021a576040805162461bcd60e51b815260206004820152601960248201527f63616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000546001600160a01b03168156fe74617267657420636f6e7472616374206d7573742062652072656769737465726564a265627a7a723158207d6755ba58f18df7224df8cea30bd7ec958d77f46b6a85677a1177ecf3e5f07864736f6c634300050b0032000000000000000000000000f96d54e490317c557a967abfa5d6e33006be69b3f16f832ef171c8058cbd4a32de7d27c32a1a1ad90bb091b4b7f376f1d95ee254
Deployed Bytecode
0x6080604052600436106100345760003560e01c806351720b411461012857806392eefe9b1461014f578063f77c479114610184575b6000805460015460408051631c2d8fb360e31b81526004810192909252516001600160a01b039092169163e16c7d9891602480820192602092909190829003018186803b15801561008457600080fd5b505afa158015610098573d6000803e3d6000fd5b505050506040513d60208110156100ae57600080fd5b505190506001600160a01b0381166100f75760405162461bcd60e51b815260040180806020018281038252602281526020018061027e6022913960400191505060405180910390fd5b60408051368101825236600082376000803683865af482513d810184523d6000823e818015610124573d82f35b3d82fd5b34801561013457600080fd5b5061013d6101b5565b60408051918252519081900360200190f35b34801561015b57600080fd5b506101826004803603602081101561017257600080fd5b50356001600160a01b03166101bb565b005b34801561019057600080fd5b5061019961026e565b604080516001600160a01b039092168252519081900360200190f35b60015481565b6000546001600160a01b0316331461021a576040805162461bcd60e51b815260206004820152601960248201527f63616c6c6572206d75737420626520436f6e74726f6c6c657200000000000000604482015290519081900360640190fd5b600080546001600160a01b0383166001600160a01b0319909116811790915560408051918252517f4ff638452bbf33c012645d18ae6f05515ff5f2d1dfb0cece8cbf018c60903f709181900360200190a150565b6000546001600160a01b03168156fe74617267657420636f6e7472616374206d7573742062652072656769737465726564a265627a7a723158207d6755ba58f18df7224df8cea30bd7ec958d77f46b6a85677a1177ecf3e5f07864736f6c634300050b0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f96d54e490317c557a967abfa5d6e33006be69b3f16f832ef171c8058cbd4a32de7d27c32a1a1ad90bb091b4b7f376f1d95ee254
-----Decoded View---------------
Arg [0] : _controller (address): 0xF96D54E490317c557A967ABfA5d6e33006BE69b3
Arg [1] : _targetContractId (bytes32): 0xf16f832ef171c8058cbd4a32de7d27c32a1a1ad90bb091b4b7f376f1d95ee254
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000f96d54e490317c557a967abfa5d6e33006be69b3
Arg [1] : f16f832ef171c8058cbd4a32de7d27c32a1a1ad90bb091b4b7f376f1d95ee254
Deployed Bytecode Sourcemap
6303:3057:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;7412:14;7429:10;;;7452:16;7429:40;;;-1:-1:-1;;;7429:40:0;;;;;;;;;;-1:-1:-1;;;;;7429:10:0;;;;:22;;:40;;;;;;;;;;;;;;;:10;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;7429:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7429:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7429:40:0;;-1:-1:-1;;;;;;7502:20:0;;7480:104;;;;-1:-1:-1;;;7480:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7730:4;7827:21;7821:28;8008:12;7986:20;7982:39;7959:21;7952:70;8158:12;8153:3;8131:20;8118:53;8353:1;8350;8336:12;8314:20;8306:6;8301:3;8288:67;8452:21;8446:28;8637:14;8613:22;8609:43;8586:21;8579:74;8804:14;8799:3;8775:22;8760:59;8842:3;8859:261;;;;9309:14;9285:22;9278:46;8859:261;9090:14;9066:22;9059:46;4852:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4852:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;4012:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4012:168:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4012:168:0;-1:-1:-1;;;;;4012:168:0;;:::i;:::-;;3047:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3047:29:0;;;:::i;:::-;;;;-1:-1:-1;;;;;3047:29:0;;;;;;;;;;;;;;4852:31;;;;:::o;4012:168::-;3190:10;;-1:-1:-1;;;;;3190:10:0;3168;:33;3160:71;;;;;-1:-1:-1;;;3160:71:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;4091:10;:37;;-1:-1:-1;;;;;4091:37:0;;-1:-1:-1;;;;;;4091:37:0;;;;;;;;4146:26;;;;;;;;;;;;;;;;4012:168;:::o;3047:29::-;;;-1:-1:-1;;;;;3047:29:0;;:::o
Swarm Source
bzzr://7d6755ba58f18df7224df8cea30bd7ec958d77f46b6a85677a1177ecf3e5f078
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ 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.