Skip to content

feat(stellar-wallet-snap): attach optional memo on confirmSend build flow - #289

Draft
khanti42 wants to merge 10 commits into
mainfrom
feat/stellar-memo-attach
Draft

feat(stellar-wallet-snap): attach optional memo on confirmSend build flow#289
khanti42 wants to merge 10 commits into
mainfrom
feat/stellar-memo-attach

Conversation

@khanti42

@khanti42 khanti42 commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Explanation

Context: WPN-2033 / WPN-2035 — first slice of Stellar memo support for Unified Non-EVM Send. Snap-only (no extension memo field in this PR).

Problem: confirmSend could not attach a Stellar memo to the built envelope. Exchange-style numeric memos need Memo.id; free-text needs Memo.text (≤ 28 UTF-8 bytes).

Solution: Optional memo / memoType on confirmSend. resolveStellarMemo maps explicit type, else all-digit uint64 → Memo.id, else Memo.text. Wired through TransactionBuilder / TransactionService / confirmation transaction refresh. No UI, no RequiresMemo recovery.

Out of scope (follow-ups): Snap Add/Update memo UI + recoverable RequiresMemo (WPN-2034 / WPN-2036); dialog XDR handoff (WPN-2039); muxed (WPN-2037).

Note: When memoType is omitted, all-digit values become Memo.id (Freighter-style). Digits intended as text must pass memoType: "text".

References

  • Fixes: WPN-2035
  • Story: WPN-2033
  • Related: WPN-2038 (tests for attach path included here)

Checklist

  • I've updated the test suite for new or updated code as appropriate
  • I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
  • I've communicated my changes to consumers by updating changelogs for packages I've changed (no changelog — not user-facing until memo UI; MetaMask does not pass memo today)
  • I've introduced breaking changes in this PR and have prepared draft pull requests for clients and consumer packages to resolve them (N/A — additive optional params only)

@sonarqubecloud

sonarqubecloud Bot commented Sep 8, 2026

Copy link
Copy Markdown

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