Skip to content

Complete Decoupling of evm and evmd by Relocating Remaining Dependencies #211

Open
@zsystm

Description

@zsystm

Description

The recent #198 introduced a major refactoring of the test infrastructure and modularized the evmd package.
However, a full decoupling between evm and evmd has not yet been completed. This issue tracks the remaining work needed to fully eliminate the dependency from evm to evmd.

Goal

Ensure a clean and intentional one-way dependency: evmd → evm, and not the reverse.
This design reflects the intended layering:

  • evm: a library providing core Cosmos EVM functionality.
  • evmd: a consumer of evm, showcasing a concrete example application and testbed.

By removing all remaining evm → evmd dependencies, we:

  • Reinforce modular boundaries
  • Make evm reusable as a standalone library
  • Avoid cyclical or unintended coupling
  • Simplify maintenance and auditing

Remaining Tasks

To achieve a clean unidirectional dependency graph, the following actions are required:

  • Move CLI entry point: Relocate evm/cmd into evm/evmd/cmd/ to encapsulate all executable logic within evmd.
  • Relocate shared data structures: Move any structs or logic currently defined in evmd that are used by evm into a more appropriate location within evm, or abstract into a shared internal package if necessary.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions