UNPKG

@bajetech/digitalbits-wallet-sdk

Version:

A library to make it easier to write wallets that interact with the DigitalBits blockchain

55 lines 2.78 kB
import { __assign } from "tslib"; import BigNumber from "bignumber.js"; import { Asset } from "xdb-digitalbits-sdk"; import { getBalanceIdentifier } from "."; import { BASE_RESERVE, BASE_RESERVE_MIN_COUNT, NATIVE_ASSET_IDENTIFIER, } from "../constants/digitalbits"; export function makeDisplayableBalances(accountDetails) { var balances = accountDetails.balances, subentry_count = accountDetails.subentry_count, num_sponsored = accountDetails.num_sponsored, num_sponsoring = accountDetails.num_sponsoring; var displayableBalances = Object.values(balances).reduce(function (memo, balance) { var _a; var identifier = getBalanceIdentifier(balance); var total = new BigNumber(balance.balance); var sellingLiabilities = new BigNumber(0); var buyingLiabilities = new BigNumber(0); var available; if ("selling_liabilities" in balance) { sellingLiabilities = new BigNumber(balance.selling_liabilities); available = total.minus(sellingLiabilities); } if ("buying_liabilities" in balance) { buyingLiabilities = new BigNumber(balance.buying_liabilities); } if (identifier === NATIVE_ASSET_IDENTIFIER) { // define the native balance line later return __assign(__assign({}, memo), { native: { token: { type: NATIVE_ASSET_IDENTIFIER, code: Asset.native().getCode(), }, total: total, available: available, sellingLiabilities: sellingLiabilities, buyingLiabilities: buyingLiabilities, minimumBalance: new BigNumber(BASE_RESERVE_MIN_COUNT) .plus(subentry_count) .plus(num_sponsoring) .minus(num_sponsored) .times(BASE_RESERVE) .plus(sellingLiabilities), } }); } var assetBalance = balance; var assetSponsor = assetBalance.sponsor ? { sponsor: assetBalance.sponsor } : {}; return __assign(__assign({}, memo), (_a = {}, _a[identifier] = __assign({ token: { type: assetBalance.asset_type, code: assetBalance.asset_code, issuer: { key: assetBalance.asset_issuer, }, }, sellingLiabilities: sellingLiabilities, buyingLiabilities: buyingLiabilities, total: total, limit: new BigNumber(assetBalance.limit), available: total.minus(sellingLiabilities) }, assetSponsor), _a)); }, {}); return displayableBalances; } //# sourceMappingURL=makeDisplayableBalances.js.map