|
1 |
| -import { ChainId, chainIdToChain, chainToPlatform, toChainId } from '@wormhole-foundation/sdk-base'; |
| 1 | +import { |
| 2 | + ChainId, |
| 3 | + chainIdToChain, |
| 4 | + chainToChainId, |
| 5 | + chainToPlatform, |
| 6 | +} from '@wormhole-foundation/sdk-base'; |
2 | 7 | import { base58 } from 'ethers/lib/utils';
|
3 | 8 | import { Environment } from './consts';
|
4 | 9 |
|
5 | 10 | export const explorerBlock = (network: Environment, chainId: ChainId, block: string) =>
|
6 | 11 | network === 'mainnet'
|
7 |
| - ? chainId === toChainId('Solana') |
| 12 | + ? chainId === chainToChainId('Solana') |
8 | 13 | ? `https://solana.fm/block/${block}`
|
9 |
| - : chainId === toChainId('Ethereum') |
| 14 | + : chainId === chainToChainId('Ethereum') |
10 | 15 | ? `https://etherscan.io/block/${block}`
|
11 |
| - : chainId === toChainId('Terra') |
| 16 | + : chainId === chainToChainId('Terra') |
12 | 17 | ? `https://finder.terra.money/columbus-5/block/${block}`
|
13 |
| - : chainId === toChainId('Bsc') |
| 18 | + : chainId === chainToChainId('Bsc') |
14 | 19 | ? `https://bscscan.com/block/${block}`
|
15 |
| - : chainId === toChainId('Polygon') |
| 20 | + : chainId === chainToChainId('Polygon') |
16 | 21 | ? `https://polygonscan.com/block/${block}`
|
17 |
| - : chainId === toChainId('Avalanche') |
| 22 | + : chainId === chainToChainId('Avalanche') |
18 | 23 | ? `https://snowtrace.io/block/${block}`
|
19 |
| - : chainId === toChainId('Oasis') |
| 24 | + : chainId === chainToChainId('Oasis') |
20 | 25 | ? `https://explorer.emerald.oasis.dev/block/${block}`
|
21 |
| - : chainId === toChainId('Algorand') |
| 26 | + : chainId === chainToChainId('Algorand') |
22 | 27 | ? `https://app.dappflow.org/explorer/block/${block}`
|
23 |
| - : chainId === toChainId('Fantom') |
| 28 | + : chainId === chainToChainId('Fantom') |
24 | 29 | ? `https://ftmscan.com/block/${block}`
|
25 |
| - : chainId === toChainId('Karura') |
| 30 | + : chainId === chainToChainId('Karura') |
26 | 31 | ? `https://blockscout.karura.network/block/${block}`
|
27 |
| - : chainId === toChainId('Acala') |
| 32 | + : chainId === chainToChainId('Acala') |
28 | 33 | ? `https://blockscout.acala.network/block/${block}`
|
29 |
| - : chainId === toChainId('Klaytn') |
| 34 | + : chainId === chainToChainId('Klaytn') |
30 | 35 | ? `https://scope.klaytn.com/block/${block}`
|
31 |
| - : chainId === toChainId('Celo') |
| 36 | + : chainId === chainToChainId('Celo') |
32 | 37 | ? `https://explorer.celo.org/block/${block}`
|
33 |
| - : chainId === toChainId('Near') |
| 38 | + : chainId === chainToChainId('Near') |
34 | 39 | ? `https://nearblocks.io/blocks/${block}`
|
35 |
| - : chainId === toChainId('Moonbeam') |
| 40 | + : chainId === chainToChainId('Moonbeam') |
36 | 41 | ? `https://moonscan.io/block/${block}`
|
37 |
| - : chainId === toChainId('Terra2') |
| 42 | + : chainId === chainToChainId('Terra2') |
38 | 43 | ? `https://finder.terra.money/phoenix-1/block/${block}`
|
39 |
| - : chainId === toChainId('Injective') |
| 44 | + : chainId === chainToChainId('Injective') |
40 | 45 | ? `https://explorer.injective.network/block/${block}`
|
41 |
| - : chainId === toChainId('Sui') |
| 46 | + : chainId === chainToChainId('Sui') |
42 | 47 | ? `https://suiexplorer.com/checkpoint/${block}`
|
43 |
| - : chainId === toChainId('Aptos') |
| 48 | + : chainId === chainToChainId('Aptos') |
44 | 49 | ? `https://explorer.aptoslabs.com/block/${block}`
|
45 |
| - : chainId === toChainId('Arbitrum') |
| 50 | + : chainId === chainToChainId('Arbitrum') |
46 | 51 | ? `https://arbiscan.io/block/${block}`
|
47 |
| - : chainId === toChainId('Optimism') |
| 52 | + : chainId === chainToChainId('Optimism') |
48 | 53 | ? `https://optimistic.etherscan.io/block/${block}`
|
49 |
| - : chainId === toChainId('Xpla') |
| 54 | + : chainId === chainToChainId('Xpla') |
50 | 55 | ? `https://explorer.xpla.io/mainnet/block/${block}`
|
51 |
| - : chainId === toChainId('Base') |
| 56 | + : chainId === chainToChainId('Base') |
52 | 57 | ? `https://basescan.org/block/${block}`
|
53 |
| - : chainId === toChainId('Sei') |
| 58 | + : chainId === chainToChainId('Sei') |
54 | 59 | ? `https://www.seiscan.app/pacific-1/blocks/${block}`
|
55 |
| - : chainId === toChainId('Wormchain') |
| 60 | + : chainId === chainToChainId('Wormchain') |
56 | 61 | ? `https://bigdipper.live/wormhole/blocks/${block}`
|
57 | 62 | : ''
|
58 |
| - : chainId === toChainId('Solana') |
| 63 | + : chainId === chainToChainId('Solana') |
59 | 64 | ? `https://explorer.solana.com/${block}?cluster=testnet`
|
60 |
| - : chainId === toChainId('Ethereum') |
| 65 | + : chainId === chainToChainId('Ethereum') |
61 | 66 | ? `https://sepolia.etherscan.io/block/${block}`
|
62 |
| - : // : chainId === toChainId('Terra') <-- not supported on testnet dashboard |
63 |
| - chainId === toChainId('Bsc') |
| 67 | + : // : chainId === chainToChainId('Terra') <-- not supported on testnet dashboard |
| 68 | + chainId === chainToChainId('Bsc') |
64 | 69 | ? `https://testnet.bscscan.com/block/${block}`
|
65 |
| - : chainId === toChainId('Polygon') |
| 70 | + : chainId === chainToChainId('Polygon') |
66 | 71 | ? `https://mumbai.polygonscan.com/block/${block}`
|
67 |
| - : chainId === toChainId('Avalanche') |
| 72 | + : chainId === chainToChainId('Avalanche') |
68 | 73 | ? `https://testnet.snowtrace.io/block/${block}`
|
69 |
| - : chainId === toChainId('Oasis') |
| 74 | + : chainId === chainToChainId('Oasis') |
70 | 75 | ? `https://testnet.oasisscan.com/block/${block}`
|
71 |
| - : chainId === toChainId('Algorand') |
| 76 | + : chainId === chainToChainId('Algorand') |
72 | 77 | ? `https://app.dappflow.org/explorer/block/${block}`
|
73 |
| - : chainId === toChainId('Fantom') |
| 78 | + : chainId === chainToChainId('Fantom') |
74 | 79 | ? `https://testnet.ftmscan.com/block/${block}`
|
75 |
| - : // : chainId === toChainId('Karura') <-- not supported on testnet dashboard |
76 |
| - chainId === toChainId('Acala') |
| 80 | + : // : chainId === chainToChainId('Karura') <-- not supported on testnet dashboard |
| 81 | + chainId === chainToChainId('Acala') |
77 | 82 | ? `https://blockscout.mandala.aca-staging.network/block/${block}`
|
78 |
| - : chainId === toChainId('Klaytn') |
| 83 | + : chainId === chainToChainId('Klaytn') |
79 | 84 | ? `https://baobab.klaytnscope.com/block/${block}`
|
80 |
| - : chainId === toChainId('Celo') |
| 85 | + : chainId === chainToChainId('Celo') |
81 | 86 | ? `https://alfajores.celoscan.io/block/${block}`
|
82 |
| - : // : chainId === toChainId('Near') <-- not supported on testnet dashboard |
83 |
| - chainId === toChainId('Moonbeam') |
| 87 | + : // : chainId === chainToChainId('Near') <-- not supported on testnet dashboard |
| 88 | + chainId === chainToChainId('Moonbeam') |
84 | 89 | ? `https://moonbase.moonscan.io/block/${block}`
|
85 |
| - : // : chainId === toChainId('Terra2') <-- not supported on testnet dashboard |
86 |
| - // : chainId === toChainId('Injective') <-- not supported on testnet dashboard |
87 |
| - chainId === toChainId('Sui') |
| 90 | + : // : chainId === chainToChainId('Terra2') <-- not supported on testnet dashboard |
| 91 | + // : chainId === chainToChainId('Injective') <-- not supported on testnet dashboard |
| 92 | + chainId === chainToChainId('Sui') |
88 | 93 | ? `https://suiexplorer.com/checkpoint/${block}?network=testnet`
|
89 |
| - : chainId === toChainId('Aptos') |
| 94 | + : chainId === chainToChainId('Aptos') |
90 | 95 | ? `https://explorer.aptoslabs.com/block/${block}?network=testnet`
|
91 |
| - : chainId === toChainId('Arbitrum') |
| 96 | + : chainId === chainToChainId('Arbitrum') |
92 | 97 | ? `https://sepolia.arbiscan.io/block/${block}`
|
93 |
| - : chainId === toChainId('Optimism') |
| 98 | + : chainId === chainToChainId('Optimism') |
94 | 99 | ? `https://sepolia-optimism.etherscan.io/block/${block}`
|
95 |
| - : chainId === toChainId('Xpla') |
| 100 | + : chainId === chainToChainId('Xpla') |
96 | 101 | ? `https://explorer.xpla.io/testnet/block/${block}`
|
97 |
| - : chainId === toChainId('Base') |
| 102 | + : chainId === chainToChainId('Base') |
98 | 103 | ? `https://goerli.basescan.org/block/${block}`
|
99 |
| - : chainId === toChainId('Sei') |
| 104 | + : chainId === chainToChainId('Sei') |
100 | 105 | ? `https://www.seiscan.app/atlantic-2/blocks/${block}`
|
101 |
| - : // : chainId === toChainId('Wormscan') <-- not supported on testnet dashboard |
| 106 | + : // : chainId === chainToChainId('Wormscan') <-- not supported on testnet dashboard |
102 | 107 | '';
|
103 | 108 |
|
104 | 109 | export const explorerTx = (network: Environment, chainId: ChainId, tx: string) =>
|
105 | 110 | network === 'mainnet'
|
106 |
| - ? chainId === toChainId('Solana') |
| 111 | + ? chainId === chainToChainId('Solana') |
107 | 112 | ? `https://solana.fm/tx/${tx}`
|
108 |
| - : chainId === toChainId('Ethereum') |
| 113 | + : chainId === chainToChainId('Ethereum') |
109 | 114 | ? `https://etherscan.io/tx/${tx}`
|
110 |
| - : chainId === toChainId('Terra') |
| 115 | + : chainId === chainToChainId('Terra') |
111 | 116 | ? `https://finder.terra.money/columbus-5/tx/${tx}`
|
112 |
| - : chainId === toChainId('Bsc') |
| 117 | + : chainId === chainToChainId('Bsc') |
113 | 118 | ? `https://bscscan.com/tx/${tx}`
|
114 |
| - : chainId === toChainId('Polygon') |
| 119 | + : chainId === chainToChainId('Polygon') |
115 | 120 | ? `https://polygonscan.com/tx/${tx}`
|
116 |
| - : chainId === toChainId('Avalanche') |
| 121 | + : chainId === chainToChainId('Avalanche') |
117 | 122 | ? `https://snowtrace.io/tx/${tx}`
|
118 |
| - : chainId === toChainId('Oasis') |
| 123 | + : chainId === chainToChainId('Oasis') |
119 | 124 | ? `https://explorer.emerald.oasis.dev/tx/${tx}`
|
120 |
| - : chainId === toChainId('Algorand') |
| 125 | + : chainId === chainToChainId('Algorand') |
121 | 126 | ? `https://app.dappflow.org/explorer/transaction/${tx}`
|
122 |
| - : chainId === toChainId('Fantom') |
| 127 | + : chainId === chainToChainId('Fantom') |
123 | 128 | ? `https://ftmscan.com/tx/${tx}`
|
124 |
| - : chainId === toChainId('Karura') |
| 129 | + : chainId === chainToChainId('Karura') |
125 | 130 | ? `https://blockscout.karura.network/tx/${tx}`
|
126 |
| - : chainId === toChainId('Acala') |
| 131 | + : chainId === chainToChainId('Acala') |
127 | 132 | ? `https://blockscout.acala.network/tx/${tx}`
|
128 |
| - : chainId === toChainId('Klaytn') |
| 133 | + : chainId === chainToChainId('Klaytn') |
129 | 134 | ? `https://scope.klaytn.com/tx/${tx}`
|
130 |
| - : chainId === toChainId('Celo') |
| 135 | + : chainId === chainToChainId('Celo') |
131 | 136 | ? `https://explorer.celo.org/tx/${tx}`
|
132 |
| - : chainId === toChainId('Near') |
| 137 | + : chainId === chainToChainId('Near') |
133 | 138 | ? `https://explorer.near.org/transactions/${tx}`
|
134 |
| - : chainId === toChainId('Moonbeam') |
| 139 | + : chainId === chainToChainId('Moonbeam') |
135 | 140 | ? `https://moonscan.io/tx/${tx}`
|
136 |
| - : chainId === toChainId('Terra2') |
| 141 | + : chainId === chainToChainId('Terra2') |
137 | 142 | ? `https://finder.terra.money/phoenix-1/tx/${tx}`
|
138 |
| - : chainId === toChainId('Injective') |
| 143 | + : chainId === chainToChainId('Injective') |
139 | 144 | ? `https://explorer.injective.network/transaction/${tx}`
|
140 |
| - : chainId === toChainId('Sui') |
| 145 | + : chainId === chainToChainId('Sui') |
141 | 146 | ? `https://suiexplorer.com/txblock/${tx}`
|
142 |
| - : chainId === toChainId('Aptos') |
| 147 | + : chainId === chainToChainId('Aptos') |
143 | 148 | ? `https://explorer.aptoslabs.com/txn/${tx}?network=mainnet`
|
144 |
| - : chainId === toChainId('Arbitrum') |
| 149 | + : chainId === chainToChainId('Arbitrum') |
145 | 150 | ? `https://arbiscan.io/tx/${tx}`
|
146 |
| - : chainId === toChainId('Optimism') |
| 151 | + : chainId === chainToChainId('Optimism') |
147 | 152 | ? `https://optimistic.etherscan.io/tx/${tx}`
|
148 |
| - : chainId === toChainId('Xpla') |
| 153 | + : chainId === chainToChainId('Xpla') |
149 | 154 | ? `https://explorer.xpla.io/mainnet/tx/${tx}`
|
150 |
| - : chainId === toChainId('Base') |
| 155 | + : chainId === chainToChainId('Base') |
151 | 156 | ? `https://basescan.org/tx/${tx}`
|
152 |
| - : chainId === toChainId('Sei') |
| 157 | + : chainId === chainToChainId('Sei') |
153 | 158 | ? `https://www.seiscan.app/pacific-1/txs/${tx}`
|
154 |
| - : chainId === toChainId('Wormchain') |
| 159 | + : chainId === chainToChainId('Wormchain') |
155 | 160 | ? `https://bigdipper.live/wormhole/transactions/${tx}`
|
156 | 161 | : ''
|
157 |
| - : chainId === toChainId('Solana') |
| 162 | + : chainId === chainToChainId('Solana') |
158 | 163 | ? `https://solscan.io/txs/${tx}?cluster=testnet`
|
159 |
| - : chainId === toChainId('Ethereum') |
| 164 | + : chainId === chainToChainId('Ethereum') |
160 | 165 | ? `https://sepolia.etherscan.io/tx/${tx}`
|
161 |
| - : // : chainId === toChainId('Terra') <-- not supported on testnet dashboard |
162 |
| - chainId === toChainId('Bsc') |
| 166 | + : // : chainId === chainToChainId('Terra') <-- not supported on testnet dashboard |
| 167 | + chainId === chainToChainId('Bsc') |
163 | 168 | ? `https://testnet.bscscan.com/tx/${tx}`
|
164 |
| - : chainId === toChainId('Polygon') |
| 169 | + : chainId === chainToChainId('Polygon') |
165 | 170 | ? `https://mumbai.polygonscan.com/tx/${tx}`
|
166 |
| - : chainId === toChainId('Avalanche') |
| 171 | + : chainId === chainToChainId('Avalanche') |
167 | 172 | ? `https://testnet.snowtrace.io/tx/${tx}`
|
168 |
| - : chainId === toChainId('Oasis') |
| 173 | + : chainId === chainToChainId('Oasis') |
169 | 174 | ? `https://testnet.oasisscan.com/tx/${tx}`
|
170 |
| - : chainId === toChainId('Algorand') |
| 175 | + : chainId === chainToChainId('Algorand') |
171 | 176 | ? `https://app.dappflow.org/explorer/transaction/${tx}`
|
172 |
| - : chainId === toChainId('Fantom') |
| 177 | + : chainId === chainToChainId('Fantom') |
173 | 178 | ? `https://testnet.ftmscan.com/tx/${tx}`
|
174 |
| - : // chainId === toChainId('Karura') <-- not supported on testnet dashboard |
175 |
| - chainId === toChainId('Acala') |
| 179 | + : // chainId === chainToChainId('Karura') <-- not supported on testnet dashboard |
| 180 | + chainId === chainToChainId('Acala') |
176 | 181 | ? `https://blockscout.mandala.aca-staging.network/tx/${tx}`
|
177 |
| - : chainId === toChainId('Klaytn') |
| 182 | + : chainId === chainToChainId('Klaytn') |
178 | 183 | ? `https://baobab.klaytnscope.com/tx/${tx}`
|
179 |
| - : chainId === toChainId('Celo') |
| 184 | + : chainId === chainToChainId('Celo') |
180 | 185 | ? `https://alfajores.celoscan.io/tx/${tx}`
|
181 |
| - : // chainId === toChainId('Near') <-- not supported on testnet dashboard |
182 |
| - chainId === toChainId('Moonbeam') |
| 186 | + : // chainId === chainToChainId('Near') <-- not supported on testnet dashboard |
| 187 | + chainId === chainToChainId('Moonbeam') |
183 | 188 | ? `https://moonbase.moonscan.io/tx/${tx}`
|
184 |
| - : // chainId === toChainId('Terra2') <-- not supported on testnet dashboard |
185 |
| - // chainId === toChainId('Injective') <-- not supported on testnet dashboard |
186 |
| - chainId === toChainId('Sui') |
| 189 | + : // chainId === chainToChainId('Terra2') <-- not supported on testnet dashboard |
| 190 | + // chainId === chainToChainId('Injective') <-- not supported on testnet dashboard |
| 191 | + chainId === chainToChainId('Sui') |
187 | 192 | ? `https://suiexplorer.com/txblock/${tx}?network=testnet`
|
188 |
| - : chainId === toChainId('Aptos') |
| 193 | + : chainId === chainToChainId('Aptos') |
189 | 194 | ? `https://explorer.aptoslabs.com/txn/${tx}?network=testnet`
|
190 |
| - : chainId === toChainId('Arbitrum') |
| 195 | + : chainId === chainToChainId('Arbitrum') |
191 | 196 | ? `https://sepolia.arbiscan.io/tx/${tx}`
|
192 |
| - : chainId === toChainId('Optimism') |
| 197 | + : chainId === chainToChainId('Optimism') |
193 | 198 | ? `https://sepolia-optimism.etherscan.io/tx/${tx}`
|
194 |
| - : chainId === toChainId('Xpla') |
| 199 | + : chainId === chainToChainId('Xpla') |
195 | 200 | ? `https://explorer.xpla.io/testnet/tx/${tx}`
|
196 |
| - : chainId === toChainId('Base') |
| 201 | + : chainId === chainToChainId('Base') |
197 | 202 | ? `https://goerli.basescan.org/tx/${tx}`
|
198 |
| - : chainId === toChainId('Sei') |
| 203 | + : chainId === chainToChainId('Sei') |
199 | 204 | ? `https://www.seiscan.app/atlantic-2/txs/${tx}`
|
200 |
| - : // chainId === toChainId('Wormscan') <-- not supported on testnet dashboard |
| 205 | + : // chainId === chainToChainId('Wormscan') <-- not supported on testnet dashboard |
201 | 206 | '';
|
202 | 207 |
|
203 | 208 | export const explorerVaa = (network: string, key: string) =>
|
|
0 commit comments