Skip to content

Conversation

@Jon-edge
Copy link
Collaborator

@Jon-edge Jon-edge commented Jan 15, 2026

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

Improves the gift card experience and supporting utilities.

  • Gift cards: Fetch/cache FX rates and filter brands below a $5 USD minimum; format minimums in brand currency; show product-unavailable and below-minimum warnings; surface unexpected errors via ErrorCard; fix quoteExpiry parsing and handle quote expiry via send2 onExpired; clean header title with cleanBrandName.
  • Navigation: Spend tile and drawer now route to giftCardList if a stored Phaze identity exists, otherwise to giftCardMarket; HomeTileCard onPress supports async.
  • Send flow & UI: Add optional onExpired to SendScene2; CountdownTile uses localized formatCountdown; new i18n strings for quote expiry/product unavailable/countdown.
  • API/Provider: phazeApi adds FX rate endpoints, response logging, and brand minimum filtering; provider pre-fetches FX rates, exposes getCachedFxRates, and stores identities per-item; add hasStoredPhazeIdentity helper.
  • Assets: Extend CAIP-19 parsing for Monero/Zcash and handle Polygon 0x...1010 native case; minor intl formatting robustness.

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


Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9bcf3e85c1

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Collaborator Author

@Jon-edge Jon-edge left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intentionally not bothering to migrate account format since we aren't in prod and any owned gift cards are currently fake.

Copy link
Contributor

@swansontec swansontec left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only one React.FC to fix. The logs are fine if intentional (I think they are).

}
throw new Error(`HTTP error! status: ${response.status} body: ${text}`)
}
debugLog('phaze', `Response: ${response.status} ${response.statusText}`)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leftover, or intentional?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intentional, yes, visibility is configured by env.json

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intentional, yes, visibility is configured by env.json

headers: makeHeaders()
})
const text = await response.text()
debugLog(
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leftover, or intentional?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intentional, yes, visibility is configured by env.json

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Intentional, yes, visibility is configured by env.json

}

export const CountdownTile = (props: Props) => {
export const CountdownTile = (props: Props): React.ReactElement | null => {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

React.FC here.

Copy link
Collaborator Author

@Jon-edge Jon-edge Jan 16, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

New eslint rule: #5902

Store Phaze identities as separate identifier-named files instead of one identifier-keyed file to address the issue of mutliple devices initializing the same Edge account with Phaze simultaneously stomping synced writes.
Route directly to Market scene if the Edge account doesn't have a Phaze account yet
- Fix cleaners to allow no-chainId-bearing currencies
- Also update caip-19 documentation URL (changed since original impl)
Add forward-compatible workaround for Phaze API returning Polygon's native token
precompile address (0x...1010) as an ERC20 instead of the correct
slip44:966 format. This treats the precompile as native MATIC.

If/when Phaze fixes it on their end, this workaround just becomes dead code.
- Fix parsing of expiry time
- Show a clean internationalized countdown in `CountdownTile`
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

- Fully support non-USD fiats
- Simplify and making it look neater by using whole numbers for conversions.
- Global minimums from Phaze that are >$5 remain intact, e.g. XMR.
@Jon-edge Jon-edge enabled auto-merge January 16, 2026 01:27
@Jon-edge Jon-edge disabled auto-merge January 16, 2026 01:27
@Jon-edge Jon-edge merged commit b18c730 into develop Jan 16, 2026
4 checks passed
@Jon-edge Jon-edge deleted the jon/fix/edgespend branch January 16, 2026 01:46
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.

3 participants