Contract 0x658843BB859B7b85cEAb5cF77167e3F0a78dFE7f 9

 
Txn Hash Method
Block
From
To
Value
0x0aa5ec0e567a512cc33e218b02e34a7142ba1712ee734a6dd423ee80c9df17d50x60a06040188106962022-08-12 1:28:31595 days 6 hrs ago0x35a94b6319f0ba9ec930e02cb64ec6bb170bd3f1 IN  Create: RocketBalancerRateProvider0 ETH0.0001519639070.001
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x8ad89428831832167ee3e310fd09a4c5280700224d4f34ce4f6747cbf040d4181075537742023-07-30 8:38:45242 days 23 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0x8ad89428831832167ee3e310fd09a4c5280700224d4f34ce4f6747cbf040d4181075537742023-07-30 8:38:45242 days 23 hrs ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0x9962cb8f2a3c1d2264bcbec2cbbc0349af85553474c078ddb74e1749fd0e45c11075467422023-07-30 4:44:21243 days 3 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0x9962cb8f2a3c1d2264bcbec2cbbc0349af85553474c078ddb74e1749fd0e45c11075467422023-07-30 4:44:21243 days 3 hrs ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0xcc2f4a7d4e29ee838d0669d0accdeee8ba7cd374ee9b5564a71286012fd0aaf91075408842023-07-30 1:29:05243 days 6 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0xcc2f4a7d4e29ee838d0669d0accdeee8ba7cd374ee9b5564a71286012fd0aaf91075408842023-07-30 1:29:05243 days 6 hrs ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0x556c933f55ed6c2ee537160b241e8217838b517d4cff2a79de77eecf33aab5f31075351602023-07-29 22:18:17243 days 9 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0x556c933f55ed6c2ee537160b241e8217838b517d4cff2a79de77eecf33aab5f31075351602023-07-29 22:18:17243 days 9 hrs ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0x0352f4b41a0358159a4e88b7a0d7b7c35ba68f02be065bc757c1535e858c18151075272152023-07-29 17:53:27243 days 14 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0x0352f4b41a0358159a4e88b7a0d7b7c35ba68f02be065bc757c1535e858c18151075272152023-07-29 17:53:27243 days 14 hrs ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0x859b5c5c1f5be3c5ea6c5d5e7522892d0c715bd1200324afcdccca779a87f3a21075206952023-07-29 14:16:07243 days 17 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0x859b5c5c1f5be3c5ea6c5d5e7522892d0c715bd1200324afcdccca779a87f3a21075206952023-07-29 14:16:07243 days 17 hrs ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0x5c83549a92305ffb8c5255dbea1e0e054ef6d4a33d809144501c609d2703318e1075152812023-07-29 11:15:39243 days 20 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0x5c83549a92305ffb8c5255dbea1e0e054ef6d4a33d809144501c609d2703318e1075152812023-07-29 11:15:39243 days 20 hrs ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0xa32cecd057012eba50aee6a7dbad079aef85b7d7b4a9a44c1b47a89decbd4df91075090772023-07-29 7:48:51244 days 25 mins ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0xa32cecd057012eba50aee6a7dbad079aef85b7d7b4a9a44c1b47a89decbd4df91075090772023-07-29 7:48:51244 days 25 mins ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0x97822b00a105188b99fdade3af3872bc8f7e8155c102d246ab7948b8606b0b331075030492023-07-29 4:27:55244 days 3 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0x97822b00a105188b99fdade3af3872bc8f7e8155c102d246ab7948b8606b0b331075030492023-07-29 4:27:55244 days 3 hrs ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0x29e2bcd151a77574f203cc49aa6b2ba86749d4e7c6d79f5103665dee4bf8f3dc1074972442023-07-29 1:14:25244 days 6 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0x29e2bcd151a77574f203cc49aa6b2ba86749d4e7c6d79f5103665dee4bf8f3dc1074972442023-07-29 1:14:25244 days 6 hrs ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0x78dff0ae85c4c65374bf9e8a73b4c017347b890e0019d249894912aad80c40091074900912023-07-28 21:15:59244 days 10 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0x78dff0ae85c4c65374bf9e8a73b4c017347b890e0019d249894912aad80c40091074900912023-07-28 21:15:59244 days 10 hrs ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0x0a3c4f9203641cdeb53b20dc57ba69dd0fe71c13acbd03c55d0f34d4852e40011074843202023-07-28 18:03:37244 days 14 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
0x0a3c4f9203641cdeb53b20dc57ba69dd0fe71c13acbd03c55d0f34d4852e40011074843202023-07-28 18:03:37244 days 14 hrs ago 0x4fd63966879300cafafbb35d157dc5229278ed23 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f0 ETH
0x36bee16d52c502291b875dbb8208dfda83c44f59d0f2c3b31f90a73bd95ff0401074839282023-07-28 17:50:33244 days 14 hrs ago 0x658843bb859b7b85ceab5cf77167e3f0a78dfe7f 0x1a8f81c256aee9c640e14bb0453ce247ea0dfe6f0 ETH
[ Download CSV Export 
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
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.