@ledgerhq/coin-near
Version:
62 lines (56 loc) • 1.91 kB
text/typescript
import { formatCurrencyUnit } from "@ledgerhq/coin-module-framework/currencies/index";
import { getAccountCurrency } from "@ledgerhq/ledger-wallet-framework/account/index";
import { formatTransactionStatus } from "@ledgerhq/ledger-wallet-framework/formatters";
import {
fromTransactionCommonRaw,
fromTransactionStatusRawCommon as fromTransactionStatusRaw,
toTransactionCommonRaw,
toTransactionStatusRawCommon as toTransactionStatusRaw,
} from "@ledgerhq/ledger-wallet-framework/serialization";
import type { Account } from "@ledgerhq/types-live";
import { BigNumber } from "bignumber.js";
import type { Transaction, TransactionRaw } from "./types";
export const formatTransaction = (
{ mode, amount, recipient, useAllAmount }: Transaction,
account: Account,
): string => `
${mode.toUpperCase()} ${
useAllAmount
? "MAX"
: amount.isZero()
? ""
: " " +
formatCurrencyUnit(getAccountCurrency(account).units[0], amount, {
showCode: true,
disableRounding: true,
})
}${recipient ? `\nTO ${recipient}` : ""}`;
export const fromTransactionRaw = (transactionRaw: TransactionRaw): Transaction => {
const common = fromTransactionCommonRaw(transactionRaw);
return {
...common,
family: transactionRaw.family,
mode: transactionRaw.mode,
fees: new BigNumber(transactionRaw?.fees || 0),
};
};
export const toTransactionRaw = (transaction: Transaction): TransactionRaw => {
const common = toTransactionCommonRaw(transaction);
const transactionRaw: TransactionRaw = {
...common,
family: transaction.family,
mode: transaction.mode,
};
if (transaction.fees) {
transactionRaw.fees = transaction.fees.toString();
}
return transactionRaw;
};
export default {
formatTransaction,
fromTransactionRaw,
toTransactionRaw,
fromTransactionStatusRaw,
toTransactionStatusRaw,
formatTransactionStatus,
};