composables/autoTeleport/useAutoTeleport.ts
import useAutoTeleportTransactionActions from './useAutoTeleportTransactionActions'import type { AutoTeleportAction, AutoTeleportFeeParams, AutoTeleportTransactions,} from './types'import useAutoTeleportTransition from '@/composables/autoTeleport/useAutoTeleportTransition'import useAutoTeleportWatch from '@/composables/autoTeleport/useAutoTeleportWatch' Function `default` has 68 lines of code (exceeds 25 allowed). Consider refactoring.export default function ( actions: ComputedRef<AutoTeleportAction[]>, neededAmount: ComputedRef<number>, fees: AutoTeleportFeeParams,) { const autoTeleportStarted = ref(false) const { teleport: sendXCM, getAddressByChain, status: teleportStatus, txId: teleportTxId, isError: teleportIsError, isAvailable, } = useTeleport() const { hasEnoughInCurrentChain, hasEnoughInRichestChain, isReady, optimalTransition, } = useAutoTeleportTransition({ actions, neededAmount, fees, autoTeleportStarted, }) const { transactionActions } = useAutoTeleportTransactionActions({ actions, teleportTxId, }) const clear = () => { teleportStatus.value = TransactionStatus.Unknown teleportIsError.value = false teleportTxId.value = '' autoTeleportStarted.value = false } const transactions = computed<AutoTeleportTransactions>(() => ({ teleport: { status: readonly(teleportStatus), txId: readonly(teleportTxId), isError: readonly(teleportIsError), }, actions: transactionActions.value, })) const teleport = async () => { const { destination, source, token, amount } = optimalTransition.value if (!source) { return } autoTeleportStarted.value = true await sendXCM({ amount: amount, from: source.chain, fromAddress: getAddressByChain(source.chain), to: destination.chain, toAddress: getAddressByChain(destination.chain), currency: token, }) } useAutoTeleportWatch({ optimalTransition, hasEnoughInCurrentChain, transactions, }) return { hasEnoughInCurrentChain, hasEnoughInRichestChain, isReady, optimalTransition, transactions, isAvailable, teleport, clear, }}