@ledgerhq/coin-multiversx
Version:
Ledger MultiversX Coin integration
56 lines • 1.96 kB
JavaScript
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";
import { formatCurrencyUnit } from "@ledgerhq/coin-framework/currencies";
export const formatTransaction = ({ mode, amount, recipient, useAllAmount, subAccountId }, mainAccount) => {
const account = (subAccountId && (mainAccount.subAccounts || []).find(a => a.id === subAccountId)) ||
mainAccount;
return `
${mode.toUpperCase()} ${useAllAmount
? "MAX"
: amount.isZero()
? ""
: " " +
formatCurrencyUnit(getAccountCurrency(account).units[0], amount, {
showCode: true,
disableRounding: true,
})}${recipient ? `\nTO ${recipient}` : ""}`;
};
export const fromTransactionRaw = (tr) => {
const common = fromTransactionCommonRaw(tr);
const tx = {
...common,
family: tr.family,
mode: tr.mode,
fees: tr.fees ? new BigNumber(tr.fees) : null,
gasLimit: tr.gasLimit,
};
if (tr.data) {
tx.data = tr.data;
}
return tx;
};
export const toTransactionRaw = (t) => {
const common = toTransactionCommonRaw(t);
const tx = {
...common,
family: t.family,
mode: t.mode,
fees: t.fees?.toString() || null,
gasLimit: t.gasLimit,
};
if (t.data) {
tx.data = t.data;
}
return tx;
};
export default {
formatTransaction,
fromTransactionRaw,
toTransactionRaw,
fromTransactionStatusRaw,
toTransactionStatusRaw,
formatTransactionStatus,
};
//# sourceMappingURL=transaction.js.map