Just return the fee values, no mutating

This commit is contained in:
Valtteri Karesto
2022-05-25 13:03:38 +03:00
parent d0dde56c67
commit e5eaf09721

View File

@@ -1,19 +1,24 @@
import { sign, XRPL_Account } from "xrpl-accountlib"
import state from "../state"
import { derive, sign } from "xrpl-accountlib"
import state, { IAccount } from "../state"
// Mutate tx object with network estimated fee value
const estimateFee = async (tx: Record<string, unknown>, keypair: XRPL_Account): Promise<null | { base_fee: string, median_fee: string; minimum_fee: string; open_ledger_fee: string; }> => {
const estimateFee = async (tx: Record<string, unknown>, account: IAccount): Promise<null | { base_fee: string, median_fee: string; minimum_fee: string; open_ledger_fee: string; }> => {
const copyTx = JSON.parse(JSON.stringify(tx))
console.log(tx)
delete copyTx['SigningPubKey']
if (!copyTx.Fee) {
copyTx.Fee = '1000'
}
const keypair = derive.familySeed(account.secret)
const { signedTransaction } = sign(copyTx, keypair);
try {
const res = await state.client?.send({ command: 'fee', tx_blob: signedTransaction })
if (res && res.drops) {
return tx['Fee'] = res.drops.base_fee;
return res.drops;
}
return null
} catch (err) {
throw Error('Cannot estimate fee')
throw Error('Cannot estimate fee');
return null
}
}