@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
53 lines (48 loc) • 1.94 kB
text/typescript
export * from "@ledgerhq/ledger-wallet-framework/transaction/common";
export * from "./signOperation";
export * from "./deviceTransactionConfig";
import type {
Transaction,
TransactionRaw,
TransactionStatus,
TransactionStatusRaw,
} from "../generated/types";
import transactionModulePerFamily from "../generated/transaction";
import type { Account } from "@ledgerhq/types-live";
export const fromTransactionRaw = (tr: TransactionRaw): Transaction => {
const TM = transactionModulePerFamily[tr.family];
// FIXME: something is wrong with TM.fromTransactionRaw expecting a (arg: never) => for some reasons
return TM.fromTransactionRaw(tr as any);
};
export const toTransactionRaw = (t: Transaction): TransactionRaw => {
const TM = transactionModulePerFamily[t.family];
// FIXME: something is wrong with TM.toTransactionRaw expecting a (arg: never) => for some reasons
return TM.toTransactionRaw(t as any);
};
export const fromTransactionStatusRaw = (
tr: TransactionStatusRaw,
family: string,
): TransactionStatus => {
const TM = transactionModulePerFamily[family];
return TM.fromTransactionStatusRaw(tr as any);
};
export const toTransactionStatusRaw = (
t: TransactionStatus,
family: string,
): TransactionStatusRaw => {
const TM = transactionModulePerFamily[family];
return TM.toTransactionStatusRaw(t as any);
};
export const formatTransaction = async (t: Transaction, a: Account): Promise<string> => {
const TM = transactionModulePerFamily[t.family];
// FIXME: something is wrong with TM.formatTransaction expecting a (arg: never) => for some reasons
return TM.formatTransaction ? await TM.formatTransaction(t as any, a as any) : "";
};
export const formatTransactionStatus = (
t: Transaction,
ts: TransactionStatus,
mainAccount: Account,
): string => {
const TM = transactionModulePerFamily[t.family];
return TM.formatTransactionStatus(t as any, ts as any, mainAccount as any);
};