import { hexFieldsToNumber } from './utils' import type { TransactionForSim, TransactionPreviewInitOptions } from './types.js' import type { MultiSimOutput } from 'bnc-sdk' const simulateTransactions = async ( options: Omit, transactions: TransactionForSim[] ): Promise => { const { sdk } = options const cleanedTransactions: TransactionForSim[] = transactions.map( transaction => { const convertedTransaction = hexFieldsToNumber( transaction as TransactionForSim ) const cleanedTrans = { from: convertedTransaction.from, to: convertedTransaction.to, gas: convertedTransaction.gas || convertedTransaction.gasLimit || 0, gasPrice: convertedTransaction.gasPrice, maxFeePerGas: convertedTransaction.maxFeePerGas, maxPriorityFeePerGas: convertedTransaction.maxPriorityFeePerGas, input: convertedTransaction.input || transaction.input || transaction.data || '0x', value: convertedTransaction.value } return cleanedTrans } ) return sdk.multiSim(cleanedTransactions) as Promise } export default simulateTransactions