Skip to content
This repository was archived by the owner on Nov 15, 2023. It is now read-only.
This repository was archived by the owner on Nov 15, 2023. It is now read-only.

traitify client #4452

@gnunicorn

Description

@gnunicorn

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 traits for remaining functionality in Client in sc-api
  • replace remaining Client-dependencies with dependencies on sc-api
  • move Client into sc-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.

Metadata

Metadata

Assignees

Labels

I7-refactorCode needs refactoring.U2-some_time_soonIssue is worth doing soon.Z3-substantialCan be fixed by an experienced coder with a working knowledge of the codebase.Z6-mentorAn easy task where a mentor is available. Please indicate in the issue who the mentor could be.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions