UNPKG

zksync-easy-onramp

Version:

SDK package for ZKsync easy on ramp

32 lines (30 loc) 1.47 kB
import type { ProviderQuoteOption, } from "@sdk/types/server"; /** * Sorts a list of provider quotes by the highest return value in fiat currency among * all the providers. * * This function takes an array of `ProviderQuoteOption` objects, where each provider * may have multiple payment methods. It flattens the array by creating a new object * for each payment method, retaining the provider's other properties. The resulting * array is then sorted in ascending order based on the `amountFiat` value of the * first payment method in each provider's payment methods array. * * @param providerQuotes - An array of `ProviderQuoteOption` objects, each containing * a list of payment methods with associated fiat return values. * @returns A new array of `ProviderQuoteOption` objects, each containing a single * payment method, sorted by the highest fiat return value. */ export function sortByHighestReturn(providerQuotes: ProviderQuoteOption[],): ProviderQuoteOption[] { const flatMapped = providerQuotes .flatMap((provider,) => provider.paymentMethods.map((paymentMethod,) => ({ ...provider, paymentMethods: [paymentMethod,], }),), ); return flatMapped .sort((a, b,) => { console.log(a.paymentMethods[0].receive.amountFiat, b.paymentMethods[0].receive.amountFiat,); return a.paymentMethods[0].receive.amountFiat - b.paymentMethods[0].receive.amountFiat; },); }