ETH Price: $2,660.42 (+1.69%)

Contract

0x658843BB859B7b85cEAb5cF77167e3F0a78dFE7f

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

> 10 Internal Transactions found.

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
1318144702025-02-10 22:48:373 mins ago1739227717
0x658843BB...0a78dFE7f
0 ETH
1318144702025-02-10 22:48:373 mins ago1739227717
0x658843BB...0a78dFE7f
0 ETH
1318142842025-02-10 22:42:259 mins ago1739227345
0x658843BB...0a78dFE7f
0 ETH
1318142842025-02-10 22:42:259 mins ago1739227345
0x658843BB...0a78dFE7f
0 ETH
1318140632025-02-10 22:35:0316 mins ago1739226903
0x658843BB...0a78dFE7f
0 ETH
1318140632025-02-10 22:35:0316 mins ago1739226903
0x658843BB...0a78dFE7f
0 ETH
1318138102025-02-10 22:26:3725 mins ago1739226397
0x658843BB...0a78dFE7f
0 ETH
1318138102025-02-10 22:26:3725 mins ago1739226397
0x658843BB...0a78dFE7f
0 ETH
1318136152025-02-10 22:20:0731 mins ago1739226007
0x658843BB...0a78dFE7f
0 ETH
1318136152025-02-10 22:20:0731 mins ago1739226007
0x658843BB...0a78dFE7f
0 ETH
1318133812025-02-10 22:12:1939 mins ago1739225539
0x658843BB...0a78dFE7f
0 ETH
1318133812025-02-10 22:12:1939 mins ago1739225539
0x658843BB...0a78dFE7f
0 ETH
1318131032025-02-10 22:03:0348 mins ago1739224983
0x658843BB...0a78dFE7f
0 ETH
1318131032025-02-10 22:03:0348 mins ago1739224983
0x658843BB...0a78dFE7f
0 ETH
1318130802025-02-10 22:02:1749 mins ago1739224937
0x658843BB...0a78dFE7f
0 ETH
1318130802025-02-10 22:02:1749 mins ago1739224937
0x658843BB...0a78dFE7f
0 ETH
1318130802025-02-10 22:02:1749 mins ago1739224937
0x658843BB...0a78dFE7f
0 ETH
1318130802025-02-10 22:02:1749 mins ago1739224937
0x658843BB...0a78dFE7f
0 ETH
1318129902025-02-10 21:59:1752 mins ago1739224757
0x658843BB...0a78dFE7f
0 ETH
1318129902025-02-10 21:59:1752 mins ago1739224757
0x658843BB...0a78dFE7f
0 ETH
1318129902025-02-10 21:59:1752 mins ago1739224757
0x658843BB...0a78dFE7f
0 ETH
1318129902025-02-10 21:59:1752 mins ago1739224757
0x658843BB...0a78dFE7f
0 ETH
1318126822025-02-10 21:49:011 hr ago1739224141
0x658843BB...0a78dFE7f
0 ETH
1318126822025-02-10 21:49:011 hr ago1739224141
0x658843BB...0a78dFE7f
0 ETH
1318121192025-02-10 21:30:151 hr ago1739223015
0x658843BB...0a78dFE7f
0 ETH
View All Internal Transactions

Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
RocketBalancerRateProvider

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, GNU GPLv3 license
File 1 of 4 : RocketBalancerRateProvider.sol
// 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();
    }
}

File 2 of 4 : IRateProvider.sol
// 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);
}

File 3 of 4 : RocketOvmPriceOracle.sol
// 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);
    }
}

File 4 of 4 : ICrossDomainMessenger.sol
// 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;
}

Settings
{
  "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

Contract ABI

[{"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"}]

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits

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.