Skip to content

fix: retry rate-limited RPC fetches - #2614

Open
tarrencev wants to merge 1 commit into
mainfrom
rpc-rate-limit-fetches
Open

tarrencev wants to merge 1 commit into
mainfrom
rpc-rate-limit-fetches

Conversation

@tarrencev

Copy link
Copy Markdown
Contributor

Summary

  • add a shared rate-limited fetch wrapper for controller RPC/API calls
  • wire retrying fetches into controller and keychain Starknet RPC construction plus keychain GraphQL/API fetches
  • honor Retry-After and smooth same-URL retry cooldowns
  • avoid automatic retries for non-idempotent starknet_add*Transaction methods to prevent duplicate submissions

Review notes

  • Reviewed the retry paths after seeing duplicate-submit risk in the Rust implementation; this PR now skips automatic retries for known transaction submission methods. Read/call/balance-style RPCs still retry explicit 429 / JSON-RPC rate-limit responses.

Validation

  • pnpm --filter @cartridge/controller test
  • pnpm --filter @cartridge/keychain test:ci
  • pnpm --filter @cartridge/controller format:check
  • pnpm --filter @cartridge/controller build:browser
  • pnpm --filter @cartridge/controller build:node
  • pnpm --filter @cartridge/controller-ui build
  • pnpm --filter @cartridge/keychain lint (passes with existing coverage warnings)
  • pnpm --filter @cartridge/keychain build

Notes

  • Refreshed local install with pnpm install --frozen-lockfile after origin/main added @turnkey/api-key-stamper. No lockfile changes were needed.

@vercel

vercel Bot commented Jun 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
controller-example-next Ready Ready Preview Jun 8, 2026 7:27pm
controller-ui Ready Ready Preview Jun 8, 2026 7:27pm
keychain Ready Ready Preview Jun 8, 2026 7:27pm
keychain-storybook Ready Ready Preview Jun 8, 2026 7:27pm

Request Review

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant