@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
51 lines (46 loc) • 1.46 kB
text/typescript
import { ExchangeProviderNameAndSignature } from ".";
import calService from "@ledgerhq/ledger-cal-service";
const testSellProvider: ExchangeProviderNameAndSignature = {
name: "SELL_TEST",
publicKey: {
curve: "secp256k1",
data: Buffer.from(
"0478d5facdae2305f48795d3ce7d9244f5060d2f800901da5746d1f4177ae8d7bbe63f3870efc0d36af8f91962811e1d8d9df91ce3b3ea2cd9f550c7d465f8b7b3",
"hex",
),
},
signature: Buffer.from(
"30440220471b035b40dafa095d615998c82202b2bd00fb45670b828f1dda3b68e5b24cc3022022a1c64d02b8c14e1e4cc2d05b00234642c11db3d4461ff5366f5af337cf0ced",
"hex",
),
version: 2,
};
export const fetchAndMergeProviderData = async env => {
try {
const sellProvidersData = await calService.getProvidersData({
type: "sell",
...env,
});
return { ...sellProvidersData };
} catch (error) {
console.error("Error fetching or processing provider data:", error);
}
};
export const getSellProvider = async ({
providerId,
ledgerSignatureEnv,
partnerSignatureEnv,
}): Promise<ExchangeProviderNameAndSignature> => {
if (ledgerSignatureEnv === "test") {
return testSellProvider;
}
const res = await fetchAndMergeProviderData({ ledgerSignatureEnv, partnerSignatureEnv });
if (!res) {
throw new Error("Failed to fetch provider data");
}
const provider = res[providerId];
if (!provider) {
throw new Error(`Unknown partner ${providerId}`);
}
return provider;
};