More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
107553774 | 567 days ago | 0 ETH | ||||
107553774 | 567 days ago | 0 ETH | ||||
107546742 | 567 days ago | 0 ETH | ||||
107546742 | 567 days ago | 0 ETH | ||||
107540884 | 567 days ago | 0 ETH | ||||
107540884 | 567 days ago | 0 ETH | ||||
107535160 | 567 days ago | 0 ETH | ||||
107535160 | 567 days ago | 0 ETH | ||||
107527215 | 567 days ago | 0 ETH | ||||
107527215 | 567 days ago | 0 ETH | ||||
107520695 | 568 days ago | 0 ETH | ||||
107520695 | 568 days ago | 0 ETH | ||||
107515281 | 568 days ago | 0 ETH | ||||
107515281 | 568 days ago | 0 ETH | ||||
107509077 | 568 days ago | 0 ETH | ||||
107509077 | 568 days ago | 0 ETH | ||||
107503049 | 568 days ago | 0 ETH | ||||
107503049 | 568 days ago | 0 ETH | ||||
107497244 | 568 days ago | 0 ETH | ||||
107497244 | 568 days ago | 0 ETH | ||||
107490091 | 568 days ago | 0 ETH | ||||
107490091 | 568 days ago | 0 ETH | ||||
107484320 | 568 days ago | 0 ETH | ||||
107484320 | 568 days ago | 0 ETH | ||||
107483928 | 568 days ago | 0 ETH |
Loading...
Loading
Contract Name:
RocketBalancerRateProvider
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.13; import "./RocketOvmPriceOracle.sol"; import "./interfaces/balancer/IRateProvider.sol"; /// @author Kane Wallmann (Rocket Pool) /// @notice Implements Balancer's IRateProvider interface contract RocketBalancerRateProvider is IRateProvider { RocketOvmPriceOracle immutable oracle; constructor(RocketOvmPriceOracle _oracle) { oracle = _oracle; } function getRate() external override view returns (uint256) { return oracle.rate(); } }
// SPDX-License-Identifier: GPL-3.0-or-later // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. pragma solidity ^0.8.0; interface IRateProvider { function getRate() external view returns (uint256); }
// SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.13; import "@eth-optimism/contracts/libraries/bridge/ICrossDomainMessenger.sol"; /// @author Kane Wallmann (Rocket Pool) /// @notice Receives updates from L1 on the canonical rETH exchange rate contract RocketOvmPriceOracle { // Events event RateUpdated(uint256 rate); // Immutables ICrossDomainMessenger immutable ovmL2CrossDomainMessenger; /// @notice The rETH exchange rate in the form of how much ETH 1 rETH is worth uint256 public rate; /// @notice The timestamp of the block in which the rate was last updated uint256 public lastUpdated; /// @notice Set to the contract on L1 that has permission to update the rate address public owner; constructor(address _l2CrossDomainMessenger) { ovmL2CrossDomainMessenger = ICrossDomainMessenger(_l2CrossDomainMessenger); owner = msg.sender; } /// @notice Hands ownership to the L1 price messenger contract function setOwner(address _newOwner) external { require(msg.sender == owner, "Only owner"); owner = _newOwner; } /// @notice Called by the messenger contract on L1 to update the exchange rate function updateRate(uint256 _newRate) external { // Only calls originating from L1 owner can update the rate require( msg.sender == address(ovmL2CrossDomainMessenger) && ovmL2CrossDomainMessenger.xDomainMessageSender() == owner, "Only owner" ); // Set rate and last updated timestamp rate = _newRate; lastUpdated = block.timestamp; // Emit event emit RateUpdated(_newRate); } }
// SPDX-License-Identifier: MIT pragma solidity >0.5.0 <0.9.0; /** * @title ICrossDomainMessenger */ interface ICrossDomainMessenger { /********** * Events * **********/ event SentMessage( address indexed target, address sender, bytes message, uint256 messageNonce, uint256 gasLimit ); event RelayedMessage(bytes32 indexed msgHash); event FailedRelayedMessage(bytes32 indexed msgHash); /************* * Variables * *************/ function xDomainMessageSender() external view returns (address); /******************** * Public Functions * ********************/ /** * Sends a cross domain message to the target messenger. * @param _target Target contract address. * @param _message Message to send to the target. * @param _gasLimit Gas limit for the provided message. */ function sendMessage( address _target, bytes calldata _message, uint32 _gasLimit ) external; }
{ "remappings": [ "@balancer-labs/interfaces/=lib/balancer-v2-monorepo/pkg/interfaces/contracts/", "@eth-optimism/=lib/optimism/packages/contracts/", "@rocketpool/=lib/rocketpool/contracts/", "ds-test/=lib/forge-std/lib/ds-test/src/", "forge-std/=lib/forge-std/src/", "optimism/=lib/optimism/", "rocketpool/=lib/rocketpool/", "src/=src/", "test/=test/", "script/=script/" ], "optimizer": { "enabled": true, "runs": 10000 }, "metadata": { "bytecodeHash": "ipfs" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } }, "evmVersion": "london", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"contract RocketOvmPriceOracle","name":"_oracle","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"getRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60a060405234801561001057600080fd5b506040516101b03803806101b083398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b60805161012661008a6000396000604901526101266000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063679aefce14602d575b600080fd5b60336045565b60405190815260200160405180910390f35b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632c4e722e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801560b1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019060d3919060d8565b905090565b60006020828403121560e957600080fd5b505191905056fea26469706673582212208d2e563fcc5aec4d35a76cbb35dc33338191ddbe44a052c1f0e99cf8a1db3a7164736f6c634300081000330000000000000000000000001a8f81c256aee9c640e14bb0453ce247ea0dfe6f
Deployed Bytecode
0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063679aefce14602d575b600080fd5b60336045565b60405190815260200160405180910390f35b60007f0000000000000000000000001a8f81c256aee9c640e14bb0453ce247ea0dfe6f73ffffffffffffffffffffffffffffffffffffffff16632c4e722e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801560b1573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019060d3919060d8565b905090565b60006020828403121560e957600080fd5b505191905056fea26469706673582212208d2e563fcc5aec4d35a76cbb35dc33338191ddbe44a052c1f0e99cf8a1db3a7164736f6c63430008100033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001a8f81c256aee9c640e14bb0453ce247ea0dfe6f
-----Decoded View---------------
Arg [0] : _oracle (address): 0x1a8F81c256aee9C640e14bB0453ce247ea0DFE6F
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000001a8f81c256aee9c640e14bb0453ce247ea0dfe6f
Deployed Bytecode Sourcemap
248:283:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;432:97;;;:::i;:::-;;;160:25:4;;;148:2;133:18;432:97:1;;;;;;;;483:7;509:6;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;502:20;;432:97;:::o;196:184:4:-;266:6;319:2;307:9;298:7;294:23;290:32;287:52;;;335:1;332;325:12;287:52;-1:-1:-1;358:16:4;;196:184;-1:-1:-1;196:184:4:o
Swarm Source
ipfs://8d2e563fcc5aec4d35a76cbb35dc33338191ddbe44a052c1f0e99cf8a1db3a71
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 31 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
[ 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.