Difficulty: Advanced
Type: performance
Background
"Cross-Chain Support: Explore guild configurations and role requirements across supported EVM networks" is a checked-in Key Feature, implying the app already queries multiple EVM networks for guild/role data via @guildpass/sdk.
Problem
It's not evident the app handles a single chain's RPC being slow or unavailable gracefully — if guild data is aggregated across chains and one chain's lookup hangs or errors, it likely blocks or breaks the entire guild-exploration view rather than degrading gracefully for just that chain's data.
Expected outcome
When exploring guild configurations across chains, a failure or timeout on any single chain's data source degrades gracefully: that chain's section shows a clear "unavailable" state with a retry option, while data from other chains still renders normally, and the overall screen never blocks indefinitely on one failing chain.
Suggested implementation
- Identify the cross-chain data-fetching logic (likely a set of parallel
@guildpass/sdk / TanStack Query calls keyed by chain) and ensure each chain's query is independent (Promise.allSettled-style handling, or separate TanStack Query hooks per chain) rather than one combined promise that fails entirely if any chain errors.
- Add a per-chain timeout so a hanging RPC doesn't block the whole screen indefinitely.
- Add a per-chain "unavailable, tap to retry" UI state distinct from a global loading/error state.
- Add tests simulating one chain succeeding and another failing/timing out, asserting the UI renders partial results correctly.
Acceptance criteria
Likely affected files/directories
src/ (guild/cross-chain data hooks)
app/ (guild exploration screens)
Difficulty: Advanced
Type: performance
Background
"Cross-Chain Support: Explore guild configurations and role requirements across supported EVM networks" is a checked-in Key Feature, implying the app already queries multiple EVM networks for guild/role data via
@guildpass/sdk.Problem
It's not evident the app handles a single chain's RPC being slow or unavailable gracefully — if guild data is aggregated across chains and one chain's lookup hangs or errors, it likely blocks or breaks the entire guild-exploration view rather than degrading gracefully for just that chain's data.
Expected outcome
When exploring guild configurations across chains, a failure or timeout on any single chain's data source degrades gracefully: that chain's section shows a clear "unavailable" state with a retry option, while data from other chains still renders normally, and the overall screen never blocks indefinitely on one failing chain.
Suggested implementation
@guildpass/sdk/ TanStack Query calls keyed by chain) and ensure each chain's query is independent (Promise.allSettled-style handling, or separate TanStack Query hooks per chain) rather than one combined promise that fails entirely if any chain errors.Acceptance criteria
Likely affected files/directories
src/(guild/cross-chain data hooks)app/(guild exploration screens)