-
Couldn't load subscription status.
- Fork 2.7k
traitify client #4452
Description
the Client from sc-client is a massive pull-it-all-together within the outer substrate infrastructure. While many features already depend on specific traits rather than the client directly, the client still has a few functions exclusive to it, that some other crates depend on, but some also depend on client without actually needing these functions. The goal is to make nothing in sc-* depend on client directly anymore and move client into the internals of sc-service.
The way forward is probably (in this order):
- remove
Client<..>dependencies where other traits are defining the use API well enough already - create proper
traitsfor remaining functionality inClientinsc-api - replace remaining
Client-dependencies with dependencies onsc-api - move
Clientintosc-service, make it internal–this probably needs some tweaking for tests (see test-client) - drop
sc-client
This is an evolved refactor that probably has to touch a lot of (internal) code and where-clauses. Rust experience is required. Expect this to take a while. I am happy to mentor.