Skip to content

Commit 76f013e

Browse files
committed
udpate
1 parent 4535ac2 commit 76f013e

File tree

1 file changed

+22
-62
lines changed

1 file changed

+22
-62
lines changed
Lines changed: 22 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,91 +1,51 @@
1-
import Web3 from 'web3';
21
import evmChainsData from '../../store/chains/EvmChains.json';
32
import evmPriceFeedContractsData from '../../store/contracts/EvmPriceFeedContracts.json';
43
import evmWormholeContractsData from '../../store/contracts/EvmWormholeContracts.json';
54
import * as chains from "viem/chains";
65

7-
export const getEvmContractAddress = (chainId: number, contractType: string): `0x${string}` => {
6+
export const getEvmPriceFeedContractAddress = (chainId: number): `0x${string}` | undefined => {
87
const chain = evmChainsData.find((c) => c.networkId === chainId);
98
if (!chain) {
10-
throw new Error(`Chain with network ID ${chainId} not found`);
9+
return undefined;
1110
}
12-
13-
if (contractType === 'priceFeed') {
14-
const contract = evmPriceFeedContractsData.find((c) => c.chain === chain.id);
15-
if (!contract) {
16-
throw new Error(`Price feed contract not found for chain ${chainId}`);
17-
}
18-
return contract.address as `0x${string}`;
19-
}
20-
21-
if (contractType === 'wormhole') {
22-
const contract = evmWormholeContractsData.find((c) => c.chain === chain.id);
23-
if (!contract) {
24-
throw new Error(`Wormhole contract not found for chain ${chainId}`);
25-
}
26-
return contract.address as `0x${string}`;
11+
const contract = evmPriceFeedContractsData.find((c) => c.chain === chain.id);
12+
if (!contract?.address || !contract.address.startsWith('0x')) {
13+
return undefined;
2714
}
28-
29-
throw new Error(`Unknown contract type: ${contractType}`);
15+
return contract.address as `0x${string}`;
3016
}
3117

32-
export const getAllEvmChainsIds = () => evmChainsData.map((c) => c.networkId);
33-
34-
35-
// TODO: The below method should be used to get the RPC URL for a chain, but it is not working as expecte
36-
// export const getEvmChainRpcUrl = async (chainId: number) => {
37-
// const chain = evmChainsData.find((c) => c.networkId === chainId);
38-
// if (!chain) {
39-
// throw new Error(`Chain with network ID ${chainId} not found`);
40-
// }
41-
42-
// // Try JSON RPC URL first
43-
// if (await checkRpcUrl(chain.rpcUrl)) {
44-
// return chain.rpcUrl;
45-
// }
46-
47-
// // Fallback to viem chains
48-
// const viemChain = Object.values(chains).find((c: any) => c.id === chain.id);
49-
// if (viemChain && viemChain.rpcUrls && viemChain.rpcUrls.default) {
50-
// const viemRpcUrl = viemChain.rpcUrls.default.http[0];
51-
// if (await checkRpcUrl(viemRpcUrl)) {
52-
// return viemRpcUrl;
53-
// }
54-
// }
55-
56-
// throw new Error(`No working RPC URL found for chain ${chainId}`);
57-
// }
18+
export const getEvmWormholeContractAddress = (chainId: number): `0x${string}` | undefined => {
19+
const chain = evmChainsData.find((c) => c.networkId === chainId);
20+
if (!chain) {
21+
return undefined;
22+
}
23+
const contract = evmWormholeContractsData.find((c) => c.chain === chain.id);
24+
if (!contract?.address || !contract.address.startsWith('0x')) {
25+
return undefined;
26+
}
27+
return contract.address as `0x${string}`;
28+
}
5829

30+
export const getAllEvmChainsIds: number[] = evmChainsData.map((c) => c.networkId);
5931

60-
export const getEvmChainRpcUrl = (chainId: number) => {
32+
export const getEvmChainRpcUrl = (chainId: number): string | undefined => {
6133
const chain = evmChainsData.find((c) => c.networkId === chainId);
6234
if (!chain) {
63-
throw new Error(`Chain with network ID ${chainId} not found`);
35+
return undefined;
6436
}
6537

6638

6739
// Let's try to use the viem chains without checking if they are working
6840
const viemChain = Object.values(chains).find((c: any) => c.id === chain.id);
6941
if (viemChain && viemChain.rpcUrls && viemChain.rpcUrls.default) {
70-
const viemRpcUrl = viemChain.rpcUrls.default.http[0];
71-
return viemRpcUrl;
42+
return viemChain.rpcUrls.default.http[0];
7243
}
7344

7445
// Now let's try to use the json rpc url
7546
if (chain.rpcUrl) {
7647
return chain.rpcUrl;
7748
}
7849

79-
throw new Error(`No working RPC URL found for chain ${chainId}`);
50+
return undefined;
8051
}
81-
82-
83-
// const checkRpcUrl = (rpcUrl: string) => {
84-
// const web3 = new Web3(rpcUrl);
85-
// return web3.eth.getBlockNumber().then((blockNumber) => {
86-
// return true;
87-
// }).catch((error) => {
88-
// console.error(`Error checking RPC URL ${rpcUrl}: ${error}`);
89-
// return false;
90-
// });
91-
// }

0 commit comments

Comments
 (0)