-
Notifications
You must be signed in to change notification settings - Fork 275
Full New Ramp Plugin Rearchitecture #5740
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
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
@samholmes
samholmes
changed the title
(削除) Sam/ramp plugin full (削除ここまで)
(追記) Full New Ramp Plugin Rearchitecture (追記ここまで)
Sep 11, 2025
This was referenced Sep 11, 2025
Closed
Closed
Jon-edge
Jon-edge
approved these changes
Sep 11, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ramp Plugin Combined Branch Review
This report reviews the combined branch against comments from the following PRs, and notes any new issues discovered:
- PR #5697: Sam/all ramp plugins (link)
- PR #5700: Max button ramp plugins (link)
- PR #5701: Sam/amount type filtering (link)
PR #5697: Sam/all ramp plugins
- Make Moonpay base URL a constant: comment
- Status: Addressed in current branch (uses
initOptions.apiUrland builds.../v3/...paths) - File:
src/plugins/ramps/moonpay/moonpayRampPlugin.ts(see fetches and quote URLs)
- Status: Addressed in current branch (uses
- Allow swapping Moonpay URLs via init options: comment
- Status: Addressed in current branch (
apiUrl,buyWidgetUrl,sellWidgetUrlpresent ininitOptions) - File:
src/plugins/ramps/moonpay/moonpayRampPlugin.ts(lines near initOptions parse)
- Status: Addressed in current branch (
- Use correct token lookup (avoid wallet-only lookups): comment
- Status: Not addressed in current branch — Moonpay still passes the ramp plugin id instead of the currency plugin id to
findTokenIdByNetworkLocation - File:
src/plugins/ramps/moonpay/moonpayRampPlugin.tsaround token resolution (usespluginIdinstead ofcurrencyPluginIdwhen callingfindTokenIdByNetworkLocation)
- Status: Not addressed in current branch — Moonpay still passes the ramp plugin id instead of the currency plugin id to
- Ensure
fetchQuotethrows properFiatProviderError(min/max etc): multiple comments- Status: Addressed in current branch (Moonpay, Bity, Paybis all throw typed errors for region/asset/payment/limits)
- Files:
moonpayRampPlugin.ts,bityRampPlugin.ts,paybisRampPlugin.ts
- Navigation may be null (crash risk) across plugins & scenes: multiple comments
- Status: Addressed per reviewer decision —
navigationis now required inRampPluginConfigand provided viauseRampPlugins(no additional guards required) - Files:
src/plugins/ramps/rampPluginTypes.ts,src/hooks/useRampPlugins.ts - Caveat: If an approval flow continues after the originating scene unmounts, a subsequent
navigation.pop()may no-op. This does not crash, but if desired we can centralize navigation calls behind a small helper that checks focus before popping.
- Status: Addressed per reviewer decision —
- Logging noise reductions
- Status: Addressed per reviewer decision
PR #5700: Max button ramp plugins
- Flag icon broken image when URI empty: comment
- Status: Addressed in current branch (falls back to
FiatIconwhen flag URL missing) - File:
src/components/scenes/TradeCreateScene.tsx(selected fiat flag handling)
- Status: Addressed in current branch (falls back to
- Caching/shared cache suggestion and related follow-ups
- Status: Addressed per thread decision (dropped caching for ramp plugins)
- Style-only suggestions (variable names, one-decl-per-line)
- Status: Not addressed (non-functional)
PR #5701: Sam/amount type filtering
- Prevent unsupported amountType requests when plugin support changes: comment
- Status: Addressed in current branch (do not construct
rampQuoteRequestif selected amount type is disabled) - File:
src/components/scenes/TradeCreateScene.tsx(guard inuseMemoforrampQuoteRequest)
- Status: Addressed in current branch (do not construct
- Optional auto-switch of
lastUsedInputwhen disabled- Status: Addressed via guard approach (no auto-switch, but invalid request is prevented)
What still needs action (not addressed by this branch)
- Moonpay token resolution bug: pass the currency plugin id to
findTokenIdByNetworkLocationinstead of the ramppluginId.- File:
src/plugins/ramps/moonpay/moonpayRampPlugin.tsnear the currency loop wherecurrencyPluginIdis derived; ensure that value is used in the lookup.
- File:
- Optional: Style-only cleanups from PR #5700 (variable naming / one-decl-per-line) if desired.
This is an attempt to get the agent to automatically document lessons learned to the docs/ directory. This way conventions are maintained and over time as the agent is course corrected.
- Create docs/localization-guidelines.md with mandatory UI string localization rules - Create docs/component-styling-guidelines.md with styled HOC usage patterns - Update AGENTS.md with Documentation section indexing all docs/ files - Add rule requiring all docs/ markdown files to be indexed in AGENTS.md - Add localized strings for TradeRegionSelectScene to en_US.ts
This file contains run configuration such as RN_SIMULATOR and RN_PORT to be used by a rn-ios script. This is for development purposes
This is a consistent card design for the new fiat buy UI.
- Implement TradeCreateScene and TradeOptionSelectScene for buy/sell flow - Add Paybis as first ramp plugin with full API integration - Create reusable hooks for ramp plugin management (useRampPlugins, useRampQuotes) - Add payment type icon system with comprehensive mappings - Implement quote fetching and comparison across multiple providers - Add best rate badge component for quote comparison - Create ramp plugin type definitions and store utilities - Add comprehensive documentation for migration and architecture - Include unit tests for payment types and store IDs - Update navigation and deeplink handlers for ramp flows BREAKING CHANGE: Replaces legacy FiatPluginUi with new ramp plugin system
Include plugin IDs in React Query key so quotes refetch when region/currency/wallet changes affect available plugins. Simplify queryFn to always check current plugins while reusing valid cached quotes.
The warning from reannimated library is aweful and implores us to not access `.value` on a SharedValue from within the component render function.
@samholmes
samholmes
force-pushed
the
sam/ramp-plugin-full
branch
from
September 12, 2025 16:53
fb47de5 to
43b0e1f
Compare
samholmes
added a commit
that referenced
this pull request
Sep 24, 2025
...-full"" This reverts commit 32f28e1.
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.
Uh oh!
There was an error while loading. Please reload this page.
CHANGELOG
Does this branch warrant an entry to the CHANGELOG?
Dependencies
noneRequirements
If you have made any visual changes to the GUI. Make sure you have: