@hyperlane-xyz/widgets
Version:
Common react components for Hyperlane projects
53 lines • 1.93 kB
JavaScript
import { useMemo } from 'react';
import { ProtocolType } from '@hyperlane-xyz/utils';
import { useAleoWatchAsset } from './aleo.js';
import { useCosmosWatchAsset } from './cosmos.js';
import { useEthereumWatchAsset } from './ethereum.js';
import { useRadixWatchAsset } from './radix.js';
import { useSolanaWatchAsset } from './solana.js';
import { useStarknetWatchAsset } from './starknet.js';
import { useTronWatchAsset } from './tron.js';
export function useWatchAsset(multiProvider) {
const { addAsset: evmAddAsset } = useEthereumWatchAsset(multiProvider);
const { addAsset: solanaAddAsset } = useSolanaWatchAsset(multiProvider);
const { addAsset: cosmosAddAsset } = useCosmosWatchAsset(multiProvider);
const { addAsset: starknetAddAsset } = useStarknetWatchAsset(multiProvider);
const { addAsset: radixAddAsset } = useRadixWatchAsset(multiProvider);
const { addAsset: aleoAddAsset } = useAleoWatchAsset(multiProvider);
const { addAsset: tronAddAsset } = useTronWatchAsset(multiProvider);
return useMemo(() => ({
[ProtocolType.Ethereum]: {
addAsset: evmAddAsset,
},
[ProtocolType.Sealevel]: {
addAsset: solanaAddAsset,
},
[ProtocolType.Cosmos]: {
addAsset: cosmosAddAsset,
},
[ProtocolType.CosmosNative]: {
addAsset: cosmosAddAsset,
},
[ProtocolType.Starknet]: {
addAsset: starknetAddAsset,
},
[ProtocolType.Radix]: {
addAsset: radixAddAsset,
},
[ProtocolType.Aleo]: {
addAsset: aleoAddAsset,
},
[ProtocolType.Tron]: {
addAsset: tronAddAsset,
},
}), [
evmAddAsset,
solanaAddAsset,
cosmosAddAsset,
starknetAddAsset,
radixAddAsset,
aleoAddAsset,
tronAddAsset,
]);
}
//# sourceMappingURL=watchAsset.js.map