-
Notifications
You must be signed in to change notification settings - Fork 592
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(ibc-eureka): add ibc-go eureka implementation #7505
Open
DimitrisJim
wants to merge
149
commits into
main
Choose a base branch
from
feat/ibc-eureka
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+20,147
−249
Conversation
This file contains 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
…lite (#6982) * feat(lite): counterparty client logic (#6307) * imp: added counterparty client store * imp: added provide counterparty to proto * imp: ran 'make proto-all' * imp: added logic to counterparty client * imp: fix proto * imp: fix proto * imp: ran 'make proto-all' * feat: finished counterparty client logic * change counterparty to include custom prefix * fix imports * import fixes, review suggestions * rm lite comment * applying review suggestions * add creator tests * addressing aditya review * Update proto/ibc/core/client/v1/client.proto Co-authored-by: DimitrisJim <[email protected]> * Update modules/core/02-client/types/msgs.go Co-authored-by: DimitrisJim <[email protected]> * Update modules/core/keeper/msg_server.go Co-authored-by: colin axnér <[email protected]> * addressing jim review * refactor(proto): use counterparty type in MsgProvideCounterparty. Validate Counterparty type. * refactor(keys): move Counterparty key to 02-client keys.go * feat(core): delete creator after registering counterparty. * chore(core): make GetCreator return a boolean if not found. * tests(02-client): add tests for counterparty validation. * tests(02-client): add tests for msg_server provide counterparty handler. * nit(core): remove stale key for counterparty in host. * Update modules/core/02-client/keeper/keeper_test.go --------- Co-authored-by: srdtrk <[email protected]> Co-authored-by: Aditya Sripal <[email protected]> Co-authored-by: Stefano Angieri <[email protected]> Co-authored-by: DimitrisJim <[email protected]> Co-authored-by: colin axnér <[email protected]>
…ient verify_* functions. (#7006)
* chore: split out packet handling rpcs * add keeper, expected interfaces, merkle tweaks. * add verify functions of client keeper. * self review
* add versions to packet and separate commitment function * use IBC Version to switch hashing * fix build and tests, found bug in switch logic * add documentation * improve code docstrings * address jim review * rename eureka to v2
* feat(tests): add helper functions, keeper test suite. * wire up packet server in app --------- Co-authored-by: Aditya Sripal <[email protected]>
* send packet eureka * test progress * add tests * lint * nit * lint moar * refactor tests
* feat(core/eureka): add recv handler. * review: address feedback, self review. * tests(core/packet-server): add tests for recv. * chore: make lint-fix. * chore: address review nits.
* timeout eureka implementation * test progress * continued progress with tests * tests * cleanup and docs * use sentinel channel in sendPacket events * address review * test review fixes * lint
* feat(core/eureka): add writeack, ack handler. * tests(core/packet-server): add tests for write acknowledgement. * chore: add packet protocol version checks to both. * fix: add check for packet receipt being present. * tests(core/packet-server): add tests for ack. * tests: address review, add FreezeClient helper to endpoint.
* chore: return app version in handlers * add expected keeper interface for packet handler functions. * add switch in msg_server to dispatch based on protocol version. * guard TimeoutExecuted with version check for time being. * rename interface. * inline timeoutExecuted * slipped WriteAck. * use msg-server entrypoints for packet flow in testing. * use endpoint.SendPacket in recv test.
…eout height (#7109) * fix condition in commit packet, added test for zero timeout height, change some error messages and add some more comments * error for verify functions
* fix: add validation of protocol version and app version to packet validatebasic * Update modules/core/04-channel/types/packet_test.go * Update modules/core/04-channel/types/packet.go Co-authored-by: Carlos Rodriguez <[email protected]> --------- Co-authored-by: Carlos Rodriguez <[email protected]>
…counterparty (#7160) * refactor: regenerate merkle path as non-nullable + add tests to build merkle path * fix: avoid mutating prefix provided * fix test build --------- Co-authored-by: Aditya Sripal <[email protected]>
* chore: add godoc * Apply suggestions from code review --------- Co-authored-by: Aditya <[email protected]>
* add tests for MsgProvideCounterparty ValidateBasic * address review comments
* add submodule for logger * add submodule in keys.go
* test: TestAcknowledgePacketV2 * fix up recv tests * add timeout v2 tests * imp: use expErr instead of expPass --------- Co-authored-by: Aditya Sripal <[email protected]> Co-authored-by: Carlos Rodriguez <[email protected]>
* merkle validation funcs * add merkle prefix validation and testing * address comments --------- Co-authored-by: Carlos Rodriguez <[email protected]>
…7198) * add helper to retrieve handler and module based on protocol version * address self review comments * returning values instead of binding vars * chore: clean up case for v1. --------- Co-authored-by: Carlos Rodriguez <[email protected]> Co-authored-by: DimitrisJim <[email protected]>
…tifier (#7120) * chore: add grpc query for counterParty * chpre: made changes to the proto * chore: updated goDoc * chore: added creator to the respone * fix: fixes in the grpc_query * fixes * improve implementation and add tests * trying to fix weird linter error * fix build * chore: make counterparty field of response a non pointer. * chore: simplify logic, remove uneeded ifs * chore(tests): use expError pattern. --------- Co-authored-by: Carlos Rodriguez <[email protected]> Co-authored-by: DimitrisJim <[email protected]>
* wip * wip * chore: added description * fix: fixed lint issues * address my self-review * lint * accept hex-encoded strings for merkle path prefix * fix build error --------- Co-authored-by: Carlos Rodriguez <[email protected]>
* Use client and counterparty terminology in packet server rather than channel * add counterparty not found error * add ErrCounterpartyNotFound * improve comment --------- Co-authored-by: Carlos Rodriguez <[email protected]>
…ion 2 (#7209) * chore: require app version be non-empty when protocol version is version 2. * chore(tests): use constructor instead of direct struct initialization. * chore(tests): update usages in msg_server, packet_server tests to use non-empty app version.
10 tasks
* wire channel query server v2 * register grpc gateway routes
* fix: channel must exist before channel creator check * Update modules/core/04-channel/v2/keeper/msg_server.go Co-authored-by: DimitrisJim <[email protected]> * fixed failing test --------- Co-authored-by: DimitrisJim <[email protected]>
* feat: add paginated packet commitments query to channel/v2 * chore: add cli handler * chore: rm commented code * chore: make lint-fix --------- Co-authored-by: DimitrisJim <[email protected]>
* fix hash * prepend hash with byte 0x02 * fix hash to spec * chore: update function documentation to align with implementation. --------- Co-authored-by: DimitrisJim <[email protected]>
* refactor packet keys * provable keys * chore: fix packet commitments prefix function. --------- Co-authored-by: DimitrisJim <[email protected]>
* simplify ack to array of byte arrays * simplify test * lint
* chore: add unreceived acks rpc * nit: init path in setup function.
* make packet commitments fixed length * updated docs for packet commits
* add custom querier to wasmd + build for arm64 * Use build-push-action for multi-platform build * fix build-args * fix bad bash * lint * add build-essential for building arm64 arch * add g++-aarch64-linux-gnu for arm64 * add some more info to custom query error msg
ADD https://github.com/CosmWasm/wasmvm/releases/download/${LIBWASM_VERSION}/libwasmvm_muslc.x86_64.a /lib/libwasmvm_muslc.x86_64.a | ||
RUN sha256sum /lib/libwasmvm_muslc.x86_64.a | grep ${LIBWASM_CHECKSUM} | ||
RUN cp /lib/libwasmvm_muslc.x86_64.a /lib/libwasmvm_muslc.a | ||
RUN set -eux; apk add --no-cache ca-certificates build-base git libusb-dev linux-headers curl; |
Check notice
Code scanning / SonarCloud
Arguments in long RUN instructions should be sorted Low
Sort these package names alphanumerically. See more on SonarQube Cloud
* add UnreceivedPackets query * lint * minor * use HasChannel and correct flag * add unit test * lint * fix expErr * Update modules/core/04-channel/v2/keeper/grpc_query.go Co-authored-by: Damian Nolan <[email protected]> * using HasPacketReceipt --------- Co-authored-by: Damian Nolan <[email protected]>
* chore: adding ibc module v2 and on recv implementation with hard coded sequence * chore: adding ack callback * chore: adding send packet * chore: adding transfer v2 module to app wiring * chore: adding happy path and basic failure for send and recv for transfer module * chore: adding ack test for transfer * chore: fix some linter errors * chore: adding timeout test for transfer v2 * chore: adding test case which ensures tokens can be transfered over both v1 and v2 * chore: full transfer flow from A - B - C - B - A * chore: separated test out into subtests * chore: add sequence as argument to OnRecvPacket * chore: adding TODOs for next steps * chore: adding transferv2 module to wasm simapp * chore: refactor OnTimeout to accept sequence * chore: refactor OnAck to accept sequence * chore: switch argument order * wip: mid merge with feature branch, build will be broken * Fix timeoutTimestamp for tests * linter * chore: removing duplicate imports in wasm simapp * chore: adding channelkeeperv2 query server * register grpc gateway routes * fix ack structure for v2 transfer tests * lint * make signature consistent --------- Co-authored-by: chatton <[email protected]> Co-authored-by: bznein <bznein@debian> Co-authored-by: Gjermund Garaba <[email protected]>
Quality Gate passed for 'ibc-go'Issues Measures |
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.
Description
closes: #6985
Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.
docs/
).godoc
comments.Files changed
in the GitHub PR explorer.SonarCloud Report
in the comment section below once CI passes.