- Refactors locations for internal `fetch` impl and deps (composer)
* A softer hardcoding without the need for a new autoloader
* A restructured solution to silence the linter (phpstan)
NOTE: variables are prepended with *_PHP_* as to not bring confusion
with any other `dfi` dependencies or the `dfi` `root` module (C++).
- 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
Since modules are included upon build type, if a build doesn't support
a feature then that feature's dependencies will not be available.
This commit will give notice of those missing dependencies.
- Fetch from all available price APIs within a single command
* allows passing multiple CLI APIs to `api` argument
* will now fetch from all available APIs if `api` is not given
* will warn if API config block is missing or die of no APIs are found
- Related refactoring