@ledgerhq/coin-algorand
Version:
Ledger Algorand Coin integration
21 lines (18 loc) • 752 B
text/typescript
export const ALGORAND_MIN_ACCOUNT_BALANCE = 100000n; // 0.1 ALGO in microAlgos
/**
* Compute minimum balance required for an Algorand account
* Base: 0.1 ALGO + 0.1 ALGO per asset
*/
export function computeMinimumBalance(nbAssets: number, isOptingIn = false): bigint {
const base = 100000n; // 0.1 algo = 100000 microalgos
const newAsset = isOptingIn ? 1n : 0n;
return base * (1n + BigInt(nbAssets) + newAsset);
}
/**
* Compute max spendable balance for an Algorand account
*/
export function computeMaxSpendable(balance: bigint, nbAssets: number, isOptingIn = false): bigint {
const minBalance = computeMinimumBalance(nbAssets, isOptingIn);
const maxSpendable = balance - minBalance;
return maxSpendable > 0n ? maxSpendable : 0n;
}