BW-154: point 46630 at the SimpleOracle adapters - #94
Merged
Merged
Conversation
Records the SimpleOracle store deployed for Robinhood Testnet at 0x81CA264b3bbafA1BF7e55d1B2870FB8E56d4eea1 and the ten SimpleOraclePriceOracle adapters that replace the MockPyth-backed PythPriceOracles, wired through GM.setPriceOracle in the same run. Each adapter reads the store for one collateral's feed id with a 60s max age. The store accepts a reading only when it carries an EIP-712 signature from the configured signer, so prices are no longer whatever the last caller supplied. Swap in place: the collateral, subConsol, price-oracle and conversion queue arrays all stay length 10 and index-aligned.
|
SocksNFlops
approved these changes
Sep 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes
Records the SimpleOracle deployment on Robinhood Testnet (46630) and the ten adapters that replace the MockPyth-backed
PythPriceOracles.simpleOracleAddress:0x81CA264b3bbafA1BF7e55d1B2870FB8E56d4eea1priceOracles[0..9]replaced with tenSimpleOraclePriceOracleadapters, one per collateral, in the same order ascollateralAddressesbroadcast/Deployed and wired by
script/DeploySimpleOracle.s.solin a single run (21 transactions), which also calledGM.setPriceOraclefor all ten collaterals.Why this matters
46630's collateral was priced by
PythPriceOracles readingMockPyth, which authenticates nothing:updatePriceFeedschecks only that the fee is paid and the timestamp is newer, so any caller could set any price for any feed. The new store accepts a reading only when it carries an EIP-712 signature from the configured signer, bound to this chain and this contract through the domain separator.Swap in place at every index, so
collateralAddresses,subConsolAddresses,priceOraclesandconversionQueuesall stay length 10 and index-aligned — the positional discipline CLAUDE.md §5 describes.Testing :
No Solidity changed; the contracts landed in #93 (460 tests).
Verified live on 46630 after the run:
SimpleOracle.signer()0x5973d40e…A62B, the copy-oracle service signerSimpleOracle.decimals()8, matching the Chainlink source feedsDEFAULT_ADMIN_ROLEholderSimpleOracleGM.priceOracles(collateral)feedId()keccak256("MOCK_PYTH:46630:<TICKER>")derived from each collateral's own on-chainsymbol(), for all tensimpleOracle()maxAge()/collateralDecimals()60/18for all tenlatestRoundData/ adapterprice()Known gap until the client work ships
The store holds no price until something pushes a signed reading, and the copy-oracle instance currently running still signs the previous domain and payload layout. Until #335 is merged and promoted to
deploy(Railway builds that service fromdeploy), 46630 shows no collateral price in the dapp. The frontend and fulfiller changes that push through the new path are #336 and #337.Reviewers:
@SocksNFlops