@ledgerhq/coin-canton
Version:
19 lines • 1.08 kB
JavaScript
import BigNumber from "bignumber.js";
import { getMainAccount } from "@ledgerhq/coin-framework/account/index";
import { getAbandonSeedAddress } from "@ledgerhq/cryptoassets/abandonseed";
import { getTransactionStatus } from "./getTransactionStatus";
import { prepareTransaction } from "./prepareTransaction";
import { createTransaction } from "./createTransaction";
export const estimateMaxSpendable = async ({ account, parentAccount, transaction, }) => {
const mainAccount = getMainAccount(account, parentAccount);
const newTransaction = await prepareTransaction(mainAccount, {
...createTransaction(account),
...transaction,
// fee estimation might require a recipient to work, in that case, we use a dummy one
recipient: transaction?.recipient || getAbandonSeedAddress("boilerplate"),
amount: new BigNumber(0),
});
const status = await getTransactionStatus(mainAccount, newTransaction);
return BigNumber.max(0, account.spendableBalance.minus(status.estimatedFees));
};
//# sourceMappingURL=estimateMaxSpendable.js.map