@ledgerhq/coin-celo
Version:
54 lines (50 loc) • 1.58 kB
text/typescript
import type { Transaction, TransactionRaw } from "../types/types";
import { BigNumber } from "bignumber.js";
import { formatTransactionStatus } from "@ledgerhq/coin-framework/formatters";
import {
fromTransactionCommonRaw,
fromTransactionStatusRawCommon as fromTransactionStatusRaw,
toTransactionCommonRaw,
toTransactionStatusRawCommon as toTransactionStatusRaw,
} from "@ledgerhq/coin-framework/serialization";
import { getAccountCurrency } from "@ledgerhq/coin-framework/account/index";
import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies/index";
import { Account } from "@ledgerhq/types-live";
export const formatTransaction = (t: Transaction, account: Account): string => `
SEND ${
t.useAllAmount
? "MAX CELO"
: formatCurrencyUnit(getAccountCurrency(account).units[0], t.amount, {
showCode: true,
disableRounding: true,
})
}
TO ${t.recipient}`;
const fromTransactionRaw = (tr: TransactionRaw): Transaction => {
const common = fromTransactionCommonRaw(tr);
return {
...common,
family: tr.family,
fees: tr.fees ? new BigNumber(tr.fees) : null,
mode: tr.mode,
index: tr.index,
};
};
export const toTransactionRaw = (t: Transaction): TransactionRaw => {
const common = toTransactionCommonRaw(t);
return {
...common,
family: t.family,
fees: t.fees?.toString() || null,
mode: t.mode,
index: t.index,
};
};
export default {
formatTransaction,
fromTransactionRaw,
toTransactionRaw,
fromTransactionStatusRaw,
toTransactionStatusRaw,
formatTransactionStatus,
};