More Info
Private Name Tags
ContractCreator
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Advanced mode: Intended for advanced users or developers and will display all Internal Transactions including zero value transfers. Name tag integration is not available in advanced view.
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | ||||
---|---|---|---|---|---|---|---|
131814470 | 3 mins ago | 0 ETH | |||||
131814470 | 3 mins ago | 0 ETH | |||||
131814284 | 9 mins ago | 0 ETH | |||||
131814284 | 9 mins ago | 0 ETH | |||||
131814063 | 16 mins ago | 0 ETH | |||||
131814063 | 16 mins ago | 0 ETH | |||||
131813810 | 25 mins ago | 0 ETH | |||||
131813810 | 25 mins ago | 0 ETH | |||||
131813615 | 31 mins ago | 0 ETH | |||||
131813615 | 31 mins ago | 0 ETH | |||||
131813381 | 39 mins ago | 0 ETH | |||||
131813381 | 39 mins ago | 0 ETH | |||||
131813103 | 48 mins ago | 0 ETH | |||||
131813103 | 48 mins ago | 0 ETH | |||||
131813080 | 49 mins ago | 0 ETH | |||||
131813080 | 49 mins ago | 0 ETH | |||||
131813080 | 49 mins ago | 0 ETH | |||||
131813080 | 49 mins ago | 0 ETH | |||||
131812990 | 52 mins ago | 0 ETH | |||||
131812990 | 52 mins ago | 0 ETH | |||||
131812990 | 52 mins ago | 0 ETH | |||||
131812990 | 52 mins ago | 0 ETH | |||||
131812682 | 1 hr ago | 0 ETH | |||||
131812682 | 1 hr ago | 0 ETH | |||||
131812119 | 1 hr 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 | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.