fix(deps): require alloy-trie 0.9.5 - #417
Merged
Merged
Conversation
The nested trie node cache uses const mutation that requires the trivially droppable RlpNode implementation introduced in alloy-trie 0.9.5. Raising the minimum version prevents downstream lockfiles from selecting 0.9.4 and failing on the declared Rust 1.93 toolchain.
nekomoto911
approved these changes
Aug 3, 2026
ByteYue
added a commit
to Galxe/gravity-sdk
that referenced
this pull request
Aug 3, 2026
## Summary - wire `gravity_node` to the merged generic Reth Oracle relayer API - decode the fixed-size `OracleState` snapshot from the latest committed Gravity block - reconcile providers by the shared `(source_type, source_id)` URI identity - retain and re-emit a pending observation until the authoritative on-chain nonce catches up - suppress stale or already-committed observations before they become guaranteed-revert system transactions - keep provider endpoints validator-local and redact credentials, paths, and query strings from logs ## Runtime behavior `add_uri` now requires an authoritative on-chain source state before warming the Reth provider with its `latest_nonce` and `latest_position`. `get_last_state` follows the same snapshot and fails closed when `OracleState` is unavailable, malformed, or missing the requested source. After a provider returns an update, the wrapper caches that exact `PollResult`. While its nonce is ahead of the committed state, later observations return the cached payload instead of polling again. Once execution catches up, polling resumes. A provider result with `observed_nonce <= onchain_nonce` is marked unchanged so it cannot inject a `recordBatch` that must revert with `NonceNotSequential`. The state-read error path does not mutate the pending tracker, so a transient committed-state failure cannot erase an observation waiting for execution. ## Dependency alignment - pin Gravity Aptos to the merged Oracle state API revision from Galxe/gravity-aptos#79 - pin Gravity Reth to the merged generic relayer core plus dependency correction from Galxe/gravity-reth#416 and Galxe/gravity-reth#417 - align the node CLI and transaction-pool type aliases with Reth 2.3 - keep Alloy and Reth helper crates on versions compatible with the SDK Rust 1.93 toolchain The lockfile is necessarily large because the existing SDK branch moves from its older Reth/Aptos dependency graphs to those merged revisions. ## Non-goals - no Binance source implementation - no Polygon or Polymarket source implementation - no external-network E2E or frontend demo Those remain isolated provider and E2E slices in the split plan. ## Validation - `RUSTFLAGS='--cfg tokio_unstable' cargo +1.93.0 check -p gravity_node --tests --locked` - `RUSTFLAGS='--cfg tokio_unstable' cargo +1.93.0 test -p gravity_node relayer::tests --locked` (12 passed) - `cargo +nightly fmt --all -- --check` - `cargo +1.93.0 metadata --locked --no-deps --format-version 1` ## Tracking - Galxe/gravity-audit#1038 - Addresses Galxe/gravity-audit#908
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.
Summary
alloy-trieversion from0.9.4to0.9.5RlpNodeimplementation that is incompatible with Reth's nested-trie const cache mutations on Rust 1.93Why
While integrating the merged generic Oracle relayer core into Gravity SDK, the SDK lockfile legally selected
alloy-trie 0.9.4. ItsRlpNodeowns anArrayVec, so assignments in Reth'sconst fncache helpers fail withE0493on the declared Rust 1.93 toolchain.alloy-trie 0.9.5changedRlpNodeto a trivially droppable fixed buffer. Reth's own lockfile already resolves to this version, which is why the issue did not appear in the Reth CI graph. Declaring the actual minimum requirement makes downstream resolution deterministic and preserves the intended const API.This is a dependency-compatibility correction only. It does not change Oracle behavior, trie encoding, database formats, or execution semantics.
Validation
cargo +1.93.0 check -p reth-trie-common --all-features --lockedgravity_nodetest build progresses pastreth-trie-commonafter resolvingalloy-trie 0.9.5Tracking