diff --git a/src/lib/coinpayportal.test.ts b/src/lib/coinpayportal.test.ts index abff35e2..5ef1365a 100644 --- a/src/lib/coinpayportal.test.ts +++ b/src/lib/coinpayportal.test.ts @@ -4,6 +4,7 @@ import { createPayment, createInvoice, sendInvoice, + coinToPaymentCurrency, getBusinessWalletCurrencies, getSupportedCoins, preferredCoinToPaymentCurrency, @@ -196,6 +197,12 @@ describe("CoinPayPortal supported coins API", () => { expect(preferredCoinToPaymentCurrency("USDC")).toBe("usdc_sol"); }); + it("maps CoinPay OAuth wallet cryptocurrency and chain fields", () => { + expect(coinToPaymentCurrency({ cryptocurrency: "USDC", chain: "POL" })).toBe("usdc_pol"); + expect(coinToPaymentCurrency({ cryptocurrency: "USDT", chain: "ETH" })).toBe("usdt_eth"); + expect(coinToPaymentCurrency({ cryptocurrency: "SOL", chain: "SOL" })).toBe("sol"); + }); + it("rejects preferred coins CoinPayPortal payment creation cannot represent", async () => { await expect(resolveSupportedPaymentCurrency("LN")).rejects.toThrow( "CoinPayPortal payments do not support LN" diff --git a/src/lib/coinpayportal.ts b/src/lib/coinpayportal.ts index 431d6a15..e5a72a16 100644 --- a/src/lib/coinpayportal.ts +++ b/src/lib/coinpayportal.ts @@ -76,6 +76,7 @@ export interface SupportedCoin { symbol?: string; code?: string; currency?: string; + cryptocurrency?: string; id?: string; name?: string; chain?: string; @@ -281,6 +282,7 @@ export function coinToPaymentCurrency(coin: SupportedCoin): SupportedCurrency | normalizeCoinSymbol(coin.symbol) || normalizeCoinSymbol(coin.code) || normalizeCoinSymbol(coin.currency) || + normalizeCoinSymbol(coin.cryptocurrency) || normalizeCoinSymbol(coin.id); const chain = normalizeCoinSymbol(coin.chain) ||