Add logic to parse network name from URL #65
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Currently users can manually set their url to open the ContractDetail page for their desired contract, by typing
/{contractAddress}/{chainId}
=> for example gitcoin in mainnet:/0xde30da39c46104798bb5aa3fe8b9e0e1f348163f/1
This PR adds the possibility of using {chainName} or {chainId} indistinctly, so it's easier for most users to create their URLs manually => Using {chainName} for the same example:
/0xde30da39c46104798bb5aa3fe8b9e0e1f348163f/mainnet
Some considerations
In this initial approach I'm comparing the network name from the URL with
chain.network
fromviem/chains
, but I've realized some networks got a weirdchain.network
(mainnet for example), I solved it with this hacky code:if (normalizedNetwork === "ethereum" || normalizedNetwork === "mainnet") { normalizedNetwork = "homestead"; }
Creating local variable
parsedNetworkId
instead of just using the newchainId
state because I was having problems with the refresh of the value, sometimes was fetching the ABI with the wrong value.Not sure if that's the correct way to solve both issues.
Related Issues
Closes #38