client/container: ethereum-based: support Etherscan V2, add more L2 chains

- Implements support for unified API via Etherscan V2 (ethereum-based)
  * All ethereum-based L2s are now accessed via single API endpoint
    - Chains are now available via chain ID
  * Updates API key requirement for `fetch` ethereum-based subaccounts
    - The API key's value must now be prepended with "etherscan"
      * Previously was prepended per-chain ("ethereum" or "polygon")
    - The API key is now *required* (can be generated at etherscan.io)
      * Resolves fatal error in Etherscan::parse_response()
      * Impl will now handle if:
        - Config's API key/value is malformed
        - Etherscan API key was not given
        - Etherscan response is fatal

- Adds support for more L2s
  * Arbitrum (One)
  * Optimism
  * Base

- Adds more L2s to existing accounts
  * Coinbase Wallet
  * Ledger Live
  * MetaMask

- Updates documentation
  * Update default generated `fetch` config
  * Update `fetch` usage help
  * Update README
This commit is contained in:
2025-08-01 13:25:31 -07:00
parent 183806da6d
commit d270d56366
29 changed files with 375 additions and 46 deletions

View File

@@ -177,9 +177,10 @@ Supported blockchains (independent of wallet type):
- [X] [Algorand](https://algorand.com/) *(powered by [AlgoNode.io](https://algonode.io/))*
- [ ] Cardano
- [X] Ethereum-based
- [ ] Arbitrum
- [X] [Ethereum](https://ethereum.org/) *(powered by [Etherscan.io APIs](https://etherscan.io/))*
- [X] Ethereum-based *(powered by [Etherscan.io APIs](https://etherscan.io/))*
- [X] [Arbitrum (One)](https://arbitrum.io/)
- [X] [Base](https://www.base.org/)
- [X] [Ethereum](https://ethereum.org/)
- [X] [1inch](https://1inch.io/)
- [X] [Aave](https://aave.com/)
- [X] [AirSwap](https://about.airswap.io/)
@@ -187,8 +188,8 @@ Supported blockchains (independent of wallet type):
- [ ] Lido
- [X] [Rocket Pool](https://rocketpool.net/)
- [X] [Uniswap](https://uniswap.org/)
- [ ] Optimism
- [X] [Polygon](https://polygon.technology/) *(powered by [PolygonScan APIs](https://polygonscan.com/))*
- [X] [Optimism](https://www.optimism.io/)
- [X] [Polygon](https://polygon.technology/)
- [X] [Tezos](https://tezos.com/) *(powered by [TzKT API](https://tzkt.io/))*
#### Self-hosting