This repository contains 2 main contracts. RocketArbitrumPriceMessenger
which can be called by anyone to submit the current
rETH exchange rate (as reported by RocketNetworkBalances
) to the RocketArbitrumPriceOracle
contract which is deployed on
Arbitrum.
Rocket Pool provides this exchange rate oracle as-is for convenience and offers no guarantee about its accuracy or the freshness of the data. These contracts have not been formally audited for security or correctness.
Calling rate()
on RocketArbitrumPriceOracle
will return the latest rETH exchange rate reported. This value is in the form
of the ETH value of 1 rETH. e.g. If 1 rETH is worth 1.5 ETH rate()
will return 1.5e18. lastUpdated()
can be called to
retrieve the timestamp that the rate was last updated.
Rocket Pool maintains a Goerli testnet instance of the protocol alongside our mainnet deployment which can be used for integration testing before promotion to mainnet.
Chain | RocketOvmPriceMessenger (EVM) | RocketOvmPriceOracle (Arbitrum) | RocketBalancerRateProvider (Arbitrum) |
---|---|---|---|
Mainnet | 0x312FcFB03eC9B1Ea38CB7BFCd26ee7bC3b505aB1 | 0x7EcCBbd05830EdF593d30005B8F69E965AF4D59f | 0xd4E96eF8eee8678dBFf4d535E033Ed1a4F7605b7 |
Goerli | 0x2b52479F6ea009907e46fc43e91064D1b92Fdc86 | 0x594Fb75D3dc2DFa0150Ad03F99F97817747dd4E1 | tba |
There is a simple deploy script (deploy.js
) that can be run with node deploy.js
. You will need to create a suitable
.env
file first. Example .env
file is available for Goerli and Mainnet.
There is a script which will execute the submitRate
function on the RocketArbitrumPriceMessenger
(submit.js
). After
setting up a suitable .env
file, run with node submit.js
.