Currently, users need to pass the Etherscan API key and URL (optional) for every single call.
Besides the verbosity, what happens is that we cannot automatically load dependency contracts from Etherscan.
For example, this piece of code is required to load a lot of different contracts manually just to get a proper trace.
However, it's simple for us to automatically try to load ABI from Etherscan if we have a global API key.
suggested UX
import boa
boa.setup_etherscan(...) # uses given API key, default URL
boa.setup_etherscan(api_key=..., url=...) # with custom URL
Currently, users need to pass the Etherscan API key and URL (optional) for every single call. Besides the verbosity, what happens is that we cannot automatically load dependency contracts from Etherscan.
For example, this piece of code is required to load a lot of different contracts manually just to get a proper trace.
However, it's simple for us to automatically try to load ABI from Etherscan if we have a global API key.
suggested UX