Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor!: decouple client routing from encoding (#5806)
* refactor: add initial light client module interface * wip: add boiler plate light client module for tendermint client * feat: adding initial light client module impl for 06-solomachine * chore: adding LightClientModule interface assertion for 06-solomachine * chore: adding initial boiilerplate for 08-wasm mod * refactor: add boilerplate tendermint light client module * refactor: add localhost boilerplate code * imp: add basic 02-client router * refactor: use light client module for client status * chore: move solomachine keeper to internal * chore: adding GetTimestampAtHeight to clientkeeper using 02-client router * refactor: rm GetTimestampAtHeight from 03-connection and adapt api calls in 04-channel * chore: wire up solomachine module with clientRouter in app.go * chore: move commented out test to client keeper - still has todo to uncomment and fix * chore: add solomachine client module to AppModule constructor and wire up in app.go * fix: use correct route for client status lookup * chore: add clientRouter to 08-wasm simapp and wire up * fix: solo machine unmarshal bug and 02-client keeper tests * test: fix GetTimestampAtHeight test in clientkeeper * refactor(solomachine): add getClientState helper and unmarhsal interface * refactor: align 08-wasm, add GetClientState helper and unmarshal interface * fix(temp): temporarily add WithStoreKey opt to wasmkeeper to fix failing tests * fix: wire up callbacks simapp to fix failing tests * refactor: modify UpdateClient handler to use light client module api * feat: add ClientStoreProvider interface for isolated prefix stores (#5781) * refactor: rm internal/keeper from solomachine * refactor: begin removing stale client state interfaces * feat: wire up localhost * fix: tests in 06-solomachine and 07-tendermint * fix: rest of tests * refactor: use light client module APIs in 03-connection state verify * chore: adapt remaining handlers to use light client module api in 03-connection * fix: locahost verify membership and non membership in light client module * refactor: remove VerifyMembership and VerifyNonMembership from client state interface * fix: rm getters for clientID from connection (conflict) * 02-client routing: fix linter warnings (#5818) * 02-client routing: fix linter warnings * fix variable name * return error * 02-client routing: pass client ID to get route instead of client type (#5817) * pass client ID to get route instead of client type * rename variable * Update modules/core/02-client/keeper/keeper.go --------- Co-authored-by: Damian Nolan <[email protected]> * use localhost client ID * 02-client routing: function in store provider to return client store (#5824) * add function to return 02-client module store * review comment * 02-client routing: implement `RecoverClient` in light client modules (#5822) * implement recover client in light client modules * add tests for wasm light client module recover client function * missing file * add tests for tendermint light client module recover client * add tests for solomachine light client module recover client * clean up 02-client recover client test cases * fix test * fix linter warning * format client IDs * fixes from merge of main * 02-client routing: remove client ID validation (#5897) * chore: remove client ID validation in light client module functions * add contract documentation * Update light_client_module.go * 02-client routing: add godoc to `LightClientModule` functions (#5900) * add godoc for light client module functions * linter * fix localhost client ID in godoc * docs: add removal of `ClientState` interface functions to migration docs (#5943) * docs: add removal of client state functions to migration docs * test formating * add comment about tendermint light client module implementation * Apply suggestions from code review Co-authored-by: colin axnér <[email protected]> * mention removal of ZeroCustomFields * Update docs/docs/05-migrations/13-v8-to-v9.md Co-authored-by: DimitrisJim <[email protected]> --------- Co-authored-by: colin axnér <[email protected]> Co-authored-by: DimitrisJim <[email protected]> * 02-client routing: remove `GetLatestHeight` from `ClientState` interface and add it to `LightClientModule` (#5866) * wip: remove GetLatestHeight from ClientState interface and add it to light client module * chore: add godoc for GetLatestHeight in 02-client keeper * chore: add args to event emission funcs in 02-client * chore: add args to usage in 02-client event emissions * chore: put back logging in upgrade client * chore: deprecate and refactor 04-channel client utils QueryLatestConsensusState func * chore: rename lightClientModule to clientModule in core * chore: undo faulty renames * fix: godoc for LatestHeight * chore: add godocs * chore: readding sequence checking in solomachine RecoverClient * fix: testing chain helper to use keeper getter for latest height * chore: fix compilation errors in tests * fix: import ordering waaah * imp: adding GetClientLatestHeight to testing endpoint/chain * test: cleanup test funcs with path.Endpoint.GetClientLatestHeight * test: cleanup tests in 04-channel to use path.Endpoint.GetClientLatestHeight * test: cleanup ante_test * chore: add godocs for light client modules LatestHeight method * chore: update endpoint.go to use the new GetClientLatestHeight helper fn * test: usage of path.Endpoint.GetClientLatestHeight in core/keeper and 07-tendermint tests * test: another one * chore: rm GetLatestHeight from solomachine ClientState * test: update QueryConsensusStateProof in testing lib to use test helper * Update testing/chain.go * fix typo in variable name * chore: consolidate two calls to LatestHeight to initialHeight var on createClient * chore: extract to latestHeight var in VerifyUpgradeAndUpdateState to reduce disk reads * chore: rm greater than or equal height check in solomachine as already done in 02-client * chore: address todo on GetLatestHeight in 02-client keeper --------- Co-authored-by: Damian Nolan <[email protected]> Co-authored-by: chatton <[email protected]> * docs: refactor light client developer guide * imp: cleanup godoc on router type * 02-client routing: implement `VerifyUpgradeAndUpdateState` in light client modules (#5827) * wip: implementation and tests for verify upgrade and update state function in light client modules * add test case * fix un-marshaling in tendermint light client module * add tests for verify upgrade and update state of 08-wasm light client module * fix linter warnings * check client state post upgrade * fix: encoding issue: unmarshal to concrete types and not interfaces in 07-tendermint * fix import * cast type before calling zero custom fields * test: marshal concrete types using chain codec for upgrade tests which bypass msg server entrypoint * chore: remove basic validation of lc types in tm VerifyUpgradeAndUpdateState * marshal to concrete type in tests * keep client/consensus state as interface marshalled * Apply suggestions from code review Co-authored-by: colin axnér <[email protected]> * chore: make lint-fix * chore: rm redundant test, tested in lightclient module * fix: remove marshalling of anys to bytes for verify upgrade (#5967) * fix: remove marshalling of anys to bytes for verify upgrade * test: refactor 02-client tests for verify upgrade * test: fix tests in 07-tenderint client module * chore: rm backwards compatability notice and marshalling of anys in core msg server * test: cleanup happy path assertions in 07-tendermint verify upgrade test * nit: update inline code commentin test * doc: update godoc of UpgradeClient handler in core ibc * lint: make lint-fix * nit: inline comments in tests last Height -> upgrade height * fix: address 08-wasm upgrade client and tests --------- Co-authored-by: Damian Nolan <[email protected]> Co-authored-by: colin axnér <[email protected]> * nit: lcm -> l for all light client modules * remove unnecessary comment * chore: remove unnecessary todo's * chore: lint fix docs * Apply suggestions from code review * chore: 02-client handler godoc * Update modules/core/02-client/keeper/client.go * Update modules/light-clients/06-solomachine/light_client_module_test.go * remove commented out code in msg server * chore: update godoc, remove todo's * chore: remove unnecessary func from localhost + cleanup * Apply suggestions from code review * Update docs/docs/03-light-clients/01-developer-guide/01-overview.md Co-authored-by: DimitrisJim <[email protected]> * chore: remove todo + deprecation notice * chore: fix broken link * chore: godoc for exported client.go file * chore: test update * chore: godoc * chore: update godoc in 06-solomachine light client module * chore: update 07-tendermint light client module godoc * chore: update localhost client module godocs * chore: update 08-wasm light client module godoc * fix: broken link * fix(e2e): correctly assign trusted height and latest height vars to be scoped correctly for later usage in misbehaviour test * address my self-review comments and some of rabbit's comments * Update e2e/tests/transfer/localhost_test.go * chore: godocs, rm ClientStore from expected keeper, rename events arg to initialHeight --------- Co-authored-by: Colin Axnér <[email protected]> Co-authored-by: Carlos Rodriguez <[email protected]> Co-authored-by: DimitrisJim <[email protected]> Co-authored-by: chatton <[email protected]>
- Loading branch information