@lifi/widget
Version:
LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.
25 lines (23 loc) • 906 B
text/typescript
import { useAccount } from '@lifi/wallet-management'
import { useRouteExecutionStore } from './RouteExecutionStore.js'
import type { RouteExecution } from './types.js'
import { RouteExecutionStatus } from './types.js'
export const useExecutingRoutesIds = () => {
const { accounts } = useAccount()
const accountAddresses = accounts.map((account) => account.address)
return useRouteExecutionStore((state) =>
(Object.values(state.routes) as RouteExecution[])
.filter(
(item) =>
accountAddresses.includes(item.route.fromAddress) &&
(item.status === RouteExecutionStatus.Pending ||
item.status === RouteExecutionStatus.Failed)
)
.sort(
(a, b) =>
(b?.route.steps[0].execution?.process[0]?.startedAt ?? 0) -
(a?.route.steps[0].execution?.process[0]?.startedAt ?? 0)
)
.map(({ route }) => route.id)
)
}