Source Code
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 107553774 | 929 days ago | 0 ETH | ||||
| 107553774 | 929 days ago | 0 ETH | ||||
| 107546742 | 929 days ago | 0 ETH | ||||
| 107546742 | 929 days ago | 0 ETH | ||||
| 107540884 | 929 days ago | 0 ETH | ||||
| 107540884 | 929 days ago | 0 ETH | ||||
| 107535160 | 929 days ago | 0 ETH | ||||
| 107535160 | 929 days ago | 0 ETH | ||||
| 107527215 | 929 days ago | 0 ETH | ||||
| 107527215 | 929 days ago | 0 ETH | ||||
| 107520695 | 930 days ago | 0 ETH | ||||
| 107520695 | 930 days ago | 0 ETH | ||||
| 107515281 | 930 days ago | 0 ETH | ||||
| 107515281 | 930 days ago | 0 ETH | ||||
| 107509077 | 930 days ago | 0 ETH | ||||
| 107509077 | 930 days ago | 0 ETH | ||||
| 107503049 | 930 days ago | 0 ETH | ||||
| 107503049 | 930 days ago | 0 ETH | ||||
| 107497244 | 930 days ago | 0 ETH | ||||
| 107497244 | 930 days ago | 0 ETH | ||||
| 107490091 | 930 days ago | 0 ETH | ||||
| 107490091 | 930 days ago | 0 ETH | ||||
| 107484320 | 930 days ago | 0 ETH | ||||
| 107484320 | 930 days ago | 0 ETH | ||||
| 107483928 | 930 days ago | 0 ETH |
Cross-Chain Transactions
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
Contract ABI
API[{"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
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 ]
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.