import toast from 'react-hot-toast'; import { derive, sign } from "xrpl-accountlib" import state, { IAccount } from "../state" const estimateFee = async (tx: Record, account: IAccount, opts: { silent?: boolean } = {}): Promise => { try { const copyTx = JSON.parse(JSON.stringify(tx)) delete copyTx['SigningPubKey'] if (!copyTx.Fee) { copyTx.Fee = '1000' } const keypair = derive.familySeed(account.secret) const { signedTransaction } = sign(copyTx, keypair); const res = await state.client?.send({ command: 'fee', tx_blob: signedTransaction }) if (res && res.drops) { return res.drops; } return null } catch (err) { if (!opts.silent) { console.error(err) toast.error("Cannot estimate fee.") // ? Some better msg } return null } } export default estimateFee