@ledgerhq/coin-celo
Version:
31 lines • 1.65 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.estimateMaxSpendable = void 0;
const getTransactionStatus_1 = __importDefault(require("./getTransactionStatus"));
const prepareTransaction_1 = __importDefault(require("./prepareTransaction"));
const createTransaction_1 = __importDefault(require("./createTransaction"));
const helpers_1 = require("@ledgerhq/coin-framework/account/helpers");
const bignumber_js_1 = __importDefault(require("bignumber.js"));
const estimateMaxSpendable = async ({ account, parentAccount, transaction }) => {
const mainAccount = (0, helpers_1.getMainAccount)(account, parentAccount);
const tokenAccount = (0, helpers_1.findSubAccountById)(mainAccount, transaction?.subAccountId ?? "");
const fromTokenAccount = tokenAccount && (0, helpers_1.isTokenAccount)(tokenAccount);
const t = await (0, prepareTransaction_1.default)(mainAccount, {
...(0, createTransaction_1.default)(account),
...transaction,
useAllAmount: true,
});
const { amount } = await (0, getTransactionStatus_1.default)(mainAccount, t);
const fees = t.fees ?? (0, bignumber_js_1.default)(0);
return fromTokenAccount
? tokenAccount.spendableBalance
: account.spendableBalance.gt(fees)
? amount.minus(fees)
: new bignumber_js_1.default(0);
};
exports.estimateMaxSpendable = estimateMaxSpendable;
exports.default = exports.estimateMaxSpendable;
//# sourceMappingURL=estimateMaxSpendable.js.map