From 172c2f36abb9f242baeff4a254239e4a96960ec5 Mon Sep 17 00:00:00 2001 From: Aimen Sahnoun Date: Thu, 16 Jan 2025 18:32:25 +0400 Subject: [PATCH 1/2] feat: filter payment chain based on available networks --- .../src/lib/create-invoice-form.svelte | 47 ++++++++++++++----- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/packages/create-invoice-form/src/lib/create-invoice-form.svelte b/packages/create-invoice-form/src/lib/create-invoice-form.svelte index a9a1b456..263bb97a 100644 --- a/packages/create-invoice-form/src/lib/create-invoice-form.svelte +++ b/packages/create-invoice-form/src/lib/create-invoice-form.svelte @@ -162,22 +162,47 @@ currency = undefined; filteredSettlementCurrencies = []; network = undefined; - networks = []; + + const availableNetworks = new Set( + currencyManager.knownCurrencies.map((currency) => currency.network) + ); if (invoiceCurrency.type === Types.RequestLogic.CURRENCY.ISO4217) { - networks = (getCurrencySupportedNetworksForConversion( - invoiceCurrency.hash, - currencyManager - ) ?? []) as string[]; + const conversionNetworks = new Set( + getCurrencySupportedNetworksForConversion( + invoiceCurrency.hash, + currencyManager + ) + ); + + networks = [...availableNetworks].filter( + (network) => + conversionNetworks.has(network) && + (config.supportedNetworks + ? config.supportedNetworks.includes(network) + : true) + ); + + console.log("networks: ", networks); } else { const baseSymbol = invoiceCurrency.symbol.split("-")[0]; - networks = currencyManager.knownCurrencies - .filter((currency) => { - const currencyBaseSymbol = currency.symbol.split("-")[0]; - return currencyBaseSymbol === baseSymbol; - }) - .map((currency) => currency.network); + networks = [...availableNetworks].filter((network) => { + const hasToken = currencyManager.knownCurrencies.some( + (currency) => + currency.network === network && + currency.symbol.split("-")[0] === baseSymbol + ); + + return ( + hasToken && + (config.supportedNetworks + ? config.supportedNetworks.includes(network) + : true) + ); + }); } + + networks = [...new Set(networks)]; } }; From 991ddd87b7a5554177fe479c0b24dc4d8d182726 Mon Sep 17 00:00:00 2001 From: Aimen Sahnoun Date: Thu, 16 Jan 2025 19:58:07 +0400 Subject: [PATCH 2/2] chore: remove console.log --- packages/create-invoice-form/src/lib/create-invoice-form.svelte | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/create-invoice-form/src/lib/create-invoice-form.svelte b/packages/create-invoice-form/src/lib/create-invoice-form.svelte index 263bb97a..603ff7a9 100644 --- a/packages/create-invoice-form/src/lib/create-invoice-form.svelte +++ b/packages/create-invoice-form/src/lib/create-invoice-form.svelte @@ -182,8 +182,6 @@ ? config.supportedNetworks.includes(network) : true) ); - - console.log("networks: ", networks); } else { const baseSymbol = invoiceCurrency.symbol.split("-")[0]; networks = [...availableNetworks].filter((network) => {