@ledgerhq/coin-hedera
Version:
Ledger Hedera Coin integration
26 lines (20 loc) • 848 B
text/typescript
import BigNumber from "bignumber.js";
import type { AccountBridge } from "@ledgerhq/types-live";
import { getMainAccount } from "@ledgerhq/coin-framework/account/index";
import type { Transaction } from "../types";
import { getEstimatedFees } from "./utils";
export const estimateMaxSpendable: AccountBridge<Transaction>["estimateMaxSpendable"] = async ({
account,
parentAccount,
}) => {
const balance = account.balance;
const mainAccount = getMainAccount(account, parentAccount);
const estimatedFees = await getEstimatedFees(mainAccount);
let maxSpendable = balance.minus(estimatedFees);
// set max spendable to 0 if negative
// for cases where the user's account balance is smaller than the estimated fee
if (maxSpendable.isLessThan(0)) {
maxSpendable = new BigNumber(0);
}
return Promise.resolve(maxSpendable);
};