-
Notifications
You must be signed in to change notification settings - Fork 597
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
use local clock time as reference time for timeout timestamp if later than consensus state timestamp #568
Conversation
…sus state timestamp from the counter party chain
// still use consensus state timestamp as reference | ||
now := time.Now().UnixNano() | ||
consensusStateTimestamp := consensusState.GetTimestamp() | ||
if now > 0 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why would now be 0?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am being extremely defensive. It could potentially be 0 if the clock of the machine is (for who knows what reason) on Jan 1st 1970 12:00 AM. And it could be negative if the clock is set before that datetime.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps we can leave a comment explaining this? :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I will do that, yes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we should return an error if now is <= 0?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Initially I also thought of returning an error, but then I realized that it was a situation where we could still do our best effort to fulfill the request by using the consensus state timestamp.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but this could cause problems in other areas of the codebase?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All right, I can change it. No problem.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@colin-axner I pushed this change. Do you approve it the way it is now? If yes, then I will merge.
// still use consensus state timestamp as reference | ||
now := time.Now().UnixNano() | ||
consensusStateTimestamp := consensusState.GetTimestamp() | ||
if now > 0 { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we should return an error if now is <= 0?
Codecov Report
@@ Coverage Diff @@
## main #568 +/- ##
=======================================
Coverage 78.89% 78.90%
=======================================
Files 119 120 +1
Lines 9672 9676 +4
=======================================
+ Hits 7631 7635 +4
Misses 1655 1655
Partials 386 386
|
client_id: 07-tendermint-18
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks @crodriguezvega!
if now > 0 { | ||
now := uint64(now) | ||
if now > consensusStateTimestamp { | ||
timeoutTimestamp = now + timeoutTimestamp |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If the system clock is set far in the future, does this not create an effectively infinite timeout?
* Bump github.com/spf13/cast from 1.4.0 to 1.4.1 (#338) Bumps [github.com/spf13/cast](https://github.com/spf13/cast) from 1.4.0 to 1.4.1. - [Release notes](https://github.com/spf13/cast/releases) - [Commits](https://github.com/spf13/cast/compare/v1.4.0...v1.4.1) --- updated-dependencies: - dependency-name: github.com/spf13/cast dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/tendermint/tendermint from 0.34.11 to 0.34.12 (#341) Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.11 to 0.34.12. - [Release notes](https://github.com/tendermint/tendermint/releases) - [Changelog](https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md) - [Commits](https://github.com/tendermint/tendermint/compare/v0.34.11...v0.34.12) --- updated-dependencies: - dependency-name: github.com/tendermint/tendermint dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * fix broken links in integration.md (#340) * fix broken link in integration.md * fix: broken link to simulator.md file in cosmos-sdk docs Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * Created helper functions for emitting packet events (#343) * Created helper functions for emitting packet events * Fixed comments and re-ordered helper functions Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Merge pull request from GHSA-qrhq-96mh-q8jv * Bump codecov/codecov-action from 2.0.2 to 2.0.3 (#346) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Bump actions/setup-go from 2.1.3 to 2.1.4 (#349) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.3 to 2.1.4. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v2.1.3...v2.1.4) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * increase port identifier limit to 128 characters (#344) * increase port identifier limit to 128 characters increase port limit and add tests for port validation * add changelog * fix tests * update codeowners to include new team members and granular ownership (#354) * update codeowners * add proto files to ownership * bump SDK dependency (#367) * update SDK dependency and fix changes Removes tests from sdk_test.go which are no longer needed to upstream changes in the SDK Fixes client_test.go due to inclusion of the fee in tx events * bump SDK version to v0.44.0 * adding client status cli query (#372) * adding client status cli query * adding query client status cli to changelog * updating long CLI help usage * adding markdown link checker to ci workflows (#377) * packet acknowledgment filtering (#375) * adding packet commitments to QueryPacketAcknowledgementsRequest for filtering * adding testcase for filtered packet ack query * adding changelog entry for packet ack filtering * updating packet sequences type to repeated uint64 * updating to query specific packet acks outside bounds of paginated req * updating changelog field naming, removing redundant pagination in query test * continue in favour of returning an error on query PacketAcknowledgements * updating to return empty array of acks if none of the provided commitments are found Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Bump github.com/tendermint/tendermint from 0.34.12 to 0.34.13 (#386) Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.12 to 0.34.13. - [Release notes](https://github.com/tendermint/tendermint/releases) - [Changelog](https://github.com/tendermint/tendermint/blob/v0.34.13/CHANGELOG.md) - [Commits](https://github.com/tendermint/tendermint/compare/v0.34.12...v0.34.13) --- updated-dependencies: - dependency-name: github.com/tendermint/tendermint dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Change ICS 20 packet data amount to be string (#350) * modify proto defintions * fix non string usage in code and various tests * fix mbt tests * fix bug in data validation * fix various build issues fix unaddressed issues from changing amount from uint64 to string * add changelog entry * apply review suggestions Add check that amount is strictly positive Construct granular error messages to indicate invalid amount value or failure to parse amount * verify and fix telemetry bug Verify msg panics on amounts > int64 by adding tests Add checks to telemetry emission of transfer amounts to handle when the amount cannot be casted to float32 * fix: ibc build docs (#361) * initial fix commit * add release v1.0.1 to versions * improvements for docs website * add new version * address review comments Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * feat: scalable version queries (#384) * adding protos for port query interface * adding NegotiateAppVersion method to IBCModule interface * adding grpc port query implementation and module surrounds * adding NegotiateAppVersion implementation to apps/transfer and mocks * updating ErrInvalidVersion error code * adding grpc query tests for 05-port * updating grpc naming, adding godocs, removing redundant query cli * updating grpc query tests * adding changelog entry for #384 app version negotiation * fixing error formatting in transfer version negotiation Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * removing client/cli query * updating grpc query naming, adding new fields and associated surrounds Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Bump codecov/codecov-action from 2.0.3 to 2.1.0 (#399) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.3 to 2.1.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2.0.3...v2.1.0) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bump go package to v2 (#400) * bump go package to v2 * fix proto file generation * fix links * future proof script * Add migration docs template and updates migration doc for 1.0 to 2.0 (#401) * add migration template and update v2 migration docs * Update docs/migrations/ibc-migration-v100.md Co-authored-by: Damian Nolan <damiannolan@gmail.com> * Update docs/migrations/migration-template.md Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> * add releases.md file (#408) * add releases.md file * address review comment Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * fix broken links (#415) * fix for a large portion of the broken links and adding config file for the markdown link checker * modify link checker yaml to use config file * fix link checker yaml * fix some more links and the path to the config file for the markdown link checker * fix some more dead links * tweak markdown link checker configuration and remove deprecated section from docs * address review comments * fix url for png Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * chore: update changelog (#422) Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * Adds Generic Middleware helper functions (#383) * add generic middleware helper functions * Update modules/core/04-channel/types/version.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * remove app capability, add merge fn, changelog * add back newline Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Bump github.com/spf13/viper from 1.8.1 to 1.9.0 (#427) Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.8.1 to 1.9.0. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.8.1...v1.9.0) --- updated-dependencies: - dependency-name: github.com/spf13/viper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * update releases decision tree (#429) Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * refactor: making IsBound a public function (#425) * refactor: making IsBound a public function * chore: make 05-port keeper function IsBound public * test: adding test for IsBound * chore: updating changelog * fix: changelog * feat: Reusability of Mock module for middleware integration tests (#432) * proof of concept for mock middleware * add mock base app implementation and add documentation * add changelog * update wording * Update CHANGELOG.md * rename BaseApp to IBCApp * fix testing readme * Update testing/README.md Co-authored-by: Aditya <adityasripal@gmail.com> * bump SDK v0.44.0 -> v0.44.1 (#455) * bump SDK v0.44.0 -> v0.44.1 * add changelog entry * docs: add steps to revive expired client with governance proposal (#438) * docs: add steps to revive expired client with governance proposal * address review comments * address more review comments * address more review comments Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * resize and center the decision tree picture (#469) * bump versions in migration guide (#470) * bump versions in migration guide * Update ibc-migration-043.md * Add go relayer to list of relayers to be supported (#442) Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es> * Update README with docs website (#460) * add documentation website to readme * Update README.md * deps: bump SDK version to `v0.44.2` (#485) * bump SDK version to v0.44.2 * add changelog entry * deps: bump Go to 1.17 (#404) * deps: bump Go to 1.17 * add changelog entry Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Bump google.golang.org/grpc from 1.40.0 to 1.41.0 (#445) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.40.0 to 1.41.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.40.0...v1.41.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * doc: a light client is associated with only one chain (#476) * doc: a light client is a associated with only one chain * address review comment Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> * Bump github.com/tendermint/tendermint from 0.34.13 to 0.34.14 (#489) Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.13 to 0.34.14. - [Release notes](https://github.com/tendermint/tendermint/releases) - [Changelog](https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md) - [Commits](https://github.com/tendermint/tendermint/compare/v0.34.13...v0.34.14) --- updated-dependencies: - dependency-name: github.com/tendermint/tendermint dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Middleware Developer and Integration Guide (#477) * write handshake docs * initial docs * fix links * remove since * Update docs/ibc/middleware/integration.md Co-authored-by: Damian Nolan <damiannolan@gmail.com> * Apply suggestions from code review Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * address suggestions * add in-code interfaces and clarify cap docs * fix carlos nit * Module -> IBCModule Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Bump github.com/armon/go-metrics from 0.3.9 to 0.3.10 (#501) Bumps [github.com/armon/go-metrics](https://github.com/armon/go-metrics) from 0.3.9 to 0.3.10. - [Release notes](https://github.com/armon/go-metrics/releases) - [Commits](https://github.com/armon/go-metrics/compare/v0.3.9...v0.3.10) --- updated-dependencies: - dependency-name: github.com/armon/go-metrics dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * deps: bump cosmos-sdk `v0.44.3` (#503) * deps: bump cosmos-sdk * update changelog * docs: add middleware child to navigation (#513) * update changelog (#505) Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * fix broken link (#515) * update-client should expect 2 args (#500) Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * chore: split testing/mock ibcmodule (#516) * split mock module into ibc_module.go * updating godocs * fixing import grouping in ibc_module.go * chore: split transfer AppModule/IBCModule (#517) * split transfer into ibc_module.go * adding changelog entry for transfer IBCModule separation * Bump google.golang.org/grpc from 1.41.0 to 1.42.0 (#519) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.41.0 to 1.42.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.41.0...v1.42.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * update changelog (#532) Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * docs: apply IBC capitalization standards and add simple desc (#543) add a brief IBC description that first-time readers will embrace " IBC is a protocol that allows blockchains to talk to each other." * refactor: GetSelfConsensusState return error instead of bool (#536) * refactor: return error instead of bool from GetSelfConsensusState * fix: tests and interface signature * chore: error wording * chore: apply changes from review * chore: nit+changelog Co-authored-by: technicallyty <48813565+tytech3@users.noreply.github.com> * docs: editorial love for IBC overview (#544) * docs: editorial love for IBC overview Apply technical style standards, present tense, fix typos, and use consistent IBC language * Apply suggestions from code review Co-authored-by: Aditya <adityasripal@gmail.com> * Apply suggestions from code review thanks for detailed review and feedback! Co-authored-by: Aditya <adityasripal@gmail.com> * add punctuation to end of list items * ran spell check and found a few more grammar fixes * more clarity, some content restructure, needs more editorial love * Update docs/ibc/overview.md Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Barrie Byron <barriebyron.barriebyron@gmail.com> * Bump actions/cache from 2.1.6 to 2.1.7 (#556) Bumps [actions/cache](https://github.com/actions/cache) from 2.1.6 to 2.1.7. - [Release notes](https://github.com/actions/cache/releases) - [Commits](https://github.com/actions/cache/compare/v2.1.6...v2.1.7) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/cosmos/cosmos-sdk from 0.44.3 to 0.44.4 (#567) Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.44.3 to 0.44.4. - [Release notes](https://github.com/cosmos/cosmos-sdk/releases) - [Changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.44.4/CHANGELOG.md) - [Commits](https://github.com/cosmos/cosmos-sdk/compare/v0.44.3...v0.44.4) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * use local clock time as reference time for timeout timestamp if later than consensus state timestamp (#568) * use local clock time as reference time if it is later than the consensus state timestamp from the counter party chain * add comment * update command description * add entry to changelog * return error is clock time is less or equal than Jan 1st 1970 12:00 AM Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * proto: fix for reflection (#583) * migrate to v1 buf * remove confio * update docker buf image version to fix make proto-all * move proofs outside confio * regenerate proto Co-authored-by: Marko Baricevic <markobaricevic3778@gmail.com> Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com> * bump SDK version to v0.44.5 (#589) * docs: add documentation for NegotiateAppVersion in apps.md (#555) * docs: add documentation for NegotiateAppVersion in apps.md * review comment Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> * docs: add v2.0.0 to docs site (#593) Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * fix: emit channel event instead of connection (#603) * fix: emit channel event instead of connection * chore: changelog * chore: remove unncessary import * Feature: Interchain accounts v1 (#380) * migrate ibc-account module to ibc-go * Add @seantking to CODEOWNERS for interchain accounts module * rename ibc-account -> interchain-accounts (#280) * rename ibc-account -> interchain-accounts * fix codeowner file * Integrate ICA into testing package, add simple keeper tests (#282) * add ica to simapp * add simple keeper tests * Add interchain account OnChanOpenInit and InitInterchainAccount tests (#287) * add OnChanOpenInit test * add InitInterchainAccount test * Update modules/apps/27-interchain-accounts/keeper/relay.go * feat: ica proto (#305) * feat: adding proto files for interchain accounts & updating references of IBCAccount -> InterchainAccount * doc: updating comments * docs: update comment * fix: updating proto yaml, query name, query params, comments * ICA OnChanOpenTry update + tests (#299) * update OnChanOpenTry to match ICS specs * write OnChanOpenTry and OnChanOpenAck tests * update comment * test: adding test for OnChanOpenConfirm (#312) * fix: updating port-id & fixing OnChanOpenInit bug (#321) * fix: updating port-id & fixing OnChanOpenInit bug * Update modules/apps/27-interchain-accounts/keeper/handshake.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Add counterparty port ID to controller portID (#319) * refactor! move GeneratePortID to types, add counterpartyConnection sequence change all PortId -> PortID move GeneratePortID to types package add counterparty connection sequence argument utilize connectiontypes connectionID parsing function * refactor! use counterparty portID in interchain account address gRPC Remove existing args from gRPC request for interchain account address Use counterparty portID * tests add generate port id tests * apply self-review fixes * test: check active channel is correct (#324) * test: check active channel is correct * test: adding version string check * Removed memkey from ICA keeper (#342) * Removed memkey from ICA keeper * Removed memkey arg in call to NewKeeper from simapp * moving stateless GenerateAddress func to types (#352) * update ica branch codeowners (#353) * move Get/SetInterchainAccount to keeper.go, add tests (#355) * moving setter/getter funcs to keeper.go, adding tests * removing redundant var * fixing test assertion string typo * updating Get/SetInterchainAccount func signatures, tests and adding godocs * grouping imports according, updating suite.FailNow() -> suite.Require().NoError() Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * chore: interchain accounts cleanup, cli alias (#362) * adding ica alias for interchain-accounts queries * refactoring bind port and claim capability functionality, code cleanup and godocs * updating interchain accounts pkg naming (#364) * adding ica grpc query tests (#368) * updating grpc query tests, removing queryClient on KeeperTestSuite (#379) * ICA: Adding tests for relay.go (#337) * test: adding test for TrySendTx * test: adding tests for data check * test: adding check for SendTx with []sdk.Message * chore: seperate imports * test: add helper function for creating ICA path * test: adding cases for incorrect outgoing data & channel does not exist * Update ICA on main + add app version negotiation stub (#403) * Bump github.com/cosmos/cosmos-sdk from 0.43.0-rc1 to 0.43.0-rc2 (#269) Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.43.0-rc1 to 0.43.0-rc2. - [Release notes](https://github.com/cosmos/cosmos-sdk/releases) - [Changelog](https://github.com/cosmos/cosmos-sdk/blob/v0.43.0-rc2/CHANGELOG.md) - [Commits](https://github.com/cosmos/cosmos-sdk/compare/v0.43.0-rc1...v0.43.0-rc2) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * generate swagger files (#267) * Reject Redundant Tx Antedecorator (#235) * writeup simple antedecorator * only do antehandler on checkTx * Update modules/core/04-channel/ante.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * enable 2 antehandler strategies, and write tests * remove strict decorator and pass on non-packet/update type * move ante logic into its own package * changelog Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * perform a no-op on redundant relay messages (#268) * create initial changes for delivertx handling * handle closed channel no-ops, fix tests * self review nits * add changelog * add events for no op messages * add back comment * Bump codecov/codecov-action from 1.5.2 to 2.0.1 (#273) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 1.5.2 to 2.0.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v1.5.2...v2.0.1) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * remove ChanCloseInit function from transfer keeper (#275) * remove CloseChanInit from transfer * add changelog Co-authored-by: Aditya <adityasripal@gmail.com> * Bump codecov/codecov-action from 2.0.1 to 2.0.2 (#296) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.1 to 2.0.2. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2.0.1...v2.0.2) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/spf13/cast from 1.3.1 to 1.4.0 (#301) Bumps [github.com/spf13/cast](https://github.com/spf13/cast) from 1.3.1 to 1.4.0. - [Release notes](https://github.com/spf13/cast/releases) - [Commits](https://github.com/spf13/cast/compare/v1.3.1...v1.4.0) --- updated-dependencies: - dependency-name: github.com/spf13/cast dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump technote-space/get-diff-action from 4.2 to 5 (#306) Bumps [technote-space/get-diff-action](https://github.com/technote-space/get-diff-action) from 4.2 to 5. - [Release notes](https://github.com/technote-space/get-diff-action/releases) - [Changelog](https://github.com/technote-space/get-diff-action/blob/main/.releasegarc) - [Commits](https://github.com/technote-space/get-diff-action/compare/v4.2...v5) --- updated-dependencies: - dependency-name: technote-space/get-diff-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bump to SDK v0.43.0-rc3 (#308) * SDK v0.43.0-rc3 * add capability fixes * add @seantking as codeowner to interchain accounts (#309) * Bump google.golang.org/grpc from 1.39.0 to 1.39.1 (#320) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.39.0 to 1.39.1. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.39.0...v1.39.1) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/cosmos/cosmos-sdk from 0.43.0-rc3 to 0.43.0 (#325) Bumps [github.com/cosmos/cosmos-sdk](https://github.com/cosmos/cosmos-sdk) from 0.43.0-rc3 to 0.43.0. - [Release notes](https://github.com/cosmos/cosmos-sdk/releases) - [Changelog](https://github.com/cosmos/cosmos-sdk/blob/master/CHANGELOG.md) - [Commits](https://github.com/cosmos/cosmos-sdk/compare/v0.43.0-rc3...v0.43.0) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-sdk dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * module: improve 04-channel logging (#323) * module: improve 04-channel logging * update log Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * update changelog (#326) * Bump google.golang.org/grpc from 1.39.1 to 1.40.0 (#332) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.39.1 to 1.40.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.39.1...v1.40.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/spf13/cast from 1.4.0 to 1.4.1 (#338) Bumps [github.com/spf13/cast](https://github.com/spf13/cast) from 1.4.0 to 1.4.1. - [Release notes](https://github.com/spf13/cast/releases) - [Commits](https://github.com/spf13/cast/compare/v1.4.0...v1.4.1) --- updated-dependencies: - dependency-name: github.com/spf13/cast dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump github.com/tendermint/tendermint from 0.34.11 to 0.34.12 (#341) Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.11 to 0.34.12. - [Release notes](https://github.com/tendermint/tendermint/releases) - [Changelog](https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md) - [Commits](https://github.com/tendermint/tendermint/compare/v0.34.11...v0.34.12) --- updated-dependencies: - dependency-name: github.com/tendermint/tendermint dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * fix broken links in integration.md (#340) * fix broken link in integration.md * fix: broken link to simulator.md file in cosmos-sdk docs Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * Created helper functions for emitting packet events (#343) * Created helper functions for emitting packet events * Fixed comments and re-ordered helper functions Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Merge pull request from GHSA-qrhq-96mh-q8jv * Bump codecov/codecov-action from 2.0.2 to 2.0.3 (#346) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.2 to 2.0.3. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2.0.2...v2.0.3) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Bump actions/setup-go from 2.1.3 to 2.1.4 (#349) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.3 to 2.1.4. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v2.1.3...v2.1.4) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * increase port identifier limit to 128 characters (#344) * increase port identifier limit to 128 characters increase port limit and add tests for port validation * add changelog * fix tests * update codeowners to include new team members and granular ownership (#354) * update codeowners * add proto files to ownership * bump SDK dependency (#367) * update SDK dependency and fix changes Removes tests from sdk_test.go which are no longer needed to upstream changes in the SDK Fixes client_test.go due to inclusion of the fee in tx events * bump SDK version to v0.44.0 * adding client status cli query (#372) * adding client status cli query * adding query client status cli to changelog * updating long CLI help usage * adding markdown link checker to ci workflows (#377) * packet acknowledgment filtering (#375) * adding packet commitments to QueryPacketAcknowledgementsRequest for filtering * adding testcase for filtered packet ack query * adding changelog entry for packet ack filtering * updating packet sequences type to repeated uint64 * updating to query specific packet acks outside bounds of paginated req * updating changelog field naming, removing redundant pagination in query test * continue in favour of returning an error on query PacketAcknowledgements * updating to return empty array of acks if none of the provided commitments are found Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Bump github.com/tendermint/tendermint from 0.34.12 to 0.34.13 (#386) Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.12 to 0.34.13. - [Release notes](https://github.com/tendermint/tendermint/releases) - [Changelog](https://github.com/tendermint/tendermint/blob/v0.34.13/CHANGELOG.md) - [Commits](https://github.com/tendermint/tendermint/compare/v0.34.12...v0.34.13) --- updated-dependencies: - dependency-name: github.com/tendermint/tendermint dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Change ICS 20 packet data amount to be string (#350) * modify proto defintions * fix non string usage in code and various tests * fix mbt tests * fix bug in data validation * fix various build issues fix unaddressed issues from changing amount from uint64 to string * add changelog entry * apply review suggestions Add check that amount is strictly positive Construct granular error messages to indicate invalid amount value or failure to parse amount * verify and fix telemetry bug Verify msg panics on amounts > int64 by adding tests Add checks to telemetry emission of transfer amounts to handle when the amount cannot be casted to float32 * fix: ibc build docs (#361) * initial fix commit * add release v1.0.1 to versions * improvements for docs website * add new version * address review comments Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * feat: scalable version queries (#384) * adding protos for port query interface * adding NegotiateAppVersion method to IBCModule interface * adding grpc port query implementation and module surrounds * adding NegotiateAppVersion implementation to apps/transfer and mocks * updating ErrInvalidVersion error code * adding grpc query tests for 05-port * updating grpc naming, adding godocs, removing redundant query cli * updating grpc query tests * adding changelog entry for #384 app version negotiation * fixing error formatting in transfer version negotiation Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * removing client/cli query * updating grpc query naming, adding new fields and associated surrounds Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Bump codecov/codecov-action from 2.0.3 to 2.1.0 (#399) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.3 to 2.1.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v2.0.3...v2.1.0) --- updated-dependencies: - dependency-name: codecov/codecov-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: adding fn stub for version negotiation Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Luke Rhoads <51463884+lukerhoads@users.noreply.github.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Charly <charly@interchain.berlin> * fix err message (#419) * feat: ica app version negotiation (#410) * adding NegotiateAppVersion implementation and tests * updating GenerateAddress to return sdk.AccAddress, fixing tests * updating ica handshake flow to parse address from version string, fixing associated tests * updating module_tests * derive ica addresses from module account addr * removing unused keys * adding improved version validation, updating tests * removing redundant local var - owner * updating Delimiter godoc * updating validation logic * adding test cases for ValidateVersion * adding additional validation testcase, updating godocs * updating Version -> VersionPrefix, error msgs, validation tests * updating NewAppVersion func sig and usage * updating NewAppVersion args and returning more appropriate errors for handshake * Update modules/apps/27-interchain-accounts/keeper/handshake.go Co-authored-by: Sean King <seantking@users.noreply.github.com> * updating ValidateVersion godoc Co-authored-by: Sean King <seantking@users.noreply.github.com> * test: adding tests for OnRecvPacket (#412) * test: adding tests for OnRecvPacket * test: adding further test cases for onRecvPacket * chore: merge latest main to interchain-accounts (#435) * chore: update ica prefix for port identifiers (#434) * removing ICAPrefix const in favour of VersionPrefix * updating tests * test: account/keeper tests for ICA (#420) * test: adding tests for account type * tests: adding test for keeper & account * fix: updating channel closing capabilities * fix: updating to use test library instead of hardcoded values * fix: updating error handling for account * test: adding test for account string comparison * fix: updating marshal yaml * feat: module account address derivation (#428) * adding module account to interchain-accounts with associated changes * configuring ica module account in simapp * Update modules/apps/27-interchain-accounts/keeper/keeper.go Co-authored-by: Sean King <seantking@users.noreply.github.com> * updating godoc and import alias Co-authored-by: Sean King <seantking@users.noreply.github.com> * ICA: tests for module.go (#424) * test * test: adding module.go test with handshake callback tests * tests: adding key tests * additional code cov and clean up (#440) * split ica module.go into ibc_module.go (#453) Splits IBCModule logic into separate ibc_module.go file and updates app.go registration * Rename IBCAccountPacketData, Remove TxRaw (#456) * rename IBCAccountPacketData, remove txRaw type * Update proto/ibc/applications/interchain_accounts/v1/types.proto * Rename DeserializeTx, enforce []sdk.Msg usage in SerializeCosmosTx (#457) * rename DeserializeTx to DeserializeCosmosTx, simply serialization logic * improve godoc wording * remove computeVirtualTxHash (#473) * chore: ctrl port connection id validation (#454) * adding pipe char | to identifier regex * updating GeneratePortID to use pipe delimiter in favour of dash, ParseAddressFromVersion to use Split in favour of TrimPrefix * adding CounterpartyHops method to expected channel keeper interface * updating tests to satisy delimiter updates * adding connection seq validation of ctrl port id and updating tests * cleanup * adding defensive check for ParseAddressFromVersion * adding conn sequence parsing funcs to pkg types * moving conn sequence validation to reusable func * updating error msgs, adding tests for conn seq parsers * adding expected sequence to error msgs * updating ParseCtrlConnSequence to ParseControllerConnSequence * fixing counterparty port error * Update modules/apps/27-interchain-accounts/keeper/handshake.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Update modules/apps/27-interchain-accounts/keeper/handshake.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Update modules/apps/27-interchain-accounts/types/account.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * removing pipe from valid identifier regex * adding error returns to parsing funcs, updating tests, error messages * separting imports in keys.go * updating handshake tests * Update modules/apps/27-interchain-accounts/types/keys.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * renaming validation func, removing parenthesis in error msgs * renaming func validateControllerPort -> validateControllerPortParams Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * chore: correctly set/delete active channels (#463) * correctly set active channels, implement delete OnChanCloseConfirm callback * removing active channel on packet timeout * remove ica hooks (#480) * chore: minor nits - renaming and error msgs (#464) * update ErrPortAlreadyBound error string - remove for address * rename RegisterInterchainAccount api portID -> counterpartyPortID * wrap claim capability errors in handshake * Update modules/apps/27-interchain-accounts/keeper/account.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * adding channel and port id in error msg * correcting error wording Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * chore: update portkey to include port ID (#467) * update port key to use prefix, separate key prefixes to vars * updating godoc * Update modules/apps/27-interchain-accounts/keeper/keeper.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * adding todo with ica genesis issue ref * fixing failing test from browser commit * removing GetPort in favour of GetAllPorts Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * ICA: Rename TxBody, Remove serialization logic from controller, introduce CosmosTx type (#474) * remove ICA TxBody type, use repeated Any in packet data * adjust SerializeCosmosTx, fix tests * apply self nits * add memo length validation * chore(spec): remove old specification * ica: unspecified type enum for interchain account packet data (#487) * adding unspecified type enum, adding defensive check to ValidateBasic * Update modules/apps/27-interchain-accounts/types/packet_test.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * chore: ica audit nitpicks (#483) * updating version validation with corrections * removing unused methods from expected keeper interfaces * updating validate version error msg * update to use ErrInvalidVersion in favour of ErrInvalidAccountAddress * fixed typo (#507) * ica: move Serialize/DeserializeCosmosTx to package types (#493) * moving SerializeCosmosTx and DeserializeCosmosTx to types pkg * removing dead code * adding mockSdkMsg message type for failing codec test scenarios * Update modules/apps/27-interchain-accounts/types/codec_test.go * ica: TrySendTx error handling nits (#491) * updating error handling and msgs for TrySendTx flow * renaming active channel ID getter/setters, adding comment re indeterminate errs * renaming DeleteActiveChannel -> DeleteActiveChannelID * chore: adding damo to codeowners (#520) * ica: AuthenticateTx/executeTx clean up (#490) * cleaning up AuthenticateTx and executeTx to reduce unnecessary complexity * adding error wrapping to AuthenticateTx * updating err msg to include expected signer * ICA Controller Side Middleware (#417) * initial draft for ica middleware * add capability handling, fix build and tests * split module.go into ibc_module.go * add middleware handshake tests * fix app.go wiring and various tests * godoc self nits * remove unnecessary error * update comment * fix testing build * split channel keeper interface splits ChannelKeeper interface into ics4Wrapper and core ChannelKeeper * fix tests * remove comments * add callback for timeouts * Apply suggestions from code review Co-authored-by: Sean King <seantking@users.noreply.github.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> * fix test and update testing README apply test fix pointed out by Sean. Update testing README to reflect how to test with the mock module for middleware * add OnRecvPacket test Add test cases for OnRecvPacket, reused structure in relay_test.go * add failing test case for NegotiateAppVersion Co-authored-by: Sean King <seantking@users.noreply.github.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> * ica: genesis state implementation (#481) * initial genesis state draft * updating protos * including yaml tags, sorting proto file structure * updating to use range queries for active channels/interchain accounts * updating GetAllPorts test * moving test strings to expected vars * test: relay tests for TrySendTx/OnRecvPacket (#531) * adding various sdk.Msg type tests and cleaning up relay_test.go * cleaning up tests to make consistent * adding missing godoc for OnRecvPacket * adding ica test for transfertypes.MsgTranfer * updating hardcoded strings to use sdk.DefaultBondDenom * Update modules/apps/27-interchain-accounts/keeper/relay_test.go Co-authored-by: Sean King <seantking@users.noreply.github.com> * removing staking test for insufficient funds Co-authored-by: Sean King <seantking@users.noreply.github.com> * ICA controller/host submodules (#541) * go mod tidy * creating new genesis types for controller and host submodules * removing dead root module code * updating genesis helpers and adding newly generated types * adding interchain-accounts controller submodule * adding interchain-accounts host submodule * updating simapp to include controller and host ica submodules * adding errors returns for disallowed handshake directions, removing embedded app from host module, updating simapp to conform * updating simapp to remove nil arg to ica host ibc module * removing ics4Wrapper arg from ica host submodule * cleaning up module.go for controller and host submodules * removing commented out tests * commit with broken tests to rebase * disabling app version negotation on controller submodule * fixing tests - now passing * various cleanup, godocs and moving code * updating error msgs to conform to pkg split * removing commented out code * adding combined ica genesis, consolidating to single ica AppModule, updating app.go * adding missing godocs * clean up, godocs, rename validate.go -> version.go, move version related funcs * updating godocs and code organization * removing controller module acc, using icatypes module name for module acc in host submodule * correcting panic error msg * Update modules/apps/27-interchain-accounts/controller/ibc_module.go * Update modules/apps/27-interchain-accounts/types/genesis.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * updating logger kvs, and simplifying OnRecvPacket * address nits on error strings and godocs Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * chore: ica submodules minor improvements and cleanup * test: adding test for RegisterInterchainAccount & adding check to rel… (#552) * test: adding test for RegisterInterchainAccount & adding check to relay_test * Update modules/apps/27-interchain-accounts/host/keeper/relay_test.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> * Update modules/apps/27-interchain-accounts/host/keeper/relay_test.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> * Update modules/apps/27-interchain-accounts/host/keeper/account_test.go * Update modules/apps/27-interchain-accounts/host/keeper/account_test.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> * ICA Code Hygiene (#553) * chore: re-creating account.go for controller side for consitency * chore: remove comment * Update modules/apps/27-interchain-accounts/controller/keeper/account.go * ica: wrong handshake flow tests (#538) * add tests for testing wrong handshake flow Adds tests for each handshake test attempting to initialize the handshake using the wrong flow. Adds an additional portID check to OnChanOpenAck. * remove unnecessary comment * readjust tests based on new layout * Add tests provided by Damian * add tests for OnChanCloseInit and OnChanCloseConfirm on host side * add OnChanCloseInit/Confirm and NegotiateAppVersion tests to controller side * fix failing test * ica: genesis state validation (#554) * adding genesis state validation * adding genesis state validation tests * Update modules/apps/27-interchain-accounts/types/genesis_test.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Update modules/apps/27-interchain-accounts/types/genesis_test.go Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * adding ValidateAccountAddress helper to reduce code duplication Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * Rename imports within host/controller (#571) * alias ica types import to for host submodule * alias ica types import to for controller submodule * Add Enable/Disable controller/host on-chain params (#566) * add ica params Add new Params type to ICA. A single test is added to check defaults and validation. Usage within the ICA keepers is still needed * regenerate params proto into host and controller submodules * split params implementation into host/controller * add keeper params logic * Apply suggestions from code review Co-authored-by: Damian Nolan <damiannolan@gmail.com> * add host genesis init/export params test case * add genesis validation for controller and host params Co-authored-by: Damian Nolan <damiannolan@gmail.com> * Disable usage of controller and host submodules based on on-chain params (#575) * add usage of enabling/disabling controller and host submodules Adds if statement checks in controller/host ibc_module.go. Adds tests for each added if statements. Tests not added for controller ack/timeout since tests do not exist for those functions yet. * Update modules/apps/27-interchain-accounts/controller/ibc_module_test.go * add grpc query for controller and host params (#574) Adds gRPC routes for controller params and host params. Add tests and registers the gRPC gateways on the ica module * modify ica portid to be interchain-account instead of ibcaccount (#577) * feat: allowlist host param using msg typeURLs (#576) * add ica params Add new Params type to ICA. A single test is added to check defaults and validation. Usage within the ICA keepers is still needed * regenerate params proto into host and controller submodules * split params implementation into host/controller * add keeper params logic * Apply suggestions from code review Co-authored-by: Damian Nolan <damiannolan@gmail.com> * add host genesis init/export params test case * updating host proto params to include msg allowlist * adding surrounds for new allowlist host param * enforcing msg is present in allowlist in AuthenticateTx, updating tests * regenerating protos post merge conflict * applying suggestinons from review * adding strings.Trimspace as suggested Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com> * Add cli query for host and controller params (#578) * add cli query commands for host/controller params * Update modules/apps/27-interchain-accounts/client/cli/cli.go * Update modules/apps/27-interchain-accounts/controller/client/cli/query.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> * Update modules/apps/27-interchain-accounts/host/client/cli/query.go Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> * renmaing ModuleName to SubModuleName for ica controller/host (#579) Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * add tests/code coverage for OnRecv, OnTimeout and OnAck for controller submodule (#585) Co-authored-by: Colin Axnér <25233464+colin-axner@users.noreply.github.com> Co-authored-by: Luke Rhoads <51463884+lukerhoads@users.noreply.github.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Aditya <adityasripal@gmail.com> Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com> Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es> Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> Co-authored-by: Charly <charly@interchain.berlin> * update changelog (#602) Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * chore: add changelog for ICA (#604) * bump go package to v3 (#605) * add migration doc * bump go package to v3 * fix migration doc * revert unnecessary change * Update docs/migrations/v2-to-v3.md Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Damian Nolan <damiannolan@gmail.com> * fix: move changelog entries to unreleased section (#608) * chore: rename types.proto -> packet.proto for alignment (#612) * deleting types.pb.go generatred protobufs * renaming types.proto -> packet.proto and regenerating protos * remove unnecessary AccountKeeper field in controller submodule of interchain accounts (#618) * add app.go integration docs for interchain accounts (#619) * add integration docs for interchain accounts * Update docs/app_modules/interchain-accounts/integration.md Co-authored-by: Damian Nolan <damiannolan@gmail.com> * Update docs/app_modules/interchain-accounts/integration.md Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es> * fix alignment Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es> * fix: correctly propagate sdk.Result events to the current ctx (#624) * adding ignored sdk.Results to correctly propagate events to the current context * adding inline comments for events subtleties * docs: adding interchain accounts params docs (#625) * adding interchain accounts params docs * adding ICS dash separation * docs: add migrations from v1 to v2 and from v2 to v3 in docs site (#623) * docs: add migrations fro v1 to v2 and from v2 to v3 in docs site * docs: rename title of migration docs * docs: update title Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * remove proof spec from ClientState interface (#629) * remove proof spec from ClientState interface * add changelog and migration doc note * build(deps): bump github.com/spf13/viper from 1.9.0 to 1.10.0 (#628) Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.9.0 to 1.10.0. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.9.0...v1.10.0) --- updated-dependencies: - dependency-name: github.com/spf13/viper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * build(deps): bump github.com/spf13/viper from 1.10.0 to 1.10.1 (#638) Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.10.0 to 1.10.1. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.10.0...v1.10.1) --- updated-dependencies: - dependency-name: github.com/spf13/viper dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: add clear definition of IBC at top of readme now that Vega upgrade has passed (#630) * add clear definition of IBC at top of readme now that Vega upgrade has passed and IBC is standalone module * Update README.md remove the backbone Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * build(deps): bump github.com/spf13/cobra from 1.2.1 to 1.3.0 (#637) Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.2.1 to 1.3.0. - [Release notes](https://github.com/spf13/cobra/releases) - [Changelog](https://github.com/spf13/cobra/blob/master/CHANGELOG.md) - [Commits](https://github.com/spf13/cobra/compare/v1.2.1...v1.3.0) --- updated-dependencies: - dependency-name: github.com/spf13/cobra dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: add roadmap (#558) * add roadmap * move roadmap to docs * docs: updates to roadmap * docs: more roadmap updates Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * remove CounterpartyHops function, add GetChannelConnection (#644) * remove CounterpartyHops function, add GetChannelConnection Removes CounterpartyHops function, 04-channel uses are replaced with direct calls to the connections counterparty connection id Adds GetChannelConnection as a helper function for getting the connection associated with a channel. Allows access to connectionID and counterparty connectionID * add changelog * docs: developing ica auth module (#633) * add ica auth development docs * fix code formatting * fix spacing * add link * Apply suggestions from code review Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es> * fix alignment * address remaining review suggestions * link to ICS30 * Update docs/app_modules/interchain-accounts/ica_auth.md Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es> * fix misalignment * remove capitalization of authentication module Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es> * update changelog (#645) * update changelog * cosmetic update of changelog Co-authored-by: Carlos Rodriguez <crodveg@gmail.com> * reorganize channel handshake handler (#647) * reorganize channel handshake handler split out channel state changes into its own function. * readjust 27-interchain-accounts to not rely on state being set before the application callback * add changelog and migration doc entry * Update modules/core/04-channel/keeper/handshake.go * docs: ICA Overview (#626) * docs: ica overview * fix: ordering * add spacing * fix: spacing * fix: remove bulletpoints * fix: wording * update go mod for security vulnerabilities (#655) * update go mod for security vulnerabilities * update package-lock.json * update vue dependency (#662) * bump glob-parent version in json package (#663) * build(deps): bump actions/setup-go from 2.1.4 to 2.1.5 (#656) Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.1.4 to 2.1.5. - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](https://github.com/actions/setup-go/compare/v2.1.4...v2.1.5) --- updated-dependencies: - dependency-name: actions/setup-go dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: colin axnér <25233464+colin-axner@users.noreply.github.com> * docs: begin removal of internal "spec" directories (#634) * begin removal of spec docs within core ibc * remove broken link * Apply suggestions from code review Co-authored-by: Damian Nolan <damiannolan@gmail.com> * remove broken link * remove broken links * Apply suggestions from code review Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es> Co-authored-by: Damian Nolan <damiannolan@gmail.com> Co-authored-by: Carlos Rodriguez <crodveg@yahoo.es> * Modify `OnChanOpenTry` application callback to perform app version negotitation (#646) * remove NegotiateAppVersion and AppVersion gRPC (#643) The NegotiateAppVersion callback has been removed from the IBC Application interface. The gRPC AppVersion has been removed. The app version negoitation will be handled by applications by returning the version in OnChanOpenTry. * Modify `OnChanOpenTry` to return application version (#650) * modify OnChanOpenTry to return negotiated version modify IBCModule interface function OnChanOpenTry to return the negotiated app version. Tests have not been updated * fix ibc_module_test.go tests * fix tests * Apply suggestions from code review * add handshake test case * add CHANGELOG and migration docs * update documentation * fix broken link * fix broken link (#664) * chore: update make build-docs, add docs build checker (#667) * update Makefile, add docs build checker * Update .github/workflows/check-docs.yml Co-authored-by: Marko <marbar3778@yahoo.com> Co-authored-by: Marko <marbar3778@yahoo.com> * register ICA query server, fix panics in params query cli (#666) Register the controller and host query servers to a chain. Returns an error upon cli params query failure instead of panicing. * update of roadmap with latest release (#653) * update …
…hannels Ibc query only returns open channels
) Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.6.0 to 1.6.1. - [Release notes](https://github.com/spf13/cobra/releases) - [Commits](spf13/cobra@v1.6.0...v1.6.1) --- updated-dependencies: - dependency-name: github.com/spf13/cobra dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Description
In the IBC transfer cli command use the local clock time as reference time to calculate the timeout timestamp on the counter party chain if it is later than the consensus state timestamp of the counter party chain, otherwise still use consensus state timestamp as reference.
closes: #508
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/
) or specification (x/<module>/spec/
)godoc
comments.Unreleased
section inCHANGELOG.md
Files changed
in the Github PR explorerCodecov Report
in the comment section below once CI passes