UNPKG

@ledgerhq/coin-algorand

Version:
29 lines 1.58 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.computeAlgoMaxSpendable = exports.isAmountValid = exports.recipientHasAsset = exports.ALGORAND_MIN_ACCOUNT_BALANCE = void 0; const bignumber_js_1 = require("bignumber.js"); const network_1 = require("./network"); exports.ALGORAND_MIN_ACCOUNT_BALANCE = 100000; const recipientHasAsset = async (recipientAddress, assetId) => { const recipientAccount = await (0, network_1.getAccount)(recipientAddress); return recipientAccount.assets.map(a => a.assetId).includes(assetId); }; exports.recipientHasAsset = recipientHasAsset; const isAmountValid = async (recipientAddress, amount) => { const recipientAccount = await (0, network_1.getAccount)(recipientAddress); return recipientAccount.balance.isZero() ? amount.gte(exports.ALGORAND_MIN_ACCOUNT_BALANCE) : true; }; exports.isAmountValid = isAmountValid; const computeAlgoMaxSpendable = ({ accountBalance, nbAccountAssets, mode, }) => { const minBalance = computeMinimumAlgoBalance(mode, nbAccountAssets); const maxSpendable = accountBalance.minus(minBalance); return maxSpendable.gte(0) ? maxSpendable : new bignumber_js_1.BigNumber(0); }; exports.computeAlgoMaxSpendable = computeAlgoMaxSpendable; const computeMinimumAlgoBalance = (mode, nbAccountAssets) => { const base = 100000; // 0.1 algo = 100000 malgo const currentAssets = nbAccountAssets; const newAsset = mode === "optIn" ? 1 : 0; return new bignumber_js_1.BigNumber(base * (1 + currentAssets + newAsset)); }; //# sourceMappingURL=bridgeLogic.js.map