Repository navigation
Conversation
Services is a service-level component that passes navigation to many children, so it keeps NavigationBase until the v7 migration.
Bridged proxies define their methods as non-enumerable properties, so Object.keys(wallet.otherMethods) is always empty on the GUI side and waitForWalletOtherMethods waited out its full 10 minute timeout even when the engine methods were there. Probe the own property names for functions instead.
Load edge-currency-accountbased's stellartestnet plugin and give it a default wallet name and the same reserve warnings as mainnet Stellar, so testnet anchors such as testanchor.stellar.org can be exercised from the app.
j0ntz
force-pushed
the
jon/moneygram-sep24-ramp
branch
from
November 7, 2026 00:33
42b8d19 to
cfb1305
Compare
j0ntz
force-pushed
the
jon/moneygram-sep24-ramp
branch
from
November 7, 2026 00:42
cfb1305 to
44eabe8
Compare
j0ntz
force-pushed
the
jon/moneygram-sep24-ramp
branch
from
November 7, 2026 01:05
44eabe8 to
458df8a
Compare
Read an anchor's stellar.toml, log in with SEP-10 by having the Stellar engine validate and sign the challenge with the wallet key, and call the SEP-24 info, interactive and transaction endpoints. The JWT is cached per wallet and anchor and refreshed once when the anchor answers 401. client_domain is not sent yet.
j0ntz
force-pushed
the
jon/moneygram-sep24-ramp
branch
from
November 7, 2026 01:33
458df8a to
7ad2ef3
Compare
j0ntz
force-pushed
the
jon/moneygram-sep24-ramp
branch
from
November 7, 2026 01:52
7ad2ef3 to
5148c1b
Compare
j0ntz
force-pushed
the
jon/moneygram-sep24-ramp
branch
from
November 7, 2026 02:13
5148c1b to
7d9a6b9
Compare
j0ntz
force-pushed
the
jon/moneygram-sep24-ramp
branch
from
November 7, 2026 02:33
7d9a6b9 to
8e36abe
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 8e36abe. Configure here.
Offer MoneyGram buy and sell quotes for native XLM when the anchor's network matches the wallet, with limits from SEP-24 /info. Approving a quote starts the interactive deposit or withdraw, saves the transfer in the plugin store and opens the anchor's page. A poller follows the transfer: a withdraw waiting for funds opens a locked send scene with the anchor's address, amount and memo, and a completed deposit tags the incoming transaction as a MoneyGram buy. Unfinished transfers are resumed at login, and error, expired and refunded statuses are shown.
Read the [[CURRENCIES]] tables from the anchor's stellar.toml and offer a Stellar token only when its code and issuer match a listed currency, so a look-alike token from another issuer gets no quote. Before a token deposit, open the wallet's trustline through the engine's activation quote after the user agrees to the XLM fee, since the anchor cannot pay a token into an account that does not trust it.
j0ntz
force-pushed
the
jon/moneygram-sep24-ramp
branch
from
November 7, 2026 02:47
8e36abe to
63b4882
Compare
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.

CHANGELOG
Does this branch warrant an entry to the CHANGELOG?
Dependencies
signSep10Challengeengine method and the receive-address fix. The SEP-10 login and the testnet wallet need it.Requirements
none
Description
Asana task
Prototype MoneyGram cash in and cash out as a ramp plugin over SEP-10 and SEP-24, driven against testanchor.stellar.org on Stellar testnet. No credentials: SEP-10 is signed with the wallet key and
client_domainis skipped for now./info, the interactive endpoints and/transaction. The JWT is cached per wallet and anchor and refreshed once on a 401./info. Approving a quote starts the interactive flow and opens the anchor's page.completedand tags the incoming transaction as a MoneyGram buy.pending_user_transfer_start, a locked send scene opens with the anchor's account,amount_inand memo. The sent transaction is tagged as a sell.error,expiredandrefundedare shown to the user.[[CURRENCIES]]. A look-alike token from another issuer gets no quote.more_info_urlpages must be https on the anchor's site or a listed anchor UI host (ANCHOR_UI_HOSTS, which holds anchor-ref-ui-testanchor.stellar.org).lockTilesMap.memoflag inSendScene2), a payment already tagged with the order id is reused instead of paid twice, and withdraws take turns at the send prompt one at a time per account. Back or Not now leaves the order open and the next pass asks again.stellartestnetplugin is enabled with a default wallet name and the mainnet reserve warnings.waitForWalletOtherMethodsfix: bridged proxies expose methods as non-enumerable properties.Object.keyswas always empty and the wait ran to its 10 minute timeout. It now probes own property names.Services.tsxwith the NavigationBase migration note. It has no behavior change.Tested on the iOS simulator with friendbot funds: an XLM deposit, an XLM withdraw and a USDC deposit (with trustline setup) each reached
completedand were tagged in the wallet's history. On the final heads the withdraw and the USDC deposit were driven again. Frame 30 is the locked send scene: the anchor's account, 5 XLM and memo id 607720223292254453, with no edit control on the address or memo. Frame 31 is Transaction Success, and the anchor then reported the withdrawalcompleted. Frames 33 to 35 are the USDC deposit form, the anchor'scompletedpage with the payout transaction, and the new history row tagged "Buy USD Coin". Logout checks, send turns and the zero-amount quote are covered by unit tests only. Unit tests also cover the anchor client, URL checks, quote limits, token matching, the transfer store and the watch loop.Known prototype gaps: the quote shows no fiat amount (MoneyGram prices on its own page), and the trustline prompt does not mention the 0.5 XLM reserve the trustline locks.
Note
Medium Risk
New fiat on/off-ramp path touches SEP-10 auth, anchored WebViews, and programmatic sends with locked address/amount/memo; mistakes could mis-route funds, though the prototype targets testnet and validates anchor URLs/domains.
Overview
Adds a MoneyGram fiat ramp over Stellar SEP-10/SEP-24 (testnet anchor): quotes for native XLM and anchor-listed tokens, interactive WebView flow, persisted transfers, and background polling that drives deposits (including USDC trustline approval), locked withdraw sends, and buy/sell tagging in wallet history. Login resume restarts open transfers via
Servicesand logs purchase events.Also enables
stellartestnetwallet support, addsSendScene2memo locking for ramp payout memos, and fixeswaitForWalletOtherMethodsso bridged engine methods are detected immediately (changelog notes this also stops FIO refreshes from sitting on the old 10-minute wait). Large Jest coverage for anchor parsing, auth, URL checks, limits, and transfer lifecycle.Reviewed by Cursor Bugbot for commit 63b4882. Bugbot is set up for automated code reviews on this repo. Configure here.
Test evidence
63b4882Add USDC to MoneyGram with trustline setup
2026-11-07
🪓 called showOutcome for a completed sell at resume to show the cash out complete toast, which the Transaction Success modal hides
1. resume error
2. buy quote
3. deposit form
4. deposit done
5. deposit tagged
6. history fixed
7. recv fixed
8. sell quote
9. withdraw form
12. withdraw tagged
13. usdc quote
14. usdc activate
18. 🪓 withdraw complete
19. send later
28. round3 resume account
29. round3 resume send
30. memo locked
31. final sent
33. final usdc deposit form
34. final usdc anchor completed
35. final usdc buy tagged