informalsystems / informalsystems/quartz
Quartz CLI: Interoperability between chain clients (neutrond / wasmd / etc)
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 63
- Forks
- 9
- PR merge metrics
- No merged PRs in 30d
Description
Summary
We currently use wasmd under-the-hood for creating transactions and querying the chain in the CLI. However, different deployment environments (e.g. Neutron) have their own tools which handle the subtle differences in versioning / encoding / whatever to interact with the chain.
We should make the choice of tool used under-the-hood to be configurable.
Implementation
Our wasmd "client" code is contained in cosmwasm/packages/wasmd-library. We can rename this package to something generalized, and introduce some sort of input field which is passed to the std::process:Command initializer:
https://github.com/informalsystems/cycles-quartz/blob/e7cd6b1151eed017892bc45dee3af9f3f8ae93f9/cosmwasm/packages/wasmd-client/src/lib.rs#L86
A quick survey of neutrond / osmosisd should be done to see if there are any breaking differences between the APIs of these CLIs.
Acceptance Criteria
-
devruns flawlessly on a Neutron target.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in cosmwasm/packages/wasmd-client/src/lib.rs around the std::process::Command initializer, then survey neutrond and osmosisd for CLI API differences. The work is complete when the underlying client choice is configurable and dev runs flawlessly against a Neutron target.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100