Skip to content

Commit 5677acf

Browse files
committed
fix: use evm-like runtime providers
1 parent 88aaa34 commit 5677acf

3 files changed

Lines changed: 21 additions & 11 deletions

File tree

src/features/hyperlane/sdkRuntime.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,17 @@ export function createEmptyMultiProvider(): ExplorerMultiProvider {
88
return new MultiProviderAdapter({}, { providerBuilders: {} });
99
}
1010

11-
// Explorer's provider-backed runtime paths are EVM-only today:
11+
// Explorer's provider-backed runtime paths are EVM-like today:
1212
// PI search, delivery status, debugger, ICA, rebalances, and warp balance reads.
13-
// Keeping this helper Ethereum-only avoids pulling every VM builder into the build graph.
13+
// Keeping this helper on the narrow EVM-like runtime surface preserves Tron parity
14+
// without pulling every VM builder into the build graph.
1415
export async function createRuntimeMultiProvider(
1516
chainMetadata: ChainMap<ChainMetadata<{ mailbox?: string }>>,
1617
): Promise<ExplorerMultiProvider> {
17-
const { evmRuntimeProviderBuilders } = await import('@hyperlane-xyz/sdk/providers/runtime/evm');
18+
const { evmLikeRuntimeProviderBuilders } = await import(
19+
'@hyperlane-xyz/sdk/providers/runtime/evmLike'
20+
);
1821
return new MultiProviderAdapter(chainMetadata, {
19-
providerBuilders: evmRuntimeProviderBuilders,
22+
providerBuilders: evmLikeRuntimeProviderBuilders,
2023
});
2124
}

src/features/messages/warpFees/fetchWarpFees.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import {
44
Mailbox__factory, // eslint-disable-line camelcase
55
TokenRouter__factory, // eslint-disable-line camelcase
66
} from '@hyperlane-xyz/core';
7-
import { MultiProtocolProvider, PROTOCOL_TO_HYP_NATIVE_STANDARD } from '@hyperlane-xyz/sdk';
7+
import { PROTOCOL_TO_HYP_NATIVE_STANDARD } from '@hyperlane-xyz/sdk';
88
import {
99
ProtocolType,
1010
convertDecimalsToIntegerString,
@@ -16,6 +16,7 @@ import { BigNumber, constants } from 'ethers';
1616
import { Message, MessageStub, WarpRouteDetails } from '../../../types';
1717
import { logger } from '../../../utils/logger';
1818
import { getWarpRouteAmountParts } from '../../../utils/warpRouteAmounts';
19+
import type { ExplorerMultiProvider } from '../../hyperlane/sdkRuntime';
1920

2021
export interface WarpFeeBreakdown {
2122
bridgeFee: string;
@@ -63,7 +64,7 @@ const HYP_NATIVE_STANDARDS = new Set<string>(Object.values(PROTOCOL_TO_HYP_NATIV
6364
export async function fetchWarpFees(
6465
message: Message | MessageStub,
6566
warpRouteDetails: WarpRouteDetails,
66-
multiProvider: MultiProtocolProvider,
67+
multiProvider: ExplorerMultiProvider,
6768
): Promise<WarpFeeBreakdown | null> {
6869
const chainMetadata = multiProvider.tryGetChainMetadata(message.originDomainId);
6970
if (!chainMetadata || !isEVMLike(chainMetadata.protocol)) return null;

src/features/messages/warpFees/useWarpFees.ts

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
11
import { useQuery } from '@tanstack/react-query';
22

3-
import { useMultiProvider } from '../../../store';
3+
import { useMultiProviderVersion, useReadyMultiProvider } from '../../../store';
44
import { Message, MessageStub, WarpRouteDetails } from '../../../types';
55
import { fetchWarpFees, WarpFeeBreakdown } from './fetchWarpFees';
66

77
export function useWarpFees(
88
message: Message | MessageStub,
99
warpRouteDetails: WarpRouteDetails | undefined,
1010
): WarpFeeBreakdown | null {
11-
const multiProvider = useMultiProvider();
11+
const multiProvider = useReadyMultiProvider();
12+
const multiProviderVersion = useMultiProviderVersion();
1213

1314
const { data } = useQuery({
1415
// eslint-disable-next-line @tanstack/query/exhaustive-deps
15-
queryKey: ['warpFees', message.id, warpRouteDetails?.originToken.addressOrDenom],
16-
queryFn: () => fetchWarpFees(message, warpRouteDetails!, multiProvider),
17-
enabled: !!warpRouteDetails,
16+
queryKey: [
17+
'warpFees',
18+
message.id,
19+
warpRouteDetails?.originToken.addressOrDenom,
20+
multiProviderVersion,
21+
],
22+
queryFn: () => fetchWarpFees(message, warpRouteDetails!, multiProvider!),
23+
enabled: !!warpRouteDetails && !!multiProvider,
1824
// Successful results (including legitimate `null` for "no fees detected") never go stale —
1925
// tx receipts are immutable. Transient errors still retry per React Query defaults.
2026
staleTime: Infinity,

0 commit comments

Comments
 (0)