fix consumer CLI queries, localnet tooling, and consumer export - #74
Open
giunatale wants to merge 1 commit into
Open
fix consumer CLI queries, localnet tooling, and consumer export#74giunatale wants to merge 1 commit into
giunatale wants to merge 1 commit into
Conversation
giunatale
requested review from
clockworkgr,
julienrbrt and
tbruyelle
as code owners
July 30, 2026 16:11
Contributor
Author
- fix consumer-fee-pool-claims pagination (decode --page-key via FlagSetWithPageKeyDecoded) so paging works past page 1, and wire a consumer-liveness CLI command to the QueryConsumerLiveness query so every provider query is reachable from the CLI. - correct the create-consumer / update-consumer help and the localnet create-consumer payload: use vaas_timeout_period (not the nonexistent ccv_timeout_period), a timeout under the 24h MaxTimeoutDelta cap, and a positive safe_mode_threshold, and drop the stale connection_id key, so make localnet-start works again. - make ts-relayer reach the chains on macOS: --network host is Linux-only, so dial host.docker.internal (with --add-host=...:host-gateway for Linux) and bind both chains' RPC to 0.0.0.0; also fund the relayer account on the provider from genesis so it can pay to create the provider-side IBC client. - tolerate an empty validator set on consumer export, with a unit test that an unsynced consumer exports an empty set instead of failing.
giunatale
force-pushed
the
giunatale/fix/cli-and-localnet
branch
from
July 31, 2026 20:47
1d4a97b to
53ed4f1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Unbreaks the local development loop and a handful of CLI paper cuts.
What
consumer-fee-pool-claimspagination: the--page-keyflag was read withoutdecoding, so paging past page 1 failed; it now uses the page-key-decoded
flag-set like the sibling paginated commands.
consumer-livenessCLI query command — the gRPC query existed but wasunreachable from the CLI; every provider query is now exposed.
create-consumer/update-consumerhelp and the localnet payload used anonexistent field name (
ccv_timeout_period), a timeout above the 24hprotocol cap, and lacked the required
safe_mode_threshold— somake localnet-startcould not create a consumer at all. Both fixed.--network hostis Linux-only, sothe relayer container could not reach the host chains. It now dials
host.docker.internal(with--add-host=...:host-gatewayso Linux keepsworking), both chains bind RPC to
0.0.0.0, and the relayer account isfunded on the provider from genesis (previously it could not pay for
provider-side client creation — a second bug the networking failure masked).
consumer exportno longer fails on a consumer that has not yet received avalidator set: it exports an empty set (with a unit test), instead of
erroring.
dockerExec'sStartExecreports whether the exec succeeded, not how the command insideit exited, so a command that failed came back with a nil error and empty
stdout. Callers unmarshal that stdout, so the test failed on the empty
document --
failed to decode <x> response:with nothing after the colon --while the actual message sat on a discarded stderr. It now inspects the exit
code and logs the code, the command, stdout and stderr when it is non-zero.
The returned error stays nil deliberately: several callers run commands they
expect to fail and assert on stderr themselves.
Testing
make localnet-startverified end to end on macOS (relayer up, IBC clients onboth sides, client-established + validator-set sync). Build, lint, unit, and
the new app-level export test are green. Both Docker e2e suites pass; the
dockerExecchange is diagnostics only and alters no assertion.