Skip to content

Conversation

samholmes
Copy link
Contributor

@samholmes samholmes commented Oct 15, 2025

CHANGELOG

Does this branch warrant an entry to the CHANGELOG?

  • Yes
  • No

Dependencies

none

Requirements

If you have made any visual changes to the GUI. Make sure you have:

  • Tested on iOS device
  • Tested on Android device
  • Tested on small-screen device (iPod Touch)
  • Tested on large-screen device (tablet)

Note

Adds a ramp constraints layer and refactors request/types; updates all ramp plugins and UI to enforce constraints, derive pluginId from wallet, and expand Simplex payment types.

  • Core/Types:
    • Add rampConstraints.ts and utils/constraintUtils.ts with global/per-request validators (validateRampCheckSupportRequest, validateRampQuoteRequest).
    • Refactor rampPluginTypes.ts:
      • Add CryptoAsset.
      • RampCheckSupportRequest.cryptoAsset now CryptoAsset.
      • RampQuoteRequest now requires wallet and removes pluginId.
  • UI:
    • RampSelectOptionScene.tsx:
      • Use wallet.currencyInfo.pluginId for selectedCrypto.pluginId.
      • Call approveQuote with rampQuoteRequest.wallet (no non-null assertion).
  • Plugins:
    • General: Integrate constraint pre-checks in checkSupport and per-payment-type checks in fetchQuotes; derive currencyPluginId from request.wallet.currencyInfo.pluginId.
    • Paybis: Normalize Instant ACH to ach (maps, allowed types, reverse maps) and remove special-case credit filtering (handled by constraints).
    • Moonpay: Add constraint pre-checks; move venmo filtering into constraints; fix wallet address retrieval (non-optional).
    • Banxa: Add constraint pre-checks and per-payment-type validation.
    • Revolut: Add constraint checks; centralize payment type; replace hardcoded strings with variable; use wallet-derived pluginId.
    • Simplex: Add platform-dependent payment types (credit + applepay/googlepay) and return multiple quotes; add constraint checks; minor refactors.

Written by Cursor Bugbot for commit 6f5eed7. This will update automatically on new commits. Configure here.


Require `wallet` and use `currencyInfo` to get the `pluginId`.
We're removing `iach` from ramp plugin implementation and deprecating
the value for documentation purposes.

We'll remove the value variant completely when it's no longer a
dependency for legacy code.
@samholmes samholmes force-pushed the sam/ramp-constraints branch from c937925 to 63411e6 Compare October 15, 2025 00:03
cursor[bot]

This comment was marked as outdated.

We need generators to not early exit on constraints so they're all
applied. This is nice so we don't need to couple our constraints to
other constrains when adding/removing. The contract is that all
the constraints will get equal chance of being applied.
We need generators to not early exit on constraints so they're all
applied. This is nice so we don't need to couple our constraints to
other constrains when adding/removing. The contract is that all
the constraints will get equal chance of being applied.
The list of supported countries is copied from the `buyPluginList.json`
file. Revolut is not supported for sell direction, so no need to get
the country codes from `sellPluginList.json`.
This was missing from the paybisProvider implementation.
The list of supported countries is copied from the `buyPluginList.json`
and `sellPluginList.json`.
@samholmes samholmes force-pushed the sam/ramp-constraints branch from 63411e6 to 6f5eed7 Compare October 15, 2025 14:52
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