UNPKG

@ledgerhq/coin-algorand

Version:
33 lines 1.79 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.computeAlgoMaxSpendable = exports.isAmountValid = exports.recipientHasAsset = exports.ALGORAND_MIN_ACCOUNT_BALANCE = exports.ALGORAND_MAX_MEMO_SIZE = void 0; const bignumber_js_1 = require("bignumber.js"); const api_1 = __importDefault(require("./api")); exports.ALGORAND_MAX_MEMO_SIZE = 32; exports.ALGORAND_MIN_ACCOUNT_BALANCE = 100000; const recipientHasAsset = async (recipientAddress, assetId) => { const recipientAccount = await api_1.default.getAccount(recipientAddress); return recipientAccount.assets.map(a => a.assetId).includes(assetId); }; exports.recipientHasAsset = recipientHasAsset; const isAmountValid = async (recipientAddress, amount) => { const recipientAccount = await api_1.default.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=logic.js.map