@ledgerhq/coin-stellar
Version:
Ledger Stellar Coin integration
83 lines • 3.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatTransaction = void 0;
const bignumber_js_1 = require("bignumber.js");
const formatters_1 = require("@ledgerhq/coin-framework/formatters");
const serialization_1 = require("@ledgerhq/coin-framework/serialization");
const formatCurrencyUnit_1 = require("@ledgerhq/coin-framework/currencies/formatCurrencyUnit");
const helpers_1 = require("@ledgerhq/coin-framework/account/helpers");
const logic_1 = require("./logic");
// FIXME: recheck fields here (mode -> type?)
function formatTransaction({ amount, recipient, fees, memoValue, useAllAmount, subAccountId }, mainAccount) {
const account = (subAccountId && (mainAccount.subAccounts || []).find(a => a.id === subAccountId)) ||
mainAccount;
return `
SEND ${useAllAmount
? "MAX"
: (0, formatCurrencyUnit_1.formatCurrencyUnit)((0, helpers_1.getAccountCurrency)(account).units[0], amount, {
showCode: true,
disableRounding: true,
})}
TO ${recipient}
with fees=${!fees
? "?"
: (0, formatCurrencyUnit_1.formatCurrencyUnit)((0, helpers_1.getAccountCurrency)(account).units[0], fees, {
showCode: true,
disableRounding: true,
})}${memoValue ? "\n memo=" + memoValue : ""}`;
}
exports.formatTransaction = formatTransaction;
function fromTransactionRaw(tr) {
const common = (0, serialization_1.fromTransactionCommonRaw)(tr);
const { networkInfo } = tr;
const [assetReference, assetOwner] = (0, logic_1.getAssetCodeIssuer)(tr);
return {
...common,
family: tr.family,
fees: tr.fees ? new bignumber_js_1.BigNumber(tr.fees) : null,
memoValue: tr.memoValue ? tr.memoValue : null,
memoType: tr.memoType ? tr.memoType : null,
networkInfo: networkInfo && {
family: networkInfo.family,
fees: new bignumber_js_1.BigNumber(networkInfo.fees),
baseFee: new bignumber_js_1.BigNumber(networkInfo.baseFee),
baseReserve: new bignumber_js_1.BigNumber(networkInfo.baseReserve),
networkCongestionLevel: networkInfo.networkCongestionLevel,
},
mode: tr.mode,
assetReference,
assetOwner,
};
}
function toTransactionRaw(transaction) {
const common = (0, serialization_1.toTransactionCommonRaw)(transaction);
const { networkInfo } = transaction;
const [assetReference, assetOwner] = (0, logic_1.getAssetCodeIssuer)(transaction);
return {
...common,
family: transaction.family,
fees: transaction.fees ? transaction.fees.toString() : null,
baseReserve: transaction.baseReserve ? transaction.baseReserve.toString() : null,
memoValue: transaction.memoValue ? transaction.memoValue.toString() : null,
memoType: transaction.memoType ? transaction.memoType.toString() : null,
networkInfo: networkInfo && {
family: networkInfo.family,
fees: networkInfo.fees.toString(),
baseFee: networkInfo.baseFee.toString(),
baseReserve: networkInfo.baseReserve.toString(),
networkCongestionLevel: networkInfo.networkCongestionLevel,
},
mode: transaction.mode,
assetReference,
assetOwner,
};
}
exports.default = {
formatTransaction,
fromTransactionRaw,
toTransactionRaw,
fromTransactionStatusRaw: serialization_1.fromTransactionStatusRawCommon,
toTransactionStatusRaw: serialization_1.toTransactionStatusRawCommon,
formatTransactionStatus: formatters_1.formatTransactionStatus,
};
//# sourceMappingURL=transaction.js.map