@ledgerhq/coin-multiversx
Version:
Ledger MultiversX Coin integration
65 lines • 2.89 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const invariant_1 = __importDefault(require("invariant"));
const account_1 = require("@ledgerhq/coin-framework/account");
const currencies_1 = require("@ledgerhq/coin-framework/currencies");
const bignumber_js_1 = __importDefault(require("bignumber.js"));
function formatAccountSpecifics(account) {
const { multiversxResources } = account;
(0, invariant_1.default)(multiversxResources, "multiversx account expected");
const unit = (0, account_1.getAccountCurrency)(account).units[0];
const formatConfig = {
disableRounding: true,
alwaysShowSign: false,
showCode: true,
};
let str = " ";
if (account.spendableBalance) {
str += (0, currencies_1.formatCurrencyUnit)(unit, account.spendableBalance, formatConfig) + " spendable. ";
}
else {
str += " 0 spendable.";
}
if (multiversxResources && multiversxResources.nonce) {
str += "\n nonce : " + multiversxResources.nonce;
}
if (multiversxResources && multiversxResources.delegations) {
let delegated = new bignumber_js_1.default(0);
let undelegating = new bignumber_js_1.default(0);
let rewards = new bignumber_js_1.default(0);
for (const delegation of multiversxResources.delegations) {
delegated = delegated.plus(delegation.userActiveStake);
undelegating = delegation.userUndelegatedList.reduce((sum, undelegation) => sum.plus(undelegation.amount), undelegating);
rewards = rewards.plus(delegation.claimableRewards);
}
str +=
delegated && delegated.gt(0)
? `\n delegated: ${unit ? (0, currencies_1.formatCurrencyUnit)(unit, delegated, formatConfig) : delegated}`
: undelegating && undelegating.gt(0)
? `\n undelegating: ${unit ? (0, currencies_1.formatCurrencyUnit)(unit, undelegating, formatConfig) : undelegating}`
: rewards && rewards.gt(0)
? `\n rewards: ${unit ? (0, currencies_1.formatCurrencyUnit)(unit, rewards, formatConfig) : rewards}`
: "";
}
return str;
}
function formatOperationSpecifics(op, unit) {
const { amount } = op.extra;
return amount?.gt && amount.gt(0)
? " amount: " +
`${unit
? (0, currencies_1.formatCurrencyUnit)(unit, new bignumber_js_1.default(amount), {
showCode: true,
disableRounding: true,
}).padEnd(16)
: amount}`
: "";
}
exports.default = {
formatAccountSpecifics,
formatOperationSpecifics,
};
//# sourceMappingURL=formatters.js.map