Description: Split the provider logic into a base class and a registry of implementations. Tasks: - [ ] Create providers/directory. - [ ] Create providers/base.py: Extract the RPCProvider base class here. - [ ] Create providers/registry.py: Move ChainstackProvider, AlchemyProvider, etc., and the load_providers() function here. - [ ] Update imports to use infra.http_client and metrics.store.
Description: Split the provider logic into a base class and a registry of implementations. Tasks: