Commit 9068d41b authored by tom's avatar tom

fix tx views

parent e1c2c54e
...@@ -7,11 +7,13 @@ export const publicClient = (() => { ...@@ -7,11 +7,13 @@ export const publicClient = (() => {
return; return;
} }
return createPublicClient({ try {
chain: currentChain, return createPublicClient({
transport: http(), chain: currentChain,
batch: { transport: http(),
multicall: true, batch: {
}, multicall: true,
}); },
});
} catch (error) {}
})(); })();
...@@ -7,6 +7,7 @@ import config from 'configs/app'; ...@@ -7,6 +7,7 @@ import config from 'configs/app';
import { useAppContext } from 'lib/contexts/app'; import { useAppContext } from 'lib/contexts/app';
import throwOnResourceLoadError from 'lib/errors/throwOnResourceLoadError'; import throwOnResourceLoadError from 'lib/errors/throwOnResourceLoadError';
import getQueryParamString from 'lib/router/getQueryParamString'; import getQueryParamString from 'lib/router/getQueryParamString';
import { publicClient } from 'lib/web3/client';
import TextAd from 'ui/shared/ad/TextAd'; import TextAd from 'ui/shared/ad/TextAd';
import EntityTags from 'ui/shared/EntityTags'; import EntityTags from 'ui/shared/EntityTags';
import PageTitle from 'ui/shared/Page/PageTitle'; import PageTitle from 'ui/shared/Page/PageTitle';
...@@ -33,7 +34,7 @@ const TransactionPageContent = () => { ...@@ -33,7 +34,7 @@ const TransactionPageContent = () => {
const txQuery = useTxQuery(); const txQuery = useTxQuery();
const { data, isPlaceholderData, isError, error, errorUpdateCount } = txQuery; const { data, isPlaceholderData, isError, error, errorUpdateCount } = txQuery;
const showDegradedView = (isError || isPlaceholderData) && errorUpdateCount > 0; const showDegradedView = publicClient && (isError || isPlaceholderData) && errorUpdateCount > 0;
const tabs: Array<RoutedTab> = (() => { const tabs: Array<RoutedTab> = (() => {
const detailsComponent = showDegradedView ? const detailsComponent = showDegradedView ?
...@@ -97,8 +98,10 @@ const TransactionPageContent = () => { ...@@ -97,8 +98,10 @@ const TransactionPageContent = () => {
return <RoutedTabs tabs={ tabs }/>; return <RoutedTabs tabs={ tabs }/>;
})(); })();
if (error?.status === 422) { if (isError && !showDegradedView) {
throwOnResourceLoadError({ resource: 'tx', error, isError: true }); if (error?.status === 422 || error?.status === 404) {
throwOnResourceLoadError({ resource: 'tx', error, isError: true });
}
} }
return ( return (
......
import React from 'react'; import React from 'react';
import TestnetWarning from 'ui/shared/alerts/TestnetWarning'; import TestnetWarning from 'ui/shared/alerts/TestnetWarning';
import DataFetchAlert from 'ui/shared/DataFetchAlert';
import TxInfo from './details/TxInfo'; import TxInfo from './details/TxInfo';
import type { TxQuery } from './useTxQuery'; import type { TxQuery } from './useTxQuery';
...@@ -10,6 +11,10 @@ interface Props { ...@@ -10,6 +11,10 @@ interface Props {
} }
const TxDetails = ({ txQuery }: Props) => { const TxDetails = ({ txQuery }: Props) => {
if (txQuery.isError) {
return <DataFetchAlert/>;
}
return ( return (
<> <>
<TestnetWarning mb={ 6 } isLoading={ txQuery.isPlaceholderData }/> <TestnetWarning mb={ 6 } isLoading={ txQuery.isPlaceholderData }/>
......
...@@ -36,6 +36,10 @@ const TxDetailsDegraded = ({ hash, txQuery }: Props) => { ...@@ -36,6 +36,10 @@ const TxDetailsDegraded = ({ hash, txQuery }: Props) => {
const query = useQuery<RpcResponseType, unknown, Transaction | null>({ const query = useQuery<RpcResponseType, unknown, Transaction | null>({
queryKey: [ 'RPC', 'tx', { hash } ], queryKey: [ 'RPC', 'tx', { hash } ],
queryFn: async() => { queryFn: async() => {
if (!publicClient) {
throw new Error('No public RPC client');
}
const tx = await publicClient.getTransaction({ hash: hash as `0x${ string }` }); const tx = await publicClient.getTransaction({ hash: hash as `0x${ string }` });
if (!tx) { if (!tx) {
......
...@@ -2,6 +2,7 @@ import React from 'react'; ...@@ -2,6 +2,7 @@ import React from 'react';
import { USER_OPS_ITEM } from 'stubs/userOps'; import { USER_OPS_ITEM } from 'stubs/userOps';
import { generateListStub } from 'stubs/utils'; import { generateListStub } from 'stubs/utils';
import DataFetchAlert from 'ui/shared/DataFetchAlert';
import useQueryWithPages from 'ui/shared/pagination/useQueryWithPages'; import useQueryWithPages from 'ui/shared/pagination/useQueryWithPages';
import TxPendingAlert from 'ui/tx/TxPendingAlert'; import TxPendingAlert from 'ui/tx/TxPendingAlert';
import TxSocketAlert from 'ui/tx/TxSocketAlert'; import TxSocketAlert from 'ui/tx/TxSocketAlert';
...@@ -28,6 +29,10 @@ const TxUserOps = ({ txQuery }: Props) => { ...@@ -28,6 +29,10 @@ const TxUserOps = ({ txQuery }: Props) => {
return txQuery.socketStatus ? <TxSocketAlert status={ txQuery.socketStatus }/> : <TxPendingAlert/>; return txQuery.socketStatus ? <TxSocketAlert status={ txQuery.socketStatus }/> : <TxPendingAlert/>;
} }
if (txQuery.isError) {
return <DataFetchAlert/>;
}
return <UserOpsContent query={ userOpsQuery } showTx={ false }/>; return <UserOpsContent query={ userOpsQuery } showTx={ false }/>;
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment