From 1b202d635e6d2ad8caf169553d8dd1fcde6607a6 Mon Sep 17 00:00:00 2001 From: Simon Noetzlin Date: Tue, 16 Jul 2024 17:37:17 +0200 Subject: [PATCH] chore: sync release/v5.1.x with main (#2038) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * build(deps): bump slackapi/slack-github-action from 1.25.0 to 1.26.0 (#1803) Bumps [slackapi/slack-github-action](https://github.com/slackapi/slack-github-action) from 1.25.0 to 1.26.0. - [Release notes](https://github.com/slackapi/slack-github-action/releases) - [Commits](https://github.com/slackapi/slack-github-action/compare/v1.25.0...v1.26.0) --- updated-dependencies: - dependency-name: slackapi/slack-github-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: add v4.1.x to docs and cleanup bots (#1812) * add v4.1.x to releases and features * cleanup mergify and dependabot * build(deps): bump github.com/cosmos/cosmos-proto from 1.0.0-beta.4 to 1.0.0-beta.5 (#1802) build(deps): bump github.com/cosmos/cosmos-proto Bumps [github.com/cosmos/cosmos-proto](https://github.com/cosmos/cosmos-proto) from 1.0.0-beta.4 to 1.0.0-beta.5. - [Release notes](https://github.com/cosmos/cosmos-proto/releases) - [Commits](https://github.com/cosmos/cosmos-proto/compare/v1.0.0-beta.4...v1.0.0-beta.5) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-proto dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: add docs versioning and legacy page (pre v4.0.0) (#1833) * Updated build to allow for versioned docs * wip: add steps to build legacy docs * docs: add build legacy website * docs: add v4; rename to legacy * docs: add docs versioning for docusaurus v3.x * docs: add docs version sync and deploy scripts * update makefile * docs: rm deprecated build script * docs: fix banner in v4.1.0 * docs: update build script & config * update .gitignore * docs: update build script & config * docs: update Readme * build: update docs build script * build: update docs README.md * address review comments * address review comments -- update readme --------- Co-authored-by: Milan Mulji <98309852+mmulji-ic@users.noreply.github.com> * build(deps): bump JamesIves/github-pages-deploy-action from 4.5.0 to 4.6.0 (#1804) build(deps): bump JamesIves/github-pages-deploy-action Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.5.0...v4.6.0) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: add release/v5.x bots targets (#1829) * chore: fix spelling errors (#1835) chore: spelling errors fixes Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> * build(deps): bump github.com/hashicorp/go-getter from 1.7.1 to 1.7.4 (#1826) Bumps [github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter) from 1.7.1 to 1.7.4. - [Release notes](https://github.com/hashicorp/go-getter/releases) - [Changelog](https://github.com/hashicorp/go-getter/blob/main/.goreleaser.yml) - [Commits](https://github.com/hashicorp/go-getter/compare/v1.7.1...v1.7.4) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-getter dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: update docs deployment (#1841) * build(deps): bump amannn/action-semantic-pull-request from 5.4.0 to 5.5.2 (#1831) build(deps): bump amannn/action-semantic-pull-request Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 5.4.0 to 5.5.2. - [Release notes](https://github.com/amannn/action-semantic-pull-request/releases) - [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md) - [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v5.4.0...v5.5.2) --- updated-dependencies: - dependency-name: amannn/action-semantic-pull-request dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.30.1 to 1.31.0 (#1832) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.30.1 to 1.31.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.30.1...v1.31.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat!: Introduce Partial Set Security (#1809) * cleanup ./changelog entries * docs: changelog and release notes for v4.0.0 (#1564) * add v4.0.0 section to changelog * add release notes * fix!: Validation of SlashAcks fails due to marshaling to Bech32 (backport #1570) (#1577) fix!: Validation of SlashAcks fails due to marshaling to Bech32 (#1570) * add different Bech32Prefix for consumer and provider * separate app encoding and params * remove ConsumerValPubKey from ValidatorConfig * update addresses in tests * make SlashAcks consistent across chains * add comments for clarity * Regenerate traces * Fix argument order * set bech32prefix for provider to cosmos * add changelog entries * add consumer-double-downtime e2e test * update nightly-e2e workflow * fix typo * add consumer-double-downtime to testConfigs * remove changes on provider * skip invalid SlashAcks * seal the config * clear the outstanding downtime flag for new vals * add info on upgrading to v4.0.0 * fix upgrade handler * fix changeover e2e test * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * add AccountPrefix to ChainConfig * fix docstrings * update AccountAddressPrefix in app.go * fix consumer-misb e2e test --------- Co-authored-by: Philip Offtermatt Co-authored-by: Simon Noetzlin Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> (cherry picked from commit 86046926502f7b0ba795bebcdd1fdc97ac776573) Co-authored-by: Marius Poke * docs: update changelog for v4.0.0 (#1578) update changelog * docs: prepare for v4.0.0 (#1581) * unclog build * update release notes * update release date * feat!: enable Opt In and Top N chains through gov proposals (#1615) * init commit * added test * fixed tests * added changelog entry and comment * Update x/ccv/provider/keeper/proposal_test.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update .changelog/unreleased/features/1587-enable-opt-in-chains-through-gov-proposals.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * changed to tabular test --------- Co-authored-by: insumity Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * feat!: introduce MsgOptIn and MsgOptOut (#1620) * init commit * cleaning up * changed cons to val address * Revert "changed cons to val address" This reverts commit a32e8829fee3cbbe50e363a0aa91ad62117a8a1d. * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Simon Noetzlin * took into account comments * added key assignment * add contraint such that opt out only works if the chain is running --------- Co-authored-by: insumity Co-authored-by: Simon Noetzlin * test: MBT: Add partial set security to model (feature branch version) (#1627) * Port changes from branch to main * Add model analysis changes to Makefile * test: Ports key assignment to the driver on the PSS feature branch (#1628) * Port key assignment to MBT driver * Add comment and make var names clearer * feat!: automatically opt in validators that vote Yes on consumer addition proposals (#1629) * init commit * changed providerKeeper.GetProposedConsumerChain to return a bool * add logging mesages * one more log message * fix comment * added one more test case of NO vote and made tabular test * test: Add driver for PSS (#1636) * Port key assignment to MBT driver * Add PSS trace generation * Add PSS trace gen to longer trace gen * Start handling top N parameter for new consumers * Finish merge * Add handling for optin/optout steps * Remove expected error from OptIn, which should not error * set top N parameter during path setup * Add comment to setup.go * feat!: add PSS reward distribution spike (#1632) * PSS reward distribution * "add optin mapping to test" * Update app/provider/app.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * docs * add TODO * fix Dos vector in IBCMiddlewarea * add reformat * fix DOS issue and make integration tests pass * doc * add integration test * doc * Compute total vp per consumer * add comments * remove opt-in comments and add TODOs * format * Update x/ccv/provider/keeper/distribution.go Co-authored-by: insumity * add UT + doc * Update tests/integration/distribution.go Co-authored-by: insumity * Update tests/integration/distribution.go Co-authored-by: insumity * nits * Update x/ccv/provider/ibc_middleware.go Co-authored-by: Marius Poke * add panics in IBC Middleware ICS4wrapper funcs * address comments --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: Marius Poke * feat! use protos to serialize opted-in validators (#1659) move OptedInValidators to proto Co-authored-by: insumity * feat!: PSS enable per-consumer chain commission (#1657) * add draft commission * implement consumer commission draft * formatting * add msg handling * improve UT * nits * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity * Update proto/interchain_security/ccv/provider/v1/tx.proto Co-authored-by: Marius Poke * optimize keys * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity * address comments * address comments * remove unnecessary check * Revert "remove unnecessary check" This reverts commit 2951e9bace04f6436d6ad1e4a11efcedd0be8cb1. * fix minor bug in StopConsumerChain --------- Co-authored-by: insumity Co-authored-by: Marius Poke * test: update integration test suite for PSS (#1687) * draft multi consumer transfer setup and test * format multi consumer distribution test * update test for democ consumer chains * nits * nit * docs: changelog and release notes for v4.0.0 (#1564) * add v4.0.0 section to changelog * add release notes * fix!: Validation of SlashAcks fails due to marshaling to Bech32 (backport #1570) (#1577) fix!: Validation of SlashAcks fails due to marshaling to Bech32 (#1570) * add different Bech32Prefix for consumer and provider * separate app encoding and params * remove ConsumerValPubKey from ValidatorConfig * update addresses in tests * make SlashAcks consistent across chains * add comments for clarity * Regenerate traces * Fix argument order * set bech32prefix for provider to cosmos * add changelog entries * add consumer-double-downtime e2e test * update nightly-e2e workflow * fix typo * add consumer-double-downtime to testConfigs * remove changes on provider * skip invalid SlashAcks * seal the config * clear the outstanding downtime flag for new vals * add info on upgrading to v4.0.0 * fix upgrade handler * fix changeover e2e test * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * add AccountPrefix to ChainConfig * fix docstrings * update AccountAddressPrefix in app.go * fix consumer-misb e2e test --------- Co-authored-by: Philip Offtermatt Co-authored-by: Simon Noetzlin Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> (cherry picked from commit 86046926502f7b0ba795bebcdd1fdc97ac776573) Co-authored-by: Marius Poke * docs: update changelog for v4.0.0 (#1578) update changelog * feat!: enable Opt In and Top N chains through gov proposals (#1615) * init commit * added test * fixed tests * added changelog entry and comment * Update x/ccv/provider/keeper/proposal_test.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update .changelog/unreleased/features/1587-enable-opt-in-chains-through-gov-proposals.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * changed to tabular test --------- Co-authored-by: insumity Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * feat!: introduce MsgOptIn and MsgOptOut (#1620) * init commit * cleaning up * changed cons to val address * Revert "changed cons to val address" This reverts commit a32e8829fee3cbbe50e363a0aa91ad62117a8a1d. * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Simon Noetzlin * took into account comments * added key assignment * add contraint such that opt out only works if the chain is running --------- Co-authored-by: insumity Co-authored-by: Simon Noetzlin * test: MBT: Add partial set security to model (feature branch version) (#1627) * Port changes from branch to main * Add model analysis changes to Makefile * feat!: add PSS reward distribution spike (#1632) * PSS reward distribution * "add optin mapping to test" * Update app/provider/app.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * docs * add TODO * fix Dos vector in IBCMiddlewarea * add reformat * fix DOS issue and make integration tests pass * doc * add integration test * doc * Compute total vp per consumer * add comments * remove opt-in comments and add TODOs * format * Update x/ccv/provider/keeper/distribution.go Co-authored-by: insumity * add UT + doc * Update tests/integration/distribution.go Co-authored-by: insumity * Update tests/integration/distribution.go Co-authored-by: insumity * nits * Update x/ccv/provider/ibc_middleware.go Co-authored-by: Marius Poke * add panics in IBC Middleware ICS4wrapper funcs * address comments --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: Marius Poke * feat!: PSS enable per-consumer chain commission (#1657) * add draft commission * implement consumer commission draft * formatting * add msg handling * improve UT * nits * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity * Update proto/interchain_security/ccv/provider/v1/tx.proto Co-authored-by: Marius Poke * optimize keys * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity * address comments * address comments * remove unnecessary check * Revert "remove unnecessary check" This reverts commit 2951e9bace04f6436d6ad1e4a11efcedd0be8cb1. * fix minor bug in StopConsumerChain --------- Co-authored-by: insumity Co-authored-by: Marius Poke * fix nits in MBT model after merging #1676 from main * Fix merging ccv model * Remove conflict markers * Remove more conflict markers * EndProviderEpoch takes ConsumerAdditionMsg * Fix using consumer addition msgs instead of chain names in boundeddrift.qnt * lint * chore: rebase PSS branch with main (#1689) * Update tests/mbt/driver/mbt_test.go * nits * revert unwanted line deletion from linter --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * feat!: complete the PSS reward distribution (#1709) * update compute consumer total power for reward distribution * update distribution logic to work with epochcs * Adapt reward distribution mem test to epochs * doc * nits * other nits * nits * Update tests/integration/distribution.go * feat!: Add slashing logic for PSS (#1710) * add check for consumer validators in downtime logic * fix UT * try to fix weird errors in gh worfklow * fix silly merge bug * nits * ci: do not scan the tests for security issues (#1717) init commit * feat!: compute partial sets (#1702) * init commit * nit change * cleaning up * clean up * fix distribution test * Update x/ccv/provider/keeper/hooks.go Co-authored-by: Simon Noetzlin * took into Simon's comments * took into rest of the comments * nit change * return an error if validator cannot opt out from a Top N chain * removed automatic opt-in for validators that vote Yes on proposals * tiny fix for E2E tests * nit change to remove unecessary else * fixed topN == 0 issue --------- Co-authored-by: Simon Noetzlin * feat!: update PSS cli (#1708) finalize PSS CLI cmds * Rename and add comission rate command to commands * feat!: only perform consumer additions for non-empty chains (#1730) * init commit * Update x/ccv/provider/keeper/proposal.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * feat: Add queries for PSS and consumer commission rate (#1733) * init commit * nit change * cleaning up * clean up * fix distribution test * Update x/ccv/provider/keeper/hooks.go Co-authored-by: Simon Noetzlin * took into Simon's comments * took into rest of the comments * nit change * return an error if validator cannot opt out from a Top N chain * removed automatic opt-in for validators that vote Yes on proposals * tiny fix for E2E tests * nit change to remove unecessary else * update consumer chains query to return topN * update query consu chains proto * add consumer chains per validator query * Add PSS command to provider's cli * nits * add consumer commission rate query * nits * big renaming * fix doc * nits * nits * docs * Update proto/interchain_security/ccv/provider/v1/query.proto Co-authored-by: insumity * nit * add OptedIn in QueryConsumerChainsValidatorHasToValidate * remove OptIn field in consumer chains query response * include validators that opt-in during the next epochs * update has-to-validate condition * fix tinny bug in the tests after merging feat/partial-security * update doc * update cli description * Update x/ccv/provider/keeper/grpc_query.go Co-authored-by: insumity * changes --------- Co-authored-by: insumity * fix!: Fix opt-in assignment (#1732) * Make the same validator assigning the same key a noop instead of an error * Adjust test * Update tests * Fix newline warning * Regenerate traces * Add key assignment change to changelog * Add info log for same key same validator assignments * Add changelog entry to api-breaking * Update x/ccv/provider/handler_test.go Co-authored-by: insumity * Add more comments to test and return right validator --------- Co-authored-by: insumity * fix silly bug in PSS opted-in val query * fix logging in ibc_module.go * test: add partial-set-security E2E tests (#1737) * init commit * fix traces * Add PSS to default tests * Update tests/e2e/steps_partial_set_security.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update tests/e2e/steps_partial_set_security.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> --------- Co-authored-by: Philip Offtermatt Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Nit changes based on Simons comments. To be pushed directly because E2E PR 1737 were the comments were written was accidentally merged. * fix!: return a SlashAck even if the validator is not a consumer validator (#1763) * init commit * fix test * test: Expand PSS e2e test to include slashing (#1752) * Expand test to include slashing * Add back existing steps * Add downtime to top N test * Fix nits * fix!: update unbonding pausing for PSS (#1728) * draft PSS unbonding fix * fix hook logic to retrieve validator address from ubd op * add unbonding pausing unit-test * remove panic in hook * Get back 3.2.0 and 3.3.0 changelog from main * Port epilogue from main * Fix proto conflict * generate proto files * Port RELEASE_NOTES * Fix merge for tests * Merge declaration and assignment * Clean up model files * Add pss tests to MBT readme * Restore MsgSubmitConsumerDoubleVoting handler * Remove local driver files * Remove Quint guidelines * Add optin/optout to MBT readme * Fix types in model * Fix model * Add migration * Ensure SlashAcks are sent even when the valset does not change * adding changelog entry * Empty DowntimeSlachAcks on EndBlock * Remove logs * Change condition for sending slash acks * Revert model changes * Start fixing PSS issues in model * Add expected errors to opt out action * Revert PSS quint model changes * Add parameter to ComputeNextEpochConsumerValSet * Set top N param in setup * Fix: do not try key assignment if there is no nonjailed validator * Do not assign keys for jailed validators * Only jail validators with non-zero-power * Add unit test * Add unit test for unset case * Panic on not being able to unmarshal * Move packet handling into ack.Success block * Format * Remove unnecessary comment * Add parens for clarity * Format and fix typo * Move OptIn/OptOut events to provider events * Remove unused function * Improve comments for keys * Improve comments for key getter functions * Remove order change for existing keys * Re-add nolint instruction * nit comment fix * Move ConsumerAllocationTests to correct folder * nit comment fix * fix!: handle consumer commission marshalling errors gracefully (#1836) * handle consumer commission setter/getter gracefully to avoid BeginBlock panic + add msg in codec * fix consumer commission query rest path * fix: update queries REST path for PSS (#1839) update queries rest path * Clarify that GetProposedConsumerChain is test-only * fix: Fix has-to-validate query (#1823) * Fix has-to-validate query * Flip comparison sign for checking minPower * Regenerate traces * Remove unnecessary print * Address comments * fix!: fix slashing in PSS (#1838) * drop slash packet for opted-out validators before updating slash meter * fix integration test * fix ut * update UT * Update x/ccv/provider/types/msg.go Co-authored-by: Marius Poke * Remove BlockValidatorUpdate from expected staking keeper * added an error response value to ComputeMinPowerToOptIn * delete additional state when we stop a chain * Assign keys and change voting power only for unjailed nodes with >0 power * fix: Validate consumer commission rate against minimal rate (#1834) * Validate consumer commission rate * Add test for commission rates * Remove static minimum commission rate validation from Set * feat!: introduce power shaping (#1830) * added power shaping * fixes * Add property based test for power cap * fixed tests & added algorithm's idea * nit changes * Update x/ccv/provider/keeper/proposal.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * remove empty-validator-set check * implicit memory aliasing issue fixed * added keeper tests * updated HasToValidate query * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * took into account comments * do not use cached ctx * Fix E2E test. A jailed validator does not have to validate. * fix merge issue and format --------- Co-authored-by: Philip Offtermatt Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update v4 to v5 in package version * Bump consensus version * Add migration in correct folder * Update version from v4 to v5 in migration --------- Co-authored-by: mpoke Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: insumity Co-authored-by: Simon Noetzlin * chore: add v5.0.x-provider and v5.0.x-provider to mergify and dependabot (#1845) updated bots for v5.0.x-provider release * fix: revert version bump to v5 (#1847) * revert bump version to 5 * register migration * chore: rm v5-provider; add v4.2.0; rm old versions (#1849) * chore: rm v5-provider; add v4.2.0; rm old versions * chore: rm v5-provider; add v4.2.0; rm old versions * chore: Add coderabbit configuration file (#1852) * Add coderabbit configuration file * Add release and feat base branches to coderabbit * Change config to not auto-post review status on unreviewed PRs * refactor: remove redundant code from MakeConsumerGenesis (#1807) * remove redundant code from MakeConsumerGenesis * fix tests * refactor: nit naming changes (#1854) * small naming fix * reverts name to ComputeNextValidators because the semantics of ComputeNextEpochConsumerValSet were different in v4.1 * docs: ADR for Security Aggregation solution (#1866) * ADR CosmoLayer: Initial draft * update adr: slinky api * cleanup * Apply suggestions from code review Co-authored-by: Marius Poke * addressed comments * cleanup of pseudo code, power sources * renaming to security aggregation * mv adr * removed comments * minor change in code example * Apply suggestions from code review Grammar Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: Marius Poke Co-authored-by: Jehan Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: Make coderabbit ignore docs folder (#1864) Make bot ignore docs folder * chore: Fix codespell config (#1869) * Add optin and opt-in to codespell ignored words * Fix typo on multiple * Fix typo on assignment * feat: PSS - Add minimum power in top N & power shaping params to consumer chain list (#1863) * Add minimum power in top N to the list-consumer-chains query * Add test for MinPowerInTop_N * Add changelog entry * Update x/ccv/provider/keeper/keeper_test.go Co-authored-by: insumity * Add other validator shaping params to consumer chain list * Add power shaping params to query test * Adjust changelog for extra fields * Add changelog entry for API breaking --------- Co-authored-by: insumity * chore: fixed all-pairs-valconsensus-address CLI command usage (#1870) * chore: Try to make coderabbit ignore missing/extra newlines in md files (#1877) Update .coderabbit.yml * docs: Add PSS docs (#1859) * Add params to proposals * Start rewriting intro * Finish overview and terminology * Write up generics about PSS and power shaping * Add more info about top N and optin * Nit: apostrophe * Clarify governance proposal process for Opt In chains * Apply suggestions from code review Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Add missing newlines * Update docs/docs/features/partial-set-security.md Co-authored-by: insumity * Update docs/docs/features/power-shaping.md Co-authored-by: insumity * Use Interchain Security instead of ICSv2 * docs: Add PSS docs (Part 2) (#1861) * first version * first commit * one more warning on having all validators opt out * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update docs/docs/frequently-asked-questions.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update docs/docs/frequently-asked-questions.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * took into account some comments * small comment changes --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Add warning that vals have to manually opt out if going out of top N * Add short PSS FAQ * Add FAQ on how many chains vals can opt in on * Change first to third person * Fix typo * Add missing comma * added a warning * Add more guidelines to 'how to choose the power shaping parameters' * Mention list-consumer-chains query * Add tip about default commission rate --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: insumity * docs: Minor improvements (#1882) * Fix typo in tip * Minor improvements around commission rate * Mention soft opt-out * Link to normal consumer addition prop * Remove confusing line from changeover prop * Remove instructions about not assigning keys * Clarify starting condition for top N chains * Incorporate comments * Update docs/docs/validators/joining-testnet.md Co-authored-by: insumity * Reformulate opting out --------- Co-authored-by: insumity * build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.1 (#1862) Bumps google.golang.org/protobuf from 1.33.0 to 1.34.1. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: add a query to retrieve validator set that was last sent to the consumer chain (#1867) * init commit * took into account comments * add docs * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix!: drop chain proposals with empty validator set at spawn time (#1888) * init commit * Update x/ccv/provider/keeper/proposal.go Co-authored-by: MSalopek * added one more test case --------- Co-authored-by: MSalopek * test: Remove v5.0.0 (pre-release) be tested within e2e compatibility (#1894) * Remove v5.0.0 (pre-release) from last version to be tested within e2e comopatibility tests * Apply suggestions from code review Co-authored-by: Marius Poke --------- Co-authored-by: Marius Poke * test: add E2E test for power-shaping features (#1853) * added E2E tests * Update tests/e2e/steps_partial_set_security.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * added to nightly tests --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * build(deps): bump comet to v0.37.6 (#1876) * bump comet to v0.37.6 * add changelog entry * fix exp deps and pin it to go.mod * bump comet to 0.37.5 and sdk to 0.47.11 to match * bump comet back to 0.37.6 * add changelog entry for SDK --------- Co-authored-by: MSalopek * docs: add v4.2.0; bump v5.0.0 (#1900) * docs: add v4.2.0; bump v5.0.0 * docs: add v4.2.0; bump v5.0.0 * docs: fix broken docs deploy (v4.2.0) (#1903) * docs: add v4.2.0; bump v5.0.0 * docs: add v4.2.0; bump v5.0.0 * sync * sync stuff * fix * try docs tag * add version alias * chore: fix spelling errors (#1904) chore: spelling errors fixes Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> * build(deps): bump JamesIves/github-pages-deploy-action from 4.6.0 to 4.6.1 (#1905) build(deps): bump JamesIves/github-pages-deploy-action Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.0 to 4.6.1. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.0...v4.6.1) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.31.0 to 1.32.0 (#1906) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.31.0 to 1.32.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.31.0...v1.32.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump google.golang.org/grpc from 1.63.2 to 1.64.0 (#1908) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.63.2 to 1.64.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.63.2...v1.64.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: document democracy modules in more detail (#1915) * docs: document democracy modules in more detail * docs: add diff to config * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * cleanup after applying bot comments --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * docs: bring v4.2.0 changelog to main (#1909) bring v4.2.0 changelog to main * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.4.0 to 7.5.0 (#1907) * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.4.0 to 7.5.0 Bumps [github.com/cosmos/ibc-go/v7](https://github.com/cosmos/ibc-go) from 7.4.0 to 7.5.0. - [Release notes](https://github.com/cosmos/ibc-go/releases) - [Changelog](https://github.com/cosmos/ibc-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/cosmos/ibc-go/compare/v7.4.0...v7.5.0) --- updated-dependencies: - dependency-name: github.com/cosmos/ibc-go/v7 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * add changelong entry --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke * chore: fix spelling errors (#1922) chore: spelling errors fixes Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> * fix(client): write unbonding period advisory to stderr instead of stdout (#1921) * fix(client): write unbonding period advisory to stderr instead of stdout * Add changelog for unbonding period advisory --------- Co-authored-by: Philip Offtermatt * docs: update ADR metadata (#1910) * update ADR metadata * fix broken link * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 (#1924) * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 Bumps [github.com/cosmos/ibc-go/v7](https://github.com/cosmos/ibc-go) from 7.5.0 to 7.5.1. - [Release notes](https://github.com/cosmos/ibc-go/releases) - [Changelog](https://github.com/cosmos/ibc-go/blob/v7.5.1/CHANGELOG.md) - [Commits](https://github.com/cosmos/ibc-go/compare/v7.5.0...v7.5.1) --- updated-dependencies: - dependency-name: github.com/cosmos/ibc-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update changelog entry --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke * build(deps): bump bufbuild/buf-setup-action from 1.32.0 to 1.32.1 (#1923) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.0 to 1.32.1. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.0...v1.32.1) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.32.1 to 1.32.2 (#1934) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.1 to 1.32.2. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.1...v1.32.2) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump github.com/spf13/viper from 1.18.2 to 1.19.0 (#1936) Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.18.2 to 1.19.0. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.18.2...v1.19.0) --- updated-dependencies: - dependency-name: github.com/spf13/viper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump docker/login-action from 3.1.0 to 3.2.0 (#1935) Bumps [docker/login-action](https://github.com/docker/login-action) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/e92390c5fb421da1463c202d546fed0ec5c39f20...0d4c9c5ea7693da7b068278f7b52bda2a190a446) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: Add draft ADR for validators outside of the active set (#1879) * Add draft ADR for active set validators * Remove unused changelog entry * Add initial date and remove square brackets * Suggest alternative approach: unbonded validators can validate * Expand unbonded validators section a bit * Incorporate comments * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke * Clarify consensus validators vs staking validators * Update ADR to roll context doc into it * Fix image links * Add negative consequence * Add sentence about module wiring * Address review comments * Add source code for diagrams and make text more technical * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Jehan * Write changes to state * Update intro, links, mitigations --------- Co-authored-by: Marius Poke Co-authored-by: Jehan * chore: fix struct name in comment (#1938) Signed-off-by: xiaoxiangirl * feat!: allow consumer chains to change their PSS parameters (#1932) * added modification proposal * small fixes * Update x/ccv/provider/client/proposal_handler.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * removed trailing comma * Update x/ccv/provider/types/proposal.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update x/ccv/provider/types/proposal.go Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * took into account comment --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix!: apply audit suggestions (#1925) * init commit * added CHANGELOG entries * added nit simplification change * addressed comment by Hypha * took into account err returned by ComputeMinPowerToOptIn * fixed test failing * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 (#1924) * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 Bumps [github.com/cosmos/ibc-go/v7](https://github.com/cosmos/ibc-go) from 7.5.0 to 7.5.1. - [Release notes](https://github.com/cosmos/ibc-go/releases) - [Changelog](https://github.com/cosmos/ibc-go/blob/v7.5.1/CHANGELOG.md) - [Commits](https://github.com/cosmos/ibc-go/compare/v7.5.0...v7.5.1) --- updated-dependencies: - dependency-name: github.com/cosmos/ibc-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update changelog entry --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke * build(deps): bump bufbuild/buf-setup-action from 1.32.0 to 1.32.1 (#1923) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.0 to 1.32.1. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.0...v1.32.1) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.32.1 to 1.32.2 (#1934) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.1 to 1.32.2. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.1...v1.32.2) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump github.com/spf13/viper from 1.18.2 to 1.19.0 (#1936) Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.18.2 to 1.19.0. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.18.2...v1.19.0) --- updated-dependencies: - dependency-name: github.com/spf13/viper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump docker/login-action from 3.1.0 to 3.2.0 (#1935) Bumps [docker/login-action](https://github.com/docker/login-action) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/e92390c5fb421da1463c202d546fed0ec5c39f20...0d4c9c5ea7693da7b068278f7b52bda2a190a446) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * took into account comments --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke * chore: fix spelling errors (#1939) chore: spelling errors fixes Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> * fix!: Replace GetAllConsumerChains with lightweight version (#1946) * add GetAllConsumerChainIDs * replace GetAllConsumerChains with GetAllRegisteredConsumerChainIDs * add changelog entry * move HasToValidate to grpc_query.go as it's used only there * apply review suggestions * feat!: added E2E test and docs for ConsumerModificationProposal (#1949) * added E2E test for the ConsumerModificationProposal * added docs * add to nightly tests * fix markdown links * Update docs/docs/features/proposals.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * build(deps): bump golang.org/x/mod from 0.17.0 to 0.18.0 (#1955) Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.17.0 to 0.18.0. - [Commits](https://github.com/golang/mod/compare/v0.17.0...v0.18.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: add last PSS changes to changelog (#1944) add last PSS changes to changelog * test: Add integration test reproducing the LastValidators exceeding MaxValidators bug (#1945) * Add test reproducing the LastValidators exceeding MaxValidators * formatting * Update tests/integration/unbonding.go Co-authored-by: insumity * Update tests/integration/unbonding.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * document --------- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * test: Add an e2e test that reproduces the chain halt (#1942) * Start writing e2e test with unjailing * Add e2e steps for too many validators bug * Fix test config and setup * Change test to use top N chain * Add comment for panic * Start cleaning up active/inactive vals e2e test * Revert change to StartChains * Revert changes to partial-set-security tests * Rename test case * Rename CLI flag for test case * Address comments * Add active set changes test to nightly runs * Fix merge in main.go * docs: update releases (bots and docs) (#1948) * update bots * update releases and features * build(deps): bump docker/build-push-action from 5.3.0 to 5.4.0 (#1954) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.3.0 to 5.4.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/2cdde995de11925a030ce8070c3d77a52ffcf1c0...ca052bb54ab0790a636c9b5f226502c73d547a25) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * refactor: use IterateLastValidatorPowers instead of GetLastValidators (#1953) * Add skeleton for GetLastValidators wrapper * Fix unit tests * Correct comment * Log error messages if validators are not found * Change AnyTimes to more specific Times(1) * Instantiate slices with their max length and truncate * Remove GetLastValidators from expectation * Remove GetLastValidators call in consumer * Move GetLastBondedValidators to validator_set_updates * Add comment on iteration loop * ci: fix merge issue on nightly e2e workflow (#1959) * fix merge issue on nightly e2e * addressed comments * feat!: store the minimal power to be in the top N on EndBlock, instead of computing on-the-fly (#1952) * Store the minimal power among the top N in EndBlock * Finish merge * Fix unit tests * Fix store method for the min power * Fix migration * Revert migration changes * Change comment to proper name for key * Add staking keeper to migration * Revert "Add staking keeper to migration" This reverts commit 575cfd3ccec7732e0d1488d80bda7f6172110cf7. * Rename migration * Update x/ccv/provider/keeper/grpc_query.go * Clean up minimal power in top N on StopConsumerChain * Set min power in consumer modification proposal * Address comments * Use GetLastBondedValidators instead of GetLastValidators * Add migration * Add comment for migration * Improve comment in migration * Handle case where topN is not found * Add test for updating minimum power in top N * Merged tests * Rename updatedMinPower->newUpdatedMinPower * Address comments * fix: print test name instead of config name (#1961) * Fix: print test name instead of config name * Add the config back in the report * chore: add ICS `release/v5.1.x` branch to Mergify (#1962) add release/v5.1.x brancg to mergify * build(deps): bump google.golang.org/protobuf from 1.34.1 to 1.34.2 (#1958) Bumps google.golang.org/protobuf from 1.34.1 to 1.34.2. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat!: only distribute rewards to validators that have been validating a consumer chain for some time (#1929) * init commit * added a warning * took into account comments * init commit * added a warning * took into account comments * added a comment * Update .changelog/unreleased/improvements/provider/1929-distribute-rewards-to-long-term-validating-validators.md Co-authored-by: Marius Poke * Update .changelog/unreleased/state-breaking/provider/1929-distribute-rewards-to-long-term-validating-validators.md Co-authored-by: Marius Poke * took into account comments --------- Co-authored-by: Marius Poke * chore: add bots for v4.3.0 (#1975) add bots for v4.3.0 * chore: bump ibc-go to v7.6.0 (#1974) * deps!: bump ibc-go to v7.6.0 * docs: update changelog files * docs: add docs section to RELEASE_PROCESS.md (#1976) * docs: add docs section to RELEASE_PROCESS.md * docs: update the release notes template * docs: bring v4.3.0 changelog to main (#1980) * bring v4.3.0 changelog to main * fix release notes template * build(deps): bump github.com/spf13/cobra from 1.8.0 to 1.8.1 (#1967) Bumps [github.com/spf13/cobra](https://github.com/spf13/cobra) from 1.8.0 to 1.8.1. - [Release notes](https://github.com/spf13/cobra/releases) - [Commits](https://github.com/spf13/cobra/compare/v1.8.0...v1.8.1) --- updated-dependencies: - dependency-name: github.com/spf13/cobra dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.32.2 to 1.33.0 (#1968) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.2 to 1.33.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.2...v1.33.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump docker/build-push-action from 5.4.0 to 6.0.0 (#1969) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5.4.0 to 6.0.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/ca052bb54ab0790a636c9b5f226502c73d547a25...c382f710d39a5bb4e430307530a720f50c2d3318) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: mention PSS in changeover procedure and replace Replicated Security with Interchain Security (#1981) * removed sentence that stated that "no opt-in mechanism available" * changed replicated security to interchain security * added PSS info box in the changeover procedure * chore: fix typos (#1973) * fix typos * fix typo * fix typos * fix typos * fix typo Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * docs: update ADRs rendering (#1937) * update ADRs in docs * chore: ignore templates directories in docs folder * fix broken links * fix broken links --------- Co-authored-by: MSalopek * refactor!: deprecate soft opt-out (#1964) * first commit * Set soft_opt_out_threshold to 0 instead of empty * added changelog * Update docs/docs/adrs/adr-009-soft-opt-out.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/v1/shared_consumer.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update .changelog/unreleased/improvements/consumer/1964-deprecate-soft-opt-out.md Co-authored-by: Marius Poke * fixed changelogs * added changelogs * nit fix * added changelog in ADR * took into account comments. * small fix * fixed small issue --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: Marius Poke * build(deps): bump docker/build-push-action from 6.0.0 to 6.1.0 (#1989) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.0.0 to 6.1.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/c382f710d39a5bb4e430307530a720f50c2d3318...31159d49c0d4756269a0940a750801a1ea5d7003) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.33.0 to 1.34.0 (#1988) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.33.0 to 1.34.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.33.0...v1.34.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump github.com/hashicorp/go-getter from 1.7.4 to 1.7.5 (#1994) Bumps [github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter) from 1.7.4 to 1.7.5. - [Release notes](https://github.com/hashicorp/go-getter/releases) - [Changelog](https://github.com/hashicorp/go-getter/blob/main/.goreleaser.yml) - [Commits](https://github.com/hashicorp/go-getter/compare/v1.7.4...v1.7.5) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-getter dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: fix comment (#1972) Signed-off-by: rustco * build(deps): bump docker/build-push-action from 6.1.0 to 6.2.0 (#2003) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.1.0 to 6.2.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/31159d49c0d4756269a0940a750801a1ea5d7003...15560696de535e4014efeff63c48f16952e52dd1) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump amannn/action-semantic-pull-request from 5.5.2 to 5.5.3 (#2002) build(deps): bump amannn/action-semantic-pull-request Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 5.5.2 to 5.5.3. - [Release notes](https://github.com/amannn/action-semantic-pull-request/releases) - [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md) - [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v5.5.2...v5.5.3) --- updated-dependencies: - dependency-name: amannn/action-semantic-pull-request dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix!: add check for the height of evidence (#2007) * init commit * added check, setting, and deleting of the equivocation min height * update changelog entry * remove unwwanted changelog entry --------- Co-authored-by: insumity * build: use dedicated CI runner for tests (#2014) * test: fix e2e compatiblity tests for provider v4.3.0-lsm (#2019) * fix e2e compatiblity tests for provider v4.3.0-lsm * Update tests/e2e/config.go * update nightly compatibility test runs * remove v3.2.0 consumer version from nightly e2e * chore: Change coderabbit config to require high confidence in reported issues (#2032) Change coderabbit config to require high confidence in reported issues * build(deps): bump docker/setup-buildx-action from 3.3.0 to 3.4.0 (#2024) Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.3.0 to 3.4.0. - [Release notes](https://github.com/docker/setup-buildx-action/releases) - [Commits](https://github.com/docker/setup-buildx-action/compare/d70bba72b1f3fd22344832f00baa16ece964efeb...4fd812986e6c8c2a69e18311145f9371337f27d4) --- updated-dependencies: - dependency-name: docker/setup-buildx-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump docker/build-push-action from 6.2.0 to 6.3.0 (#2026) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.2.0 to 6.3.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/15560696de535e4014efeff63c48f16952e52dd1...1a162644f9a7e87d8f4b053101d1d9a712edc18c) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump JamesIves/github-pages-deploy-action from 4.6.1 to 4.6.3 (#2025) build(deps): bump JamesIves/github-pages-deploy-action Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.1 to 4.6.3. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.1...v4.6.3) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: backport changelog from ICS v4.3.1 to main (#2031) * backport changelogs from v4.3.1 * revert file removal * build(deps): bump golang.org/x/mod from 0.18.0 to 0.19.0 (#2022) Bumps [golang.org/x/mod](https://github.com/golang/mod) from 0.18.0 to 0.19.0. - [Commits](https://github.com/golang/mod/compare/v0.18.0...v0.19.0) --- updated-dependencies: - dependency-name: golang.org/x/mod dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump google.golang.org/grpc from 1.64.0 to 1.64.1 (#2028) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.64.0 to 1.64.1. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.64.0...v1.64.1) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump google.golang.org/grpc from 1.64.0 to 1.65.0 (#2023) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.64.0 to 1.65.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.64.0...v1.65.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * doc: backport upgrading instructions (#2036) add uprading intructions * build(deps): bump docker/build-push-action from 6.3.0 to 6.4.0 (#2034) Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6.3.0 to 6.4.0. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/1a162644f9a7e87d8f4b053101d1d9a712edc18c...a254f8ca60a858f3136a2f1f23a60969f2c402dd) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore!: upgrade main to SDK v0.50.x (#2013) * test: update confusing e2e democracy setup (#1701) (#1704) * tests: update confusing e2e democracy setup * test: refactor after review * feat!: use cosmos-sdk v50 and IBC v8.1 (#1698) * proto: update proto files and deps * proto: run buf mode update * deps!: use cosmos-sdk/v0.50 and ibc-go/v8 * s&r: replace ibc-go imports * s&r: replace cosmos-sdk imports * cosmos-sdk: rm legacy upgrade prop handlers * cosmos-sdk: get cosmossdk.io modules * docs: add upgrade reference doc WIP * s&r: replace sdk math with math and legacydec * s&r: replace capability * deps: update modfile after merging main * interface changes: update expected_keepers.go * interface changes: update provider modules, legacy prop handlers * provider: update types directory * provider: update consumer equivocation * provider: update keeper.go * provider: update distribution.go * provider: update hooks (staking, governance) * provider: update params, add legacy params accessors * provider: update add/remove proposal handling; mv legacy to separate file * provider: add missing Tx types, update Msg server * provider: throttle, throttle_legacy, gov proposal handler (router) * provider: minor update to handler_test * provider: add cons version v4 migration - possibly broken * provider: client handling - legacy_proposals * provider: update key assignment * provider, testutil: partially fix tests * consumer: migrate consumer module * democracy: update module overrides * testutil: upgrade simibc files * testutil: upgrade ibc_testing setups * testutil: upgrade ibc_testing setups * testutil: update consumerkeeper mocks * tests: update provider consumer_equivocation tests * tests: fix most provider UTs * provider: fix key assignment and tests * provider: fix throttle and relay tests * provider: update app * provider: update app wiring and cmd * consumer: update consumer app * democracy: update democracy app * sovereign: update sovereign app * integration test: update integration tests * mbt: update mbt tests setup * sovereign: add readme file * tests: update test setup; refactor key_assignment addr parser * e2e: make initial e2e migration to v50 * provider: update wiring to enable e2e * provider: allow nil govkeeper in tests * provider: fix app wiring * tests: update unittest helpers * e2e tests: fix errors in provider relay * sovereign: fix root.go * consumer: add prefix registration to consumer main.go * democracy: update democracy app and root init * apps: refactor apps wiring * democ: refactor root.go wiring * democ: correctly override staking InitGenesis * democracy: update democracy distribution AllocateTokens * democracy: update staking and gov * democracy: update gov proposal whitelist (add legacy test props) * democracy: update staking interface overrides * e2e: refactor democracy tests and related actions * docs: v50 update reference * conclude merging release/v5 * e2e democ: fix democracy consumer IBC transfer tests; update whitelists * proto: update evidence messages submitters * tests: update deprecated tests * review: address comments * chore: use interchain-security/v5 module name * e2e: update e2e; use v5 * tests: fix broken tests (unit, integration) (#1805) * proto: update proto files (rm deprecated from non-deprecated) * test: update parts of integration tests * app: add missing addr codec registrations * tests: disable cometmock tests in GH * integration test: revert setup to main branch * integration test: fix add consumern; fix consumer key assign * integration: fix most tests; add todos * chore: add todos for fixing tests * fix packet timeout related test * fix TestRewardsDistribution test * fix val address conversion * fix democracy tests * fix TestSoftOptOut * fix historical info test * fixed TestRelayAndApplyDowntimePacket * tests: fix double voting tests * tests: update some comments * fix: switch broken UT due to addr parsing --------- Co-authored-by: stana-ethernal * post-merge: update provider module * post-merge: fix obvious test errs (imports etc.) * post-merge: fix UT, IT and IT democ setup * post-merge: fix key assignment simulation test * post-merge: fix provider UTs * post-merge: fix slashing integration test * post-merge: fix replace deprecated tm methods * feat: add consumer params upgrade message (#1814) * feat: add consumer params upgrade message * register tx services on consumer * register tx services on consumer * feat: add consumer params query * tests: add consumer param change tests * test: move provider hooks tests to integration tests (#1816) tests: add provider gov hooks integration tests * chore: add consumer and provider migrations for ICS v5 (#1817) * chore: add consumer migration 2 -> 3 * chore: add provider migration; update params * fix: resolve review nits * fix!: revert PutUnbondingOnHold to desired behaviour (#1819) * fix!: revert PutUnbondingOnHold to desired behaviour * fix: correctly change AfterUnbondingInitiated * docs: add v5 migration instructions (#1820) * docs: add v5 migration instructions * docs: fix typos * docs: add internal v50 update notes * test: adapt e2e compatibility tests v5.x (#1828) * refactor e2e * e2e tests infra for compatibility testing * fix compatibility tests * adapt nightly runs * cleanup * addressed comments * chore: add v5 changelogs (#1872) * chore: add v5 changelogs * rm old changelogs * chore: bump ecosystem libs (#1883) bump ecosystem libs * docs: document democracy modules in more detail (backport #1915) (#1919) docs: document democracy modules in more detail (#1915) * docs: document democracy modules in more detail * docs: add diff to config * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * cleanup after applying bot comments --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> (cherry picked from commit 417c8990da207f9f274c61c5ac930b27629f2686) Co-authored-by: MSalopek * chore!: upgrade PSS to SDK v0.50.x (ICS v4.3.x features only) (#1996) * build(deps): bump slackapi/slack-github-action from 1.25.0 to 1.26.0 (#1803) Bumps [slackapi/slack-github-action](https://github.com/slackapi/slack-github-action) from 1.25.0 to 1.26.0. - [Release notes](https://github.com/slackapi/slack-github-action/releases) - [Commits](https://github.com/slackapi/slack-github-action/compare/v1.25.0...v1.26.0) --- updated-dependencies: - dependency-name: slackapi/slack-github-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: add v4.1.x to docs and cleanup bots (#1812) * add v4.1.x to releases and features * cleanup mergify and dependabot * build(deps): bump github.com/cosmos/cosmos-proto from 1.0.0-beta.4 to 1.0.0-beta.5 (#1802) build(deps): bump github.com/cosmos/cosmos-proto Bumps [github.com/cosmos/cosmos-proto](https://github.com/cosmos/cosmos-proto) from 1.0.0-beta.4 to 1.0.0-beta.5. - [Release notes](https://github.com/cosmos/cosmos-proto/releases) - [Commits](https://github.com/cosmos/cosmos-proto/compare/v1.0.0-beta.4...v1.0.0-beta.5) --- updated-dependencies: - dependency-name: github.com/cosmos/cosmos-proto dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: add docs versioning and legacy page (pre v4.0.0) (#1833) * Updated build to allow for versioned docs * wip: add steps to build legacy docs * docs: add build legacy website * docs: add v4; rename to legacy * docs: add docs versioning for docusaurus v3.x * docs: add docs version sync and deploy scripts * update makefile * docs: rm deprecated build script * docs: fix banner in v4.1.0 * docs: update build script & config * update .gitignore * docs: update build script & config * docs: update Readme * build: update docs build script * build: update docs README.md * address review comments * address review comments -- update readme --------- Co-authored-by: Milan Mulji <98309852+mmulji-ic@users.noreply.github.com> * build(deps): bump JamesIves/github-pages-deploy-action from 4.5.0 to 4.6.0 (#1804) build(deps): bump JamesIves/github-pages-deploy-action Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.5.0 to 4.6.0. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.5.0...v4.6.0) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: add release/v5.x bots targets (#1829) * chore: fix spelling errors (#1835) chore: spelling errors fixes Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> * build(deps): bump github.com/hashicorp/go-getter from 1.7.1 to 1.7.4 (#1826) Bumps [github.com/hashicorp/go-getter](https://github.com/hashicorp/go-getter) from 1.7.1 to 1.7.4. - [Release notes](https://github.com/hashicorp/go-getter/releases) - [Changelog](https://github.com/hashicorp/go-getter/blob/main/.goreleaser.yml) - [Commits](https://github.com/hashicorp/go-getter/compare/v1.7.1...v1.7.4) --- updated-dependencies: - dependency-name: github.com/hashicorp/go-getter dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: update docs deployment (#1841) * build(deps): bump amannn/action-semantic-pull-request from 5.4.0 to 5.5.2 (#1831) build(deps): bump amannn/action-semantic-pull-request Bumps [amannn/action-semantic-pull-request](https://github.com/amannn/action-semantic-pull-request) from 5.4.0 to 5.5.2. - [Release notes](https://github.com/amannn/action-semantic-pull-request/releases) - [Changelog](https://github.com/amannn/action-semantic-pull-request/blob/main/CHANGELOG.md) - [Commits](https://github.com/amannn/action-semantic-pull-request/compare/v5.4.0...v5.5.2) --- updated-dependencies: - dependency-name: amannn/action-semantic-pull-request dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.30.1 to 1.31.0 (#1832) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.30.1 to 1.31.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.30.1...v1.31.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat!: Introduce Partial Set Security (#1809) * cleanup ./changelog entries * docs: changelog and release notes for v4.0.0 (#1564) * add v4.0.0 section to changelog * add release notes * fix!: Validation of SlashAcks fails due to marshaling to Bech32 (backport #1570) (#1577) fix!: Validation of SlashAcks fails due to marshaling to Bech32 (#1570) * add different Bech32Prefix for consumer and provider * separate app encoding and params * remove ConsumerValPubKey from ValidatorConfig * update addresses in tests * make SlashAcks consistent across chains * add comments for clarity * Regenerate traces * Fix argument order * set bech32prefix for provider to cosmos * add changelog entries * add consumer-double-downtime e2e test * update nightly-e2e workflow * fix typo * add consumer-double-downtime to testConfigs * remove changes on provider * skip invalid SlashAcks * seal the config * clear the outstanding downtime flag for new vals * add info on upgrading to v4.0.0 * fix upgrade handler * fix changeover e2e test * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * add AccountPrefix to ChainConfig * fix docstrings * update AccountAddressPrefix in app.go * fix consumer-misb e2e test --------- Co-authored-by: Philip Offtermatt Co-authored-by: Simon Noetzlin Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> (cherry picked from commit 86046926502f7b0ba795bebcdd1fdc97ac776573) Co-authored-by: Marius Poke * docs: update changelog for v4.0.0 (#1578) update changelog * docs: prepare for v4.0.0 (#1581) * unclog build * update release notes * update release date * feat!: enable Opt In and Top N chains through gov proposals (#1615) * init commit * added test * fixed tests * added changelog entry and comment * Update x/ccv/provider/keeper/proposal_test.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update .changelog/unreleased/features/1587-enable-opt-in-chains-through-gov-proposals.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * changed to tabular test --------- Co-authored-by: insumity Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * feat!: introduce MsgOptIn and MsgOptOut (#1620) * init commit * cleaning up * changed cons to val address * Revert "changed cons to val address" This reverts commit a32e8829fee3cbbe50e363a0aa91ad62117a8a1d. * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Simon Noetzlin * took into account comments * added key assignment * add contraint such that opt out only works if the chain is running --------- Co-authored-by: insumity Co-authored-by: Simon Noetzlin * test: MBT: Add partial set security to model (feature branch version) (#1627) * Port changes from branch to main * Add model analysis changes to Makefile * test: Ports key assignment to the driver on the PSS feature branch (#1628) * Port key assignment to MBT driver * Add comment and make var names clearer * feat!: automatically opt in validators that vote Yes on consumer addition proposals (#1629) * init commit * changed providerKeeper.GetProposedConsumerChain to return a bool * add logging mesages * one more log message * fix comment * added one more test case of NO vote and made tabular test * test: Add driver for PSS (#1636) * Port key assignment to MBT driver * Add PSS trace generation * Add PSS trace gen to longer trace gen * Start handling top N parameter for new consumers * Finish merge * Add handling for optin/optout steps * Remove expected error from OptIn, which should not error * set top N parameter during path setup * Add comment to setup.go * feat!: add PSS reward distribution spike (#1632) * PSS reward distribution * "add optin mapping to test" * Update app/provider/app.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * docs * add TODO * fix Dos vector in IBCMiddlewarea * add reformat * fix DOS issue and make integration tests pass * doc * add integration test * doc * Compute total vp per consumer * add comments * remove opt-in comments and add TODOs * format * Update x/ccv/provider/keeper/distribution.go Co-authored-by: insumity * add UT + doc * Update tests/integration/distribution.go Co-authored-by: insumity * Update tests/integration/distribution.go Co-authored-by: insumity * nits * Update x/ccv/provider/ibc_middleware.go Co-authored-by: Marius Poke * add panics in IBC Middleware ICS4wrapper funcs * address comments --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: Marius Poke * feat! use protos to serialize opted-in validators (#1659) move OptedInValidators to proto Co-authored-by: insumity * feat!: PSS enable per-consumer chain commission (#1657) * add draft commission * implement consumer commission draft * formatting * add msg handling * improve UT * nits * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity * Update proto/interchain_security/ccv/provider/v1/tx.proto Co-authored-by: Marius Poke * optimize keys * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity * address comments * address comments * remove unnecessary check * Revert "remove unnecessary check" This reverts commit 2951e9bace04f6436d6ad1e4a11efcedd0be8cb1. * fix minor bug in StopConsumerChain --------- Co-authored-by: insumity Co-authored-by: Marius Poke * test: update integration test suite for PSS (#1687) * draft multi consumer transfer setup and test * format multi consumer distribution test * update test for democ consumer chains * nits * nit * docs: changelog and release notes for v4.0.0 (#1564) * add v4.0.0 section to changelog * add release notes * fix!: Validation of SlashAcks fails due to marshaling to Bech32 (backport #1570) (#1577) fix!: Validation of SlashAcks fails due to marshaling to Bech32 (#1570) * add different Bech32Prefix for consumer and provider * separate app encoding and params * remove ConsumerValPubKey from ValidatorConfig * update addresses in tests * make SlashAcks consistent across chains * add comments for clarity * Regenerate traces * Fix argument order * set bech32prefix for provider to cosmos * add changelog entries * add consumer-double-downtime e2e test * update nightly-e2e workflow * fix typo * add consumer-double-downtime to testConfigs * remove changes on provider * skip invalid SlashAcks * seal the config * clear the outstanding downtime flag for new vals * add info on upgrading to v4.0.0 * fix upgrade handler * fix changeover e2e test * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update tests/e2e/config.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * add AccountPrefix to ChainConfig * fix docstrings * update AccountAddressPrefix in app.go * fix consumer-misb e2e test --------- Co-authored-by: Philip Offtermatt Co-authored-by: Simon Noetzlin Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> (cherry picked from commit 86046926502f7b0ba795bebcdd1fdc97ac776573) Co-authored-by: Marius Poke * docs: update changelog for v4.0.0 (#1578) update changelog * feat!: enable Opt In and Top N chains through gov proposals (#1615) * init commit * added test * fixed tests * added changelog entry and comment * Update x/ccv/provider/keeper/proposal_test.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update .changelog/unreleased/features/1587-enable-opt-in-chains-through-gov-proposals.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update proto/interchain_security/ccv/provider/v1/provider.proto Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * changed to tabular test --------- Co-authored-by: insumity Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * feat!: introduce MsgOptIn and MsgOptOut (#1620) * init commit * cleaning up * changed cons to val address * Revert "changed cons to val address" This reverts commit a32e8829fee3cbbe50e363a0aa91ad62117a8a1d. * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Simon Noetzlin * took into account comments * added key assignment * add contraint such that opt out only works if the chain is running --------- Co-authored-by: insumity Co-authored-by: Simon Noetzlin * test: MBT: Add partial set security to model (feature branch version) (#1627) * Port changes from branch to main * Add model analysis changes to Makefile * feat!: add PSS reward distribution spike (#1632) * PSS reward distribution * "add optin mapping to test" * Update app/provider/app.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * docs * add TODO * fix Dos vector in IBCMiddlewarea * add reformat * fix DOS issue and make integration tests pass * doc * add integration test * doc * Compute total vp per consumer * add comments * remove opt-in comments and add TODOs * format * Update x/ccv/provider/keeper/distribution.go Co-authored-by: insumity * add UT + doc * Update tests/integration/distribution.go Co-authored-by: insumity * Update tests/integration/distribution.go Co-authored-by: insumity * nits * Update x/ccv/provider/ibc_middleware.go Co-authored-by: Marius Poke * add panics in IBC Middleware ICS4wrapper funcs * address comments --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: Marius Poke * feat!: PSS enable per-consumer chain commission (#1657) * add draft commission * implement consumer commission draft * formatting * add msg handling * improve UT * nits * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity * Update proto/interchain_security/ccv/provider/v1/tx.proto Co-authored-by: Marius Poke * optimize keys * Update x/ccv/provider/keeper/keeper.go Co-authored-by: insumity * address comments * address comments * remove unnecessary check * Revert "remove unnecessary check" This reverts commit 2951e9bace04f6436d6ad1e4a11efcedd0be8cb1. * fix minor bug in StopConsumerChain --------- Co-authored-by: insumity Co-authored-by: Marius Poke * fix nits in MBT model after merging #1676 from main * Fix merging ccv model * Remove conflict markers * Remove more conflict markers * EndProviderEpoch takes ConsumerAdditionMsg * Fix using consumer addition msgs instead of chain names in boundeddrift.qnt * lint * chore: rebase PSS branch with main (#1689) * Update tests/mbt/driver/mbt_test.go * nits * revert unwanted line deletion from linter --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * feat!: complete the PSS reward distribution (#1709) * update compute consumer total power for reward distribution * update distribution logic to work with epochcs * Adapt reward distribution mem test to epochs * doc * nits * other nits * nits * Update tests/integration/distribution.go * feat!: Add slashing logic for PSS (#1710) * add check for consumer validators in downtime logic * fix UT * try to fix weird errors in gh worfklow * fix silly merge bug * nits * ci: do not scan the tests for security issues (#1717) init commit * feat!: compute partial sets (#1702) * init commit * nit change * cleaning up * clean up * fix distribution test * Update x/ccv/provider/keeper/hooks.go Co-authored-by: Simon Noetzlin * took into Simon's comments * took into rest of the comments * nit change * return an error if validator cannot opt out from a Top N chain * removed automatic opt-in for validators that vote Yes on proposals * tiny fix for E2E tests * nit change to remove unecessary else * fixed topN == 0 issue --------- Co-authored-by: Simon Noetzlin * feat!: update PSS cli (#1708) finalize PSS CLI cmds * Rename and add comission rate command to commands * feat!: only perform consumer additions for non-empty chains (#1730) * init commit * Update x/ccv/provider/keeper/proposal.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * feat: Add queries for PSS and consumer commission rate (#1733) * init commit * nit change * cleaning up * clean up * fix distribution test * Update x/ccv/provider/keeper/hooks.go Co-authored-by: Simon Noetzlin * took into Simon's comments * took into rest of the comments * nit change * return an error if validator cannot opt out from a Top N chain * removed automatic opt-in for validators that vote Yes on proposals * tiny fix for E2E tests * nit change to remove unecessary else * update consumer chains query to return topN * update query consu chains proto * add consumer chains per validator query * Add PSS command to provider's cli * nits * add consumer commission rate query * nits * big renaming * fix doc * nits * nits * docs * Update proto/interchain_security/ccv/provider/v1/query.proto Co-authored-by: insumity * nit * add OptedIn in QueryConsumerChainsValidatorHasToValidate * remove OptIn field in consumer chains query response * include validators that opt-in during the next epochs * update has-to-validate condition * fix tinny bug in the tests after merging feat/partial-security * update doc * update cli description * Update x/ccv/provider/keeper/grpc_query.go Co-authored-by: insumity * changes --------- Co-authored-by: insumity * fix!: Fix opt-in assignment (#1732) * Make the same validator assigning the same key a noop instead of an error * Adjust test * Update tests * Fix newline warning * Regenerate traces * Add key assignment change to changelog * Add info log for same key same validator assignments * Add changelog entry to api-breaking * Update x/ccv/provider/handler_test.go Co-authored-by: insumity * Add more comments to test and return right validator --------- Co-authored-by: insumity * fix silly bug in PSS opted-in val query * fix logging in ibc_module.go * test: add partial-set-security E2E tests (#1737) * init commit * fix traces * Add PSS to default tests * Update tests/e2e/steps_partial_set_security.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update tests/e2e/steps_partial_set_security.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> --------- Co-authored-by: Philip Offtermatt Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Nit changes based on Simons comments. To be pushed directly because E2E PR 1737 were the comments were written was accidentally merged. * fix!: return a SlashAck even if the validator is not a consumer validator (#1763) * init commit * fix test * test: Expand PSS e2e test to include slashing (#1752) * Expand test to include slashing * Add back existing steps * Add downtime to top N test * Fix nits * fix!: update unbonding pausing for PSS (#1728) * draft PSS unbonding fix * fix hook logic to retrieve validator address from ubd op * add unbonding pausing unit-test * remove panic in hook * Get back 3.2.0 and 3.3.0 changelog from main * Port epilogue from main * Fix proto conflict * generate proto files * Port RELEASE_NOTES * Fix merge for tests * Merge declaration and assignment * Clean up model files * Add pss tests to MBT readme * Restore MsgSubmitConsumerDoubleVoting handler * Remove local driver files * Remove Quint guidelines * Add optin/optout to MBT readme * Fix types in model * Fix model * Add migration * Ensure SlashAcks are sent even when the valset does not change * adding changelog entry * Empty DowntimeSlachAcks on EndBlock * Remove logs * Change condition for sending slash acks * Revert model changes * Start fixing PSS issues in model * Add expected errors to opt out action * Revert PSS quint model changes * Add parameter to ComputeNextEpochConsumerValSet * Set top N param in setup * Fix: do not try key assignment if there is no nonjailed validator * Do not assign keys for jailed validators * Only jail validators with non-zero-power * Add unit test * Add unit test for unset case * Panic on not being able to unmarshal * Move packet handling into ack.Success block * Format * Remove unnecessary comment * Add parens for clarity * Format and fix typo * Move OptIn/OptOut events to provider events * Remove unused function * Improve comments for keys * Improve comments for key getter functions * Remove order change for existing keys * Re-add nolint instruction * nit comment fix * Move ConsumerAllocationTests to correct folder * nit comment fix * fix!: handle consumer commission marshalling errors gracefully (#1836) * handle consumer commission setter/getter gracefully to avoid BeginBlock panic + add msg in codec * fix consumer commission query rest path * fix: update queries REST path for PSS (#1839) update queries rest path * Clarify that GetProposedConsumerChain is test-only * fix: Fix has-to-validate query (#1823) * Fix has-to-validate query * Flip comparison sign for checking minPower * Regenerate traces * Remove unnecessary print * Address comments * fix!: fix slashing in PSS (#1838) * drop slash packet for opted-out validators before updating slash meter * fix integration test * fix ut * update UT * Update x/ccv/provider/types/msg.go Co-authored-by: Marius Poke * Remove BlockValidatorUpdate from expected staking keeper * added an error response value to ComputeMinPowerToOptIn * delete additional state when we stop a chain * Assign keys and change voting power only for unjailed nodes with >0 power * fix: Validate consumer commission rate against minimal rate (#1834) * Validate consumer commission rate * Add test for commission rates * Remove static minimum commission rate validation from Set * feat!: introduce power shaping (#1830) * added power shaping * fixes * Add property based test for power cap * fixed tests & added algorithm's idea * nit changes * Update x/ccv/provider/keeper/proposal.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * remove empty-validator-set check * implicit memory aliasing issue fixed * added keeper tests * updated HasToValidate query * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update x/ccv/provider/keeper/keeper.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * took into account comments * do not use cached ctx * Fix E2E test. A jailed validator does not have to validate. * fix merge issue and format --------- Co-authored-by: Philip Offtermatt Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update v4 to v5 in package version * Bump consensus version * Add migration in correct folder * Update version from v4 to v5 in migration --------- Co-authored-by: mpoke Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: insumity Co-authored-by: Simon Noetzlin * chore: add v5.0.x-provider and v5.0.x-provider to mergify and dependabot (#1845) updated bots for v5.0.x-provider release * fix: revert version bump to v5 (#1847) * revert bump version to 5 * register migration * chore: rm v5-provider; add v4.2.0; rm old versions (#1849) * chore: rm v5-provider; add v4.2.0; rm old versions * chore: rm v5-provider; add v4.2.0; rm old versions * chore: Add coderabbit configuration file (#1852) * Add coderabbit configuration file * Add release and feat base branches to coderabbit * Change config to not auto-post review status on unreviewed PRs * refactor: remove redundant code from MakeConsumerGenesis (#1807) * remove redundant code from MakeConsumerGenesis * fix tests * refactor: nit naming changes (#1854) * small naming fix * reverts name to ComputeNextValidators because the semantics of ComputeNextEpochConsumerValSet were different in v4.1 * docs: ADR for Security Aggregation solution (#1866) * ADR CosmoLayer: Initial draft * update adr: slinky api * cleanup * Apply suggestions from code review Co-authored-by: Marius Poke * addressed comments * cleanup of pseudo code, power sources * renaming to security aggregation * mv adr * removed comments * minor change in code example * Apply suggestions from code review Grammar Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: Marius Poke Co-authored-by: Jehan Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: Make coderabbit ignore docs folder (#1864) Make bot ignore docs folder * chore: Fix codespell config (#1869) * Add optin and opt-in to codespell ignored words * Fix typo on multiple * Fix typo on assignment * feat: PSS - Add minimum power in top N & power shaping params to consumer chain list (#1863) * Add minimum power in top N to the list-consumer-chains query * Add test for MinPowerInTop_N * Add changelog entry * Update x/ccv/provider/keeper/keeper_test.go Co-authored-by: insumity * Add other validator shaping params to consumer chain list * Add power shaping params to query test * Adjust changelog for extra fields * Add changelog entry for API breaking --------- Co-authored-by: insumity * chore: fixed all-pairs-valconsensus-address CLI command usage (#1870) * chore: Try to make coderabbit ignore missing/extra newlines in md files (#1877) Update .coderabbit.yml * docs: Add PSS docs (#1859) * Add params to proposals * Start rewriting intro * Finish overview and terminology * Write up generics about PSS and power shaping * Add more info about top N and optin * Nit: apostrophe * Clarify governance proposal process for Opt In chains * Apply suggestions from code review Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Add missing newlines * Update docs/docs/features/partial-set-security.md Co-authored-by: insumity * Update docs/docs/features/power-shaping.md Co-authored-by: insumity * Use Interchain Security instead of ICSv2 * docs: Add PSS docs (Part 2) (#1861) * first version * first commit * one more warning on having all validators opt out * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update docs/docs/frequently-asked-questions.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update docs/docs/frequently-asked-questions.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * took into account some comments * small comment changes --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Add warning that vals have to manually opt out if going out of top N * Add short PSS FAQ * Add FAQ on how many chains vals can opt in on * Change first to third person * Fix typo * Add missing comma * added a warning * Add more guidelines to 'how to choose the power shaping parameters' * Mention list-consumer-chains query * Add tip about default commission rate --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: insumity * docs: Minor improvements (#1882) * Fix typo in tip * Minor improvements around commission rate * Mention soft opt-out * Link to normal consumer addition prop * Remove confusing line from changeover prop * Remove instructions about not assigning keys * Clarify starting condition for top N chains * Incorporate comments * Update docs/docs/validators/joining-testnet.md Co-authored-by: insumity * Reformulate opting out --------- Co-authored-by: insumity * build(deps): bump google.golang.org/protobuf from 1.33.0 to 1.34.1 (#1862) Bumps google.golang.org/protobuf from 1.33.0 to 1.34.1. --- updated-dependencies: - dependency-name: google.golang.org/protobuf dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * feat: add a query to retrieve validator set that was last sent to the consumer chain (#1867) * init commit * took into account comments * add docs * Update docs/docs/validators/partial-set-security-for-validators.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix!: drop chain proposals with empty validator set at spawn time (#1888) * init commit * Update x/ccv/provider/keeper/proposal.go Co-authored-by: MSalopek * added one more test case --------- Co-authored-by: MSalopek * test: Remove v5.0.0 (pre-release) be tested within e2e compatibility (#1894) * Remove v5.0.0 (pre-release) from last version to be tested within e2e comopatibility tests * Apply suggestions from code review Co-authored-by: Marius Poke --------- Co-authored-by: Marius Poke * test: add E2E test for power-shaping features (#1853) * added E2E tests * Update tests/e2e/steps_partial_set_security.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * added to nightly tests --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * build(deps): bump comet to v0.37.6 (#1876) * bump comet to v0.37.6 * add changelog entry * fix exp deps and pin it to go.mod * bump comet to 0.37.5 and sdk to 0.47.11 to match * bump comet back to 0.37.6 * add changelog entry for SDK --------- Co-authored-by: MSalopek * docs: add v4.2.0; bump v5.0.0 (#1900) * docs: add v4.2.0; bump v5.0.0 * docs: add v4.2.0; bump v5.0.0 * docs: fix broken docs deploy (v4.2.0) (#1903) * docs: add v4.2.0; bump v5.0.0 * docs: add v4.2.0; bump v5.0.0 * sync * sync stuff * fix * try docs tag * add version alias * chore: fix spelling errors (#1904) chore: spelling errors fixes Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> * build(deps): bump JamesIves/github-pages-deploy-action from 4.6.0 to 4.6.1 (#1905) build(deps): bump JamesIves/github-pages-deploy-action Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.6.0 to 4.6.1. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.6.0...v4.6.1) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.31.0 to 1.32.0 (#1906) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.31.0 to 1.32.0. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.31.0...v1.32.0) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump google.golang.org/grpc from 1.63.2 to 1.64.0 (#1908) Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.63.2 to 1.64.0. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.63.2...v1.64.0) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: document democracy modules in more detail (#1915) * docs: document democracy modules in more detail * docs: add diff to config * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update docs/docs/features/democracy-modules.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * cleanup after applying bot comments --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * docs: bring v4.2.0 changelog to main (#1909) bring v4.2.0 changelog to main * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.4.0 to 7.5.0 (#1907) * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.4.0 to 7.5.0 Bumps [github.com/cosmos/ibc-go/v7](https://github.com/cosmos/ibc-go) from 7.4.0 to 7.5.0. - [Release notes](https://github.com/cosmos/ibc-go/releases) - [Changelog](https://github.com/cosmos/ibc-go/blob/main/CHANGELOG.md) - [Commits](https://github.com/cosmos/ibc-go/compare/v7.4.0...v7.5.0) --- updated-dependencies: - dependency-name: github.com/cosmos/ibc-go/v7 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * add changelong entry --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke * chore: fix spelling errors (#1922) chore: spelling errors fixes Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> * fix(client): write unbonding period advisory to stderr instead of stdout (#1921) * fix(client): write unbonding period advisory to stderr instead of stdout * Add changelog for unbonding period advisory --------- Co-authored-by: Philip Offtermatt * docs: update ADR metadata (#1910) * update ADR metadata * fix broken link * fix: migration and error code duplication + e2e tests (#1930) * e2e tests pss * go version 1.22 * fix error code issue * fix e2e tests * fix RegisterMigration * test: e2e fix PSS tests (#1931) * e2e fix PSS tests * Fix message signing for MsgOptIn and MsgOptOut * chore!: fix PSS mem-tests (SDK v50 upgrade) (#1933) * fix mem-tests * nits * nits * other nits * chore!: Add last PSS changes (#1941) * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 (#1924) * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 Bumps [github.com/cosmos/ibc-go/v7](https://github.com/cosmos/ibc-go) from 7.5.0 to 7.5.1. - [Release notes](https://github.com/cosmos/ibc-go/releases) - [Changelog](https://github.com/cosmos/ibc-go/blob/v7.5.1/CHANGELOG.md) - [Commits](https://github.com/cosmos/ibc-go/compare/v7.5.0...v7.5.1) --- updated-dependencies: - dependency-name: github.com/cosmos/ibc-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update changelog entry --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke * build(deps): bump bufbuild/buf-setup-action from 1.32.0 to 1.32.1 (#1923) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.0 to 1.32.1. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.0...v1.32.1) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * fix mem-tests * nits * nits * other nits * build(deps): bump bufbuild/buf-setup-action from 1.32.1 to 1.32.2 (#1934) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.1 to 1.32.2. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.1...v1.32.2) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump github.com/spf13/viper from 1.18.2 to 1.19.0 (#1936) Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.18.2 to 1.19.0. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.18.2...v1.19.0) --- updated-dependencies: - dependency-name: github.com/spf13/viper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump docker/login-action from 3.1.0 to 3.2.0 (#1935) Bumps [docker/login-action](https://github.com/docker/login-action) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/e92390c5fb421da1463c202d546fed0ec5c39f20...0d4c9c5ea7693da7b068278f7b52bda2a190a446) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * docs: Add draft ADR for validators outside of the active set (#1879) * Add draft ADR for active set validators * Remove unused changelog entry * Add initial date and remove square brackets * Suggest alternative approach: unbonded validators can validate * Expand unbonded validators section a bit * Incorporate comments * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke * Clarify consensus validators vs staking validators * Update ADR to roll context doc into it * Fix image links * Add negative consequence * Add sentence about module wiring * Address review comments * Add source code for diagrams and make text more technical * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Marius Poke * Update docs/docs/adrs/adr-017-allowing-inactive-validators.md Co-authored-by: Jehan * Write changes to state * Update intro, links, mitigations --------- Co-authored-by: Marius Poke Co-authored-by: Jehan * chore: fix struct name in comment (#1938) Signed-off-by: xiaoxiangirl * feat!: allow consumer chains to change their PSS parameters (#1932) * added modification proposal * small fixes * Update x/ccv/provider/client/proposal_handler.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * removed trailing comma * Update x/ccv/provider/types/proposal.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * Update x/ccv/provider/types/proposal.go Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * took into account comment --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * fix!: apply audit suggestions (#1925) * init commit * added CHANGELOG entries * added nit simplification change * addressed comment by Hypha * took into account err returned by ComputeMinPowerToOptIn * fixed test failing * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 (#1924) * build(deps): bump github.com/cosmos/ibc-go/v7 from 7.5.0 to 7.5.1 Bumps [github.com/cosmos/ibc-go/v7](https://github.com/cosmos/ibc-go) from 7.5.0 to 7.5.1. - [Release notes](https://github.com/cosmos/ibc-go/releases) - [Changelog](https://github.com/cosmos/ibc-go/blob/v7.5.1/CHANGELOG.md) - [Commits](https://github.com/cosmos/ibc-go/compare/v7.5.0...v7.5.1) --- updated-dependencies: - dependency-name: github.com/cosmos/ibc-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update changelog entry --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke * build(deps): bump bufbuild/buf-setup-action from 1.32.0 to 1.32.1 (#1923) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.0 to 1.32.1. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.0...v1.32.1) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump bufbuild/buf-setup-action from 1.32.1 to 1.32.2 (#1934) Bumps [bufbuild/buf-setup-action](https://github.com/bufbuild/buf-setup-action) from 1.32.1 to 1.32.2. - [Release notes](https://github.com/bufbuild/buf-setup-action/releases) - [Commits](https://github.com/bufbuild/buf-setup-action/compare/v1.32.1...v1.32.2) --- updated-dependencies: - dependency-name: bufbuild/buf-setup-action dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump github.com/spf13/viper from 1.18.2 to 1.19.0 (#1936) Bumps [github.com/spf13/viper](https://github.com/spf13/viper) from 1.18.2 to 1.19.0. - [Release notes](https://github.com/spf13/viper/releases) - [Commits](https://github.com/spf13/viper/compare/v1.18.2...v1.19.0) --- updated-dependencies: - dependency-name: github.com/spf13/viper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump docker/login-action from 3.1.0 to 3.2.0 (#1935) Bumps [docker/login-action](https://github.com/docker/login-action) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/docker/login-action/releases) - [Commits](https://github.com/docker/login-action/compare/e92390c5fb421da1463c202d546fed0ec5c39f20...0d4c9c5ea7693da7b068278f7b52bda2a190a446) --- updated-dependencies: - dependency-name: docker/login-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * took into account comments --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke * nits * update gosec alerts --------- Signed-off-by: dependabot[bot] Signed-off-by: xiaoxiangirl Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mpoke Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: Jehan Co-authored-by: xiaoxiangirl Co-authored-by: insumity Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore!: backport #1946 (GetAllConsumerChains fix) to `feat/pss-upgrade-v50` branch (#1950) fix!: Replace GetAllConsumerChains with lightweight version (#1946) * add GetAllConsumerChainIDs * replace GetAllConsumerChains with GetAllRegisteredConsumerChainIDs * add changelog entry * move HasToValidate to grpc_query.go as it's used only there * apply review suggestions Co-authored-by: Marius Poke * fix: backport #1949 + fix handler entry (#1960) * feat!: added E2E test and docs for ConsumerModificationProposal (#1949) * added E2E test for the ConsumerModificationProposal * added docs * add to nightly tests * fix markdown links * Update docs/docs/features/proposals.md Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * fix e2e test 'ConsumerModificationProposal' * app: added missing ConsumerModificationProposalHandle * Apply suggestions from code review Co-authored-by: Simon Noetzlin --------- Co-authored-by: insumity Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: Simon Noetzlin * chore: backport regression mem tests for Hub halt (#1945) (#1965) * test: Add integration test reproducing the LastValidators exceeding MaxValidators bug (#1945) * Add test reproducing the LastValidators exceeding MaxValidators * formatting * Update tests/integration/unbonding.go Co-authored-by: insumity * Update tests/integration/unbonding.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * document --------- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * update mocks --------- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * test: backport #1942 (#1963) * test: Add an e2e test that reproduces the chain halt (#1942) * Start writing e2e test with unjailing * Add e2e steps for too many validators bug * Fix test config and setup * Change test to use top N chain * Add comment for panic * Start cleaning up active/inactive vals e2e test * Revert change to StartChains * Revert changes to partial-set-security tests * Rename test case * Rename CLI flag for test case * Address comments * Add active set changes test to nightly runs * Fix merge in main.go * adapt e2e to v0.50 --------- Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * chore: use `IterateLastValidatorPowers` instead of `GetLastValidators` (backport #1953) (#1966) * test: Add integration test reproducing the LastValidators exceeding MaxValidators bug (#1945) * Add test reproducing the LastValidators exceeding MaxValidators * formatting * Update tests/integration/unbonding.go Co-authored-by: insumity * Update tests/integration/unbonding.go Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * document --------- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * refactor: use IterateLastValidatorPowers instead of GetLastValidators (#1953) * Add skeleton for GetLastValidators wrapper * Fix unit tests * Correct comment * Log error messages if validators are not found * Change AnyTimes to more specific Times(1) * Instantiate slices with their max length and truncate * Remove GetLastValidators from expectation * Remove GetLastValidators call in consumer * Move GetLastBondedValidators to validator_set_updates * Add comment on iteration loop --------- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * feat!: store the minimal power to be in the top N on EndBlock (#1977) feat!: store the minimal power to be in the top N on EndBlock, instead of computing on-the-fly (#1952) * Store the minimal power among the top N in EndBlock * Finish merge * Fix unit tests * Fix store method for the min power * Fix migration * Revert migration changes * Change comment to proper name for key * Add staking keeper to migration * Revert "Add staking keeper to migration" This reverts commit 575cfd3ccec7732e0d1488d80bda7f6172110cf7. * Rename migration * Update x/ccv/provider/keeper/grpc_query.go * Clean up minimal power in top N on StopConsumerChain * Set min power in consumer modification proposal * Address comments * Use GetLastBondedValidators instead of GetLastValidators * Add migration * Add comment for migration * Improve comment in migration * Handle case where topN is not found * Add test for updating minimum power in top N * Merged tests * Rename updatedMinPower->newUpdatedMinPower * Address comments Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> * chore: align to LSM hook signature to SDK v0.50.0 (#1984) fix LSM hook * fix!: update PSS reward distribution to work with SDK v0… * rm unwanted files * removing changelogs --------- Signed-off-by: dependabot[bot] Signed-off-by: xiaoxiangirl Signed-off-by: rustco Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Marius Poke Co-authored-by: MSalopek Co-authored-by: Milan Mulji <98309852+mmulji-ic@users.noreply.github.com> Co-authored-by: Cosmos SDK <113218068+github-prbot@users.noreply.github.com> Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com> Co-authored-by: Philip Offtermatt <57488781+p-offtermatt@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: insumity Co-authored-by: insumity Co-authored-by: bernd-m <43466467+bermuell@users.noreply.github.com> Co-authored-by: Jehan Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: Sergey <83376337+freak12techno@users.noreply.github.com> Co-authored-by: Chris Ricketts <6156768+chris-ricketts@users.noreply.github.com> Co-authored-by: Philip Offtermatt Co-authored-by: xiaoxiangirl Co-authored-by: omahs <73983677+omahs@users.noreply.github.com> Co-authored-by: rustco Co-authored-by: stana-ethernal Co-authored-by: Jacob Gadikian --- .../unreleased/bug-fixes/1921-write-stderr.md | 2 - .../provider/1925-apply-audit-suggestions.md | 3 - .../provider/1946-get-consumer-chains.md | 3 - .../unreleased/dependencies/1924-bump-ibc.md | 3 - .../dependencies/2013-bump-comet.md | 3 + .../unreleased/dependencies/2013-bump-ibc.md | 3 + .../unreleased/dependencies/2013-bump-sdk.md | 3 + ...ards-to-long-term-validating-validators.md | 3 - .../state-breaking/2013-bump-comet.md | 3 + .../state-breaking/2013-bump-ibc.md | 3 + .../state-breaking/2013-bump-sdk.md | 3 + .../provider/1925-apply-audit-suggestions.md | 3 - ...ards-to-long-term-validating-validators.md | 3 - ...1732-assigning-already-assigned-key-fix.md | 2 - ...um-power-in-topN-to-consumer-chain-list.md | 2 - .../v4.2.0/dependencies/1876-bump-comet.md | 3 - .../v4.2.0/dependencies/1876-bump-sdk.md | 3 - ...ble-opt-in-chains-through-gov-proposals.md | 2 - .../v4.2.0/features/provider/1809-pss.md | 3 - .../provider/1830-introduce-power-shaping.md | 2 - ...um-power-in-topN-to-consumer-chain-list.md | 2 - ...query-for-latest-consumer-validator-set.md | 2 - ...ble-opt-in-chains-through-gov-proposals.md | 2 - ...1732-assigning-already-assigned-key-fix.md | 2 - .../state-breaking/provider/1809-pss.md | 2 - .../provider/1830-introduce-power-shaping.md | 2 - .changelog/v4.2.0/summary.md | 1 - .../v5.0.0/dependencies/1698-bump-comet.md | 3 - .../v5.0.0/dependencies/1698-bump-ibc.md | 3 - .../v5.0.0/dependencies/1698-bump-sdk.md | 3 - .../1814-add-update-consumer-params-msg.md | 2 - .../1698-add-update-provider-params-msg.md | 2 - .../v5.0.0/state-breaking/1698-bump-comet.md | 3 - .../v5.0.0/state-breaking/1698-bump-ibc.md | 3 - .../v5.0.0/state-breaking/1698-bump-sdk.md | 3 - .../1819-revert-put-unbonding-on-hold.md | 2 - .changelog/v5.0.0/summary.md | 2 - .coderabbit.yml | 12 +- .github/dependabot.yml | 20 +- .github/workflows/deploy-docs.yml | 2 +- .github/workflows/docker-publish.yml | 4 +- .github/workflows/golangci-lint.yml | 3 +- .github/workflows/lint-pr.yml | 2 +- .github/workflows/nightly-e2e.yml | 2 +- .github/workflows/proto-registry.yml | 2 +- .github/workflows/proto.yml | 2 +- .github/workflows/test.yml | 8 +- .mergify.yml | 33 ++- CHANGELOG.md | 22 ++ CONTRIBUTING.md | 4 +- FEATURES.md | 33 +-- RELEASES.md | 37 +-- RELEASE_NOTES.md | 4 +- RELEASE_PROCESS.md | 78 +++++- UPGRADING.md | 31 +++ app/consumer-democracy/app.go | 4 +- .../proposals_whitelisting.go | 6 +- app/consumer/app.go | 3 +- app/consumer/genesis.go | 3 + app/consumer/genesis_test.go | 9 +- app/provider/app.go | 6 +- app/sovereign/app.go | 2 +- docs/build_deploy.sh | 11 +- docs/docs/adrs/adr-004-denom-dos-fixes.md | 2 +- ...cryptographic-equivocation-verification.md | 2 +- .../adr-007-pause-unbonding-on-eqv-prop.md | 2 +- docs/docs/adrs/adr-008-throttle-retries.md | 2 +- docs/docs/adrs/adr-009-soft-opt-out.md | 5 +- .../adrs/adr-010-standalone-changeover.md | 4 +- .../adr-017-allowing-inactive-validators.md | 2 +- docs/docs/adrs/intro.md | 10 +- .../docs/adrs/{ => templates}/adr-template.md | 0 .../consumer-development/app-integration.md | 5 +- .../changeover-procedure.md | 35 ++- docs/docs/features/democracy-modules.md | 4 + docs/docs/features/partial-set-security.md | 2 +- docs/docs/features/power-shaping.md | 4 + docs/docs/features/reward-distribution.md | 2 +- docs/docs/frequently-asked-questions.md | 2 +- docs/docs/index.mdx | 2 +- docs/docs/introduction/terminology.md | 6 +- docs/docs/validators/changeover-procedure.md | 6 +- docs/docs/validators/joining-testnet.md | 2 +- docs/docs/validators/overview.md | 15 +- docs/docs/validators/withdraw_rewards.md | 2 +- docs/docusaurus.config.js | 1 + go.mod | 55 ++-- go.sum | 110 ++++---- .../ccv/consumer/v1/consumer.proto | 5 +- .../ccv/provider/v1/query.proto | 5 +- .../ccv/provider/v1/tx.proto | 3 +- .../ccv/v1/shared_consumer.proto | 7 +- tests/e2e/actions.go | 12 +- tests/e2e/config.go | 9 +- tests/e2e/main.go | 11 +- tests/e2e/state.go | 2 +- tests/e2e/step_delegation.go | 115 +------- tests/e2e/steps.go | 16 +- tests/e2e/steps_compatibility.go | 6 - tests/e2e/steps_consumer_misbehaviour.go | 26 +- tests/e2e/steps_double_sign.go | 12 +- tests/e2e/steps_downtime.go | 161 ++++------- tests/e2e/steps_light_client_attack.go | 24 +- tests/e2e/steps_multi_consumer_delegation.go | 2 +- tests/e2e/steps_sovereign_changeover.go | 1 - tests/e2e/steps_start_chains.go | 6 - tests/e2e/test_runner.go | 20 +- ...StateMarshalling-20240314151749-32478.fail | 10 - ...eadAndWriteTrace-20240314151749-32478.fail | 18 -- .../e2e/tracehandler_testdata/changeover.json | 2 +- .../consumer-double-sign.json | 2 +- .../consumer-misbehaviour.json | 20 +- .../e2e/tracehandler_testdata/democracy.json | 2 +- .../democracyRewardsSteps.json | 2 +- .../e2e/tracehandler_testdata/happyPath.json | 76 +++--- .../multipleConsumers.json | 4 +- .../e2e/tracehandler_testdata/shorthappy.json | 78 +++--- .../tracehandler_testdata/slashThrottle.json | 2 +- tests/mbt/driver/setup.go | 2 +- tests/mbt/model/ccv.qnt | 2 +- testutil/integration/debug_test.go | 8 - testutil/keeper/expectations.go | 1 - x/ccv/consumer/keeper/msg_server.go | 4 + x/ccv/consumer/keeper/validators.go | 2 +- x/ccv/consumer/types/consumer.pb.go | 61 +++-- x/ccv/consumer/types/keys_test.go | 3 +- x/ccv/consumer/types/params_test.go | 8 - x/ccv/consumer/types/validator.go | 7 +- x/ccv/democracy/distribution/module.go | 2 +- x/ccv/provider/ibc_middleware.go | 2 +- .../provider/keeper/consumer_equivocation.go | 8 +- x/ccv/provider/keeper/genesis.go | 2 +- x/ccv/provider/keeper/key_assignment.go | 2 +- x/ccv/provider/keeper/msg_server.go | 8 +- x/ccv/provider/keeper/proposal.go | 6 +- x/ccv/provider/keeper/relay.go | 6 +- .../{migrations_test.go => migration_test.go} | 0 x/ccv/provider/types/msg.go | 20 +- x/ccv/provider/types/query.pb.go | 257 +++++++++--------- x/ccv/provider/types/tx.pb.go | 210 +++++++------- x/ccv/types/params.go | 11 +- x/ccv/types/shared_consumer.pb.go | 111 ++++---- 142 files changed, 1027 insertions(+), 1094 deletions(-) delete mode 100644 .changelog/unreleased/bug-fixes/1921-write-stderr.md delete mode 100644 .changelog/unreleased/bug-fixes/provider/1925-apply-audit-suggestions.md delete mode 100644 .changelog/unreleased/bug-fixes/provider/1946-get-consumer-chains.md delete mode 100644 .changelog/unreleased/dependencies/1924-bump-ibc.md create mode 100644 .changelog/unreleased/dependencies/2013-bump-comet.md create mode 100644 .changelog/unreleased/dependencies/2013-bump-ibc.md create mode 100644 .changelog/unreleased/dependencies/2013-bump-sdk.md delete mode 100644 .changelog/unreleased/improvements/provider/1929-distribute-rewards-to-long-term-validating-validators.md create mode 100644 .changelog/unreleased/state-breaking/2013-bump-comet.md create mode 100644 .changelog/unreleased/state-breaking/2013-bump-ibc.md create mode 100644 .changelog/unreleased/state-breaking/2013-bump-sdk.md delete mode 100644 .changelog/unreleased/state-breaking/provider/1925-apply-audit-suggestions.md delete mode 100644 .changelog/unreleased/state-breaking/provider/1929-distribute-rewards-to-long-term-validating-validators.md delete mode 100644 .changelog/v4.2.0/api-breaking/provider/1732-assigning-already-assigned-key-fix.md delete mode 100644 .changelog/v4.2.0/api-breaking/provider/1863-add-minimum-power-in-topN-to-consumer-chain-list.md delete mode 100644 .changelog/v4.2.0/dependencies/1876-bump-comet.md delete mode 100644 .changelog/v4.2.0/dependencies/1876-bump-sdk.md delete mode 100644 .changelog/v4.2.0/features/provider/1587-enable-opt-in-chains-through-gov-proposals.md delete mode 100644 .changelog/v4.2.0/features/provider/1809-pss.md delete mode 100644 .changelog/v4.2.0/features/provider/1830-introduce-power-shaping.md delete mode 100644 .changelog/v4.2.0/features/provider/1863-add-minimum-power-in-topN-to-consumer-chain-list.md delete mode 100644 .changelog/v4.2.0/features/provider/1867-add-query-for-latest-consumer-validator-set.md delete mode 100644 .changelog/v4.2.0/state-breaking/provider/1587-enable-opt-in-chains-through-gov-proposals.md delete mode 100644 .changelog/v4.2.0/state-breaking/provider/1732-assigning-already-assigned-key-fix.md delete mode 100644 .changelog/v4.2.0/state-breaking/provider/1809-pss.md delete mode 100644 .changelog/v4.2.0/state-breaking/provider/1830-introduce-power-shaping.md delete mode 100644 .changelog/v4.2.0/summary.md delete mode 100644 .changelog/v5.0.0/dependencies/1698-bump-comet.md delete mode 100644 .changelog/v5.0.0/dependencies/1698-bump-ibc.md delete mode 100644 .changelog/v5.0.0/dependencies/1698-bump-sdk.md delete mode 100644 .changelog/v5.0.0/features/consumer/1814-add-update-consumer-params-msg.md delete mode 100644 .changelog/v5.0.0/features/provider/1698-add-update-provider-params-msg.md delete mode 100644 .changelog/v5.0.0/state-breaking/1698-bump-comet.md delete mode 100644 .changelog/v5.0.0/state-breaking/1698-bump-ibc.md delete mode 100644 .changelog/v5.0.0/state-breaking/1698-bump-sdk.md delete mode 100644 .changelog/v5.0.0/state-breaking/1819-revert-put-unbonding-on-hold.md delete mode 100644 .changelog/v5.0.0/summary.md rename docs/docs/adrs/{ => templates}/adr-template.md (100%) delete mode 100644 tests/e2e/testdata/rapid/TestChainStateMarshalling/TestChainStateMarshalling-20240314151749-32478.fail delete mode 100644 tests/e2e/testdata/rapid/TestReadAndWriteTrace/TestReadAndWriteTrace-20240314151749-32478.fail rename x/ccv/provider/migrations/v5/{migrations_test.go => migration_test.go} (100%) diff --git a/.changelog/unreleased/bug-fixes/1921-write-stderr.md b/.changelog/unreleased/bug-fixes/1921-write-stderr.md deleted file mode 100644 index 665ef78024..0000000000 --- a/.changelog/unreleased/bug-fixes/1921-write-stderr.md +++ /dev/null @@ -1,2 +0,0 @@ -- Write unbonding period advisory to stderr instead of stdout - ([\#1921](https://github.com/cosmos/interchain-security/pull/1921)) \ No newline at end of file diff --git a/.changelog/unreleased/bug-fixes/provider/1925-apply-audit-suggestions.md b/.changelog/unreleased/bug-fixes/provider/1925-apply-audit-suggestions.md deleted file mode 100644 index 3d12033a4e..0000000000 --- a/.changelog/unreleased/bug-fixes/provider/1925-apply-audit-suggestions.md +++ /dev/null @@ -1,3 +0,0 @@ -- Apply audit suggestions that include a bug fix in the way we compute the - maximum capped power. ([\#1925](https://github.com/cosmos/interchain- - security/pull/1925)) diff --git a/.changelog/unreleased/bug-fixes/provider/1946-get-consumer-chains.md b/.changelog/unreleased/bug-fixes/provider/1946-get-consumer-chains.md deleted file mode 100644 index eae373c390..0000000000 --- a/.changelog/unreleased/bug-fixes/provider/1946-get-consumer-chains.md +++ /dev/null @@ -1,3 +0,0 @@ -- Replace `GetAllConsumerChains` with lightweight version - (`GetAllRegisteredConsumerChainIDs`) that doesn't call into the staking module - ([\#1946](https://github.com/cosmos/interchain-security/pull/1946)) \ No newline at end of file diff --git a/.changelog/unreleased/dependencies/1924-bump-ibc.md b/.changelog/unreleased/dependencies/1924-bump-ibc.md deleted file mode 100644 index 8980dd3b9a..0000000000 --- a/.changelog/unreleased/dependencies/1924-bump-ibc.md +++ /dev/null @@ -1,3 +0,0 @@ -- Bump [ibc-go](https://github.com/cosmos/ibc-go) to - [v7.5.1](https://github.com/cosmos/ibc-go/releases/tag/v7.5.1). - ([\#1924](https://github.com/cosmos/interchain-security/pull/1924)) \ No newline at end of file diff --git a/.changelog/unreleased/dependencies/2013-bump-comet.md b/.changelog/unreleased/dependencies/2013-bump-comet.md new file mode 100644 index 0000000000..a68b1e78fe --- /dev/null +++ b/.changelog/unreleased/dependencies/2013-bump-comet.md @@ -0,0 +1,3 @@ +- Bump [CometBFT](https://github.com/cometbft/cometbft) to + [v0.38.9](https://github.com/cometbft/cometbft/releases/tag/v0.38.9). + ([\#2013](https://github.com/cosmos/interchain-security/pull/2013)) \ No newline at end of file diff --git a/.changelog/unreleased/dependencies/2013-bump-ibc.md b/.changelog/unreleased/dependencies/2013-bump-ibc.md new file mode 100644 index 0000000000..eeaec9b362 --- /dev/null +++ b/.changelog/unreleased/dependencies/2013-bump-ibc.md @@ -0,0 +1,3 @@ +- Bump [ibc-go](https://github.com/cosmos/ibc-go) to + [v8.2.1](https://github.com/cosmos/ibc-go/releases/tag/v8.2.1). + ([\#2013](https://github.com/cosmos/interchain-security/pull/2013)) \ No newline at end of file diff --git a/.changelog/unreleased/dependencies/2013-bump-sdk.md b/.changelog/unreleased/dependencies/2013-bump-sdk.md new file mode 100644 index 0000000000..34354e35e7 --- /dev/null +++ b/.changelog/unreleased/dependencies/2013-bump-sdk.md @@ -0,0 +1,3 @@ +- Bump [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) to +[v0.50.7](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.7) +([\#2013](https://github.com/cosmos/interchain-security/pull/2013)) \ No newline at end of file diff --git a/.changelog/unreleased/improvements/provider/1929-distribute-rewards-to-long-term-validating-validators.md b/.changelog/unreleased/improvements/provider/1929-distribute-rewards-to-long-term-validating-validators.md deleted file mode 100644 index b4ff9d6341..0000000000 --- a/.changelog/unreleased/improvements/provider/1929-distribute-rewards-to-long-term-validating-validators.md +++ /dev/null @@ -1,3 +0,0 @@ -- Only start distributing rewards to validators after they have been validating - for a fixed number of blocks. Introduces the `NumberOfEpochsToStartReceivingRewards` param. - ([\#1929](https://github.com/cosmos/interchain-security/pull/1929)) diff --git a/.changelog/unreleased/state-breaking/2013-bump-comet.md b/.changelog/unreleased/state-breaking/2013-bump-comet.md new file mode 100644 index 0000000000..a68b1e78fe --- /dev/null +++ b/.changelog/unreleased/state-breaking/2013-bump-comet.md @@ -0,0 +1,3 @@ +- Bump [CometBFT](https://github.com/cometbft/cometbft) to + [v0.38.9](https://github.com/cometbft/cometbft/releases/tag/v0.38.9). + ([\#2013](https://github.com/cosmos/interchain-security/pull/2013)) \ No newline at end of file diff --git a/.changelog/unreleased/state-breaking/2013-bump-ibc.md b/.changelog/unreleased/state-breaking/2013-bump-ibc.md new file mode 100644 index 0000000000..eeaec9b362 --- /dev/null +++ b/.changelog/unreleased/state-breaking/2013-bump-ibc.md @@ -0,0 +1,3 @@ +- Bump [ibc-go](https://github.com/cosmos/ibc-go) to + [v8.2.1](https://github.com/cosmos/ibc-go/releases/tag/v8.2.1). + ([\#2013](https://github.com/cosmos/interchain-security/pull/2013)) \ No newline at end of file diff --git a/.changelog/unreleased/state-breaking/2013-bump-sdk.md b/.changelog/unreleased/state-breaking/2013-bump-sdk.md new file mode 100644 index 0000000000..34354e35e7 --- /dev/null +++ b/.changelog/unreleased/state-breaking/2013-bump-sdk.md @@ -0,0 +1,3 @@ +- Bump [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) to +[v0.50.7](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.7) +([\#2013](https://github.com/cosmos/interchain-security/pull/2013)) \ No newline at end of file diff --git a/.changelog/unreleased/state-breaking/provider/1925-apply-audit-suggestions.md b/.changelog/unreleased/state-breaking/provider/1925-apply-audit-suggestions.md deleted file mode 100644 index 3d12033a4e..0000000000 --- a/.changelog/unreleased/state-breaking/provider/1925-apply-audit-suggestions.md +++ /dev/null @@ -1,3 +0,0 @@ -- Apply audit suggestions that include a bug fix in the way we compute the - maximum capped power. ([\#1925](https://github.com/cosmos/interchain- - security/pull/1925)) diff --git a/.changelog/unreleased/state-breaking/provider/1929-distribute-rewards-to-long-term-validating-validators.md b/.changelog/unreleased/state-breaking/provider/1929-distribute-rewards-to-long-term-validating-validators.md deleted file mode 100644 index b4ff9d6341..0000000000 --- a/.changelog/unreleased/state-breaking/provider/1929-distribute-rewards-to-long-term-validating-validators.md +++ /dev/null @@ -1,3 +0,0 @@ -- Only start distributing rewards to validators after they have been validating - for a fixed number of blocks. Introduces the `NumberOfEpochsToStartReceivingRewards` param. - ([\#1929](https://github.com/cosmos/interchain-security/pull/1929)) diff --git a/.changelog/v4.2.0/api-breaking/provider/1732-assigning-already-assigned-key-fix.md b/.changelog/v4.2.0/api-breaking/provider/1732-assigning-already-assigned-key-fix.md deleted file mode 100644 index 667a481d3f..0000000000 --- a/.changelog/v4.2.0/api-breaking/provider/1732-assigning-already-assigned-key-fix.md +++ /dev/null @@ -1,2 +0,0 @@ -- Assigning a key that is already assigned by the same validator will now be a no-op instead of throwing an error. - ([\#1732](https://github.com/cosmos/interchain-security/pull/1732)) \ No newline at end of file diff --git a/.changelog/v4.2.0/api-breaking/provider/1863-add-minimum-power-in-topN-to-consumer-chain-list.md b/.changelog/v4.2.0/api-breaking/provider/1863-add-minimum-power-in-topN-to-consumer-chain-list.md deleted file mode 100644 index 482702f26b..0000000000 --- a/.changelog/v4.2.0/api-breaking/provider/1863-add-minimum-power-in-topN-to-consumer-chain-list.md +++ /dev/null @@ -1,2 +0,0 @@ -- Changes the `list-consumer-chains` query to include a `min_power_in_top_N` field, as well as fields for all power shaping parameters of the consumer. - ([\#1863](https://github.com/cosmos/interchain-security/pull/1863)) \ No newline at end of file diff --git a/.changelog/v4.2.0/dependencies/1876-bump-comet.md b/.changelog/v4.2.0/dependencies/1876-bump-comet.md deleted file mode 100644 index aed8c4f155..0000000000 --- a/.changelog/v4.2.0/dependencies/1876-bump-comet.md +++ /dev/null @@ -1,3 +0,0 @@ -- Bump [CometBFT](https://github.com/cometbft/cometbft) to - [v0.37.6](https://github.com/cometbft/cometbft/releases/tag/v0.37.6). - ([\#1876](https://github.com/cosmos/interchain-security/pull/1876)) \ No newline at end of file diff --git a/.changelog/v4.2.0/dependencies/1876-bump-sdk.md b/.changelog/v4.2.0/dependencies/1876-bump-sdk.md deleted file mode 100644 index 8f18db0eca..0000000000 --- a/.changelog/v4.2.0/dependencies/1876-bump-sdk.md +++ /dev/null @@ -1,3 +0,0 @@ -- Bump [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) to - [v0.47.11](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.47.11). - ([\#1876](https://github.com/cosmos/interchain-security/pull/1876)) \ No newline at end of file diff --git a/.changelog/v4.2.0/features/provider/1587-enable-opt-in-chains-through-gov-proposals.md b/.changelog/v4.2.0/features/provider/1587-enable-opt-in-chains-through-gov-proposals.md deleted file mode 100644 index 57f16adc9b..0000000000 --- a/.changelog/v4.2.0/features/provider/1587-enable-opt-in-chains-through-gov-proposals.md +++ /dev/null @@ -1,2 +0,0 @@ -- Enable Opt In and Top N chains through gov proposals. - ([\#1587](https://github.com/cosmos/interchain-security/pull/1587)) \ No newline at end of file diff --git a/.changelog/v4.2.0/features/provider/1809-pss.md b/.changelog/v4.2.0/features/provider/1809-pss.md deleted file mode 100644 index f7a235c5be..0000000000 --- a/.changelog/v4.2.0/features/provider/1809-pss.md +++ /dev/null @@ -1,3 +0,0 @@ -- Adding the Partial Set Security (PSS) feature cf. [ADR 015](https://cosmos.github.io/interchain-security/adrs/adr-015-partial-set-security). - PSS enables consumer chains to join ICS as _Top N_ or _Opt In_ chains and enables validators to opt to validate the consumer chains they want. - ([\#1809](https://github.com/cosmos/interchain-security/pull/1809)) \ No newline at end of file diff --git a/.changelog/v4.2.0/features/provider/1830-introduce-power-shaping.md b/.changelog/v4.2.0/features/provider/1830-introduce-power-shaping.md deleted file mode 100644 index 87cd4590b4..0000000000 --- a/.changelog/v4.2.0/features/provider/1830-introduce-power-shaping.md +++ /dev/null @@ -1,2 +0,0 @@ -- Introduce power-shaping features for consumer chains. The features: (i) allow us to cap the total number of validators that can validate the consumer chain, (ii) set a cap on the maximum voting power (percentage-wise) a validator can have on a consumer chain, and (iii) introduce allowlist and denylists to restrict which validators are allowed or not to validate a consumer chain. - ([\#1830](https://github.com/cosmos/interchain-security/pull/1830)) \ No newline at end of file diff --git a/.changelog/v4.2.0/features/provider/1863-add-minimum-power-in-topN-to-consumer-chain-list.md b/.changelog/v4.2.0/features/provider/1863-add-minimum-power-in-topN-to-consumer-chain-list.md deleted file mode 100644 index 482702f26b..0000000000 --- a/.changelog/v4.2.0/features/provider/1863-add-minimum-power-in-topN-to-consumer-chain-list.md +++ /dev/null @@ -1,2 +0,0 @@ -- Changes the `list-consumer-chains` query to include a `min_power_in_top_N` field, as well as fields for all power shaping parameters of the consumer. - ([\#1863](https://github.com/cosmos/interchain-security/pull/1863)) \ No newline at end of file diff --git a/.changelog/v4.2.0/features/provider/1867-add-query-for-latest-consumer-validator-set.md b/.changelog/v4.2.0/features/provider/1867-add-query-for-latest-consumer-validator-set.md deleted file mode 100644 index dc33ef69d0..0000000000 --- a/.changelog/v4.2.0/features/provider/1867-add-query-for-latest-consumer-validator-set.md +++ /dev/null @@ -1,2 +0,0 @@ -- Introduces the `consumer-validators` query to retrieve the latest set consumer-validator set for a consumer chain. - ([\#1863](https://github.com/cosmos/interchain-security/pull/1867)) diff --git a/.changelog/v4.2.0/state-breaking/provider/1587-enable-opt-in-chains-through-gov-proposals.md b/.changelog/v4.2.0/state-breaking/provider/1587-enable-opt-in-chains-through-gov-proposals.md deleted file mode 100644 index 57f16adc9b..0000000000 --- a/.changelog/v4.2.0/state-breaking/provider/1587-enable-opt-in-chains-through-gov-proposals.md +++ /dev/null @@ -1,2 +0,0 @@ -- Enable Opt In and Top N chains through gov proposals. - ([\#1587](https://github.com/cosmos/interchain-security/pull/1587)) \ No newline at end of file diff --git a/.changelog/v4.2.0/state-breaking/provider/1732-assigning-already-assigned-key-fix.md b/.changelog/v4.2.0/state-breaking/provider/1732-assigning-already-assigned-key-fix.md deleted file mode 100644 index 667a481d3f..0000000000 --- a/.changelog/v4.2.0/state-breaking/provider/1732-assigning-already-assigned-key-fix.md +++ /dev/null @@ -1,2 +0,0 @@ -- Assigning a key that is already assigned by the same validator will now be a no-op instead of throwing an error. - ([\#1732](https://github.com/cosmos/interchain-security/pull/1732)) \ No newline at end of file diff --git a/.changelog/v4.2.0/state-breaking/provider/1809-pss.md b/.changelog/v4.2.0/state-breaking/provider/1809-pss.md deleted file mode 100644 index c0af9ae11e..0000000000 --- a/.changelog/v4.2.0/state-breaking/provider/1809-pss.md +++ /dev/null @@ -1,2 +0,0 @@ -- Adding the Partial Set Security feature cf. [ADR 015](https://cosmos.github.io/interchain-security/adrs/adr-015-partial-set-security). - ([\#1809](https://github.com/cosmos/interchain-security/pull/1809)) \ No newline at end of file diff --git a/.changelog/v4.2.0/state-breaking/provider/1830-introduce-power-shaping.md b/.changelog/v4.2.0/state-breaking/provider/1830-introduce-power-shaping.md deleted file mode 100644 index 87cd4590b4..0000000000 --- a/.changelog/v4.2.0/state-breaking/provider/1830-introduce-power-shaping.md +++ /dev/null @@ -1,2 +0,0 @@ -- Introduce power-shaping features for consumer chains. The features: (i) allow us to cap the total number of validators that can validate the consumer chain, (ii) set a cap on the maximum voting power (percentage-wise) a validator can have on a consumer chain, and (iii) introduce allowlist and denylists to restrict which validators are allowed or not to validate a consumer chain. - ([\#1830](https://github.com/cosmos/interchain-security/pull/1830)) \ No newline at end of file diff --git a/.changelog/v4.2.0/summary.md b/.changelog/v4.2.0/summary.md deleted file mode 100644 index d9bdda58b3..0000000000 --- a/.changelog/v4.2.0/summary.md +++ /dev/null @@ -1 +0,0 @@ -May 17, 2024 diff --git a/.changelog/v5.0.0/dependencies/1698-bump-comet.md b/.changelog/v5.0.0/dependencies/1698-bump-comet.md deleted file mode 100644 index 7e750b5120..0000000000 --- a/.changelog/v5.0.0/dependencies/1698-bump-comet.md +++ /dev/null @@ -1,3 +0,0 @@ -- Bump [CometBFT](https://github.com/cometbft/cometbft) to - [v0.38.4\5](https://github.com/cometbft/cometbft/releases/tag/v0.38.5). - ([\#1698](https://github.com/cosmos/interchain-security/pull/1698)) \ No newline at end of file diff --git a/.changelog/v5.0.0/dependencies/1698-bump-ibc.md b/.changelog/v5.0.0/dependencies/1698-bump-ibc.md deleted file mode 100644 index 40fe475f7b..0000000000 --- a/.changelog/v5.0.0/dependencies/1698-bump-ibc.md +++ /dev/null @@ -1,3 +0,0 @@ -- Bump [ibc-go](https://github.com/cosmos/ibc-go) to - [v8.1.x](https://github.com/cosmos/ibc-go/releases/tag/v8.1.0). - ([\#1698](https://github.com/cosmos/interchain-security/pull/1698)) \ No newline at end of file diff --git a/.changelog/v5.0.0/dependencies/1698-bump-sdk.md b/.changelog/v5.0.0/dependencies/1698-bump-sdk.md deleted file mode 100644 index ec22555002..0000000000 --- a/.changelog/v5.0.0/dependencies/1698-bump-sdk.md +++ /dev/null @@ -1,3 +0,0 @@ -- Bump [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) to -[v0.50.x](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.4) -([\#1698](https://github.com/cosmos/interchain-security/pull/1698)) \ No newline at end of file diff --git a/.changelog/v5.0.0/features/consumer/1814-add-update-consumer-params-msg.md b/.changelog/v5.0.0/features/consumer/1814-add-update-consumer-params-msg.md deleted file mode 100644 index 811c56401b..0000000000 --- a/.changelog/v5.0.0/features/consumer/1814-add-update-consumer-params-msg.md +++ /dev/null @@ -1,2 +0,0 @@ -- Add consumer `MsgUpdateParams` from [cosmos-sdk](https://github.com/cosmos/cosmos-sdk). -([\#1814](https://github.com/cosmos/interchain-security/pull/1814)). \ No newline at end of file diff --git a/.changelog/v5.0.0/features/provider/1698-add-update-provider-params-msg.md b/.changelog/v5.0.0/features/provider/1698-add-update-provider-params-msg.md deleted file mode 100644 index ca2ce372e2..0000000000 --- a/.changelog/v5.0.0/features/provider/1698-add-update-provider-params-msg.md +++ /dev/null @@ -1,2 +0,0 @@ -- Add provider `MsgUpdateParams` from [cosmos-sdk](https://github.com/cosmos/cosmos-sdk). -([\#1698](https://github.com/cosmos/interchain-security/pull/1698)). \ No newline at end of file diff --git a/.changelog/v5.0.0/state-breaking/1698-bump-comet.md b/.changelog/v5.0.0/state-breaking/1698-bump-comet.md deleted file mode 100644 index 7e750b5120..0000000000 --- a/.changelog/v5.0.0/state-breaking/1698-bump-comet.md +++ /dev/null @@ -1,3 +0,0 @@ -- Bump [CometBFT](https://github.com/cometbft/cometbft) to - [v0.38.4\5](https://github.com/cometbft/cometbft/releases/tag/v0.38.5). - ([\#1698](https://github.com/cosmos/interchain-security/pull/1698)) \ No newline at end of file diff --git a/.changelog/v5.0.0/state-breaking/1698-bump-ibc.md b/.changelog/v5.0.0/state-breaking/1698-bump-ibc.md deleted file mode 100644 index 40fe475f7b..0000000000 --- a/.changelog/v5.0.0/state-breaking/1698-bump-ibc.md +++ /dev/null @@ -1,3 +0,0 @@ -- Bump [ibc-go](https://github.com/cosmos/ibc-go) to - [v8.1.x](https://github.com/cosmos/ibc-go/releases/tag/v8.1.0). - ([\#1698](https://github.com/cosmos/interchain-security/pull/1698)) \ No newline at end of file diff --git a/.changelog/v5.0.0/state-breaking/1698-bump-sdk.md b/.changelog/v5.0.0/state-breaking/1698-bump-sdk.md deleted file mode 100644 index ec22555002..0000000000 --- a/.changelog/v5.0.0/state-breaking/1698-bump-sdk.md +++ /dev/null @@ -1,3 +0,0 @@ -- Bump [cosmos-sdk](https://github.com/cosmos/cosmos-sdk) to -[v0.50.x](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.50.4) -([\#1698](https://github.com/cosmos/interchain-security/pull/1698)) \ No newline at end of file diff --git a/.changelog/v5.0.0/state-breaking/1819-revert-put-unbonding-on-hold.md b/.changelog/v5.0.0/state-breaking/1819-revert-put-unbonding-on-hold.md deleted file mode 100644 index 126b04f4f3..0000000000 --- a/.changelog/v5.0.0/state-breaking/1819-revert-put-unbonding-on-hold.md +++ /dev/null @@ -1,2 +0,0 @@ -- Revert `PutUnbondingOnHold` behavior to ICS@v1 -([\#1819](https://github.com/cosmos/interchain-security/pull/1819)) \ No newline at end of file diff --git a/.changelog/v5.0.0/summary.md b/.changelog/v5.0.0/summary.md deleted file mode 100644 index 98cfdacda8..0000000000 --- a/.changelog/v5.0.0/summary.md +++ /dev/null @@ -1,2 +0,0 @@ -*May 9, 2024* - diff --git a/.coderabbit.yml b/.coderabbit.yml index e89dfcdfcd..7dfe09c9ba 100644 --- a/.coderabbit.yml +++ b/.coderabbit.yml @@ -11,22 +11,22 @@ reviews: - "!docs/" path_instructions: - path: "**/*.go" - instructions: "Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations." + instructions: "Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations. Only report issues that you have a high degree of confidence in." - path: "tests/e2e/*" instructions: | - "Assess the e2e test code assessing sufficient code coverage for the changes associated in the pull request" + "Assess the e2e test code assessing sufficient code coverage for the changes associated in the pull request. Only report issues that you have a high degree of confidence in." - path: "tests/integration/*" instructions: | - "Assess the e2e test code assessing sufficient code coverage for the changes associated in the pull request" + "Assess the e2e test code assessing sufficient code coverage for the changes associated in the pull request. Only report issues that you have a high degree of confidence in." - path: "**/*_test.go" instructions: | - "Assess the unit test code assessing sufficient code coverage for the changes associated in the pull request" + "Assess the unit test code assessing sufficient code coverage for the changes associated in the pull request. Only report issues that you have a high degree of confidence in." - path: "**/*.md" instructions: | - "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness. Please DO NOT report any missing or superfluous newlines, in particular at the end or beginning of files." + "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness. Please DO NOT report any missing or superfluous newlines, in particular at the end or beginning of files. Only report issues that you have a high degree of confidence in." - path: ".changelog/*" instructions: | - "Assess the changes in the changelog for correctness and completeness, particularly flagging missing changes" + "Assess the changes in the changelog for correctness and completeness, particularly flagging missing changes. Only report issues that you have a high degree of confidence in." auto_review: enabled: true ignore_title_keywords: diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 0a55a2d111..61976cf2f3 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -22,7 +22,7 @@ updates: directory: "/" schedule: interval: daily - target-branch: "release/v4.1.x" + target-branch: "release/v4.2.x" # Only allow automated security-related dependency updates on release branches. open-pull-requests-limit: 0 labels: @@ -32,17 +32,17 @@ updates: directory: "/" schedule: interval: daily - target-branch: "release/v4.1.x-lsm" + target-branch: "release/v4.2.x-lsm" # Only allow automated security-related dependency updates on release branches. open-pull-requests-limit: 0 labels: - dependencies - - package-ecosystem: gomod + - package-ecosystem: gomod directory: "/" schedule: interval: daily - target-branch: "release/v4.2.x" + target-branch: "release/v4.3.x" # Only allow automated security-related dependency updates on release branches. open-pull-requests-limit: 0 labels: @@ -52,7 +52,7 @@ updates: directory: "/" schedule: interval: daily - target-branch: "release/v4.2.x-lsm" + target-branch: "release/v4.3.x-lsm" # Only allow automated security-related dependency updates on release branches. open-pull-requests-limit: 0 labels: @@ -68,3 +68,13 @@ updates: labels: - dependencies + - package-ecosystem: gomod + directory: "/" + schedule: + interval: daily + target-branch: "release/v5.1.x" + # Only allow automated security-related dependency updates on release branches. + open-pull-requests-limit: 0 + labels: + - dependencies + diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index db8ecca694..55673036d7 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -42,7 +42,7 @@ jobs: ./build_deploy.sh - name: Deploy 🚀 - uses: JamesIves/github-pages-deploy-action@v4.6.1 + uses: JamesIves/github-pages-deploy-action@v4.6.3 with: branch: gh-pages folder: ~/output diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index bb9c86a3f9..03ac0947ce 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -50,7 +50,7 @@ jobs: # multi-platform images and export cache # https://github.com/docker/setup-buildx-action - name: Set up Docker Buildx - uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0 + uses: docker/setup-buildx-action@4fd812986e6c8c2a69e18311145f9371337f27d4 # v3.4.0 # Login against a Docker registry except on PR @@ -80,7 +80,7 @@ jobs: # https://github.com/docker/build-push-action - name: Build and push Docker image id: build-and-push - uses: docker/build-push-action@2cdde995de11925a030ce8070c3d77a52ffcf1c0 #v5.3.0 + uses: docker/build-push-action@a254f8ca60a858f3136a2f1f23a60969f2c402dd #v6.4.0 with: context: . file: ./Dockerfile diff --git a/.github/workflows/golangci-lint.yml b/.github/workflows/golangci-lint.yml index 02db4be638..051c80c0f0 100644 --- a/.github/workflows/golangci-lint.yml +++ b/.github/workflows/golangci-lint.yml @@ -9,10 +9,11 @@ on: merge_group: permissions: contents: read + jobs: golangci: name: golangci-lint - runs-on: ubuntu-latest + runs-on: Gaia-Runner-medium steps: - uses: actions/setup-go@v5 with: diff --git a/.github/workflows/lint-pr.yml b/.github/workflows/lint-pr.yml index 7c573d1647..6c5cd2fc2f 100644 --- a/.github/workflows/lint-pr.yml +++ b/.github/workflows/lint-pr.yml @@ -17,7 +17,7 @@ jobs: statuses: write # for amannn/action-semantic-pull-request to mark status of analyzed PR runs-on: ubuntu-latest steps: - - uses: amannn/action-semantic-pull-request@v5.5.2 + - uses: amannn/action-semantic-pull-request@v5.5.3 id: lint_pr_title env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/nightly-e2e.yml b/.github/workflows/nightly-e2e.yml index b279c59714..bc76406608 100644 --- a/.github/workflows/nightly-e2e.yml +++ b/.github/workflows/nightly-e2e.yml @@ -36,7 +36,7 @@ jobs: # Run compatibility tests for different consumer (-cv) and provider (-pv) versions. # Combination of all provider versions with consumer versions are tested. # For new versions to be tested add/modify -pc/-cv parameters. - run: go run ./tests/e2e/... --tc compatibility -pv latest -pv v5.0.0-rc0 -pv v4.1.1-lsm -pv v3.3.3-lsm -cv latest -cv v5.0.0-rc0 -cv v4.1.1 -cv v3.3.0 -cv v3.2.0 + run: go run ./tests/e2e/... --tc compatibility -pv latest -pv v5.0.0-rc0 -pv v3.3.3-lsm -cv latest -cv v5.0.0-rc0 -cv v3.3.0 happy-path-test: runs-on: ubuntu-latest timeout-minutes: 20 diff --git a/.github/workflows/proto-registry.yml b/.github/workflows/proto-registry.yml index 0dd39a112c..f1f52b55c7 100644 --- a/.github/workflows/proto-registry.yml +++ b/.github/workflows/proto-registry.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: bufbuild/buf-setup-action@v1.32.2 + - uses: bufbuild/buf-setup-action@v1.34.0 - uses: bufbuild/buf-push-action@v1 with: input: "proto" diff --git a/.github/workflows/proto.yml b/.github/workflows/proto.yml index 68f31f2b67..e9f040fc44 100644 --- a/.github/workflows/proto.yml +++ b/.github/workflows/proto.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: bufbuild/buf-setup-action@v1.32.2 + - uses: bufbuild/buf-setup-action@v1.34.0 - uses: bufbuild/buf-breaking-action@v1 with: input: "proto" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 147ab7f60e..fef4a7d880 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -18,7 +18,7 @@ concurrency: jobs: tests: - runs-on: ubuntu-latest + runs-on: Gaia-Runner-medium steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 @@ -60,7 +60,7 @@ jobs: path: ./profile.out test-integration: - runs-on: ubuntu-latest + runs-on: Gaia-Runner-medium steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 @@ -91,7 +91,7 @@ jobs: path: ./integration-profile.out test-mbt: - runs-on: ubuntu-latest + runs-on: Gaia-Runner-medium steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 @@ -168,7 +168,7 @@ jobs: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} test-e2e: - runs-on: ubuntu-latest + runs-on: Gaia-Runner-medium steps: - uses: actions/checkout@v4 with: diff --git a/.mergify.yml b/.mergify.yml index d373fe3fb9..c5825b5bf8 100644 --- a/.mergify.yml +++ b/.mergify.yml @@ -10,38 +10,39 @@ queue_rules: - "#approved-reviews-by>1" pull_request_rules: - - name: Backport patches to the release/v4.1.x branch + - name: Backport patches to the release/v4.2.x branch conditions: - base=main - - label=A:backport/v4.1.x + - label=A:backport/v4.2.x actions: backport: branches: - - release/v4.1.x - - name: Backport patches to the release/v4.1.x-lsm branch + - release/v4.2.x + - name: Backport patches to the release/v4.2.x-lsm branch conditions: - base=main - - label=A:backport/v4.1.x-lsm + - label=A:backport/v4.2.x-lsm actions: backport: branches: - - release/v4.1.x-lsm - - name: Backport patches to the release/v4.2.x branch + - release/v4.2.x-lsm +pull_request_rules: + - name: Backport patches to the release/v4.3.x branch conditions: - base=main - - label=A:backport/v4.2.x + - label=A:backport/v4.3.x actions: backport: branches: - - release/v4.2.x - - name: Backport patches to the release/v4.2.x-lsm branch + - release/v4.3.x + - name: Backport patches to the release/v4.3.x-lsm branch conditions: - base=main - - label=A:backport/v4.2.x-lsm + - label=A:backport/v4.3.x-lsm actions: backport: branches: - - release/v4.2.x-lsm + - release/v4.3.x-lsm - name: Backport patches to the release/v5.x branch conditions: - base=main @@ -50,3 +51,11 @@ pull_request_rules: backport: branches: - release/v5.x + - name: Backport patches to the release/v5.1.x branch + conditions: + - base=main + - label=A:backport/v5.1.x + actions: + backport: + branches: + - release/v5.1.x diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e599621c1..20eb92c621 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -39,6 +39,28 @@ - Revert `PutUnbondingOnHold` behavior to ICS@v1 ([\#1819](https://github.com/cosmos/interchain-security/pull/1819)) +## v4.4.0 + +*July 16, 2024* + +### API BREAKING + +- Remove soft opt-out feature. + ([\#1964](https://github.com/cosmos/interchain-security/pull/1964)) + +### FEATURES + + + +- Remove soft opt-out feature. + + ([\#1964](https://github.com/cosmos/interchain-security/pull/1964)) + +### STATE BREAKING + +- Remove soft opt-out feature. + ([\#1964](https://github.com/cosmos/interchain-security/pull/1964)) + ## v4.3.1 *July 4, 2024* diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8b8389315e..b6aa96afba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -109,7 +109,7 @@ If your architecture decision is a simple change, you may contribute directly wi In certain circumstances, the architecture decision may require changes to the ICS spec. Note that the spec is responsible for defining language-agnostic, implementation-agnostic behaviors for the ICS protocol. Whereas ADRs are responsible for communicating implementation decisions contained within this repo. -To create an ADR, follow the [template](docs/docs/adrs/adr-template.md) and [doc](docs/docs/adrs/intro.md). If you would like to see examples of how these are written, please refer to the current [ADRs](docs/docs/adrs). +To create an ADR, follow the [template](docs/docs/adrs/templates/adr-template.md) and [doc](docs/docs/adrs/intro.md). If you would like to see examples of how these are written, please refer to the current [ADRs](docs/docs/adrs). ### ADR Proposals @@ -179,7 +179,7 @@ Additionally, **each PR should only address a single issue**. ### Pull Request Templates -There are three PR templates. The [default template](./.github/PULL_REQUEST_TEMPLATE.md) contains links to the three templates. Please go the the `Preview` tab and select the appropriate sub-template: +There are three PR templates. The [default template](./.github/PULL_REQUEST_TEMPLATE.md) contains links to the three templates. Please go to the `Preview` tab and select the appropriate sub-template: - The [production template](./.github/PULL_REQUEST_TEMPLATE/production.md) is for types `fix`, `feat`, and `refactor`. - The [docs template](./.github/PULL_REQUEST_TEMPLATE/docs.md) is for documentation changes. diff --git a/FEATURES.md b/FEATURES.md index f9a54e0589..31d4066926 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -2,19 +2,20 @@ The following table indicates the major ICS features available in the [currently active releases](./RELEASES.md#version-matrix): -| Feature | `v3.2.0` | `v3.3.0` | `v3.3.3-lsm` | `v4.0.0` | `v4.1.1` | `v4.1.1-lsm` | -|---------|---------:|---------:|-------------:|---------:|---------:|-------------:| -| [Channel initialization: new chains](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#channel-initialization-new-chains) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Validator set update](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#validator-set-update) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Completion of unbonding operations](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#completion-of-unbonding-operations) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Consumer initiated slashing](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#consumer-initiated-slashing) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Reward distribution](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#reward-distribution) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Consumer chain removal](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/methods.md#consumer-chain-removal) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Key assignment](https://github.com/cosmos/interchain-security/issues/26) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Jail throttling](https://github.com/cosmos/interchain-security/issues/404) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Soft opt-out](https://github.com/cosmos/interchain-security/issues/851) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Channel initialization: existing chains](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#channel-initialization-existing-chains) (aka [Standalone to consumer changeover](https://github.com/cosmos/interchain-security/issues/756)) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Cryptographic verification of equivocation](https://github.com/cosmos/interchain-security/issues/732) | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Jail throttling with retries](https://github.com/cosmos/interchain-security/issues/713) - consumer-side changes | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | -| [Jail throttling with retries](https://github.com/cosmos/interchain-security/issues/713) - [provider-side changes](https://github.com/cosmos/interchain-security/issues/1102) | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | -| [ICS epochs](https://cosmos.github.io/interchain-security/adrs/adr-014-epochs) | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | +| Feature | `v3.2.0` | `v4.0.0` | `v4.2.0` | `v4.2.0-lsm` | `v5.0.0` | +|---------|---------:|---------:|---------:|-------------:|---------:| +| [Channel initialization: new chains](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#channel-initialization-new-chains) | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Validator set update](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#validator-set-update) | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Completion of unbonding operations](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#completion-of-unbonding-operations) | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Consumer initiated slashing](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#consumer-initiated-slashing) | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Reward distribution](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#reward-distribution) | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Consumer chain removal](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/methods.md#consumer-chain-removal) | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Key assignment](https://github.com/cosmos/interchain-security/issues/26) | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Jail throttling](https://github.com/cosmos/interchain-security/issues/404) | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Soft opt-out](https://github.com/cosmos/interchain-security/issues/851) | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Channel initialization: existing chains](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#channel-initialization-existing-chains) (aka [Standalone to consumer changeover](https://github.com/cosmos/interchain-security/issues/756)) | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Cryptographic verification of equivocation](https://github.com/cosmos/interchain-security/issues/732) | ❌ | ✅ | ✅ | ✅ | ✅ | +| [Jail throttling with retries](https://github.com/cosmos/interchain-security/issues/713) - consumer-side changes | ✅ | ✅ | ✅ | ✅ | ✅ | +| [Jail throttling with retries](https://github.com/cosmos/interchain-security/issues/713) - [provider-side changes](https://github.com/cosmos/interchain-security/issues/1102) | ❌ | ✅ | ✅ | ✅ | ✅ | +| [ICS epochs](https://cosmos.github.io/interchain-security/adrs/adr-014-epochs) | ❌ | ❌ | ✅ | ✅ | ✅ | +| [Partial Set Security](https://cosmos.github.io/interchain-security/adrs/adr-015-partial-set-security) | ❌ | ❌ | ✅ | ✅ | ❌ | diff --git a/RELEASES.md b/RELEASES.md index b1d3eefa22..983af29995 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -7,7 +7,6 @@ - [Stable Release Policy](#stable-release-policy) - [Version Matrix](#version-matrix) - [Backwards Compatibility](#backwards-compatibility) - - [Notes](#notes) ## Semantic Versioning @@ -31,7 +30,7 @@ This includes events, queries, CLI interfaces. ## Release Cycle ICS follows a traditional release cycle involving release candidates (RCs) releases before finalizing a new version. -The stable release guarantees do not go into affect until a final release is performed. +The stable release guarantees do not go into effect until a final release is performed. ❗***It is never advisable to use a non-final release in production.*** @@ -60,13 +59,12 @@ All missing minor release versions have been discontinued. | Release | End of Life Date | |---------|------------------| | `v3.2.x` | July 10, 2024 | -| `v3.3.x` | July 10, 2024 | -| `v3.3.x-lsm` | July 10, 2024 | | `v4.0.x` | January 24, 2025 | -| `v4.1.x` | January 24, 2025 | +| `v4.2.x` | January 24, 2025 | +| `v5.0.x` | May 9, 2025 | -**Note**: As of [Gaia v15.1.0](https://github.com/cosmos/gaia/releases/tag/v15.1.0), -the Cosmos Hub uses a fork of Cosmos SDK ([v0.47.10-ics-lsm](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.47.10-ics-lsm)) +**Note**: As of [Gaia v17.2.0](https://github.com/cosmos/gaia/releases/tag/v17.2.0), +the Cosmos Hub uses a fork of Cosmos SDK ([v0.47.15-ics-lsm](https://github.com/cosmos/cosmos-sdk/releases/tag/v0.47.15-ics-lsm)) that contains the Liquid Staking Module (LSM). This means the Cosmos Hub requires a fork of ICS. This fork is maintained by the development team and released using the `-lsm` prefix. @@ -79,11 +77,10 @@ Versions of Golang, IBC, Cosmos SDK and CometBFT used by ICS in the currently ac | ICS | Golang | IBC | Cosmos SDK | CometBFT | Note | |-----|--------|-----|------------|----------|------| | [v3.2.0](https://github.com/cosmos/interchain-security/releases/tag/v3.2.0) | 1.20 | v7.3.0 | v0.47.5 | v0.37.2 | -| [v3.3.0](https://github.com/cosmos/interchain-security/releases/tag/v3.3.0) | 1.20 | v7.3.0 | v0.47.5 | v0.37.2 | -| [v3.3.3-lsm](https://github.com/cosmos/interchain-security/releases/tag/v3.3.3-lsm) | 1.20 | v7.3.1 | v0.47.10-ics-lsm | v0.37.4 | Provider only (Cosmos Hub specific) | | [v4.0.0](https://github.com/cosmos/interchain-security/releases/tag/v4.0.0) | 1.21 | v7.3.1 | v0.47.7 | v0.37.4 | Provider on >= v4.0.0 backwards compatible with consumers >= v3.2.0 | -| [v4.1.1](https://github.com/cosmos/interchain-security/releases/tag/v4.1.1) | 1.21 | v7.4.0 | v0.47.10 | v0.37.4 | -| [v4.1.1-lsm](https://github.com/cosmos/interchain-security/releases/tag/v4.1.1-lsm) | 1.21 | v7.4.0 | v0.47.12-ics-lsm | v0.37.4 | Provider only (Cosmos Hub specific) | +| [v4.2.0](https://github.com/cosmos/interchain-security/releases/tag/v4.2.0) | 1.21 | v7.4.0 | v0.47.11 | v0.37.6 | +| [v4.2.0-lsm](https://github.com/cosmos/interchain-security/releases/tag/v4.2.0-lsm) | 1.21 | v7.4.0 | v0.47.13-ics-lsm | v0.37.6 | Provider only (Cosmos Hub specific) | +| [v5.0.0](https://github.com/cosmos/interchain-security/releases/tag/v5.0.0) | 1.21 | v8.1.0 | v0.50.4 | v0.38.5 | **Note:** For a list of major ICS features available in the currently active releases, see [FEATURES.md](./FEATURES.md). @@ -93,15 +90,9 @@ A MAJOR version of ICS will always be backwards compatible with the previous MAJ The following table indicates the compatibility of currently active releases: -| Consumer | Provider | `v3.2.0` | `v3.3.0` | `v3.3.3-lsm` | `v4.0.0` | `v4.1.1-lsm` | -|----------|----------|----------|----------|--------------|----------|--------------| -| `v3.2.0` || ✅ | ✅ (1) | ✅ | ✅ | ✅ | -| `v3.3.0` || ✅ (1) | ✅ | ✅ | ✅ | ✅ | -| `v4.0.0` || ✅ (1)| ✅ (1)| ✅ (1) | ✅ | ✅ | -| `v4.1.1` || ✅ (1)| ✅ (1)| ✅ (1) | ✅ | ✅ | - -#### Notes - -The following adjustments must be made to the CCV consumer genesis state that is obtained from the provider chain after the spawn time is reached in order for the consumer chain to start without errors. - -- (1) Use `interchain-security-cd genesis transform` to transform the consumer genesis file obtained from the provider. \ No newline at end of file +| Consumer | Provider | `v4.2.0-lsm` | +|----------|----------|--------------| +| `v3.2.0` || ✅ | +| `v4.0.0` || ✅ | +| `v4.2.0` || ✅ | +| `v5.0.0` || ✅ | diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 3a172a79c4..d4350c895f 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -6,7 +6,7 @@ - the last release branch: --> -# Replicated Security Release Notes +# Interchain Security Release Notes -Check out the [changelog](https://github.com/cosmos/interchain-security/blob//CHANGELOG.md) for a list of relevant changes or [compare all changes](https://github.com/cosmos/interchain-security/compare/release/...) from last release. +Check out the [changelog](https://github.com/cosmos/interchain-security/blob//CHANGELOG.md) for a list of relevant changes or [compare all changes](https://github.com/cosmos/interchain-security/compare/...) from last release. Refer to the [upgrading guide](https://github.com/cosmos/interchain-security/blob/release//UPGRADING.md) when migrating from `` to ``. diff --git a/RELEASE_PROCESS.md b/RELEASE_PROCESS.md index 04d7731a72..1c26c8c5ff 100644 --- a/RELEASE_PROCESS.md +++ b/RELEASE_PROCESS.md @@ -12,7 +12,7 @@ This document outlines the release process for Interchain Security (ICS). For details on ICS releases, see [RELEASES.md](./RELEASES.md). -The procedure of cutting a major or minor release consist of the following steps: +The procedure of cutting a major or minor release consists of the following steps: - Create a new version section in the `CHANGELOG.md` (follow the procedure described [below](#changelog)) - Create release notes, in `RELEASE_NOTES.md`, highlighting the new features and changes in the version. @@ -71,7 +71,7 @@ Before cutting a _**release candidate**_ (e.g., `v3.3.0-rc0`), the following ste unclog release v3.3.0 ``` - `unclog release` requires an editor. This can be set either by configuring - an `$EDITOR` environment variable or by manually specify an editor binary path + an `$EDITOR` environment variable or by manually specifying an editor binary path via the `--editor` flag. - add the date as the summary of the release (`unclog release` requires adding a summary), e.g., ```md @@ -107,6 +107,78 @@ Once the **final release** is cut, the new changelog section must be added to ma ``` - open a PR (from this new created branch) against `main` +## Updating published docs + +### Before tagging a new release + +On your release branch, clear the `docs/versions.json` file so it looks like this: +```json +[] +``` + +If this file is populated on a release branch it will cause the tag to have extra files that the docs deploy process does not expect. This could cause the deploy process to fail in some situations. + +### After tagging a new release + +Go to `main` branch and update the `docs/versions.json` to include all the versions you want to publish on the docs page: +```json +[ + "v4.3.0", + "v5.0.0" +] +``` + +This will cause the docs to be built with `main`, `v4.3.0` and `v5.0.0`. + +In `docs/docusaurus.config.js` change the `preset` section to display the versions you chose in `docs/versions.json`. + +For example, here we remove v4.2.0 and replace it with v4.3.0. + +```diff + presets: [ + [ + "classic", + /** @type {import('@docusaurus/preset-classic').Options} */ + ({ + docs: { + sidebarPath: require.resolve("./sidebars.js"), + routeBasePath: "/", + versions: { + current: { + path: "/", + label: "main", + banner: "unreleased", + }, + // v4.2.0-docs was a special tags for docs + // this is not usually necessary +- "v4.2.0-docs": { +- path: "/v4.2.0/", +- label: "v4.2.0", +- banner: "none", +- }, ++ "v4.3.0": { ++ banner: "none", ++ }, + "v5.0.0": { + banner: "unreleased", + }, + }, + remarkPlugins: [remarkMath], + rehypePlugins: [rehypeKatex], + }, + + theme: { + customCss: require.resolve("./src/css/custom.css"), + }, + }), + ], + ], +``` + +The documentation is updated automatically whenever `main` is changed. + +To learn how to work with docs locally check the docs [README.md on main branch](https://github.com/cosmos/interchain-security/blob/main/docs/README.md) + ## Tagging Procedure **Important**: _**Always create tags from your local machine**_ since all release @@ -136,4 +208,4 @@ git push origin v3.2.0 ``` For final releases, once the tag is created, use the GitHub interface to create a release. -Note that this is not necessary for release candidates. \ No newline at end of file +Note that this is not necessary for release candidates. diff --git a/UPGRADING.md b/UPGRADING.md index 425fd511a3..f6e856bba5 100644 --- a/UPGRADING.md +++ b/UPGRADING.md @@ -1,7 +1,38 @@ # Upgrading Replicated Security +## [v4.4.x](https://github.com/cosmos/interchain-security/releases/tag/v4.4.0) + +### Provider + +***Note that provider chains should not use this version of ICS*** + +### Consumer + +Upgrading the consumer from `v4.0.0` to `v4.4.0` will not require state migration. + This guide provides instructions for upgrading to specific versions of Replicated Security. +## [v4.3.x](https://github.com/cosmos/interchain-security/releases/tag/v4.3.0) + +### Provider + +Upgrading a provider from `v4.2.0` to `v4.3.0` requires state migrations that will be done automatically via the upgrade module. + +### Consumer + +***Note that consumer chains should not use this version of ICS*** + +## [v4.2.x](https://github.com/cosmos/interchain-security/releases/tag/v4.2.0) + +### Provider + +Upgrading a provider from `v4.1.0` or `v4.1.0-lsm` to `v4.2.0` or `v4.2.0-lsm` requires state migrations, see relevant pull request [here](https://github.com/cosmos/interchain-security/pull/1809) +for the corresponding migrators. + +### Consumer + +***Note that consumer chains should not use this version of ICS*** + ## [v4.1.x](https://github.com/cosmos/interchain-security/releases/tag/v4.1.0-rc2) and [v4.1.x-lsm](https://github.com/cosmos/interchain-security/releases/tag/v4.1.0-lsm-rc2) ### Provider diff --git a/app/consumer-democracy/app.go b/app/consumer-democracy/app.go index b7506eb0c7..6ceb8952e4 100644 --- a/app/consumer-democracy/app.go +++ b/app/consumer-democracy/app.go @@ -151,7 +151,6 @@ var ( mint.AppModuleBasic{}, ccvdistr.AppModuleBasic{}, gov.NewAppModuleBasic( - // TODO: eventually remove upgrade proposal handler and cancel proposal handler []govclient.ProposalHandler{ paramsclient.ProposalHandler, }, @@ -582,7 +581,6 @@ func New( // CanWithdrawInvariant invariant. // NOTE: staking module is required if HistoricalEntries param > 0 // NOTE: capability module's beginblocker must come before any modules using capabilities (e.g. IBC) - // NOTE: the soft opt-out requires that the consumer module's beginblocker comes after the slashing module's beginblocker app.MM.SetOrderBeginBlockers( capabilitytypes.ModuleName, minttypes.ModuleName, @@ -755,7 +753,7 @@ func New( }, ) if err != nil { - panic(fmt.Errorf("failed to create AnteHandler: %s", err)) + panic(fmt.Errorf("failed to create AnteHandler: %w", err)) } app.SetAnteHandler(anteHandler) diff --git a/app/consumer-democracy/proposals_whitelisting.go b/app/consumer-democracy/proposals_whitelisting.go index fb333dc014..975c9dbbad 100644 --- a/app/consumer-democracy/proposals_whitelisting.go +++ b/app/consumer-democracy/proposals_whitelisting.go @@ -29,10 +29,10 @@ type legacyParamChangeKey struct { Subspace, Key string } -// these parameters don't exist in the consumer app -- keeping them as an +// these parameters don't exist in the consumer app -- keeping them as an example var LegacyWhitelistedParams = map[legacyParamChangeKey]struct{}{ - // add whitlisted legacy parameters here [cosmos-sdk <= 0.47] - // commented parameters are just an example - most params have been moved to their respecitve modules + // add whitelisted legacy parameters here [cosmos-sdk <= 0.47] + // commented parameters are just an example - most params have been moved to their respective modules // and they cannot be changed through legacy governance proposals {Subspace: banktypes.ModuleName, Key: "SendEnabled"}: {}, } diff --git a/app/consumer/app.go b/app/consumer/app.go index 3bf468b22f..8eb64bf5c6 100644 --- a/app/consumer/app.go +++ b/app/consumer/app.go @@ -516,7 +516,6 @@ func New( // NOTE: Capability module must occur first so that it can initialize any capabilities // so that other modules that want to create or claim capabilities afterwards in InitChain // can do so safely. - // NOTE: the soft opt-out requires that the consumer module's beginblocker comes after the slashing module's beginblocker app.MM.SetOrderInitGenesis( capabilitytypes.ModuleName, authtypes.ModuleName, @@ -577,7 +576,7 @@ func New( }, ) if err != nil { - panic(fmt.Errorf("failed to create AnteHandler: %s", err)) + panic(fmt.Errorf("failed to create AnteHandler: %w", err)) } app.SetAnteHandler(anteHandler) diff --git a/app/consumer/genesis.go b/app/consumer/genesis.go index 466c9df753..ed7e1e7831 100644 --- a/app/consumer/genesis.go +++ b/app/consumer/genesis.go @@ -80,6 +80,9 @@ func transformToNew(jsonRaw []byte, ctx client.Context) (json.RawMessage, error) oldConsumerGenesis.Params.RetryDelayPeriod = types.DefaultRetryDelayPeriod } + // `SoftOptOutThreshold` is deprecated in the current consumer implementation, so set to zero + oldConsumerGenesis.Params.SoftOptOutThreshold = "0" + // Versions before v3.3.x of provider genesis data fills up deprecated fields // ProviderClientState, ConsensusState and InitialValSet in type GenesisState newGenesis := types.ConsumerGenesisState{ diff --git a/app/consumer/genesis_test.go b/app/consumer/genesis_test.go index 2dd29e1b71..e91c8a66d5 100644 --- a/app/consumer/genesis_test.go +++ b/app/consumer/genesis_test.go @@ -494,7 +494,9 @@ func TestConsumerGenesisTransformationFromV2ToCurrent(t *testing.T) { require.EqualValues(t, srcGenesis.Params.ConsumerRedistributionFraction, resultGenesis.Params.ConsumerRedistributionFraction) require.EqualValues(t, srcGenesis.Params.HistoricalEntries, resultGenesis.Params.HistoricalEntries) require.EqualValues(t, srcGenesis.Params.UnbondingPeriod, resultGenesis.Params.UnbondingPeriod) - require.EqualValues(t, srcGenesis.Params.SoftOptOutThreshold, resultGenesis.Params.SoftOptOutThreshold) + + // `SoftOptOutThreshold` is deprecated, so it should be set to zero the current version + require.EqualValues(t, "0", resultGenesis.Params.SoftOptOutThreshold) require.EqualValues(t, srcGenesis.Params.RewardDenoms, resultGenesis.Params.RewardDenoms) require.EqualValues(t, srcGenesis.Params.ProviderRewardDenoms, resultGenesis.Params.ProviderRewardDenoms) @@ -565,7 +567,10 @@ func TestConsumerGenesisTransformationV330ToCurrent(t *testing.T) { require.Equal(t, srcGenesis.Params.ConsumerRedistributionFraction, resultGenesis.Params.ConsumerRedistributionFraction) require.Equal(t, srcGenesis.Params.HistoricalEntries, resultGenesis.Params.HistoricalEntries) require.Equal(t, srcGenesis.Params.UnbondingPeriod, resultGenesis.Params.UnbondingPeriod) - require.Equal(t, srcGenesis.Params.SoftOptOutThreshold, resultGenesis.Params.SoftOptOutThreshold) + + // `SoftOptOutThreshold` is deprecated, so it should be set to zero the current version + require.Equal(t, "0", resultGenesis.Params.SoftOptOutThreshold) + require.Equal(t, srcGenesis.Params.RewardDenoms, resultGenesis.Params.RewardDenoms) require.Equal(t, srcGenesis.Params.ProviderRewardDenoms, resultGenesis.Params.ProviderRewardDenoms) diff --git a/app/provider/app.go b/app/provider/app.go index 4c998bdc13..23262161b4 100644 --- a/app/provider/app.go +++ b/app/provider/app.go @@ -678,8 +678,6 @@ func New( panic(err) } - // create the simulation manager and define the order of the modules for deterministic simulations - // Note this upgrade handler is just an example and may not be exactly what you need to implement. // See https://docs.cosmos.network/v0.45/building-modules/upgrade.html app.UpgradeKeeper.SetUpgradeHandler( @@ -743,7 +741,7 @@ func New( }, ) if err != nil { - panic(fmt.Errorf("failed to create AnteHandler: %s", err)) + panic(fmt.Errorf("failed to create AnteHandler: %w", err)) } app.SetInitChainer(app.InitChainer) @@ -1060,7 +1058,5 @@ func MakeTestEncodingConfig() appencoding.EncodingConfig { func makeEncodingConfig() appencoding.EncodingConfig { encodingConfig := appencoding.MakeTestEncodingConfig() - // std.RegisterLegacyAminoCodec(encodingConfig.Amino) - // std.RegisterInterfaces(encodingConfig.InterfaceRegistry) return encodingConfig } diff --git a/app/sovereign/app.go b/app/sovereign/app.go index 67386cc70a..328fb5e4b9 100644 --- a/app/sovereign/app.go +++ b/app/sovereign/app.go @@ -597,7 +597,7 @@ func New( }, ) if err != nil { - panic(fmt.Errorf("failed to create AnteHandler: %s", err)) + panic(fmt.Errorf("failed to create AnteHandler: %w", err)) } app.SetAnteHandler(anteHandler) diff --git a/docs/build_deploy.sh b/docs/build_deploy.sh index 2e948cb55d..ba262e43b2 100755 --- a/docs/build_deploy.sh +++ b/docs/build_deploy.sh @@ -1,12 +1,13 @@ #!/bin/sh -echo "######### BUILD DOCS #########" - -# pull in the versions from versions.json -source ./sync_versions.sh - +# build versioned docs prepared by sync_versions.sh echo "building docusaurus main docs" npm ci && npm run build + +# copy "legacy" docs directory into the final build directory +# the directory is in "docs/legacy" of the source branch (legacy-docs-page) +# the build environment must be in "./docs" for this to work as expected +git checkout origin/legacy-docs-page -- legacy cp -r ./legacy ./build/ mv build ~/output echo "done building docusaurus main docs" diff --git a/docs/docs/adrs/adr-004-denom-dos-fixes.md b/docs/docs/adrs/adr-004-denom-dos-fixes.md index 7ca260f4f6..354eac337f 100644 --- a/docs/docs/adrs/adr-004-denom-dos-fixes.md +++ b/docs/docs/adrs/adr-004-denom-dos-fixes.md @@ -1,6 +1,6 @@ --- sidebar_position: 2 -title: ADR Template +title: Denom DOS fixes --- # ADR 004: Denom DOS fixes diff --git a/docs/docs/adrs/adr-005-cryptographic-equivocation-verification.md b/docs/docs/adrs/adr-005-cryptographic-equivocation-verification.md index 1e1a3f08cf..f47a658f4c 100644 --- a/docs/docs/adrs/adr-005-cryptographic-equivocation-verification.md +++ b/docs/docs/adrs/adr-005-cryptographic-equivocation-verification.md @@ -87,7 +87,7 @@ The application will, in turn, punish the malicious validator through jailing, t In the first part of the feature, we introduce a new endpoint: `HandleConsumerMisbehaviour(ctx sdk.Context, misbehaviour ibctmtypes.Misbehaviour)`. The main idea is to leverage the current IBC misbehaviour handling and update it to solely jail and slash the validators that performed a light client attack. Note that in this context, we assume that chains connected via a light client -share the same validator set, as is the case with Replicated Security. +share a subset of the validator set of the provider. This endpoint reuses the IBC client libraries to verify that the misbehaviour headers would have fooled the light client. Additionally, it’s crucial that the endpoint logic results in the slashing and jailing of validators under the same conditions diff --git a/docs/docs/adrs/adr-007-pause-unbonding-on-eqv-prop.md b/docs/docs/adrs/adr-007-pause-unbonding-on-eqv-prop.md index ce23051582..2e8e95d67f 100644 --- a/docs/docs/adrs/adr-007-pause-unbonding-on-eqv-prop.md +++ b/docs/docs/adrs/adr-007-pause-unbonding-on-eqv-prop.md @@ -1,6 +1,6 @@ --- sidebar_position: 2 -title: ADR Template +title: Pause validator unbonding during equivocation proposal --- # ADR 007: Pause validator unbonding during equivocation proposal diff --git a/docs/docs/adrs/adr-008-throttle-retries.md b/docs/docs/adrs/adr-008-throttle-retries.md index 710443bb65..8aad6153d4 100644 --- a/docs/docs/adrs/adr-008-throttle-retries.md +++ b/docs/docs/adrs/adr-008-throttle-retries.md @@ -19,7 +19,7 @@ Accepted For context on why the throttling mechanism exists, see [ADR 002](./adr-002-throttle.md). -Note the terms slash throttling and jail throttling are synonymous, since in replicated security a `SlashPacket` simply jails a validator for downtime infractions. +Note the terms slash throttling and jail throttling are synonymous, since in Interchain Security a `SlashPacket` simply jails a validator for downtime infractions. Currently the throttling mechanism is designed so that provider logic (slash meter, etc.) dictates how many `SlashPackets` can be handled over time. Throttled `SlashPackets` are persisted on the provider, leading to multiple possible issues. Namely: diff --git a/docs/docs/adrs/adr-009-soft-opt-out.md b/docs/docs/adrs/adr-009-soft-opt-out.md index b8dbc27124..defe885a96 100644 --- a/docs/docs/adrs/adr-009-soft-opt-out.md +++ b/docs/docs/adrs/adr-009-soft-opt-out.md @@ -7,11 +7,12 @@ title: Soft Opt-Out ## Changelog * 6/13/23: Initial draft of ADR. Feature already implemented and in production. +* 6/19/24: Change status to deprecated ## Status -Accepted - +Deprecated +Deprecated by [Partial Set Security](adr-015-partial-set-security.md) ## Context Some small validators may not have the resources needed to validate all consumer chains. Therefore a need exists to allow the bottom `x%` of validators to opt-out of validating a consumer chain. Meaning downtime infractions for these validators are dropped without ever reaching the provider. diff --git a/docs/docs/adrs/adr-010-standalone-changeover.md b/docs/docs/adrs/adr-010-standalone-changeover.md index e181b4c1f1..ed320738f5 100644 --- a/docs/docs/adrs/adr-010-standalone-changeover.md +++ b/docs/docs/adrs/adr-010-standalone-changeover.md @@ -14,7 +14,7 @@ Implemented ## Context -[Stride](https://github.com/Stride-Labs/stride) will be the first consumer to "changeover" from a standalone cosmos blockchain, to a consumer chain secured by the Cosmos Hub. This document will outline the changes made to the replicated security protocol to support this changeover process. +[Stride](https://github.com/Stride-Labs/stride) will be the first consumer to "changeover" from a standalone cosmos blockchain, to a consumer chain secured by the Cosmos Hub. This document outlines the changes made to support this changeover process. ## Decision @@ -26,7 +26,7 @@ The first step in the changeover process is to submit a ConsumerAdditionProposal Next, the standalone consumer chain runs an upgrade which adds the CCV module, and is properly setup to execute changeover logic. -The consumer upgrade height must be reached after the provider has created the new IBC client. Any replicated security validators who will run the consumer, but are not a part of the sovereign validator set, must sync up a full node before the consumer upgrade height is reached. The disk state of said full node will be used to run the consumer chain after the changeover has completed. +The consumer upgrade height must be reached after the provider has created the new IBC client. Any Interchain Security validators who will run the consumer, but are not a part of the sovereign validator set, must sync up a full node before the consumer upgrade height is reached. The disk state of said full node will be used to run the consumer chain after the changeover has completed. The meat of the changeover logic is that the consumer chain validator set is updated to that which was specified by the provider via the queried consumer genesis. Validators which were a part of the old set, but not the new set, are given zero voting power. Once these validator updates are given to Comet, the set is committed, and in effect 2 blocks later (see [FirstConsumerHeight](https://github.com/cosmos/interchain-security/blob/f10e780df182158d95a30f7cf94588b2d0479309/x/ccv/consumer/keeper/changeover.go#L19)). diff --git a/docs/docs/adrs/adr-017-allowing-inactive-validators.md b/docs/docs/adrs/adr-017-allowing-inactive-validators.md index 9a3715f135..f76f5f7069 100644 --- a/docs/docs/adrs/adr-017-allowing-inactive-validators.md +++ b/docs/docs/adrs/adr-017-allowing-inactive-validators.md @@ -67,7 +67,7 @@ set of consumer chains. To mitigate risks from validators with little stake, we introduce a minimum stake requirement for validators to be able to validate on consumer chains, which can be set by each consumer chain independently, with a default value set by the provider chain. -Additionally, we indepdently allow individual consumer chains to disable this feature, which will disallow validators from outside the provider active set from validating on the consumer chain and revert them to the previous behaviour of only considering validators of the provider that are part of the active consensus validator set. +Additionally, we independently allow individual consumer chains to disable this feature, which will disallow validators from outside the provider active set from validating on the consumer chain and revert them to the previous behaviour of only considering validators of the provider that are part of the active consensus validator set. Additional risk mitigations are to increase the active set size slowly, and to monitor the effects on the network closely. For the first iteration, we propose to increase the active set size to 200 validators (while keeping the consensus validators to 180), thus letting the 20 validators with the most stake outside of the active set validate on consumer chains. diff --git a/docs/docs/adrs/intro.md b/docs/docs/adrs/intro.md index fc7d06a152..110698c518 100644 --- a/docs/docs/adrs/intro.md +++ b/docs/docs/adrs/intro.md @@ -1,13 +1,13 @@ --- sidebar_position: 1 -title: ADRs +title: Overview --- -# Architecture Decision Records (ADR) +# Overview This is a location to record all high-level architecture decisions in the Interchain Security project. -You can read more about the ADR concept in this [blog post](https://product.reverb.com/documenting-architecture-decisions-the-reverb-way-a3563bb24bd0#.78xhdix6t). +You can read more about the Architecture Decision Record (ADR) concept in this [blog post](https://product.reverb.com/documenting-architecture-decisions-the-reverb-way-a3563bb24bd0#.78xhdix6t). An ADR should provide: @@ -26,7 +26,7 @@ If recorded decisions turned out to be lacking, convene a discussion, record the Note the context/background should be written in the present tense. -To suggest an ADR, please make use of the [ADR template](./adr-template.md) provided. +To suggest an ADR, please make use of the [ADR template](./templates/adr-template.md) provided. ## Table of Contents @@ -37,7 +37,6 @@ To suggest an ADR, please make use of the [ADR template](./adr-template.md) prov - [ADR 004: Denom DOS fixes](./adr-004-denom-dos-fixes.md) - [ADR 005: Cryptographic verification of equivocation evidence](./adr-005-cryptographic-equivocation-verification.md) - [ADR 008: Throttle with retries](./adr-008-throttle-retries.md) -- [ADR 009: Soft Opt-Out](./adr-009-soft-opt-out.md) - [ADR 010: Standalone to Consumer Changeover](./adr-010-standalone-changeover.md) - [ADR 013: Slashing on the provider for consumer equivocation](./adr-013-equivocation-slashing.md) - [ADR 014: Epochs](./adr-014-epochs.md) @@ -57,3 +56,4 @@ To suggest an ADR, please make use of the [ADR template](./adr-template.md) prov ### Deprecated - [ADR 003: Equivocation governance proposal](./adr-003-equivocation-gov-proposal.md) +- [ADR 009: Soft Opt-Out](./adr-009-soft-opt-out.md) diff --git a/docs/docs/adrs/adr-template.md b/docs/docs/adrs/templates/adr-template.md similarity index 100% rename from docs/docs/adrs/adr-template.md rename to docs/docs/adrs/templates/adr-template.md diff --git a/docs/docs/consumer-development/app-integration.md b/docs/docs/consumer-development/app-integration.md index 73c034d073..0671db05a7 100644 --- a/docs/docs/consumer-development/app-integration.md +++ b/docs/docs/consumer-development/app-integration.md @@ -10,8 +10,9 @@ To help you on your journey, the ICS team has provided multiple examples of a mi The source code for the example app can be found [here](https://github.com/cosmos/interchain-security/tree/main/app/consumer). -Please note that consumer chains do not implement the staking module - the validator set is replicated from the provider, meaning that the provider and the consumer use the same validator set and their stake on the provider directly determines their stake on the consumer. -At present there is no opt-in mechanism available, so all validators of the provider must also validate on the provider chain. +Please note that consumer chains do not implement the staking module - part of the validator set of the provider is replicated over to the consumer, +meaning that the consumer uses a subset of provider validator set and the stake of the validators on the provider determines their stake on the consumer. +Note that after the introduction of [Partial Set Security](../adrs/adr-015-partial-set-security.md), not all the provider validators have to validate a consumer chain (e.g., if `top_N != 100`). Your chain should import the consumer module from `x/consumer` and register it in the correct places in your `app.go`. The `x/consumer` module will allow your chain to communicate with the provider using the ICS protocol. The module handles all IBC communication with the provider, and it is a simple drop-in. diff --git a/docs/docs/consumer-development/changeover-procedure.md b/docs/docs/consumer-development/changeover-procedure.md index 332bade599..72da738d49 100644 --- a/docs/docs/consumer-development/changeover-procedure.md +++ b/docs/docs/consumer-development/changeover-procedure.md @@ -4,7 +4,7 @@ sidebar_position: 5 # Changeover Procedure -Chains that were not initially launched as consumers of replicated security can still participate in the protocol and leverage the economic security of the provider chain. The process where a standalone chain transitions to being a replicated consumer chain is called the **changeover procedure** and is part of the interchain security protocol. After the changeover, the new consumer chain will retain all existing state, including the IBC clients, connections and channels already established by the chain. +Chains that were **not** initially launched as consumers of Interchain Security can still participate in the protocol and leverage the economic security of the provider chain. The process where a standalone chain transitions to being a replicated consumer chain is called the **changeover procedure** and is part of the interchain security protocol. After the changeover, the new consumer chain will retain all existing state, including the IBC clients, connections and channels already established by the chain. The relevant protocol specifications are available below: * [ICS-28 with existing chains](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#channel-initialization-existing-chains). @@ -90,7 +90,7 @@ This `ConsumerGenesis` must be available on the standalone chain during the on-c ### 4. standalone chain upgrade -Performing the on-chain upgrade on the standalone chain will add the `ccv/consumer` module and allow the chain to become a `consumer` of replicated security. +Performing the on-chain upgrade on the standalone chain will add the `ccv/consumer` module and allow the chain to become a `consumer` of Interchain Security. :::caution The `ConsumerGenesis` must be exported to a file and placed in the correct folder on the standalone chain before the upgrade. @@ -154,9 +154,9 @@ Example of a consumer chain addition proposal (compare with the [ConsumerAdditio ```js // ConsumerAdditionProposal is a governance proposal on the provider chain to spawn a new consumer chain or add a standalone chain. -// If it passes, then all validators on the provider chain are expected to validate the consumer chain at spawn time. -// It is recommended that spawn time occurs after the proposal end time and that it is scheduled to happen before the standalone chain upgrade -// that sill introduce the ccv module. +// If it passes, then a subset (i.e., depends on `top_N` and on the power shaping parameters) of validators on the provider chain are expected +// to validate the consumer chain at spawn time. It is recommended that spawn time occurs after the proposal end time and that it is +// scheduled to happen before the standalone chain upgrade that sill introduce the ccv module. { // Title of the proposal "title": "Changeover Standalone chain", @@ -212,9 +212,34 @@ Example of a consumer chain addition proposal (compare with the [ConsumerAdditio // it is most relevant for chains performing a standalone to consumer changeover // in order to maintain the existing ibc transfer channel "distribution_transmission_channel": "channel-123" // NOTE: use existing transfer channel if available + // Corresponds to the percentage of validators that have to validate the chain under the Top N case. + // For example, 53 corresponds to a Top 53% chain, meaning that the top 53% provider validators by voting power + // have to validate the proposed consumer chain. top_N can either be 0 or any value in [50, 100]. + // A chain can join with top_N == 0 as an Opt In chain, or with top_N ∈ [50, 100] as a Top N chain. + "top_N": 95, + // Corresponds to the maximum power (percentage-wise) a validator can have on the consumer chain. For instance, if + // `validators_power_cap` is set to 32, it means that no validator can have more than 32% of the voting power on the + // consumer chain. Note that this might not be feasible. For example, think of a consumer chain with only + // 5 validators and with `validators_power_cap` set to 10%. In such a scenario, at least one validator would need + // to have more than 20% of the total voting power. Therefore, `validators_power_cap` operates on a best-effort basis. + "validators_power_cap": 0, + // Corresponds to the maximum number of validators that can validate a consumer chain. + // Only applicable to Opt In chains. Setting `validator_set_cap` on a Top N chain is a no-op. + "validator_set_cap": 0, + // Corresponds to a list of provider consensus addresses of validators that are the ONLY ones that can validate + // the consumer chain. + "allowlist": [], + // Corresponds to a list of provider consensus addresses of validators that CANNOT validate the consumer chain. + "denylist": [] } ``` +:::info +As seen in the `ConsumerAdditionProposal` example above, the changeover procedure can be used together with [Partial Set Security](../adrs/adr-015-partial-set-security.md). +This means, that a standalone chain can choose to only be validated by some of the validators of the provider chain by setting `top_N` appropriately, or by +additionally setting a validators-power cap, validator-set cap, etc. by using the [power-shaping parameters](../features/power-shaping.md). +::: + ## 3. Submit an Upgrade Proposal & Prepare for Changeover This proposal should add the ccv `consumer` module to your chain. diff --git a/docs/docs/features/democracy-modules.md b/docs/docs/features/democracy-modules.md index 5add40c67e..a89466d863 100644 --- a/docs/docs/features/democracy-modules.md +++ b/docs/docs/features/democracy-modules.md @@ -1,3 +1,7 @@ +--- +sidebar_position: 5 +--- + # Democracy modules This section is relevant for chains transitioning from a standalone chain and new consumer chains that require some functionality from the `x/staking` module. diff --git a/docs/docs/features/partial-set-security.md b/docs/docs/features/partial-set-security.md index 6405fe092b..4e221583b5 100644 --- a/docs/docs/features/partial-set-security.md +++ b/docs/docs/features/partial-set-security.md @@ -1,5 +1,5 @@ --- -sidebar_position: 5 +sidebar_position: 6 --- # Partial Set Security diff --git a/docs/docs/features/power-shaping.md b/docs/docs/features/power-shaping.md index 2f51aef8f0..0b065c3ac0 100644 --- a/docs/docs/features/power-shaping.md +++ b/docs/docs/features/power-shaping.md @@ -1,3 +1,7 @@ +--- +sidebar_position: 7 +--- + # Power Shaping To give consumer chains more flexibility in choosing their validator set, Interchain Security offers diff --git a/docs/docs/features/reward-distribution.md b/docs/docs/features/reward-distribution.md index cc055107c9..e042605cdd 100644 --- a/docs/docs/features/reward-distribution.md +++ b/docs/docs/features/reward-distribution.md @@ -8,7 +8,7 @@ sidebar_position: 2 Sending and distributing rewards from consumer chains to the provider chain is handled by the [Reward Distribution sub-protocol](https://github.com/cosmos/ibc/blob/main/spec/app/ics-028-cross-chain-validation/overview_and_basic_concepts.md#reward-distribution). Consumer chains have the option of sharing (a portion of) their block rewards (inflation tokens and fees) with the provider chain validators and delegators. -In replicated security, block rewards are periodically sent from the consumer to the provider according to consumer chain parameters using an IBC transfer channel. +In Interchain Security, block rewards are periodically sent from the consumer to the provider according to consumer chain parameters using an IBC transfer channel. This channel is created during consumer chain initialization, unless it is provided via the `ConsumerAdditionProposal` when adding a new consumer chain. For more details, see the [reward distribution parameters](../introduction/params.md#reward-distribution-parameters). diff --git a/docs/docs/frequently-asked-questions.md b/docs/docs/frequently-asked-questions.md index c78dc89f0f..27623d22f6 100644 --- a/docs/docs/frequently-asked-questions.md +++ b/docs/docs/frequently-asked-questions.md @@ -80,7 +80,7 @@ Consumer chain upgrades are unlikely to impact the provider chain, as long as th ## How can I connect to the testnets? -Check out the [Joining Replicated Security testnet](./validators/joining-testnet.md) section. +Check out the [Joining Interchain Security testnet](./validators/joining-testnet.md) section. ## How do I start using ICS? diff --git a/docs/docs/index.mdx b/docs/docs/index.mdx index 9ad9a3e2da..2086a4f384 100644 --- a/docs/docs/index.mdx +++ b/docs/docs/index.mdx @@ -10,6 +10,6 @@ import homeCards from '/src/components/Cards/card-data/home-cards'; Welcome to the official Interchain Security module documentation for Cosmos-SDK based chains. -Here you can find information about replicated security, consumer chain development and instructions for validator onboarding. +Here you can find information about Interchain Security, consumer chain development and instructions for validator onboarding. diff --git a/docs/docs/introduction/terminology.md b/docs/docs/introduction/terminology.md index dd9cd57602..63668c9b43 100644 --- a/docs/docs/introduction/terminology.md +++ b/docs/docs/introduction/terminology.md @@ -29,14 +29,14 @@ A protocol built on IBC that allows delegators on a cosmos chain to re-delegate ## Consumer Chain Chain that is secured by the validator set of the provider, instead of its own. -Replicated security allows the provider chain validator set to validate blocks on the consumer chain. +Interchain Security allows a subset of the provider chain's validator set to validate blocks on the consumer chain. ## Standalone Chain -Chain that is secured by its own validator set. This chain does not participate in replicated security. +Chain that is secured by its own validator set. This chain does not participate in Interchain Security. Standalone chains may sometimes be called "sovereign" - the terms are synonymous. ## Changeover Procedure -Chains that were not initially launched as consumers of replicated security can still participate in the protocol and leverage the economic security of the provider chain. The process where a standalone chain transitions to being a replicated consumer chain is called the **changeover procedure** and is part of the interchain security protocol. After the changeover, the new consumer chain will retain all existing state, including the IBC clients, connections and channels already established by the chain. +Chains that were not initially launched as consumers of Interchain Security can still participate in the protocol and leverage the economic security of the provider chain. The process where a standalone chain transitions to being a replicated consumer chain is called the **changeover procedure** and is part of the interchain security protocol. After the changeover, the new consumer chain will retain all existing state, including the IBC clients, connections and channels already established by the chain. diff --git a/docs/docs/validators/changeover-procedure.md b/docs/docs/validators/changeover-procedure.md index edb738bed4..4ce6cb4714 100644 --- a/docs/docs/validators/changeover-procedure.md +++ b/docs/docs/validators/changeover-procedure.md @@ -73,16 +73,16 @@ Yes. Please assign your consensus key as stated above. -### Can I set up a new node to validate the `standalone/consumer` chain after it transitions to replicated security? +### Can I set up a new node to validate the `standalone/consumer` chain after it transitions to Interchain Security? Yes. If you are planning to do this please make sure that the node is synced with `standalone` network and to submit `AssignConsumerKey` tx before `spawn_time`. -### What happens to the `standalone` validator set after it transitions to replicated security? +### What happens to the `standalone` validator set after it transitions to Interchain Security? -The `standalone` chain validators will stop being validators after the first 3 blocks are created while using replicated security. The `standalone` validators will become **governors** and still can receive delegations if the `consumer` chain is using the `consumer-democracy` module. +The `standalone` chain validators will stop being validators after the first 3 blocks are created while using Interchain Security. The `standalone` validators will become **governors** and still can receive delegations if the `consumer` chain is using the `consumer-democracy` module. **Governors DO NOT VALIDATE BLOCKS**. diff --git a/docs/docs/validators/joining-testnet.md b/docs/docs/validators/joining-testnet.md index e07a28e7c3..d61be07e12 100644 --- a/docs/docs/validators/joining-testnet.md +++ b/docs/docs/validators/joining-testnet.md @@ -12,7 +12,7 @@ The experience gained in the testnet will prepare you for validating interchain :::tip Provider and consumer chain represent distinct networks and infrastructures operated by the same validator set. -For general information about running cosmos-sdk based chains check out the [validator basics](https://hub.cosmos.network/main/validators/validator-setup) and [Running a Node section](https://docs.cosmos.network/main/run-node/run-node) of Cosmos SDK docs. +For general information about running cosmos-sdk based chains check out the [validator basics](https://hub.cosmos.network/main/validators/validator-setup) and [Running a Node section](https://docs.cosmos.network/main/run-node/run-node) of Cosmos SDK docs ::: ## Joining the provider chain diff --git a/docs/docs/validators/overview.md b/docs/docs/validators/overview.md index ff22edb560..c1dbaea0e2 100644 --- a/docs/docs/validators/overview.md +++ b/docs/docs/validators/overview.md @@ -4,17 +4,22 @@ sidebar_position: 1 # Overview :::tip -We advise that you join the [Replicated Security testnet](https://github.com/cosmos/testnets/tree/master/interchain-security) to gain hands-on experience with running consumer chains. +We advise that you join the [Interchain Security testnet](https://github.com/cosmos/testnets/tree/master/interchain-security) to gain hands-on experience with running consumer chains. ::: -At present, replicated security requires all validators of the provider chain (ie. Cosmos Hub) to run validator nodes for all governance-approved consumer chains. +At present, Interchain Security requires some or all the validators of the provider chain (ie. Cosmos Hub) to run validator nodes for a consumer chain. +Whether a validator has to run a validator node for a consumer chain depends on whether the consumer chain is a Top N or an +Opt-In chain and also on the [power-shaping features](../features/power-shaping.md). A validator can use the +[`has-to-validate` query](./partial-set-security-for-validators.md#which-chains-does-a-validator-have-to-validate) +to keep track of all the chains it has to validate. -Once a `ConsumerAdditionProposal` passes, validators need to prepare to run the consumer chain binaries (these will be linked in their proposals) and set up validator nodes on governance-approved consumer chains. -Provider chain and consumer chains represent standalone chains that only share the validator set ie. the same validator operators are tasked with running all chains. +Once a `ConsumerAdditionProposal` passes, relevant validators need to prepare to run the consumer chain binaries (these will be linked in their proposals) and set up validator nodes on governance-approved consumer chains. + +Provider chain and consumer chains represent standalone chains that only share part of the validator set. :::info -To validate a consumer chain and be eligible for rewards validators are required to be in the active set of the provider chain (first 180 validators for Cosmos Hub). +To validate a consumer chain and be eligible for rewards, validators are required to be in the active set of the provider chain (first 180 validators for Cosmos Hub). ::: ## Startup sequence overview diff --git a/docs/docs/validators/withdraw_rewards.md b/docs/docs/validators/withdraw_rewards.md index 15d27b3006..caf37f22c7 100644 --- a/docs/docs/validators/withdraw_rewards.md +++ b/docs/docs/validators/withdraw_rewards.md @@ -16,7 +16,7 @@ the actual values of the `NumberOfEpochsToStartReceivingRewards` and `BlocksPerE Here are example steps for withdrawing rewards from consumer chains in the provider chain :::info -The examples used are from `rs-testnet`, the replicated security persistent testnet. +The examples used are from `rs-testnet`, the Interchain Security persistent testnet. Validator operator address: `cosmosvaloper1e5yfpc8l6g4808fclmlyd38tjgxuwshnmjkrq6` Self-delegation address: `cosmos1e5yfpc8l6g4808fclmlyd38tjgxuwshn7xzkvf` diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index e73d5e2a21..17ff9aeb7b 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -56,6 +56,7 @@ const config = { }, remarkPlugins: [remarkMath], rehypePlugins: [rehypeKatex], + exclude: ["**/templates/*"], }, theme: { diff --git a/go.mod b/go.mod index 35be2495a4..2e102870af 100644 --- a/go.mod +++ b/go.mod @@ -5,10 +5,10 @@ go 1.22.2 require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.3.0 - github.com/cometbft/cometbft v0.38.7 + github.com/cometbft/cometbft v0.38.9 github.com/cometbft/cometbft-db v0.12.0 // indirect - github.com/cosmos/cosmos-sdk v0.50.5 - github.com/cosmos/gogoproto v1.4.11 + github.com/cosmos/cosmos-sdk v0.50.7 + github.com/cosmos/gogoproto v1.4.12 github.com/cosmos/ics23/go v0.10.0 github.com/golang/mock v1.6.0 github.com/golang/protobuf v1.5.4 @@ -20,12 +20,12 @@ require ( github.com/spf13/cobra v1.8.0 github.com/stretchr/testify v1.9.0 github.com/tidwall/gjson v1.17.1 - golang.org/x/crypto v0.21.0 // indirect - golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 - golang.org/x/net v0.23.0 // indirect - golang.org/x/sys v0.18.0 // indirect - google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 // indirect - google.golang.org/grpc v1.62.1 + golang.org/x/crypto v0.22.0 // indirect + golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 + golang.org/x/net v0.24.0 // indirect + golang.org/x/sys v0.19.0 // indirect + google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // indirect + google.golang.org/grpc v1.63.2 google.golang.org/protobuf v1.33.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -36,7 +36,7 @@ require ( cloud.google.com/go/compute/metadata v0.2.3 // indirect cloud.google.com/go/iam v1.1.6 // indirect cloud.google.com/go/storage v1.36.0 // indirect - cosmossdk.io/api v0.7.3 + cosmossdk.io/api v0.7.5 cosmossdk.io/core v0.11.0 cosmossdk.io/depinject v1.0.0-alpha.4 // indirect filippo.io/edwards25519 v1.0.0 // indirect @@ -48,14 +48,14 @@ require ( github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/cenkalti/backoff/v4 v4.1.3 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chzyer/readline v1.5.1 // indirect github.com/cockroachdb/apd/v2 v2.0.2 // indirect github.com/cosmos/btcutil v1.0.5 // indirect - github.com/cosmos/cosmos-proto v1.0.0-beta.4 + github.com/cosmos/cosmos-proto v1.0.0-beta.5 github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect - github.com/cosmos/iavl v1.0.1 // indirect + github.com/cosmos/iavl v1.1.2 // indirect github.com/cosmos/ledger-cosmos-go v0.13.3 // indirect github.com/danieljoos/wincred v1.1.2 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc @@ -72,7 +72,7 @@ require ( github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect github.com/gogo/googleapis v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v1.2.0 // indirect + github.com/golang/glog v1.2.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/snappy v0.0.4 // indirect github.com/google/btree v1.1.2 // indirect @@ -111,13 +111,13 @@ require ( github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mtibben/percent v0.2.1 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect - github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc // indirect + github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.18.0 // indirect - github.com/prometheus/client_model v0.6.0 // indirect - github.com/prometheus/common v0.47.0 // indirect - github.com/prometheus/procfs v0.12.0 // indirect + github.com/prometheus/client_golang v1.19.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.52.2 // indirect + github.com/prometheus/procfs v0.13.0 // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rs/cors v1.8.3 // indirect github.com/sasha-s/go-deadlock v0.3.1 // indirect @@ -135,10 +135,9 @@ require ( go.etcd.io/bbolt v1.4.0-alpha.0.0.20240404170359-43604f3112c5 // indirect go.opencensus.io v0.24.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect - golang.org/x/term v0.18.0 // indirect + golang.org/x/term v0.19.0 // indirect golang.org/x/text v0.14.0 // indirect google.golang.org/api v0.171.0 // indirect - google.golang.org/appengine v1.6.8 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect nhooyr.io/websocket v1.8.6 // indirect @@ -150,18 +149,18 @@ require ( cosmossdk.io/client/v2 v2.0.0-beta.1 cosmossdk.io/collections v0.4.0 cosmossdk.io/log v1.3.1 - cosmossdk.io/store v1.0.2 + cosmossdk.io/store v1.1.0 cosmossdk.io/tools/confix v0.1.1 cosmossdk.io/x/evidence v0.1.0 cosmossdk.io/x/feegrant v0.1.0 - cosmossdk.io/x/tx v0.13.1 + cosmossdk.io/x/tx v0.13.3 cosmossdk.io/x/upgrade v0.1.1 github.com/cosmos/cosmos-db v1.0.2 github.com/cosmos/ibc-go/modules/capability v1.0.0 github.com/cosmos/ibc-go/v8 v8.2.1 github.com/informalsystems/itf-go v0.0.1 github.com/spf13/viper v1.18.2 - golang.org/x/mod v0.15.0 + golang.org/x/mod v0.17.0 google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2 ) @@ -186,8 +185,9 @@ require ( github.com/google/flatbuffers v1.12.1 // indirect github.com/google/s2a-go v0.1.7 // indirect github.com/hashicorp/go-hclog v1.5.0 // indirect - github.com/hashicorp/go-metrics v0.5.2 // indirect + github.com/hashicorp/go-metrics v0.5.3 // indirect github.com/hashicorp/go-plugin v1.5.2 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/hashicorp/yamux v0.1.1 // indirect github.com/iancoleman/strcase v0.3.0 // indirect github.com/kr/pretty v0.3.1 // indirect @@ -207,9 +207,10 @@ require ( go.opentelemetry.io/otel/trace v1.24.0 // indirect go.uber.org/mock v0.2.0 // indirect go.uber.org/multierr v1.10.0 // indirect - golang.org/x/sync v0.6.0 // indirect + golang.org/x/sync v0.7.0 // indirect golang.org/x/time v0.5.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240314234333-6e1732d8331c // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda // indirect gotest.tools/v3 v3.5.1 // indirect ) diff --git a/go.sum b/go.sum index 6de4eeaa49..4f3e6b9d86 100644 --- a/go.sum +++ b/go.sum @@ -184,8 +184,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.7.3 h1:V815i8YOwOAQa1rLCsSMjVG5Gnzs02JLq+l7ks8s1jk= -cosmossdk.io/api v0.7.3/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= +cosmossdk.io/api v0.7.5 h1:eMPTReoNmGUm8DeiQL9DyM8sYDjEhWzL1+nLbI9DqtQ= +cosmossdk.io/api v0.7.5/go.mod h1:IcxpYS5fMemZGqyYtErK7OqvdM0C8kdW3dq8Q/XIG38= cosmossdk.io/client/v2 v2.0.0-beta.1 h1:XkHh1lhrLYIT9zKl7cIOXUXg2hdhtjTPBUfqERNA1/Q= cosmossdk.io/client/v2 v2.0.0-beta.1/go.mod h1:JEUSu9moNZQ4kU3ir1DKD5eU4bllmAexrGWjmb9k8qU= cosmossdk.io/collections v0.4.0 h1:PFmwj2W8szgpD5nOd8GWH6AbYNi1f2J6akWXJ7P5t9s= @@ -200,8 +200,8 @@ cosmossdk.io/log v1.3.1 h1:UZx8nWIkfbbNEWusZqzAx3ZGvu54TZacWib3EzUYmGI= cosmossdk.io/log v1.3.1/go.mod h1:2/dIomt8mKdk6vl3OWJcPk2be3pGOS8OQaLUM/3/tCM= cosmossdk.io/math v1.3.0 h1:RC+jryuKeytIiictDslBP9i1fhkVm6ZDmZEoNP316zE= cosmossdk.io/math v1.3.0/go.mod h1:vnRTxewy+M7BtXBNFybkuhSH4WfedVAAnERHgVFhp3k= -cosmossdk.io/store v1.0.2 h1:lSg5BTvJBHUDwswNNyeh4K/CbqiHER73VU4nDNb8uk0= -cosmossdk.io/store v1.0.2/go.mod h1:EFtENTqVTuWwitGW1VwaBct+yDagk7oG/axBMPH+FXs= +cosmossdk.io/store v1.1.0 h1:LnKwgYMc9BInn9PhpTFEQVbL9UK475G2H911CGGnWHk= +cosmossdk.io/store v1.1.0/go.mod h1:oZfW/4Fc/zYqu3JmQcQdUJ3fqu5vnYTn3LZFFy8P8ng= cosmossdk.io/tools/confix v0.1.1 h1:aexyRv9+y15veH3Qw16lxQwo+ki7r2I+g0yNTEFEQM8= cosmossdk.io/tools/confix v0.1.1/go.mod h1:nQVvP1tHsGXS83PonPVWJtSbddIqyjEw99L4M3rPJyQ= cosmossdk.io/x/circuit v0.1.0 h1:IAej8aRYeuOMritczqTlljbUVHq1E85CpBqaCTwYgXs= @@ -210,8 +210,8 @@ cosmossdk.io/x/evidence v0.1.0 h1:J6OEyDl1rbykksdGynzPKG5R/zm6TacwW2fbLTW4nCk= cosmossdk.io/x/evidence v0.1.0/go.mod h1:hTaiiXsoiJ3InMz1uptgF0BnGqROllAN8mwisOMMsfw= cosmossdk.io/x/feegrant v0.1.0 h1:c7s3oAq/8/UO0EiN1H5BIjwVntujVTkYs35YPvvrdQk= cosmossdk.io/x/feegrant v0.1.0/go.mod h1:4r+FsViJRpcZif/yhTn+E0E6OFfg4n0Lx+6cCtnZElU= -cosmossdk.io/x/tx v0.13.1 h1:Mg+EMp67Pz+NukbJqYxuo8uRp7N/a9uR+oVS9pONtj8= -cosmossdk.io/x/tx v0.13.1/go.mod h1:CBCU6fsRVz23QGFIQBb1DNX2DztJCf3jWyEkHY2nJQ0= +cosmossdk.io/x/tx v0.13.3 h1:Ha4mNaHmxBc6RMun9aKuqul8yHiL78EKJQ8g23Zf73g= +cosmossdk.io/x/tx v0.13.3/go.mod h1:I8xaHv0rhUdIvIdptKIqzYy27+n2+zBVaxO6fscFhys= cosmossdk.io/x/upgrade v0.1.1 h1:aoPe2gNvH+Gwt/Pgq3dOxxQVU3j5P6Xf+DaUJTDZATc= cosmossdk.io/x/upgrade v0.1.1/go.mod h1:MNLptLPcIFK9CWt7Ra//8WUZAxweyRDNcbs5nkOcQy0= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= @@ -289,8 +289,8 @@ github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInq github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= @@ -330,8 +330,8 @@ github.com/cockroachdb/redact v1.1.5/go.mod h1:BVNblN9mBWFyMyqK1k3AAiSxhvhfK2oOZ github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06 h1:zuQyyAKVxetITBuuhv3BI9cMrmStnpT18zmgmTxunpo= github.com/cockroachdb/tokenbucket v0.0.0-20230807174530-cc333fc44b06/go.mod h1:7nc4anLGjupUW/PeY5qiNYsdNXj7zopG+eqsS7To5IQ= github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= -github.com/cometbft/cometbft v0.38.7 h1:ULhIOJ9+LgSy6nLekhq9ae3juX3NnQUMMPyVdhZV6Hk= -github.com/cometbft/cometbft v0.38.7/go.mod h1:HIyf811dFMI73IE0F7RrnY/Fr+d1+HuJAgtkEpQjCMY= +github.com/cometbft/cometbft v0.38.9 h1:cJBJBG0mPKz+sqelCi/hlfZjadZQGdDNnu6YQ1ZsUHQ= +github.com/cometbft/cometbft v0.38.9/go.mod h1:xOoGZrtUT+A5izWfHSJgl0gYZUE7lu7Z2XIS1vWG/QQ= github.com/cometbft/cometbft-db v0.12.0 h1:v77/z0VyfSU7k682IzZeZPFZrQAKiQwkqGN0QzAjMi0= github.com/cometbft/cometbft-db v0.12.0/go.mod h1:aX2NbCrjNVd2ZajYxt1BsiFf/Z+TQ2MN0VxdicheYuw= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= @@ -344,19 +344,19 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-db v1.0.2 h1:hwMjozuY1OlJs/uh6vddqnk9j7VamLv+0DBlbEXbAKs= github.com/cosmos/cosmos-db v1.0.2/go.mod h1:Z8IXcFJ9PqKK6BIsVOB3QXtkKoqUOp1vRvPT39kOXEA= -github.com/cosmos/cosmos-proto v1.0.0-beta.4 h1:aEL7tU/rLOmxZQ9z4i7mzxcLbSCY48OdY7lIWTLG7oU= -github.com/cosmos/cosmos-proto v1.0.0-beta.4/go.mod h1:oeB+FyVzG3XrQJbJng0EnV8Vljfk9XvTIpGILNU/9Co= -github.com/cosmos/cosmos-sdk v0.50.5 h1:MOEi+DKYgW67YaPgB+Pf+nHbD3V9S/ayitRKJYLfGIA= -github.com/cosmos/cosmos-sdk v0.50.5/go.mod h1:oV/k6GJgXV9QPoM2fsYDPPsyPBgQbdotv532O6Mz1OQ= +github.com/cosmos/cosmos-proto v1.0.0-beta.5 h1:eNcayDLpip+zVLRLYafhzLvQlSmyab+RC5W7ZfmxJLA= +github.com/cosmos/cosmos-proto v1.0.0-beta.5/go.mod h1:hQGLpiIUloJBMdQMMWb/4wRApmI9hjHH05nefC0Ojec= +github.com/cosmos/cosmos-sdk v0.50.7 h1:LsBGKxifENR/DN4E1RZaitsyL93HU44x0p8EnMHp4V4= +github.com/cosmos/cosmos-sdk v0.50.7/go.mod h1:84xDDJEHttRT7NDGwBaUOLVOMN0JNE9x7NbsYIxXs1s= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= github.com/cosmos/gogogateway v1.2.0 h1:Ae/OivNhp8DqBi/sh2A8a1D0y638GpL3tkmLQAiKxTE= github.com/cosmos/gogogateway v1.2.0/go.mod h1:iQpLkGWxYcnCdz5iAdLcRBSw3h7NXeOkZ4GUkT+tbFI= github.com/cosmos/gogoproto v1.4.2/go.mod h1:cLxOsn1ljAHSV527CHOtaIP91kK6cCrZETRBrkzItWU= -github.com/cosmos/gogoproto v1.4.11 h1:LZcMHrx4FjUgrqQSWeaGC1v/TeuVFqSLa43CC6aWR2g= -github.com/cosmos/gogoproto v1.4.11/go.mod h1:/g39Mh8m17X8Q/GDEs5zYTSNaNnInBSohtaxzQnYq1Y= -github.com/cosmos/iavl v1.0.1 h1:D+mYbcRO2wptYzOM1Hxl9cpmmHU1ZEt9T2Wv5nZTeUw= -github.com/cosmos/iavl v1.0.1/go.mod h1:8xIUkgVvwvVrBu81scdPty+/Dx9GqwHnAvXz4cwF7RY= +github.com/cosmos/gogoproto v1.4.12 h1:vB6Lbe/rtnYGjQuFxkPiPYiCybqFT8QvLipDZP8JpFE= +github.com/cosmos/gogoproto v1.4.12/go.mod h1:LnZob1bXRdUoqMMtwYlcR3wjiElmlC+FkjaZRv1/eLY= +github.com/cosmos/iavl v1.1.2 h1:zL9FK7C4L/P4IF1Dm5fIwz0WXCnn7Bp1M2FxH0ayM7Y= +github.com/cosmos/iavl v1.1.2/go.mod h1:jLeUvm6bGT1YutCaL2fIar/8vGUE8cPZvh/gXEWDaDM= github.com/cosmos/ibc-go/modules/capability v1.0.0 h1:r/l++byFtn7jHYa09zlAdSeevo8ci1mVZNO9+V0xsLE= github.com/cosmos/ibc-go/modules/capability v1.0.0/go.mod h1:D81ZxzjZAe0ZO5ambnvn1qedsFQ8lOwtqicG6liLBco= github.com/cosmos/ibc-go/v8 v8.2.1 h1:MTsnZZjxvGD4Fv5pYyx5UkELafSX0rlPt6IfsE2BpTQ= @@ -501,8 +501,8 @@ github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXP github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/glog v1.2.0 h1:uCdmnmatrKCgMBlM4rMuJZWOkPDqdbZPnrMXDY4gI68= -github.com/golang/glog v1.2.0/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/glog v1.2.1 h1:OptwRhECazUx5ix5TTWC3EZhsZEHWcYWY4FQHTIubm4= +github.com/golang/glog v1.2.1/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -654,8 +654,8 @@ github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVH github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-metrics v0.5.2 h1:ErEYO2f//CjKsUDw4SmLzelsK6L3ZmOAR/4P9iS7ruY= -github.com/hashicorp/go-metrics v0.5.2/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= +github.com/hashicorp/go-metrics v0.5.3 h1:M5uADWMOGCTUNU1YuC4hfknOeHNaX54LDm4oYSucoNE= +github.com/hashicorp/go-metrics v0.5.3/go.mod h1:KEjodfebIOuBYSAe/bHTm+HChmKSxAOXPBieMLYozDE= github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-plugin v1.5.2 h1:aWv8eimFqWlsEiMrYZdPYl+FdHaBJSN4AWwGWfT1G2Y= @@ -678,6 +678,8 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c= github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= @@ -868,8 +870,8 @@ github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6 github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/performancecopilot/speed v3.0.0+incompatible/go.mod h1:/CLtqpZ5gBg1M9iaPbIdPPGyKcA8hKdoy6hAWba7Yac= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= -github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc h1:8bQZVK1X6BJR/6nYUPxQEP+ReTsceJTKizeuwjWOPUA= -github.com/petermattis/goid v0.0.0-20230904192822-1876fd5063bc/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67 h1:jik8PHtAIsPlCRJjJzl4udgEf7hawInF9texMeO2jrU= +github.com/petermattis/goid v0.0.0-20231207134359-e60b3f734c67/go.mod h1:pxMtw7cyUw6B2bRH0ZBANSPg+AoSud1I1iyJHI69jH4= github.com/pierrec/lz4 v1.0.2-0.20190131084431-473cd7ce01a1/go.mod h1:3/3N9NVKO0jef7pBehbT1qWhCMrIgbYNnFAZCqQ5LRc= github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pingcap/errors v0.11.4 h1:lFuQV/oaUMGcD2tqt+01ROSmJs75VG1ToEOkZIZ4nE4= @@ -890,32 +892,32 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og= github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= -github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk= -github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA= +github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= +github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= -github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA= github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s= -github.com/prometheus/common v0.47.0 h1:p5Cz0FNHo7SnWOmWmoRozVcjEp0bIVU8cV7OShpjL1k= -github.com/prometheus/common v0.47.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= +github.com/prometheus/common v0.52.2 h1:LW8Vk7BccEdONfrJBDffQGRtpSzi5CQaRZGtboOO2ck= +github.com/prometheus/common v0.52.2/go.mod h1:lrWtQx+iDfn2mbH5GUzlH9TSHyfZpHkSiG1W7y3sF2Q= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= github.com/prometheus/procfs v0.3.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= +github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= +github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5XpJzTSTfLsJV/mx9Q9g7kxmchpfZyxgzM= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= @@ -1082,8 +1084,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA= -golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= +golang.org/x/crypto v0.22.0 h1:g1v0xeRhjcugydODzvb3mEM9SQ0HGp9s/nh3COQ/C30= +golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -1095,8 +1097,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200331195152-e8c3332aa8e5/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225 h1:LfspQV/FYTatPTr/3HzIcmiUFH7PGP+OQ6mgDYo3yuQ= -golang.org/x/exp v0.0.0-20240222234643-814bf88cf225/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0 h1:985EYyeCOxTpcgOTJpflJUwOeEz0CQOdPt73OzpE9F8= +golang.org/x/exp v0.0.0-20240404231335-c0f41cb1a7a0/go.mod h1:/lliqkxwWAhPjf5oSOIJup2XcqJaw8RGS6k3TGEc7GI= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -1124,8 +1126,8 @@ golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= -golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.17.0 h1:zY54UmvipHiNd+pm+m0x9KhZ9hl1/7QNMyxXbc6ICqA= +golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1186,8 +1188,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.0.0-20220909164309-bea034e7d591/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.0.0-20221014081412-f15817d10f9b/go.mod h1:YDH+HFinaLZZlnHAfSS6ZXJJ9M9t4Dl22yv3iI2vPwk= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.23.0 h1:7EYJ93RZ9vYSZAIb2x3lnuvqO5zneoD6IvWjuhfxjTs= -golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= +golang.org/x/net v0.24.0 h1:1PcaxkF854Fu3+lvBIx5SYn9wRlBzzcnHZSiaFFAb0w= +golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1229,8 +1231,8 @@ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220929204114-8fcdb60fdcc0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1327,13 +1329,13 @@ golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4= -golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o= +golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8= -golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= +golang.org/x/term v0.19.0 h1:+ThwsDv+tYfnJFhF4L8jITxu1tdTWRTZpdsWgEgjL6Q= +golang.org/x/term v0.19.0/go.mod h1:2CuTdWZ7KHSQwUzKva0cbMg6q2DMI3Mmxp+gKJbskEk= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1416,8 +1418,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= -golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= +golang.org/x/tools v0.20.0 h1:hz/CVckiOxybQvFw6h7b/q80NTr9IUQb4s1IIzW7KNY= +golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1594,12 +1596,12 @@ google.golang.org/genproto v0.0.0-20221010155953-15ba04fc1c0e/go.mod h1:3526vdqw google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= -google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY= +google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo= google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2 h1:rIo7ocm2roD9DcFIX67Ym8icoGCKSARAiPljFhh5suQ= google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2/go.mod h1:O1cOfN1Cy6QEYr7VxtjOyP5AdAuR0aJ/MYZaaof623Y= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240314234333-6e1732d8331c h1:lfpJ/2rWPa/kJgxyyXM8PrNnfCzcmxJ265mADgwmvLI= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240314234333-6e1732d8331c/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda h1:LI5DOvAxUPMv/50agcLLoo+AdWc1irS9Rzz4vPuD1V4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.0/go.mod h1:chYK+tFQF0nDUGJgXMSgLCQk3phJEuONr2DCgLDdAQM= @@ -1641,8 +1643,8 @@ google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACu google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.62.1 h1:B4n+nfKzOICUXMgyrNd19h/I9oH0L1pizfk1d4zSgTk= -google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= +google.golang.org/grpc v1.63.2 h1:MUeiw1B2maTVZthpU5xvASfTh3LDbxHd6IJ6QQVU+xM= +google.golang.org/grpc v1.63.2/go.mod h1:WAX/8DgncnokcFUldAxq7GeB5DXHDbMF+lLvDomNkRA= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff --git a/proto/interchain_security/ccv/consumer/v1/consumer.proto b/proto/interchain_security/ccv/consumer/v1/consumer.proto index 959d06c087..e77b5c9a13 100644 --- a/proto/interchain_security/ccv/consumer/v1/consumer.proto +++ b/proto/interchain_security/ccv/consumer/v1/consumer.proto @@ -27,7 +27,10 @@ message CrossChainValidator { (cosmos_proto.accepts_interface) = "cosmos.crypto.PubKey", (gogoproto.moretags) = "yaml:\"consensus_pubkey\"" ]; - bool opted_out = 4; + + // !!! DEPRECATED !!! opted_out is deprecated because after the introduction of Partial Set Security (PSS) + // we removed the soft opt-out feature. + bool opted_out = 4 [deprecated = true]; } // A record storing the state of a slash packet sent to the provider chain diff --git a/proto/interchain_security/ccv/provider/v1/query.proto b/proto/interchain_security/ccv/provider/v1/query.proto index 9e922a6096..9ea3aa6bec 100644 --- a/proto/interchain_security/ccv/provider/v1/query.proto +++ b/proto/interchain_security/ccv/provider/v1/query.proto @@ -11,7 +11,6 @@ import "interchain_security/ccv/v1/shared_consumer.proto"; import "interchain_security/ccv/v1/wire.proto"; import "tendermint/crypto/keys.proto"; import "cosmos_proto/cosmos.proto"; -import "amino/amino.proto"; service Query { // ConsumerGenesis queries the genesis state needed to start a consumer chain @@ -316,10 +315,8 @@ message QueryValidatorConsumerCommissionRateRequest { message QueryValidatorConsumerCommissionRateResponse { // The rate to charge delegators on the consumer chain, as a fraction string rate = 1 [ - (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false, - (amino.dont_omitempty) = true + (gogoproto.nullable) = false ]; } diff --git a/proto/interchain_security/ccv/provider/v1/tx.proto b/proto/interchain_security/ccv/provider/v1/tx.proto index 63defef60f..a417aab3c0 100644 --- a/proto/interchain_security/ccv/provider/v1/tx.proto +++ b/proto/interchain_security/ccv/provider/v1/tx.proto @@ -279,8 +279,7 @@ message MsgSetConsumerCommissionRate { string rate = 3 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "cosmossdk.io/math.LegacyDec", - (gogoproto.nullable) = false, - (amino.dont_omitempty) = true + (gogoproto.nullable) = false ]; } diff --git a/proto/interchain_security/ccv/v1/shared_consumer.proto b/proto/interchain_security/ccv/v1/shared_consumer.proto index ce65df04a6..f1535df010 100644 --- a/proto/interchain_security/ccv/v1/shared_consumer.proto +++ b/proto/interchain_security/ccv/v1/shared_consumer.proto @@ -62,11 +62,8 @@ message ConsumerParams { google.protobuf.Duration unbonding_period = 9 [ (gogoproto.nullable) = false, (gogoproto.stdduration) = true ]; - // The threshold for the percentage of validators at the bottom of the set who - // can opt out of running the consumer chain without being punished. For - // example, a value of 0.05 means that the validators in the bottom 5% of the - // set can opt out - string soft_opt_out_threshold = 10; + // !!! DEPRECATED !!! soft_opt_out_threshold is deprecated. see docs/docs/adrs/adr-015-partial-set-security.md + string soft_opt_out_threshold = 10 [deprecated = true]; // Reward denoms. These are the denominations which are allowed to be sent to // the provider as rewards. diff --git a/tests/e2e/actions.go b/tests/e2e/actions.go index f50f23b41a..4a3e59876d 100644 --- a/tests/e2e/actions.go +++ b/tests/e2e/actions.go @@ -602,7 +602,10 @@ func (tr *Chain) startConsumerChain( consumerGenesis := ".app_state.ccvconsumer = " + tr.getConsumerGenesis(action.ProviderChain, action.ConsumerChain) consumerGenesisChanges := tr.testConfig.chainConfigs[action.ConsumerChain].GenesisChanges if consumerGenesisChanges != "" { - consumerGenesis = consumerGenesis + " | " + consumerGenesisChanges + " | " + action.GenesisChanges + consumerGenesis = consumerGenesis + " | " + consumerGenesisChanges + } + if action.GenesisChanges != "" { + consumerGenesis = consumerGenesis + " | " + action.GenesisChanges } tr.startChain(StartChainAction{ @@ -832,7 +835,10 @@ func (tr Chain) changeoverChain( consumerGenesis := ".app_state.ccvconsumer = " + string(bz) consumerGenesisChanges := tr.testConfig.chainConfigs[action.SovereignChain].GenesisChanges if consumerGenesisChanges != "" { - consumerGenesis = consumerGenesis + " | " + consumerGenesisChanges + " | " + action.GenesisChanges + consumerGenesis = consumerGenesis + " | " + consumerGenesisChanges + } + if action.GenesisChanges != "" { + consumerGenesis = consumerGenesis + " | " + action.GenesisChanges } tr.startChangeover(ChangeoverChainAction{ @@ -2040,7 +2046,7 @@ func (tr Chain) invokeDoublesignSlash( if err != nil { log.Fatal(err, "\n", string(bz)) } - tr.waitBlocks("provi", 10, 2*time.Minute) + tr.waitBlocks("provi", 20, 4*time.Minute) } else { // tr.useCometMock validatorPrivateKeyAddress := tr.GetValidatorPrivateKeyAddress(action.Chain, action.Validator) diff --git a/tests/e2e/config.go b/tests/e2e/config.go index bbfe7a4d0b..4bb8d1c494 100644 --- a/tests/e2e/config.go +++ b/tests/e2e/config.go @@ -5,6 +5,7 @@ import ( "log" "os/exec" "strconv" + "strings" "time" e2e "github.com/cosmos/interchain-security/v5/tests/e2e/testlib" @@ -417,15 +418,17 @@ func CompatibilityTestConfig(providerVersion, consumerVersion string) TestConfig ".app_state.provider.params.slash_meter_replenish_fraction = \"1.0\" | " + // This disables slash packet throttling ".app_state.provider.params.slash_meter_replenish_period = \"3s\"", } - } else if semver.Compare(providerVersion, "v5.0.0-alpha1") < 0 { //TODO: MOV THIS BACK TO "v5.0.0" - fmt.Println("Using provider chain config for v4.1.x") + } else if semver.Compare(semver.MajorMinor(providerVersion), "v4.3.0") >= 0 && strings.HasSuffix(providerVersion, "-lsm") { + // v4.3.0-lsm introduced 'expedited governance proposal' which needs `expedited_voting_period` parameter to be set in genesis + fmt.Println("Using provider chain config for versions >= v4.3.0-lsm") providerConfig = ChainConfig{ ChainId: ChainID("provi"), - AccountPrefix: ProviderAccountPrefix, + AccountPrefix: "cosmos", BinaryName: "interchain-security-pd", IpPrefix: "7.7.7", VotingWaitTime: 20, GenesisChanges: ".app_state.gov.params.voting_period = \"20s\" | " + + ".app_state.gov.params.expedited_voting_period = \"10s\" | " + // Custom slashing parameters for testing validator downtime functionality // See https://docs.cosmos.network/main/modules/slashing/04_begin_block.html#uptime-tracking ".app_state.slashing.params.signed_blocks_window = \"10\" | " + diff --git a/tests/e2e/main.go b/tests/e2e/main.go index cf8fe70d89..d0b13ddd94 100644 --- a/tests/e2e/main.go +++ b/tests/e2e/main.go @@ -277,7 +277,7 @@ func parseArguments() (err error) { type testStepsWithConfig struct { config TestConfigType - steps []Step + steps StepChoice } func getTestCases(selectedPredefinedTests, selectedTestFiles TestSet, providerVersions, @@ -316,13 +316,12 @@ func getTestCases(selectedPredefinedTests, selectedTestFiles TestSet, providerVe log.Fatalf("Step choice '%s' not found.\nsee usage info:\n%s", tc, getTestCaseUsageString()) } - testSteps := stepChoices[tc].steps if testConfig == "" { testConfig = stepChoices[tc].testConfig } tests = append(tests, testStepsWithConfig{ config: testConfig, - steps: testSteps, + steps: stepChoices[tc], }, ) } @@ -351,7 +350,11 @@ func getTestCases(selectedPredefinedTests, selectedTestFiles TestSet, providerVe tests = append(tests, testStepsWithConfig{ config: testConfig, - steps: testCase, + steps: StepChoice{ + name: testFileName, + steps: testCase, + description: fmt.Sprintf("Steps from file %s", testFileName), + }, }) } diff --git a/tests/e2e/state.go b/tests/e2e/state.go index 1c1be7e95a..c7d5baf99f 100644 --- a/tests/e2e/state.go +++ b/tests/e2e/state.go @@ -888,7 +888,7 @@ func (tr Commands) GetTrustedHeight( var trustedHeight gjson.Result // iterate on the relayer's response - // and parse the the command "result" + // and parse the command "result" for scanner.Scan() { out := scanner.Text() if len(gjson.Get(out, "result").Array()) > 0 { diff --git a/tests/e2e/step_delegation.go b/tests/e2e/step_delegation.go index 102ee76fa2..531f0cbceb 100644 --- a/tests/e2e/step_delegation.go +++ b/tests/e2e/step_delegation.go @@ -220,58 +220,6 @@ func stepsCancelUnbond(consumerName string) []Step { } } -// stepsRedelegateForOptOut tests redelegation, and sets up voting powers s.t -// alice will have less than 5% of the total voting power. This is needed to -// test opt-out functionality. -func stepsRedelegateForOptOut(consumerName string) []Step { - return []Step{ - { - Action: RedelegateTokensAction{ - Chain: ChainID("provi"), - Src: ValidatorID("alice"), - Dst: ValidatorID("carol"), - TxSender: ValidatorID("alice"), - Amount: 450000000, - }, - State: State{ - ChainID("provi"): ChainState{ - ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 60, - ValidatorID("bob"): 500, - ValidatorID("carol"): 950, - }, - }, - ChainID(consumerName): ChainState{ - ValPowers: &map[ValidatorID]uint{ - // Voting power changes not seen by consumer yet - ValidatorID("alice"): 510, - ValidatorID("bob"): 500, - ValidatorID("carol"): 500, - }, - }, - }, - }, - { - Action: RelayPacketsAction{ - ChainA: ChainID("provi"), - ChainB: ChainID(consumerName), - Port: "provider", - Channel: 0, - }, - State: State{ - ChainID(consumerName): ChainState{ - ValPowers: &map[ValidatorID]uint{ - // Now power changes are seen by consumer - ValidatorID("alice"): 60, - ValidatorID("bob"): 500, - ValidatorID("carol"): 950, - }, - }, - }, - }, - } -} - // stepsRedelegate tests redelegation and resulting validator power changes. func stepsRedelegate(consumerName string) []Step { return []Step{ @@ -283,68 +231,15 @@ func stepsRedelegate(consumerName string) []Step { TxSender: ValidatorID("carol"), // redelegate s.t. alice has majority stake so non-faulty validators maintain more than // 2/3 voting power during downtime tests below, avoiding chain halt - Amount: 449000000, + Amount: 400000000, }, State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, // carol always uses a consumer assigned key - ValidatorID("carol"): 501, - }, - }, - ChainID(consumerName): ChainState{ - ValPowers: &map[ValidatorID]uint{ - // Voting power changes not seen by consumer yet - ValidatorID("alice"): 60, - ValidatorID("bob"): 500, - ValidatorID("carol"): 950, - }, - }, - }, - }, - { - Action: RelayPacketsAction{ - ChainA: ChainID("provi"), - ChainB: ChainID(consumerName), - Port: "provider", - Channel: 0, - }, - State: State{ - ChainID(consumerName): ChainState{ - ValPowers: &map[ValidatorID]uint{ - // Now power changes are seen by consumer - ValidatorID("alice"): 509, - ValidatorID("bob"): 500, - ValidatorID("carol"): 501, - }, - }, - }, - }, - } -} - -// stepsRedelegate tests redelegation and resulting validator power changes. -func stepsRedelegateShort(consumerName string) []Step { - return []Step{ - { - Action: RedelegateTokensAction{ - Chain: ChainID("provi"), - Src: ValidatorID("alice"), - Dst: ValidatorID("carol"), - TxSender: ValidatorID("alice"), - // Leave alice with majority stake so non-faulty validators maintain more than - // 2/3 voting power during downtime tests below, avoiding chain halt - Amount: 1000000, - }, - State: State{ - ChainID("provi"): ChainState{ - ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, - ValidatorID("bob"): 500, - // carol always uses a consumer assigned key - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, ChainID(consumerName): ChainState{ @@ -368,9 +263,9 @@ func stepsRedelegateShort(consumerName string) []Step { ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ // Now power changes are seen by consumer - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, diff --git a/tests/e2e/steps.go b/tests/e2e/steps.go index 4a6f40333e..5e16a61776 100644 --- a/tests/e2e/steps.go +++ b/tests/e2e/steps.go @@ -18,7 +18,7 @@ var compatibilitySteps = concatSteps( compstepsStartChains([]string{"consu"}, false), stepsDelegate("consu"), stepsUnbond("consu"), - stepsRedelegateShort("consu"), + stepsRedelegate("consu"), stepsDowntime("consu"), stepsDoubleSignOnProvider("consu"), // carol double signs on provider stepsStartRelayer(), @@ -32,8 +32,6 @@ var happyPathSteps = concatSteps( stepsAssignConsumerKeyOnStartedChain("consu", "bob"), stepsUnbond("consu"), stepsCancelUnbond("consu"), - stepsRedelegateForOptOut("consu"), - stepsDowntimeWithOptOut("consu"), stepsRedelegate("consu"), stepsDowntime("consu"), stepsDoubleSignOnProvider("consu"), // carol double signs on provider @@ -46,7 +44,7 @@ var shortHappyPathSteps = concatSteps( stepsStartChains([]string{"consu"}, false), stepsDelegate("consu"), stepsUnbond("consu"), - stepsRedelegateShort("consu"), + stepsRedelegate("consu"), stepsDowntime("consu"), stepsDoubleSignOnProvider("consu"), // carol double signs on provider stepsStartRelayer(), @@ -58,12 +56,12 @@ var lightClientAttackSteps = concatSteps( stepsStartChains([]string{"consu"}, false), stepsDelegate("consu"), stepsUnbond("consu"), - stepsRedelegateShort("consu"), + stepsRedelegate("consu"), stepsDowntime("consu"), stepsLightClientAttackOnProviderAndConsumer("consu"), // carol double signs on provider, bob double signs on consumer stepsStartRelayer(), - stepsConsumerRemovalPropNotPassing("consu", 3), // submit removal prop but vote no on it - chain should stay - stepsStopChain("consu", 4), // stop chain + stepsConsumerRemovalPropNotPassing("consu", 2), // submit removal prop but vote no on it - chain should stay + stepsStopChain("consu", 3), // stop chain ) var slashThrottleSteps = concatSteps( @@ -121,7 +119,7 @@ var changeoverSteps = concatSteps( var consumerMisbehaviourSteps = concatSteps( // start provider and consumer chain - stepsStartChainsWithSoftOptOut("consu"), + stepsStartChainsForConsumerMisbehaviour("consu"), // make a consumer validator to misbehave and get jailed stepsCauseConsumerMisbehaviour("consu"), ) @@ -137,6 +135,6 @@ var consumerDoubleDowntimeSteps = concatSteps( stepsStartChains([]string{"consu"}, false), stepsDelegate("consu"), stepsUnbond("consu"), - stepsRedelegateShort("consu"), + stepsRedelegate("consu"), stepsDoubleDowntime("consu"), ) diff --git a/tests/e2e/steps_compatibility.go b/tests/e2e/steps_compatibility.go index a51a34fed3..dfcf14cd58 100644 --- a/tests/e2e/steps_compatibility.go +++ b/tests/e2e/steps_compatibility.go @@ -146,12 +146,6 @@ func compstepsStartConsumerChain(consumerName string, proposalIndex, chainIndex {Id: ValidatorID("alice"), Stake: 500000000, Allocation: 10000000000}, {Id: ValidatorID("carol"), Stake: 500000000, Allocation: 10000000000}, }, - // For consumers that're launching with the provider being on an earlier version - // of ICS before the soft opt-out threshold was introduced, we need to set the - // soft opt-out threshold to 0.05 in the consumer genesis to ensure that the - // consumer binary doesn't panic. Sdk requires that all params are set to valid - // values from the genesis file. - GenesisChanges: ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"", }, State: State{ ChainID("provi"): ChainState{ diff --git a/tests/e2e/steps_consumer_misbehaviour.go b/tests/e2e/steps_consumer_misbehaviour.go index 56e093e668..1071da368a 100644 --- a/tests/e2e/steps_consumer_misbehaviour.go +++ b/tests/e2e/steps_consumer_misbehaviour.go @@ -7,10 +7,8 @@ import ( clienttypes "github.com/cosmos/ibc-go/v8/modules/core/02-client/types" ) -// starts a provider chain and a consumer chain with two validators, -// where the voting power is distributed in order that the smallest validator -// can soft opt-out of validating the consumer chain. -func stepsStartChainsWithSoftOptOut(consumerName string) []Step { +// starts a provider chain and an Opt-In consumer chain with one validator +func stepsStartChainsForConsumerMisbehaviour(consumerName string) []Step { s := []Step{ { // Create a provider chain with two validators, where one validator holds 96% of the voting power @@ -82,6 +80,13 @@ func stepsStartChainsWithSoftOptOut(consumerName string) []Step { }, }, }, + { + Action: OptInAction{ + Chain: ChainID(consumerName), + Validator: ValidatorID("alice"), + }, + State: State{}, + }, { Action: VoteGovProposalAction{ Chain: ChainID("provi"), @@ -109,19 +114,12 @@ func stepsStartChainsWithSoftOptOut(consumerName string) []Step { }, { // start a consumer chain using a single big validator knowing that it holds more than 2/3 of the voting power - // and that the other validators hold less than 5% so they won't get jailed thanks to the sof opt-out mechanism. Action: StartConsumerChainAction{ ConsumerChain: ChainID(consumerName), ProviderChain: ChainID("provi"), Validators: []StartChainValidator{ {Id: ValidatorID("alice"), Stake: 500000000, Allocation: 10000000000}, }, - // For consumers that're launching with the provider being on an earlier version - // of ICS before the soft opt-out threshold was introduced, we need to set the - // soft opt-out threshold to 0.05 in the consumer genesis to ensure that the - // consumer binary doesn't panic. Sdk requires that all params are set to valid - // values from the genesis file. - GenesisChanges: ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"", }, State: State{ ChainID("provi"): ChainState{ @@ -176,7 +174,6 @@ func stepsStartChainsWithSoftOptOut(consumerName string) []Step { ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ ValidatorID("alice"): 500, - ValidatorID("bob"): 20, }, }, }, @@ -192,7 +189,6 @@ func stepsStartChainsWithSoftOptOut(consumerName string) []Step { ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ ValidatorID("alice"): 511, - ValidatorID("bob"): 20, }, }, }, @@ -242,7 +238,7 @@ func stepsCauseConsumerMisbehaviour(consumerName string) []Step { ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ ValidatorID("alice"): 511, - ValidatorID("bob"): 20, + ValidatorID("bob"): 0, }, }, }, @@ -282,7 +278,7 @@ func stepsCauseConsumerMisbehaviour(consumerName string) []Step { // since its light client is frozen on the provider ValPowers: &map[ValidatorID]uint{ ValidatorID("alice"): 511, - ValidatorID("bob"): 20, + ValidatorID("bob"): 0, }, }, }, diff --git a/tests/e2e/steps_double_sign.go b/tests/e2e/steps_double_sign.go index 353de13761..bdc4a68cb4 100644 --- a/tests/e2e/steps_double_sign.go +++ b/tests/e2e/steps_double_sign.go @@ -13,16 +13,16 @@ func stepsDoubleSignOnProvider(consumerName string) []Step { // slash on provider ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 0, // from 500 to 0 + ValidatorID("carol"): 0, // from 99 to 0 }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 495, // not tombstoned on consumerName yet + ValidatorID("carol"): 99, // not tombstoned on consumerName yet }, }, }, @@ -38,14 +38,14 @@ func stepsDoubleSignOnProvider(consumerName string) []Step { State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, ValidatorID("carol"): 0, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, ValidatorID("carol"): 0, // tombstoning visible on consumerName }, diff --git a/tests/e2e/steps_downtime.go b/tests/e2e/steps_downtime.go index a8506bf518..70fd81c130 100644 --- a/tests/e2e/steps_downtime.go +++ b/tests/e2e/steps_downtime.go @@ -23,16 +23,16 @@ func stepsDowntime(consumerName string) []Step { // validator should be slashed on consumer, powers not affected on either chain yet ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -47,18 +47,18 @@ func stepsDowntime(consumerName string) []Step { State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // Downtime jailing and corresponding voting power change are processed by provider ValidatorID("bob"): 0, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // Bob's stake may or may not be slashed at this point depending on comet vs cometmock // See https://github.com/cosmos/interchain-security/issues/1304 - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -75,10 +75,10 @@ func stepsDowntime(consumerName string) []Step { State: State{ ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // VSC now seen on consumer ValidatorID("bob"): 0, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -91,18 +91,18 @@ func stepsDowntime(consumerName string) []Step { State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // bob's stake should not be slashed // since the slash was initiated from consumer ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 0, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -117,11 +117,11 @@ func stepsDowntime(consumerName string) []Step { State: State{ ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // bob's stake should not be slashed // since the slash was initiated from consumer ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -136,7 +136,7 @@ func stepsDowntime(consumerName string) []Step { ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ // Non faulty validators still maintain just above 2/3 power here - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, // Carol's stake should be slashed and jailed // downtime slash was initiated from provider @@ -145,9 +145,9 @@ func stepsDowntime(consumerName string) []Step { }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -162,7 +162,7 @@ func stepsDowntime(consumerName string) []Step { State: State{ ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, ValidatorID("carol"): 0, }, @@ -177,14 +177,14 @@ func stepsDowntime(consumerName string) []Step { State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 495, + ValidatorID("carol"): 99, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, ValidatorID("carol"): 0, }, @@ -201,9 +201,9 @@ func stepsDowntime(consumerName string) []Step { State: State{ ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 495, + ValidatorID("carol"): 99, }, }, }, @@ -211,7 +211,7 @@ func stepsDowntime(consumerName string) []Step { } } -// stepsDowstepsDoubleDowntime time tests that a validator can get jailed twice +// stepsDoubleDowntime time tests that a validator can get jailed twice // on a consumer. // These are the steps: // - a validator is down on a consumer @@ -233,16 +233,16 @@ func stepsDoubleDowntime(consumerName string) []Step { // validator should be slashed on consumer, powers not affected on either chain yet ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -257,18 +257,18 @@ func stepsDoubleDowntime(consumerName string) []Step { State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // Downtime jailing and corresponding voting power change are processed by provider ValidatorID("bob"): 0, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // Bob's stake may or may not be slashed at this point depending on comet vs cometmock // See https://github.com/cosmos/interchain-security/issues/1304 - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -285,10 +285,10 @@ func stepsDoubleDowntime(consumerName string) []Step { State: State{ ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // VSC now seen on consumer ValidatorID("bob"): 0, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -301,18 +301,18 @@ func stepsDoubleDowntime(consumerName string) []Step { State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // bob's stake should not be slashed // since the slash was initiated from consumer ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 0, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -327,11 +327,11 @@ func stepsDoubleDowntime(consumerName string) []Step { State: State{ ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // bob's stake should not be slashed // since the slash was initiated from consumer ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -346,16 +346,16 @@ func stepsDoubleDowntime(consumerName string) []Step { // validator should be slashed on consumer, powers not affected on either chain yet ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -370,18 +370,18 @@ func stepsDoubleDowntime(consumerName string) []Step { State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // Downtime jailing and corresponding voting power change are processed by provider ValidatorID("bob"): 0, - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // Bob's stake may or may not be slashed at this point depending on comet vs cometmock // See https://github.com/cosmos/interchain-security/issues/1304 - ValidatorID("carol"): 501, + ValidatorID("carol"): 100, }, }, }, @@ -398,67 +398,10 @@ func stepsDoubleDowntime(consumerName string) []Step { State: State{ ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, // VSC now seen on consumer ValidatorID("bob"): 0, - ValidatorID("carol"): 501, - }, - }, - }, - }, - } -} - -// stepsDowntimeWithOptOut returns steps validating that alice can incur downtime -// and not be slashed/jailed, since her voting power is less than 5% of the total. -// -// Note: 60 / (60 + 500 + 950) ~= 0.04 -func stepsDowntimeWithOptOut(consumerName string) []Step { - return []Step{ - { - Action: DowntimeSlashAction{ - Chain: ChainID(consumerName), - Validator: ValidatorID("alice"), - }, - State: State{ - // powers not affected on either chain - ChainID("provi"): ChainState{ - ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 60, - ValidatorID("bob"): 500, - ValidatorID("carol"): 950, - }, - }, - ChainID(consumerName): ChainState{ - ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 60, - ValidatorID("bob"): 500, - ValidatorID("carol"): 950, - }, - }, - }, - }, - { - Action: RelayPacketsAction{ - ChainA: ChainID("provi"), - ChainB: ChainID(consumerName), - Port: "provider", - Channel: 0, - }, - State: State{ - ChainID("provi"): ChainState{ - ValPowers: &map[ValidatorID]uint{ - // alice is not slashed or jailed due to soft opt out - ValidatorID("alice"): 60, - ValidatorID("bob"): 500, - ValidatorID("carol"): 950, - }, - }, - ChainID(consumerName): ChainState{ - ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 60, - ValidatorID("bob"): 500, - ValidatorID("carol"): 950, + ValidatorID("carol"): 100, }, }, }, diff --git a/tests/e2e/steps_light_client_attack.go b/tests/e2e/steps_light_client_attack.go index 65481157b1..afe1356c51 100644 --- a/tests/e2e/steps_light_client_attack.go +++ b/tests/e2e/steps_light_client_attack.go @@ -13,16 +13,16 @@ func stepsLightClientAttackOnProviderAndConsumer(consumerName string) []Step { // Slash on provider ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 0, // from 500 to 0 + ValidatorID("carol"): 0, // from 100 to 0 }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, - ValidatorID("carol"): 495, // not tombstoned on consumerName yet + ValidatorID("carol"): 99, // not tombstoned on consumerName yet }, }, }, @@ -38,14 +38,14 @@ func stepsLightClientAttackOnProviderAndConsumer(consumerName string) []Step { State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, ValidatorID("carol"): 0, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, ValidatorID("carol"): 0, // tombstoning visible on consumerName }, @@ -62,14 +62,14 @@ func stepsLightClientAttackOnProviderAndConsumer(consumerName string) []Step { State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, ValidatorID("carol"): 0, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, ValidatorID("carol"): 0, }, @@ -86,14 +86,14 @@ func stepsLightClientAttackOnProviderAndConsumer(consumerName string) []Step { State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, // not tombstoned ValidatorID("carol"): 0, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, // not tombstoned ValidatorID("carol"): 0, }, @@ -111,14 +111,14 @@ func stepsLightClientAttackOnProviderAndConsumer(consumerName string) []Step { State: State{ ChainID("provi"): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, ValidatorID("carol"): 0, }, }, ChainID(consumerName): ChainState{ ValPowers: &map[ValidatorID]uint{ - ValidatorID("alice"): 509, + ValidatorID("alice"): 910, ValidatorID("bob"): 500, // not tombstoned ValidatorID("carol"): 0, }, diff --git a/tests/e2e/steps_multi_consumer_delegation.go b/tests/e2e/steps_multi_consumer_delegation.go index 734338edbc..ca15001441 100644 --- a/tests/e2e/steps_multi_consumer_delegation.go +++ b/tests/e2e/steps_multi_consumer_delegation.go @@ -1,6 +1,6 @@ package main -// stepsDelegate tests basic delegation and resulting validator power changes. +// stepsMultiConsumerDelegate tests basic delegation and resulting validator power changes. func stepsMultiConsumerDelegate(consumer1, consumer2 string) []Step { return []Step{ { diff --git a/tests/e2e/steps_sovereign_changeover.go b/tests/e2e/steps_sovereign_changeover.go index 68ed5c8505..500120bbf0 100644 --- a/tests/e2e/steps_sovereign_changeover.go +++ b/tests/e2e/steps_sovereign_changeover.go @@ -107,7 +107,6 @@ func stepsChangeoverToConsumer(consumerName string) []Step { {Id: ValidatorID("bob"), Stake: 500000000, Allocation: 10000000000}, {Id: ValidatorID("carol"), Stake: 500000000, Allocation: 10000000000}, }, - GenesisChanges: ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"", }, State: State{ ChainID("provi"): ChainState{ diff --git a/tests/e2e/steps_start_chains.go b/tests/e2e/steps_start_chains.go index e358862590..898f562dc0 100644 --- a/tests/e2e/steps_start_chains.go +++ b/tests/e2e/steps_start_chains.go @@ -162,12 +162,6 @@ func stepsStartConsumerChain(consumerName string, proposalIndex, chainIndex uint {Id: ValidatorID("alice"), Stake: 500000000, Allocation: 10000000000}, {Id: ValidatorID("carol"), Stake: 500000000, Allocation: 10000000000}, }, - // For consumers that're launching with the provider being on an earlier version - // of ICS before the soft opt-out threshold was introduced, we need to set the - // soft opt-out threshold to 0.05 in the consumer genesis to ensure that the - // consumer binary doesn't panic. Sdk requires that all params are set to valid - // values from the genesis file. - GenesisChanges: ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"", }, State: State{ ChainID("provi"): ChainState{ diff --git a/tests/e2e/test_runner.go b/tests/e2e/test_runner.go index 7c02dd6d2d..c3ced5ab61 100644 --- a/tests/e2e/test_runner.go +++ b/tests/e2e/test_runner.go @@ -19,7 +19,7 @@ const ( // It sets up the test environment and the test driver to run the tests type TestRunner struct { config TestConfig - steps []Step + stepChoice StepChoice testDriver TestCaseDriver target ExecutionTarget verbose bool @@ -86,7 +86,7 @@ func (tr *TestRunner) Run() error { } tr.testDriver = GetTestCaseDriver(tr.config) - err = tr.testDriver.Run(tr.steps, tr.target, tr.verbose) + err = tr.testDriver.Run(tr.stepChoice.steps, tr.target, tr.verbose) if err != nil { tr.result.Failed() // not tearing down environment for troubleshooting reasons on container @@ -118,13 +118,13 @@ func (tr *TestRunner) Setup(testCfg TestConfig) error { return nil } -func CreateTestRunner(config TestConfig, steps []Step, target ExecutionTarget, verbose bool) TestRunner { +func CreateTestRunner(config TestConfig, stepChoice StepChoice, target ExecutionTarget, verbose bool) TestRunner { return TestRunner{ - target: target, - steps: steps, - config: config, - verbose: verbose, - result: TestResult{Status: TEST_STATUS_NOTRUN}, + target: target, + stepChoice: stepChoice, + config: config, + verbose: verbose, + result: TestResult{Status: TEST_STATUS_NOTRUN}, } } @@ -133,8 +133,10 @@ func (tr *TestRunner) Info() string { return fmt.Sprintf(` ------------------------------------------ Test name : %s +Config: %s Target: %s ------------------------------------------`, + tr.stepChoice.name, tr.config.name, tr.target.Info(), ) @@ -144,12 +146,14 @@ func (tr *TestRunner) Report() string { return fmt.Sprintf(` ------------------------------------------ Test name : %s +Config: %s Target: %s - Status: %s - Result: %s - Duration: %s - StartTime: %s ------------------------------------------`, + tr.stepChoice.name, tr.config.name, tr.target.Info(), tr.result.Status, diff --git a/tests/e2e/testdata/rapid/TestChainStateMarshalling/TestChainStateMarshalling-20240314151749-32478.fail b/tests/e2e/testdata/rapid/TestChainStateMarshalling/TestChainStateMarshalling-20240314151749-32478.fail deleted file mode 100644 index 14da620099..0000000000 --- a/tests/e2e/testdata/rapid/TestChainStateMarshalling/TestChainStateMarshalling-20240314151749-32478.fail +++ /dev/null @@ -1,10 +0,0 @@ -# -v0.4.8#14881217339431652995 -0x0 -0x5555555555555 -0x0 -0x0 -0x38e38e38e38e4 -0x3 -0x0 -0x0 \ No newline at end of file diff --git a/tests/e2e/testdata/rapid/TestReadAndWriteTrace/TestReadAndWriteTrace-20240314151749-32478.fail b/tests/e2e/testdata/rapid/TestReadAndWriteTrace/TestReadAndWriteTrace-20240314151749-32478.fail deleted file mode 100644 index 12af62a4bf..0000000000 --- a/tests/e2e/testdata/rapid/TestReadAndWriteTrace/TestReadAndWriteTrace-20240314151749-32478.fail +++ /dev/null @@ -1,18 +0,0 @@ -# -v0.4.8#2933927387728423654 -0x5555555555555 -0x0 -0x0 -0x0 -0x0 -0x0 -0x5555555555555 -0x0 -0x0 -0x5555555555555 -0x0 -0x0 -0x38e38e38e38e4 -0x3 -0x0 -0x0 \ No newline at end of file diff --git a/tests/e2e/tracehandler_testdata/changeover.json b/tests/e2e/tracehandler_testdata/changeover.json index b115680878..91b53a87cd 100644 --- a/tests/e2e/tracehandler_testdata/changeover.json +++ b/tests/e2e/tracehandler_testdata/changeover.json @@ -345,7 +345,7 @@ "Stake": 500000000 } ], - "GenesisChanges": ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"" + "GenesisChanges": "" }, "State": { "provi": { diff --git a/tests/e2e/tracehandler_testdata/consumer-double-sign.json b/tests/e2e/tracehandler_testdata/consumer-double-sign.json index 7744bc5b03..7551c2c77d 100644 --- a/tests/e2e/tracehandler_testdata/consumer-double-sign.json +++ b/tests/e2e/tracehandler_testdata/consumer-double-sign.json @@ -271,7 +271,7 @@ "Stake": 500000000 } ], - "GenesisChanges": ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"" + "GenesisChanges": "" }, "State": { "consu": { diff --git a/tests/e2e/tracehandler_testdata/consumer-misbehaviour.json b/tests/e2e/tracehandler_testdata/consumer-misbehaviour.json index 90f009fb7e..c7f68b5273 100644 --- a/tests/e2e/tracehandler_testdata/consumer-misbehaviour.json +++ b/tests/e2e/tracehandler_testdata/consumer-misbehaviour.json @@ -123,6 +123,14 @@ } } }, + { + "ActionType": "main.OptInAction", + "Action": { + "Chain": "consu", + "Validator": "alice" + }, + "State": {} + }, { "ActionType": "main.VoteGovProposalAction", "Action": { @@ -184,7 +192,7 @@ "Stake": 500000000 } ], - "GenesisChanges": ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"" + "GenesisChanges": "" }, "State": { "consu": { @@ -262,8 +270,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 500, - "bob": 20 + "alice": 500 }, "StakedTokens": null, "IBCTransferParams": null, @@ -311,8 +318,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 511, - "bob": 20 + "alice": 511 }, "StakedTokens": null, "IBCTransferParams": null, @@ -354,7 +360,7 @@ "ProposedConsumerChains": null, "ValPowers": { "alice": 511, - "bob": 20 + "bob": 0 }, "StakedTokens": null, "IBCTransferParams": null, @@ -406,7 +412,7 @@ "ProposedConsumerChains": null, "ValPowers": { "alice": 511, - "bob": 20 + "bob": 0 }, "StakedTokens": null, "IBCTransferParams": null, diff --git a/tests/e2e/tracehandler_testdata/democracy.json b/tests/e2e/tracehandler_testdata/democracy.json index 633e13ee08..2dc179c0da 100644 --- a/tests/e2e/tracehandler_testdata/democracy.json +++ b/tests/e2e/tracehandler_testdata/democracy.json @@ -271,7 +271,7 @@ "Stake": 500000000 } ], - "GenesisChanges": ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"" + "GenesisChanges": "" }, "State": { "democ": { diff --git a/tests/e2e/tracehandler_testdata/democracyRewardsSteps.json b/tests/e2e/tracehandler_testdata/democracyRewardsSteps.json index 75487915de..b270031542 100644 --- a/tests/e2e/tracehandler_testdata/democracyRewardsSteps.json +++ b/tests/e2e/tracehandler_testdata/democracyRewardsSteps.json @@ -271,7 +271,7 @@ "Stake": 500000000 } ], - "GenesisChanges": ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"" + "GenesisChanges": "" }, "State": { "democ": { diff --git a/tests/e2e/tracehandler_testdata/happyPath.json b/tests/e2e/tracehandler_testdata/happyPath.json index e5f732eaf0..fea88c2e92 100644 --- a/tests/e2e/tracehandler_testdata/happyPath.json +++ b/tests/e2e/tracehandler_testdata/happyPath.json @@ -271,7 +271,7 @@ "Stake": 500000000 } ], - "GenesisChanges": ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"" + "GenesisChanges": "" }, "State": { "consu": { @@ -1033,16 +1033,16 @@ "Src": "carol", "Dst": "alice", "TxSender": "carol", - "Amount": 449000000 + "Amount": 400000000 }, "State": { "consu": { "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 60, + "alice": 510, "bob": 500, - "carol": 950 + "carol": 500 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1060,9 +1060,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1091,9 +1091,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1120,9 +1120,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1140,9 +1140,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1171,8 +1171,8 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, - "carol": 501 + "alice": 910, + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1190,9 +1190,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 0, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1221,9 +1221,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 0, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1250,9 +1250,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 0, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1270,9 +1270,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1301,9 +1301,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1330,9 +1330,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1350,7 +1350,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, @@ -1381,7 +1381,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, @@ -1410,7 +1410,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, @@ -1430,9 +1430,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 495 + "carol": 99 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1461,9 +1461,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 495 + "carol": 99 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1490,9 +1490,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 495 + "carol": 99 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1510,7 +1510,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, @@ -1541,7 +1541,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, @@ -1561,7 +1561,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, diff --git a/tests/e2e/tracehandler_testdata/multipleConsumers.json b/tests/e2e/tracehandler_testdata/multipleConsumers.json index 504e742a60..3dbac1f88d 100644 --- a/tests/e2e/tracehandler_testdata/multipleConsumers.json +++ b/tests/e2e/tracehandler_testdata/multipleConsumers.json @@ -271,7 +271,7 @@ "Stake": 500000000 } ], - "GenesisChanges": ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"" + "GenesisChanges": "" }, "State": { "consu": { @@ -564,7 +564,7 @@ "Stake": 500000000 } ], - "GenesisChanges": ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"" + "GenesisChanges": "" }, "State": { "densu": { diff --git a/tests/e2e/tracehandler_testdata/shorthappy.json b/tests/e2e/tracehandler_testdata/shorthappy.json index 60c645e8c9..4a93c4b713 100644 --- a/tests/e2e/tracehandler_testdata/shorthappy.json +++ b/tests/e2e/tracehandler_testdata/shorthappy.json @@ -271,7 +271,7 @@ "Stake": 500000000 } ], - "GenesisChanges": ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"" + "GenesisChanges": "" }, "State": { "consu": { @@ -567,10 +567,10 @@ "ActionType": "main.RedelegateTokensAction", "Action": { "Chain": "provi", - "Src": "alice", - "Dst": "carol", - "TxSender": "alice", - "Amount": 1000000 + "Src": "carol", + "Dst": "alice", + "TxSender": "carol", + "Amount": 400000000 }, "State": { "consu": { @@ -597,9 +597,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -628,9 +628,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -657,9 +657,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -677,9 +677,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -708,8 +708,8 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, - "carol": 501 + "alice": 910, + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -727,9 +727,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 0, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -758,9 +758,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 0, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -787,9 +787,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 0, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -807,9 +807,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -838,9 +838,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -867,9 +867,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 501 + "carol": 100 }, "StakedTokens": null, "IBCTransferParams": null, @@ -887,7 +887,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, @@ -918,7 +918,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, @@ -947,7 +947,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, @@ -967,9 +967,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 495 + "carol": 99 }, "StakedTokens": null, "IBCTransferParams": null, @@ -998,9 +998,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 495 + "carol": 99 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1027,9 +1027,9 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, - "carol": 495 + "carol": 99 }, "StakedTokens": null, "IBCTransferParams": null, @@ -1047,7 +1047,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, @@ -1078,7 +1078,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, @@ -1098,7 +1098,7 @@ "ValBalances": null, "ProposedConsumerChains": null, "ValPowers": { - "alice": 509, + "alice": 910, "bob": 500, "carol": 0 }, diff --git a/tests/e2e/tracehandler_testdata/slashThrottle.json b/tests/e2e/tracehandler_testdata/slashThrottle.json index e325113cc4..68ce3a0c6d 100644 --- a/tests/e2e/tracehandler_testdata/slashThrottle.json +++ b/tests/e2e/tracehandler_testdata/slashThrottle.json @@ -271,7 +271,7 @@ "Stake": 500000000 } ], - "GenesisChanges": ".app_state.ccvconsumer.params.soft_opt_out_threshold = \"0.05\"" + "GenesisChanges": "" }, "State": { "consu": { diff --git a/tests/mbt/driver/setup.go b/tests/mbt/driver/setup.go index 81d39d5e70..87b7b16e62 100644 --- a/tests/mbt/driver/setup.go +++ b/tests/mbt/driver/setup.go @@ -499,7 +499,7 @@ func createConsumerGenesis(modelParams ModelParams, providerChain *ibctesting.Te ccvtypes.DefaultConsumerRedistributeFrac, ccvtypes.DefaultHistoricalEntries, modelParams.UnbondingPeriodPerChain[ChainId(consumerClientState.ChainId)], - "0", // disable soft opt-out + ccvtypes.DefaultSoftOptOutThreshold, []string{}, []string{}, ccvtypes.DefaultRetryDelayPeriod, diff --git a/tests/mbt/model/ccv.qnt b/tests/mbt/model/ccv.qnt index 80aed91ec2..83adcea357 100644 --- a/tests/mbt/model/ccv.qnt +++ b/tests/mbt/model/ccv.qnt @@ -396,7 +396,7 @@ module ccv { } // Delivers the next queued VscMaturedPacket from a consumer chain to the provider chain. - // Arguments are the currentState and the the consumer chain, from which the packet will be delivered. + // Arguments are the currentState and the consumer chain, from which the packet will be delivered. // If this packet will time out on the provider on delivery, // the consumer will be dropped. // The first return is the result of the operation, the second result is a boolean diff --git a/testutil/integration/debug_test.go b/testutil/integration/debug_test.go index 15036416e6..d26246dcf5 100644 --- a/testutil/integration/debug_test.go +++ b/testutil/integration/debug_test.go @@ -153,14 +153,6 @@ func TestCISBeforeCCVEstablished(t *testing.T) { runCCVTestByName(t, "TestCISBeforeCCVEstablished") } -// -// Soft opt out tests -// - -func TestSoftOptOut(t *testing.T) { - runCCVTestByName(t, "TestSoftOptOut") -} - // // Stop consumer tests // diff --git a/testutil/keeper/expectations.go b/testutil/keeper/expectations.go index 49ffe51ace..9b57643167 100644 --- a/testutil/keeper/expectations.go +++ b/testutil/keeper/expectations.go @@ -56,7 +56,6 @@ func GetMocksForMakeConsumerGenesis(ctx sdk.Context, mocks *MockedKeepers, mocks.MockStakingKeeper.EXPECT().UnbondingTime(gomock.Any()).Return(unbondingTimeToInject, nil).Times(1), mocks.MockClientKeeper.EXPECT().GetSelfConsensusState(gomock.Any(), clienttypes.GetSelfHeight(ctx)).Return(&ibctmtypes.ConsensusState{}, nil).Times(1), - // mocks.MockStakingKeeper.EXPECT().GetLastValidators(gomock.Any()).Times(1), } } diff --git a/x/ccv/consumer/keeper/msg_server.go b/x/ccv/consumer/keeper/msg_server.go index 6031101b17..ce3e67be5c 100644 --- a/x/ccv/consumer/keeper/msg_server.go +++ b/x/ccv/consumer/keeper/msg_server.go @@ -29,6 +29,10 @@ func (k msgServer) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParam return nil, errorsmod.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", k.authority, msg.Authority) } + if err := msg.Params.Validate(); err != nil { + return nil, err + } + ctx := sdk.UnwrapSDKContext(goCtx) k.Keeper.SetParams(ctx, msg.Params) diff --git a/x/ccv/consumer/keeper/validators.go b/x/ccv/consumer/keeper/validators.go index b1b62a3a40..2c4f0d79ab 100644 --- a/x/ccv/consumer/keeper/validators.go +++ b/x/ccv/consumer/keeper/validators.go @@ -124,7 +124,7 @@ func (k Keeper) Slash(ctx context.Context, addr sdk.ConsAddress, infractionHeigh return k.SlashWithInfractionReason(ctx, addr, infractionHeight, power, slashFactor, stakingtypes.Infraction_INFRACTION_UNSPECIFIED) } -// Slash queues a slashing request for the the provider chain +// Slash queues a slashing request for the provider chain // All queued slashing requests will be cleared in EndBlock // Called by Slashing keeper in SlashWithInfractionReason func (k Keeper) SlashWithInfractionReason(goCtx context.Context, addr sdk.ConsAddress, infractionHeight, power int64, slashFactor math.LegacyDec, infraction stakingtypes.Infraction) (math.Int, error) { diff --git a/x/ccv/consumer/types/consumer.pb.go b/x/ccv/consumer/types/consumer.pb.go index 6df35dd174..5e0c9488ba 100644 --- a/x/ccv/consumer/types/consumer.pb.go +++ b/x/ccv/consumer/types/consumer.pb.go @@ -39,8 +39,10 @@ type CrossChainValidator struct { Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` Power int64 `protobuf:"varint,2,opt,name=power,proto3" json:"power,omitempty"` // pubkey is the consensus public key of the validator, as a Protobuf Any. - Pubkey *types.Any `protobuf:"bytes,3,opt,name=pubkey,proto3" json:"pubkey,omitempty" yaml:"consensus_pubkey"` - OptedOut bool `protobuf:"varint,4,opt,name=opted_out,json=optedOut,proto3" json:"opted_out,omitempty"` + Pubkey *types.Any `protobuf:"bytes,3,opt,name=pubkey,proto3" json:"pubkey,omitempty" yaml:"consensus_pubkey"` + // !!! DEPRECATED !!! opted_out is deprecated because after the introduction of Partial Set Security (PSS) + // we removed the soft opt-out feature. + OptedOut bool `protobuf:"varint,4,opt,name=opted_out,json=optedOut,proto3" json:"opted_out,omitempty"` // Deprecated: Do not use. } func (m *CrossChainValidator) Reset() { *m = CrossChainValidator{} } @@ -97,6 +99,7 @@ func (m *CrossChainValidator) GetPubkey() *types.Any { return nil } +// Deprecated: Do not use. func (m *CrossChainValidator) GetOptedOut() bool { if m != nil { return m.OptedOut @@ -170,35 +173,35 @@ func init() { } var fileDescriptor_5b27a82b276e7f93 = []byte{ - // 434 bytes of a gzipped FileDescriptorProto + // 436 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x52, 0xcd, 0x6e, 0xd3, 0x40, - 0x10, 0xce, 0x52, 0x28, 0xee, 0x06, 0x21, 0x64, 0x22, 0xe1, 0x06, 0xc9, 0x89, 0xcc, 0xc5, 0x97, + 0x10, 0xce, 0xb6, 0x50, 0xdc, 0x0d, 0x42, 0xc8, 0x44, 0xc2, 0xcd, 0xc1, 0x8e, 0xc2, 0xc5, 0x97, 0xda, 0x6a, 0x2a, 0x2e, 0x48, 0x1c, 0x9a, 0x1e, 0x39, 0x14, 0x19, 0x04, 0x12, 0x17, 0x6b, 0xbd, - 0x5e, 0x1c, 0x0b, 0x7b, 0x67, 0xb5, 0x3f, 0x2e, 0xcb, 0x53, 0xf4, 0x61, 0x78, 0x05, 0xa4, 0x8a, - 0x53, 0x8f, 0x9c, 0x0a, 0x4a, 0xde, 0x80, 0x27, 0x40, 0xfe, 0x49, 0x10, 0x3f, 0xb7, 0x99, 0x6f, - 0xf6, 0x9b, 0xf9, 0x66, 0xf6, 0xc3, 0x8b, 0x92, 0x6b, 0x26, 0xe9, 0x8a, 0x94, 0x3c, 0x55, 0x8c, - 0x1a, 0x59, 0x6a, 0x1b, 0x53, 0xda, 0xc4, 0x14, 0xb8, 0x32, 0x35, 0x93, 0x71, 0x73, 0xbc, 0x8b, - 0x23, 0x21, 0x41, 0x83, 0xfb, 0xe4, 0x3f, 0x9c, 0x88, 0xd2, 0x26, 0xda, 0xbd, 0x6b, 0x8e, 0xa7, - 0x87, 0x05, 0x40, 0x51, 0xb1, 0xb8, 0xa3, 0x64, 0xe6, 0x7d, 0x4c, 0xb8, 0xed, 0xf9, 0xd3, 0x49, - 0x01, 0x05, 0x74, 0x61, 0xdc, 0x46, 0x03, 0x7a, 0x48, 0x41, 0xd5, 0xa0, 0xd2, 0xbe, 0xd0, 0x27, - 0x43, 0x69, 0xf6, 0x77, 0x2f, 0x5d, 0xd6, 0x4c, 0x69, 0x52, 0x8b, 0xfe, 0x41, 0xf0, 0x05, 0xe1, - 0x87, 0x67, 0x12, 0x94, 0x3a, 0x6b, 0x45, 0xbd, 0x21, 0x55, 0x99, 0x13, 0x0d, 0xd2, 0xf5, 0xf0, - 0x5d, 0x92, 0xe7, 0x92, 0x29, 0xe5, 0xa1, 0x39, 0x0a, 0xef, 0x25, 0xdb, 0xd4, 0x9d, 0xe0, 0x3b, - 0x02, 0x2e, 0x98, 0xf4, 0x6e, 0xcd, 0x51, 0xb8, 0x97, 0xf4, 0x89, 0x4b, 0xf0, 0xbe, 0x30, 0xd9, - 0x07, 0x66, 0xbd, 0xbd, 0x39, 0x0a, 0xc7, 0x8b, 0x49, 0xd4, 0x4f, 0x8e, 0xb6, 0x93, 0xa3, 0x53, - 0x6e, 0x97, 0x27, 0x3f, 0x6f, 0x66, 0x8f, 0x2c, 0xa9, 0xab, 0x67, 0x41, 0xbb, 0x31, 0xe3, 0xca, - 0xa8, 0xb4, 0xe7, 0x05, 0x5f, 0x3f, 0x1f, 0x4d, 0x06, 0xed, 0x54, 0x5a, 0xa1, 0x21, 0x7a, 0x69, - 0xb2, 0x17, 0xcc, 0x26, 0x43, 0x63, 0xf7, 0x31, 0x3e, 0x00, 0xa1, 0x59, 0x9e, 0x82, 0xd1, 0xde, - 0xed, 0x39, 0x0a, 0x9d, 0xc4, 0xe9, 0x80, 0x73, 0xa3, 0x83, 0x4f, 0x78, 0xfc, 0xaa, 0x22, 0x6a, - 0x95, 0x30, 0x0a, 0x32, 0x77, 0x43, 0xfc, 0xe0, 0x82, 0x94, 0xba, 0xe4, 0x45, 0x0a, 0x3c, 0x95, - 0x4c, 0x54, 0xb6, 0xdb, 0xc3, 0x49, 0xee, 0x0f, 0xf8, 0x39, 0x4f, 0x5a, 0xd4, 0x3d, 0xc5, 0x07, - 0x8a, 0xf1, 0x3c, 0x6d, 0x0f, 0xd3, 0xad, 0x34, 0x5e, 0x4c, 0xff, 0xd1, 0xfe, 0x7a, 0x7b, 0xb5, - 0xa5, 0x73, 0x75, 0x33, 0x1b, 0x5d, 0x7e, 0x9f, 0xa1, 0xc4, 0x69, 0x69, 0x6d, 0x61, 0xf9, 0xf6, - 0x6a, 0xed, 0xa3, 0xeb, 0xb5, 0x8f, 0x7e, 0xac, 0x7d, 0x74, 0xb9, 0xf1, 0x47, 0xd7, 0x1b, 0x7f, - 0xf4, 0x6d, 0xe3, 0x8f, 0xde, 0x3d, 0x2f, 0x4a, 0xbd, 0x32, 0x59, 0x44, 0xa1, 0x1e, 0xfe, 0x25, - 0xfe, 0xed, 0x80, 0xa3, 0x9d, 0x6b, 0x9a, 0xa7, 0xf1, 0xc7, 0x3f, 0xad, 0xa3, 0xad, 0x60, 0x2a, - 0xdb, 0xef, 0x04, 0x9c, 0xfc, 0x0a, 0x00, 0x00, 0xff, 0xff, 0x28, 0x12, 0xc5, 0x22, 0x6b, 0x02, - 0x00, 0x00, + 0x5e, 0x1c, 0x0b, 0x7b, 0x67, 0xb5, 0x3f, 0x2e, 0xcb, 0x53, 0xf4, 0x61, 0x78, 0x88, 0xc2, 0xa9, + 0x47, 0x4e, 0x05, 0x25, 0x6f, 0xc0, 0x13, 0x20, 0xff, 0x24, 0x88, 0x9f, 0xdb, 0xcc, 0x37, 0xfb, + 0xcd, 0x7c, 0x33, 0xfb, 0xe1, 0x45, 0xc9, 0x35, 0x93, 0x74, 0x45, 0x4a, 0x9e, 0x2a, 0x46, 0x8d, + 0x2c, 0xb5, 0x8d, 0x29, 0x6d, 0x62, 0x0a, 0x5c, 0x99, 0x9a, 0xc9, 0xb8, 0x39, 0xd9, 0xc5, 0x91, + 0x90, 0xa0, 0xc1, 0x7d, 0xf2, 0x1f, 0x4e, 0x44, 0x69, 0x13, 0xed, 0xde, 0x35, 0x27, 0xd3, 0xa3, + 0x02, 0xa0, 0xa8, 0x58, 0xdc, 0x51, 0x32, 0xf3, 0x3e, 0x26, 0xdc, 0xf6, 0xfc, 0xe9, 0xa4, 0x80, + 0x02, 0xba, 0x30, 0x6e, 0xa3, 0x01, 0x3d, 0xa2, 0xa0, 0x6a, 0x50, 0x69, 0x5f, 0xe8, 0x93, 0xa1, + 0x14, 0xfc, 0xdd, 0x4b, 0x97, 0x35, 0x53, 0x9a, 0xd4, 0xa2, 0x7f, 0x30, 0xff, 0x82, 0xf0, 0xa3, + 0x73, 0x09, 0x4a, 0x9d, 0xb7, 0xa2, 0xde, 0x90, 0xaa, 0xcc, 0x89, 0x06, 0xe9, 0x7a, 0xf8, 0x1e, + 0xc9, 0x73, 0xc9, 0x94, 0xf2, 0xd0, 0x0c, 0x85, 0xf7, 0x93, 0x6d, 0xea, 0x4e, 0xf0, 0x5d, 0x01, + 0x97, 0x4c, 0x7a, 0x7b, 0x33, 0x14, 0xee, 0x27, 0x7d, 0xe2, 0x12, 0x7c, 0x20, 0x4c, 0xf6, 0x81, + 0x59, 0x6f, 0x7f, 0x86, 0xc2, 0xf1, 0x62, 0x12, 0xf5, 0x93, 0xa3, 0xed, 0xe4, 0xe8, 0x8c, 0xdb, + 0xe5, 0xe9, 0xcf, 0xdb, 0xe0, 0xb1, 0x25, 0x75, 0xf5, 0x6c, 0xde, 0x6e, 0xcc, 0xb8, 0x32, 0x2a, + 0xed, 0x79, 0xf3, 0xaf, 0x9f, 0x8f, 0x27, 0x83, 0x76, 0x2a, 0xad, 0xd0, 0x10, 0xbd, 0x34, 0xd9, + 0x0b, 0x66, 0x93, 0xa1, 0xb1, 0x1b, 0xe0, 0x43, 0x10, 0x9a, 0xe5, 0x29, 0x18, 0xed, 0xdd, 0x99, + 0xa1, 0xd0, 0x59, 0xee, 0x79, 0x28, 0x71, 0x3a, 0xf0, 0xc2, 0xe8, 0xf9, 0x27, 0x3c, 0x7e, 0x55, + 0x11, 0xb5, 0x4a, 0x18, 0x05, 0x99, 0xbb, 0x21, 0x7e, 0x78, 0x49, 0x4a, 0x5d, 0xf2, 0x22, 0x05, + 0x9e, 0x4a, 0x26, 0x2a, 0xdb, 0xed, 0xe2, 0x24, 0x0f, 0x06, 0xfc, 0x82, 0x27, 0x2d, 0xea, 0x9e, + 0xe1, 0x43, 0xc5, 0x78, 0x9e, 0xb6, 0xc7, 0xe9, 0xd6, 0x1a, 0x2f, 0xa6, 0xff, 0xe8, 0x7f, 0xbd, + 0xbd, 0xdc, 0xd2, 0xb9, 0xbe, 0x0d, 0x46, 0x57, 0xdf, 0x03, 0x94, 0x38, 0x2d, 0xad, 0x2d, 0x2c, + 0xdf, 0x5e, 0xaf, 0x7d, 0x74, 0xb3, 0xf6, 0xd1, 0x8f, 0xb5, 0x8f, 0xae, 0x36, 0xfe, 0xe8, 0x66, + 0xe3, 0x8f, 0xbe, 0x6d, 0xfc, 0xd1, 0xbb, 0xe7, 0x45, 0xa9, 0x57, 0x26, 0x8b, 0x28, 0xd4, 0xc3, + 0xdf, 0xc4, 0xbf, 0x5d, 0x70, 0xbc, 0x73, 0x4e, 0xf3, 0x34, 0xfe, 0xf8, 0xa7, 0x7d, 0xb4, 0x15, + 0x4c, 0x65, 0x07, 0x9d, 0x80, 0xd3, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x83, 0x9f, 0x58, 0x42, + 0x6f, 0x02, 0x00, 0x00, } func (m *CrossChainValidator) Marshal() (dAtA []byte, err error) { diff --git a/x/ccv/consumer/types/keys_test.go b/x/ccv/consumer/types/keys_test.go index e1fcbcf733..7ca5ce2a10 100644 --- a/x/ccv/consumer/types/keys_test.go +++ b/x/ccv/consumer/types/keys_test.go @@ -69,8 +69,7 @@ func getAllFullyDefinedKeys() [][]byte { // PendingDataPacketsKey() does not use duplicated prefix with value of 0x06 PreCCVKey(), InitialValSetKey(), - // LastStandaloneHeightKey() is depreciated - SmallestNonOptOutPowerKey(), + // LastStandaloneHeightKey() is deprecated HistoricalInfoKey(0), PacketMaturityTimeKey(0, time.Time{}), HeightValsetUpdateIDKey(0), diff --git a/x/ccv/consumer/types/params_test.go b/x/ccv/consumer/types/params_test.go index caff4db0b1..ee4d45a80d 100644 --- a/x/ccv/consumer/types/params_test.go +++ b/x/ccv/consumer/types/params_test.go @@ -57,14 +57,6 @@ func TestValidateParams(t *testing.T) { "custom invalid params, negative unbonding period", ccvtypes.NewParams(true, 5, "", "", 5, 1005, "0.5", 1000, -24*21*time.Hour, "0.05", []string{"untrn"}, []string{"uatom"}, 2*time.Hour), false, }, - { - "custom invalid params, invalid soft opt out threshold", - ccvtypes.NewParams(true, 5, "", "", 5, 1005, "0.5", 1000, 24*21*time.Hour, "-0.05", []string{"u"}, []string{}, 2*time.Hour), false, - }, - { - "custom invalid params, invalid soft opt out threshold", - ccvtypes.NewParams(true, 5, "", "", 5, 1005, "0.5", 1000, 24*21*time.Hour, "0.5", []string{"u"}, []string{}, 2*time.Hour), false, - }, { "custom invalid params, invalid reward denom", ccvtypes.NewParams(true, 5, "", "", 5, 1005, "0.5", 1000, 24*21*time.Hour, "0.05", []string{"u"}, []string{}, 2*time.Hour), false, diff --git a/x/ccv/consumer/types/validator.go b/x/ccv/consumer/types/validator.go index f1f9fa260b..b134dde078 100644 --- a/x/ccv/consumer/types/validator.go +++ b/x/ccv/consumer/types/validator.go @@ -15,10 +15,9 @@ func NewCCValidator(address []byte, power int64, pubKey cryptotypes.PubKey) (Cro } return CrossChainValidator{ - Address: address, - Power: power, - Pubkey: pkAny, - OptedOut: false, + Address: address, + Power: power, + Pubkey: pkAny, }, nil } diff --git a/x/ccv/democracy/distribution/module.go b/x/ccv/democracy/distribution/module.go index 9e0bdacbb6..310e542b6a 100644 --- a/x/ccv/democracy/distribution/module.go +++ b/x/ccv/democracy/distribution/module.go @@ -66,7 +66,7 @@ func NewAppModule( // BeginBlock implements HasBeginBlocker interface // The cosmos-sdk/distribution BeginBlocker functionality is replicated here, -// however it no proposer awards are allocated. +// however no proposer awards are allocated. func (am AppModule) BeginBlock(goCtx context.Context) error { ctx := sdk.UnwrapSDKContext(goCtx) defer telemetry.ModuleMeasureSince(distrtypes.ModuleName, time.Now(), telemetry.MetricKeyBeginBlocker) diff --git a/x/ccv/provider/ibc_middleware.go b/x/ccv/provider/ibc_middleware.go index f4128260e1..d9d816ab93 100644 --- a/x/ccv/provider/ibc_middleware.go +++ b/x/ccv/provider/ibc_middleware.go @@ -212,7 +212,7 @@ func (im IBCMiddleware) GetAppVersion(ctx sdk.Context, portID, channelID string) // It follows the same logic than the OnRecvPacket method of the IBC transfer module // see https://github.com/cosmos/ibc-go/blob/v7.3.2/modules/apps/transfer/keeper/relay.go#L162 func GetProviderDenom(denom string, packet channeltypes.Packet) (providerDenom string) { - // If the the prefix denom corresponds to the packet's source port and channel, + // If the prefix denom corresponds to the packet's source port and channel, // returns the base denom if ibctransfertypes.ReceiverChainIsSource(packet.GetSourcePort(), packet.GetSourceChannel(), denom) { voucherPrefix := ibctransfertypes.GetDenomPrefix(packet.GetSourcePort(), packet.GetSourceChannel()) diff --git a/x/ccv/provider/keeper/consumer_equivocation.go b/x/ccv/provider/keeper/consumer_equivocation.go index 65f113f6ad..b7aebf5c9c 100644 --- a/x/ccv/provider/keeper/consumer_equivocation.go +++ b/x/ccv/provider/keeper/consumer_equivocation.go @@ -311,7 +311,7 @@ func (k Keeper) CheckMisbehaviour(ctx sdk.Context, misbehaviour ibctmtypes.Misbe // the misbehaviour is for a light client attack and not a time violation, // see ibc-go/modules/light-clients/07-tendermint/types/misbehaviour_handle.go if !misbehaviour.Header1.GetHeight().EQ(misbehaviour.Header2.GetHeight()) { - return errorsmod.Wrapf(ibcclienttypes.ErrInvalidMisbehaviour, "headers are not at same height") + return errorsmod.Wrap(ibcclienttypes.ErrInvalidMisbehaviour, "headers are not at same height") } // Check that the evidence is not too old @@ -516,7 +516,7 @@ func (k Keeper) SlashValidator(ctx sdk.Context, providerAddr types.ProviderConsA // CRUD section // -// SetEquivocationEvidenceMinHeight sets the the minimum height +// SetEquivocationEvidenceMinHeight sets the minimum height // of a valid consumer equivocation evidence for a given consumer chain ID func (k Keeper) SetEquivocationEvidenceMinHeight(ctx sdk.Context, chainID string, height uint64) { store := ctx.KVStore(k.storeKey) @@ -526,7 +526,7 @@ func (k Keeper) SetEquivocationEvidenceMinHeight(ctx sdk.Context, chainID string store.Set(types.EquivocationEvidenceMinHeightKey(chainID), heightBytes) } -// GetEquivocationEvidenceMinHeight returns the the minimum height +// GetEquivocationEvidenceMinHeight returns the minimum height // of a valid consumer equivocation evidence for a given consumer chain ID func (k Keeper) GetEquivocationEvidenceMinHeight(ctx sdk.Context, chainID string) uint64 { store := ctx.KVStore(k.storeKey) @@ -538,7 +538,7 @@ func (k Keeper) GetEquivocationEvidenceMinHeight(ctx sdk.Context, chainID string return binary.BigEndian.Uint64(bz) } -// DeleteEquivocationEvidenceMinHeight deletes the the minimum height +// DeleteEquivocationEvidenceMinHeight deletes the minimum height // of a valid consumer equivocation evidence for a given consumer chain ID func (k Keeper) DeleteEquivocationEvidenceMinHeight(ctx sdk.Context, chainID string) { store := ctx.KVStore(k.storeKey) diff --git a/x/ccv/provider/keeper/genesis.go b/x/ccv/provider/keeper/genesis.go index b8d6d179fc..b965e3ed57 100644 --- a/x/ccv/provider/keeper/genesis.go +++ b/x/ccv/provider/keeper/genesis.go @@ -21,7 +21,7 @@ func (k Keeper) InitGenesis(ctx sdk.Context, genState *types.GenesisState) { err := k.BindPort(ctx, ccv.ProviderPortID) if err != nil { // If the binding fails, the chain MUST NOT start - panic(fmt.Errorf("could not claim port capability: %v", err)) + panic(fmt.Errorf("could not claim port capability: %w", err)) } } diff --git a/x/ccv/provider/keeper/key_assignment.go b/x/ccv/provider/keeper/key_assignment.go index b7d1f2de0b..596c3be606 100644 --- a/x/ccv/provider/keeper/key_assignment.go +++ b/x/ccv/provider/keeper/key_assignment.go @@ -506,7 +506,7 @@ func (k Keeper) ValidatorConsensusKeyInUse(ctx sdk.Context, valAddr sdk.ValAddre val, err := k.stakingKeeper.GetValidator(ctx, valAddr) if err != nil { // Abort TX, do NOT allow validator to be created - panic(fmt.Errorf("error finding newly created validator in staking module: %s", err)) + panic(fmt.Errorf("error finding newly created validator in staking module: %w", err)) } // Get the consensus address of the validator being added diff --git a/x/ccv/provider/keeper/msg_server.go b/x/ccv/provider/keeper/msg_server.go index 4239a7cf41..08429c55a8 100644 --- a/x/ccv/provider/keeper/msg_server.go +++ b/x/ccv/provider/keeper/msg_server.go @@ -34,6 +34,10 @@ func (k msgServer) UpdateParams(goCtx context.Context, msg *types.MsgUpdateParam return nil, errorsmod.Wrapf(govtypes.ErrInvalidSigner, "invalid authority; expected %s, got %s", k.authority, msg.Authority) } + if err := msg.Params.Validate(); err != nil { + return nil, err + } + ctx := sdk.UnwrapSDKContext(goCtx) k.Keeper.SetParams(ctx, msg.Params) @@ -83,7 +87,7 @@ func (k msgServer) AssignConsumerKey(goCtx context.Context, msg *types.MsgAssign return &types.MsgAssignConsumerKeyResponse{}, nil } -// ConsumerAddition defines a rpc handler method for MsgConsumerAddition +// ConsumerAddition defines an RPC handler method for MsgConsumerAddition func (k msgServer) ConsumerAddition(goCtx context.Context, msg *types.MsgConsumerAddition) (*types.MsgConsumerAdditionResponse, error) { if k.GetAuthority() != msg.Authority { return nil, errorsmod.Wrapf(types.ErrUnauthorized, "expected %s, got %s", k.GetAuthority(), msg.Authority) @@ -97,7 +101,7 @@ func (k msgServer) ConsumerAddition(goCtx context.Context, msg *types.MsgConsume return &types.MsgConsumerAdditionResponse{}, nil } -// ConsumerRemoval defines a rpc handler method for MsgConsumerRemoval +// ConsumerRemoval defines an RPC handler method for MsgConsumerRemoval func (k msgServer) ConsumerRemoval( goCtx context.Context, msg *types.MsgConsumerRemoval) (*types.MsgConsumerRemovalResponse, error) { diff --git a/x/ccv/provider/keeper/proposal.go b/x/ccv/provider/keeper/proposal.go index f30332919a..8d471f086b 100644 --- a/x/ccv/provider/keeper/proposal.go +++ b/x/ccv/provider/keeper/proposal.go @@ -40,6 +40,11 @@ func (k Keeper) HandleConsumerAdditionProposal(ctx sdk.Context, proposal *types. BlocksPerDistributionTransmission: proposal.BlocksPerDistributionTransmission, HistoricalEntries: proposal.HistoricalEntries, DistributionTransmissionChannel: proposal.DistributionTransmissionChannel, + Top_N: proposal.Top_N, + ValidatorsPowerCap: proposal.ValidatorsPowerCap, + ValidatorSetCap: proposal.ValidatorSetCap, + Allowlist: proposal.Allowlist, + Denylist: proposal.Denylist, } return k.HandleLegacyConsumerAdditionProposal(ctx, &p) @@ -181,7 +186,6 @@ func (k Keeper) StopConsumerChain(ctx sdk.Context, chainID string, closeChan boo // Note: this call panics if the key assignment state is invalid k.DeleteKeyAssignments(ctx, chainID) k.DeleteMinimumPowerInTopN(ctx, chainID) - k.DeleteEquivocationEvidenceMinHeight(ctx, chainID) // close channel and delete the mappings between chain ID and channel ID if channelID, found := k.GetChainToChannel(ctx, chainID); found { diff --git a/x/ccv/provider/keeper/relay.go b/x/ccv/provider/keeper/relay.go index 6373e6a7ce..4d8f862c1b 100644 --- a/x/ccv/provider/keeper/relay.go +++ b/x/ccv/provider/keeper/relay.go @@ -215,7 +215,7 @@ func (k Keeper) SendVSCPacketsToChain(ctx sdk.Context, chainID, channelID string } // QueueVSCPackets queues latest validator updates for every registered consumer chain -// failing to GetLastValidators will cause a panic in EndBlock +// failing to GetLastBondedValidators will cause a panic in EndBlock // TODO: decide if this func shouldn't return an error to be propagated to BeginBlocker func (k Keeper) QueueVSCPackets(ctx sdk.Context) { @@ -427,8 +427,8 @@ func (k Keeper) HandleSlashPacket(ctx sdk.Context, chainID string, data ccv.Slas // Obtain validator from staking keeper validator, err := k.stakingKeeper.GetValidatorByConsAddr(ctx, providerConsAddr.ToSdkConsAddr()) - if err != nil && errors.Is(err, stakingtypes.ErrNoValidatorFound) { - k.Logger(ctx).Error("validator not found", "validator", providerConsAddr.String()) + if err != nil { + k.Logger(ctx).Error("validator not found", "validator", providerConsAddr.String(), "error", err) return } diff --git a/x/ccv/provider/migrations/v5/migrations_test.go b/x/ccv/provider/migrations/v5/migration_test.go similarity index 100% rename from x/ccv/provider/migrations/v5/migrations_test.go rename to x/ccv/provider/migrations/v5/migration_test.go diff --git a/x/ccv/provider/types/msg.go b/x/ccv/provider/types/msg.go index 058ee1d2e5..f74d8b9d78 100644 --- a/x/ccv/provider/types/msg.go +++ b/x/ccv/provider/types/msg.go @@ -32,6 +32,7 @@ var ( _ sdk.Msg = (*MsgAssignConsumerKey)(nil) _ sdk.Msg = (*MsgConsumerAddition)(nil) _ sdk.Msg = (*MsgConsumerRemoval)(nil) + _ sdk.Msg = (*MsgConsumerModification)(nil) _ sdk.Msg = (*MsgChangeRewardDenoms)(nil) _ sdk.Msg = (*MsgSubmitConsumerMisbehaviour)(nil) _ sdk.Msg = (*MsgSubmitConsumerDoubleVoting)(nil) @@ -42,6 +43,7 @@ var ( _ sdk.HasValidateBasic = (*MsgAssignConsumerKey)(nil) _ sdk.HasValidateBasic = (*MsgConsumerAddition)(nil) _ sdk.HasValidateBasic = (*MsgConsumerRemoval)(nil) + _ sdk.HasValidateBasic = (*MsgConsumerModification)(nil) _ sdk.HasValidateBasic = (*MsgChangeRewardDenoms)(nil) _ sdk.HasValidateBasic = (*MsgSubmitConsumerMisbehaviour)(nil) _ sdk.HasValidateBasic = (*MsgSubmitConsumerDoubleVoting)(nil) @@ -244,10 +246,6 @@ func (msg *MsgConsumerAddition) ValidateBasic() error { return ErrBlankConsumerChainID } - if strings.TrimSpace(msg.ChainId) == "" { - return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "consumer chain id must not be blank") - } - if msg.InitialHeight.IsZero() { return errorsmod.Wrap(ErrInvalidConsumerAdditionProposal, "initial height cannot be zero") } @@ -306,6 +304,20 @@ func (msg *MsgConsumerRemoval) ValidateBasic() error { return nil } +// ValidateBasic implements the sdk.Msg interface. +func (msg *MsgConsumerModification) ValidateBasic() error { + if strings.TrimSpace(msg.ChainId) == "" { + return ErrBlankConsumerChainID + } + + err := ValidatePSSFeatures(msg.Top_N, msg.ValidatorsPowerCap) + if err != nil { + return errorsmod.Wrapf(ErrInvalidConsumerModificationProposal, "invalid PSS features: %s", err.Error()) + } + + return nil +} + // NewMsgOptIn creates a new NewMsgOptIn instance. func NewMsgOptIn(chainID string, providerValidatorAddress sdk.ValAddress, consumerConsensusPubKey, signer string) (*MsgOptIn, error) { return &MsgOptIn{ diff --git a/x/ccv/provider/types/query.pb.go b/x/ccv/provider/types/query.pb.go index e8c13f7d3c..84e610776e 100644 --- a/x/ccv/provider/types/query.pb.go +++ b/x/ccv/provider/types/query.pb.go @@ -9,7 +9,6 @@ import ( fmt "fmt" crypto "github.com/cometbft/cometbft/proto/tendermint/crypto" _ "github.com/cosmos/cosmos-proto" - _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" @@ -1789,135 +1788,133 @@ func init() { } var fileDescriptor_422512d7b7586cd7 = []byte{ - // 2045 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0xcf, 0x6f, 0xdc, 0xc6, - 0xf5, 0x17, 0x57, 0x3f, 0x22, 0x8d, 0xe2, 0x5f, 0x63, 0x7d, 0x13, 0x99, 0x52, 0x76, 0x15, 0xe6, - 0xdb, 0x56, 0x96, 0x9d, 0xa5, 0x24, 0xc3, 0xad, 0x63, 0x57, 0x91, 0xb5, 0x5a, 0xdb, 0xd9, 0xda, - 0x89, 0x15, 0x5a, 0x56, 0x0b, 0xb7, 0x28, 0x3d, 0x26, 0x27, 0x2b, 0xc2, 0x24, 0x87, 0xe2, 0x50, - 0xeb, 0x6c, 0x8d, 0x1c, 0xd2, 0x43, 0x9b, 0x53, 0x11, 0xf4, 0x07, 0xd0, 0x63, 0x2e, 0x05, 0x7a, - 0x29, 0x50, 0x14, 0x45, 0x91, 0x3f, 0x21, 0xb7, 0xa6, 0xcd, 0xa5, 0xe8, 0xc1, 0x2d, 0xec, 0x02, - 0x2d, 0x7a, 0x28, 0x8a, 0xa0, 0x40, 0x4f, 0x05, 0x0a, 0x0e, 0x87, 0xbf, 0x76, 0xb9, 0xbb, 0xe4, - 0xae, 0x7a, 0x11, 0x96, 0x33, 0x6f, 0x3e, 0xf3, 0xde, 0x9b, 0xf7, 0xde, 0xbc, 0xcf, 0x08, 0xc8, - 0x86, 0xed, 0x61, 0x57, 0xdb, 0x47, 0x86, 0xad, 0x52, 0xac, 0x1d, 0xba, 0x86, 0xd7, 0x96, 0x35, - 0xad, 0x25, 0x3b, 0x2e, 0x69, 0x19, 0x3a, 0x76, 0xe5, 0xd6, 0x9a, 0x7c, 0x70, 0x88, 0xdd, 0x76, - 0xd5, 0x71, 0x89, 0x47, 0xe0, 0x2b, 0x19, 0x0b, 0xaa, 0x9a, 0xd6, 0xaa, 0x86, 0x0b, 0xaa, 0xad, - 0x35, 0x71, 0xb1, 0x49, 0x48, 0xd3, 0xc4, 0x32, 0x72, 0x0c, 0x19, 0xd9, 0x36, 0xf1, 0x90, 0x67, - 0x10, 0x9b, 0x06, 0x10, 0xe2, 0x5c, 0x93, 0x34, 0x09, 0xfb, 0x29, 0xfb, 0xbf, 0xf8, 0x68, 0x85, - 0xaf, 0x61, 0x5f, 0x0f, 0x0e, 0xdf, 0x91, 0x3d, 0xc3, 0xc2, 0xd4, 0x43, 0x96, 0xc3, 0x05, 0xd6, - 0xf3, 0xa8, 0x1a, 0x69, 0x11, 0xac, 0x59, 0xed, 0xb5, 0xa6, 0xb5, 0x26, 0xd3, 0x7d, 0xe4, 0x62, - 0x5d, 0xd5, 0x88, 0x4d, 0x0f, 0xad, 0x68, 0xc5, 0x17, 0xfa, 0xac, 0x78, 0x64, 0xb8, 0x98, 0x8b, - 0x2d, 0x7a, 0xd8, 0xd6, 0xb1, 0x6b, 0x19, 0xb6, 0x27, 0x6b, 0x6e, 0xdb, 0xf1, 0x88, 0xfc, 0x10, - 0xb7, 0x43, 0x0b, 0xcf, 0x68, 0x84, 0x5a, 0x84, 0xaa, 0x81, 0x91, 0xc1, 0x07, 0x9f, 0x3a, 0x85, - 0x2c, 0xc3, 0x26, 0x32, 0xfb, 0x1b, 0x0c, 0x49, 0x97, 0xc0, 0xc2, 0xdb, 0xbe, 0x87, 0xb7, 0xb9, - 0x26, 0x37, 0xb0, 0x8d, 0xa9, 0x41, 0x15, 0x7c, 0x70, 0x88, 0xa9, 0x07, 0xcf, 0x80, 0xe9, 0x40, - 0x1d, 0x43, 0x9f, 0x17, 0x96, 0x84, 0xe5, 0x19, 0xe5, 0x39, 0xf6, 0xdd, 0xd0, 0xa5, 0xc7, 0x60, - 0x31, 0x7b, 0x25, 0x75, 0x88, 0x4d, 0x31, 0xfc, 0x26, 0x38, 0xd6, 0x0c, 0x86, 0x54, 0xea, 0x21, - 0x0f, 0xb3, 0xf5, 0xb3, 0xeb, 0xab, 0xd5, 0x5e, 0x87, 0xd8, 0x5a, 0xab, 0x76, 0x60, 0xdd, 0xf1, - 0xd7, 0xd5, 0x26, 0x3e, 0x79, 0x52, 0x19, 0x53, 0x9e, 0x6f, 0x26, 0xc6, 0xa4, 0x45, 0x20, 0xa6, - 0x36, 0xdf, 0xf6, 0xe1, 0x42, 0xad, 0x25, 0xd4, 0x61, 0x54, 0x38, 0xcb, 0x35, 0xab, 0x81, 0x29, - 0xb6, 0x3d, 0x9d, 0x17, 0x96, 0xc6, 0x97, 0x67, 0xd7, 0x57, 0xaa, 0x39, 0xe2, 0xaa, 0xca, 0x40, - 0x14, 0xbe, 0x52, 0x3a, 0x0b, 0xbe, 0xd4, 0xbd, 0xc5, 0x1d, 0x0f, 0xb9, 0xde, 0x8e, 0x4b, 0x1c, - 0x42, 0x91, 0x19, 0x69, 0xf3, 0x81, 0x00, 0x96, 0x07, 0xcb, 0x72, 0xdd, 0xbe, 0x05, 0x66, 0x9c, - 0x70, 0x90, 0x7b, 0xec, 0xf5, 0x7c, 0xea, 0x71, 0xf0, 0x2d, 0x5d, 0x37, 0xfc, 0x80, 0x8f, 0xa1, - 0x63, 0x40, 0x69, 0x19, 0x7c, 0x31, 0x4b, 0x13, 0xe2, 0x74, 0x29, 0xfd, 0x3d, 0x21, 0xdb, 0xc0, - 0x94, 0x68, 0x74, 0xd2, 0x5d, 0x3a, 0x6f, 0x14, 0xd2, 0x59, 0xc1, 0x16, 0x69, 0x21, 0x33, 0x53, - 0xe5, 0x9f, 0x96, 0xc0, 0x24, 0xdb, 0xbb, 0x4f, 0x2c, 0xc2, 0x05, 0x30, 0xa3, 0x99, 0x06, 0xb6, - 0x3d, 0x7f, 0xae, 0xc4, 0xe6, 0xa6, 0x83, 0x81, 0x86, 0x0e, 0x4f, 0x83, 0x49, 0x8f, 0x38, 0xea, - 0x5b, 0xf3, 0xe3, 0x4b, 0xc2, 0xf2, 0x31, 0x65, 0xc2, 0x23, 0xce, 0x5b, 0x70, 0x05, 0x40, 0xcb, - 0xb0, 0x55, 0x87, 0x3c, 0xc2, 0xae, 0x6a, 0xd8, 0x6a, 0x20, 0x31, 0xb1, 0x24, 0x2c, 0x8f, 0x2b, - 0xc7, 0x2d, 0xc3, 0xde, 0xf1, 0x27, 0x1a, 0xf6, 0xae, 0x2f, 0xbb, 0x0a, 0xe6, 0x5a, 0xc8, 0x34, - 0x74, 0xe4, 0x11, 0x97, 0xf2, 0x25, 0x1a, 0x72, 0xe6, 0x27, 0x19, 0x1e, 0x8c, 0xe7, 0xd8, 0xa2, - 0x6d, 0xe4, 0xc0, 0x15, 0x70, 0x2a, 0x1a, 0x55, 0x29, 0xf6, 0x98, 0xf8, 0x14, 0x13, 0x3f, 0x11, - 0x4d, 0xdc, 0xc1, 0x9e, 0x2f, 0xbb, 0x08, 0x66, 0x90, 0x69, 0x92, 0x47, 0xa6, 0x41, 0xbd, 0xf9, - 0xe7, 0x96, 0xc6, 0x97, 0x67, 0x94, 0x78, 0x00, 0x8a, 0x60, 0x5a, 0xc7, 0x76, 0x9b, 0x4d, 0x4e, - 0xb3, 0xc9, 0xe8, 0x5b, 0xfa, 0xbe, 0x00, 0x5e, 0x66, 0x67, 0xb4, 0x17, 0x42, 0x26, 0x82, 0xc0, - 0x1d, 0x9c, 0xc2, 0x70, 0x03, 0x9c, 0x0c, 0x8f, 0x43, 0x45, 0xba, 0xee, 0x62, 0x4a, 0x03, 0xef, - 0xd5, 0xe0, 0xe7, 0x4f, 0x2a, 0xc7, 0xdb, 0xc8, 0x32, 0x2f, 0x4b, 0x7c, 0x42, 0x52, 0x4e, 0x84, - 0xb2, 0x5b, 0xc1, 0xc8, 0xe5, 0xe9, 0x0f, 0x3e, 0xaa, 0x8c, 0xfd, 0xed, 0xa3, 0xca, 0x98, 0x74, - 0x1b, 0x48, 0xfd, 0x14, 0xe1, 0x71, 0x72, 0x16, 0x9c, 0x0c, 0x0b, 0x5e, 0xb4, 0x5d, 0xa0, 0xd1, - 0x09, 0x2d, 0x21, 0xef, 0x6f, 0xd6, 0x6d, 0xda, 0x4e, 0x62, 0xf3, 0x7c, 0xa6, 0x75, 0xed, 0xd5, - 0xc7, 0xb4, 0x8e, 0xfd, 0xfb, 0x99, 0x96, 0x56, 0x24, 0x36, 0xad, 0xcb, 0x93, 0xdc, 0xb4, 0x0e, - 0xaf, 0x49, 0x0b, 0xe0, 0x0c, 0x03, 0xdc, 0xdd, 0x77, 0x89, 0xe7, 0x99, 0x98, 0x15, 0xb4, 0x30, - 0xed, 0x7e, 0x27, 0xf0, 0xc2, 0xd6, 0x31, 0xcb, 0xb7, 0xa9, 0x80, 0x59, 0x6a, 0x22, 0xba, 0xaf, - 0x5a, 0xd8, 0xc3, 0x2e, 0xdb, 0x61, 0x5c, 0x01, 0x6c, 0xe8, 0x4d, 0x7f, 0x04, 0xae, 0x83, 0xff, - 0x4b, 0x08, 0xa8, 0x2c, 0x8e, 0x90, 0xad, 0x61, 0x66, 0xfb, 0xb8, 0x72, 0x3a, 0x16, 0xdd, 0x0a, - 0xa7, 0xe0, 0xb7, 0xc1, 0xbc, 0x8d, 0xdf, 0xf5, 0x54, 0x17, 0x3b, 0x26, 0xb6, 0x0d, 0xba, 0xaf, - 0x6a, 0xc8, 0xd6, 0x7d, 0x63, 0x31, 0x4b, 0x99, 0xd9, 0x75, 0xb1, 0x1a, 0xdc, 0x8f, 0xd5, 0xf0, - 0x7e, 0xac, 0xee, 0x86, 0xf7, 0x63, 0x6d, 0xda, 0xaf, 0xce, 0x1f, 0xfe, 0xa9, 0x22, 0x28, 0x2f, - 0xf8, 0x28, 0x4a, 0x08, 0xb2, 0x1d, 0x62, 0x48, 0xe7, 0xc1, 0x0a, 0x33, 0x49, 0xc1, 0x4d, 0x83, - 0x7a, 0xd8, 0xc5, 0x7a, 0x9c, 0xf7, 0x8f, 0x90, 0xab, 0xd7, 0xb1, 0x4d, 0xac, 0xa8, 0xf0, 0x5c, - 0x03, 0xe7, 0x72, 0x49, 0x73, 0x8f, 0xbc, 0x00, 0xa6, 0x74, 0x36, 0xc2, 0x6a, 0xf9, 0x8c, 0xc2, - 0xbf, 0xa4, 0x32, 0xbf, 0x9d, 0x82, 0x9a, 0x82, 0x75, 0x56, 0x42, 0x1a, 0xf5, 0x68, 0x9b, 0xf7, - 0x05, 0xf0, 0x52, 0x0f, 0x01, 0x8e, 0x7c, 0x1f, 0x1c, 0x77, 0x92, 0x73, 0xe1, 0x6d, 0xb1, 0x9e, - 0xab, 0xb4, 0xa5, 0x60, 0xf9, 0x15, 0xd6, 0x81, 0x27, 0x35, 0xc0, 0xb1, 0x94, 0x18, 0x9c, 0x07, - 0x3c, 0x7e, 0xeb, 0xe9, 0x70, 0xae, 0xc3, 0x32, 0x00, 0x61, 0x49, 0x6c, 0xd4, 0xd9, 0x61, 0x4e, - 0x28, 0x89, 0x11, 0xe9, 0x16, 0x90, 0x99, 0x35, 0x5b, 0xa6, 0xb9, 0x83, 0x0c, 0x97, 0xee, 0x21, - 0x73, 0x9b, 0xd8, 0x7e, 0xc8, 0xd5, 0xd2, 0x15, 0xbc, 0x51, 0xcf, 0x71, 0xb5, 0xff, 0x4c, 0x00, - 0xab, 0xf9, 0xe1, 0xb8, 0xbf, 0x0e, 0xc0, 0x29, 0x07, 0x19, 0xae, 0xda, 0x42, 0xa6, 0xdf, 0xd7, - 0xb0, 0x34, 0xe0, 0x2e, 0xbb, 0x9e, 0xcf, 0x65, 0xc8, 0x70, 0xe3, 0x8d, 0xa2, 0x34, 0xb3, 0xe3, - 0x00, 0x38, 0xee, 0xa4, 0x44, 0xa4, 0x7f, 0x09, 0xe0, 0xe5, 0x81, 0xab, 0xe0, 0xf5, 0x5e, 0xb9, - 0x59, 0x5b, 0xf8, 0xfc, 0x49, 0xe5, 0xc5, 0xa0, 0x14, 0x74, 0x4a, 0x74, 0x97, 0x3b, 0x1f, 0xa7, - 0x47, 0x49, 0x49, 0xe0, 0x74, 0x4a, 0x74, 0xd7, 0x16, 0xb8, 0x09, 0x9e, 0x8f, 0xa4, 0x1e, 0xe2, - 0x36, 0xcf, 0xb1, 0xc5, 0x6a, 0xdc, 0xd5, 0x55, 0x83, 0xae, 0xae, 0xba, 0x73, 0xf8, 0xc0, 0x34, - 0xb4, 0x9b, 0xb8, 0xad, 0xcc, 0x86, 0x2b, 0x6e, 0xe2, 0xb6, 0x34, 0x07, 0x60, 0x10, 0xba, 0xc8, - 0x45, 0x71, 0xe2, 0xdc, 0x07, 0xa7, 0x53, 0xa3, 0xfc, 0x58, 0x1a, 0x60, 0xca, 0x61, 0x23, 0xfc, - 0x66, 0x3e, 0x97, 0xf3, 0x2c, 0xfc, 0x25, 0x3c, 0x6e, 0x39, 0x80, 0x74, 0x83, 0x27, 0x72, 0x2a, - 0x02, 0x6e, 0x3b, 0x1e, 0xd6, 0x1b, 0x76, 0x54, 0x1e, 0xf3, 0xb4, 0x8e, 0x07, 0x3c, 0xc7, 0x07, - 0x01, 0x45, 0xfd, 0xda, 0x4b, 0xc9, 0xfb, 0xb7, 0xe3, 0xa4, 0x70, 0x98, 0xfa, 0x0b, 0x89, 0x8b, - 0x38, 0x7d, 0x74, 0x98, 0x4a, 0x57, 0x40, 0x39, 0xb5, 0x65, 0x21, 0x7d, 0x3f, 0x16, 0xc0, 0x52, - 0x8f, 0xd5, 0xd1, 0xaf, 0xcc, 0xcb, 0x54, 0xc8, 0x7d, 0x99, 0x76, 0x45, 0x45, 0xa9, 0x60, 0x54, - 0xc0, 0x39, 0x30, 0xc9, 0x5a, 0x13, 0x16, 0x4f, 0xe3, 0x4a, 0xf0, 0xe1, 0x37, 0x9f, 0x95, 0x9e, - 0x86, 0x73, 0xff, 0x62, 0x00, 0x62, 0xd7, 0xf1, 0x94, 0xbd, 0x96, 0x2b, 0x4c, 0x06, 0x39, 0x45, - 0x49, 0x00, 0x4b, 0x07, 0xbc, 0xa8, 0xa4, 0xbb, 0xf2, 0x48, 0xf6, 0x0d, 0x44, 0x77, 0x09, 0xff, - 0x0a, 0xef, 0xc3, 0x11, 0x9d, 0x2a, 0x21, 0xb0, 0x56, 0x60, 0x4b, 0xee, 0x8e, 0xf3, 0x00, 0x46, - 0x27, 0x11, 0x46, 0x44, 0x18, 0x63, 0x51, 0x05, 0x08, 0xaa, 0x9f, 0xce, 0x3a, 0x95, 0x73, 0xd9, - 0xbd, 0xcf, 0x36, 0xb1, 0x2c, 0x83, 0x52, 0x83, 0xd8, 0x4a, 0xc2, 0xa2, 0xff, 0x59, 0x3b, 0x26, - 0x7d, 0x07, 0x9c, 0xcf, 0xa7, 0x08, 0xb7, 0xf3, 0x6b, 0x60, 0xc2, 0x0d, 0x79, 0xd9, 0x4c, 0xed, - 0xcb, 0x7e, 0xaa, 0xff, 0xf1, 0x49, 0x65, 0x21, 0x60, 0x8c, 0x54, 0x7f, 0x58, 0x35, 0x88, 0x6c, - 0x21, 0x6f, 0xbf, 0x7a, 0x0b, 0x37, 0x91, 0xd6, 0xae, 0x63, 0xed, 0xf7, 0xbf, 0x7e, 0x15, 0x70, - 0x42, 0x59, 0xc7, 0xda, 0xcf, 0xff, 0xfa, 0xcb, 0x15, 0x41, 0x61, 0x18, 0xd2, 0x06, 0x4f, 0x90, - 0xdb, 0xa6, 0x8e, 0xa9, 0x77, 0xd7, 0xd6, 0x88, 0xfd, 0x8e, 0xe1, 0x5a, 0x58, 0xdf, 0xa3, 0x5a, - 0x8e, 0x04, 0xfb, 0x41, 0xd8, 0xee, 0x65, 0xaf, 0xe7, 0x0a, 0x1b, 0x00, 0xb6, 0xa8, 0xa6, 0x52, - 0x6c, 0xeb, 0x6a, 0x44, 0xd0, 0x79, 0x59, 0xbb, 0x98, 0x2b, 0x5e, 0xf7, 0xa8, 0x76, 0x07, 0xdb, - 0x7a, 0xdc, 0xbd, 0x04, 0x05, 0xee, 0x64, 0xab, 0x63, 0x7c, 0xfd, 0xe3, 0x0a, 0x98, 0x64, 0x0a, - 0xc1, 0xa7, 0x02, 0x98, 0xcb, 0xe2, 0xb9, 0xf0, 0x6a, 0xf1, 0x0c, 0x49, 0x93, 0x6b, 0x71, 0x6b, - 0x04, 0x84, 0xc0, 0x25, 0xd2, 0xb5, 0xef, 0x7e, 0xf6, 0x97, 0x1f, 0x95, 0x36, 0xe1, 0xc6, 0xe0, - 0xb7, 0x94, 0x28, 0xa6, 0x39, 0x91, 0x96, 0x1f, 0x87, 0xa7, 0xf1, 0x1e, 0xfc, 0x4c, 0xe0, 0x97, - 0x47, 0x3a, 0x51, 0xe0, 0x66, 0x71, 0x0d, 0x53, 0x4c, 0x5c, 0xbc, 0x3a, 0x3c, 0x00, 0xb7, 0xf0, - 0x35, 0x66, 0xe1, 0x05, 0xb8, 0x56, 0xc0, 0xc2, 0x80, 0xa3, 0xc3, 0xf7, 0x4b, 0x60, 0xbe, 0x07, - 0xf1, 0xa6, 0xf0, 0xd6, 0x90, 0x9a, 0x65, 0x72, 0x7c, 0xf1, 0xcd, 0x23, 0x42, 0xe3, 0x46, 0xbf, - 0xc1, 0x8c, 0xae, 0xc1, 0xab, 0x45, 0x8d, 0x56, 0xa9, 0x0f, 0xa8, 0x46, 0xf4, 0x19, 0xfe, 0x47, - 0x00, 0x2f, 0x66, 0xf3, 0x78, 0x0a, 0x6f, 0x0e, 0xad, 0x74, 0xf7, 0x83, 0x81, 0x78, 0xeb, 0x68, - 0xc0, 0xb8, 0x03, 0x6e, 0x30, 0x07, 0x6c, 0xc1, 0xcd, 0x21, 0x1c, 0x40, 0x9c, 0x84, 0xfd, 0xff, - 0x0c, 0x09, 0x55, 0x26, 0x35, 0x85, 0xd7, 0xf3, 0x6b, 0xdd, 0x8f, 0x64, 0x8b, 0x37, 0x46, 0xc6, - 0xe1, 0x86, 0x6f, 0x31, 0xc3, 0xaf, 0xc0, 0xd7, 0x72, 0x3c, 0x8e, 0x46, 0x2f, 0x0c, 0xa9, 0xa6, - 0x33, 0xc3, 0xe4, 0x64, 0x3b, 0x34, 0x94, 0xc9, 0x19, 0xe4, 0x7b, 0x28, 0x93, 0xb3, 0xb8, 0xf3, - 0x70, 0x26, 0xa7, 0x2e, 0x4a, 0xf8, 0x5b, 0x81, 0xb7, 0xc4, 0x29, 0xda, 0x0c, 0x5f, 0xcf, 0xaf, - 0x62, 0x16, 0x1b, 0x17, 0x37, 0x87, 0x5e, 0xcf, 0x4d, 0xbb, 0xc4, 0x4c, 0x5b, 0x87, 0xab, 0x83, - 0x4d, 0xf3, 0x38, 0x40, 0xf0, 0x58, 0x0a, 0x7f, 0x52, 0x02, 0xaf, 0xe4, 0xe0, 0xc1, 0xf0, 0x76, - 0x7e, 0x15, 0x73, 0xf1, 0x6f, 0x71, 0xe7, 0xe8, 0x00, 0xb9, 0x13, 0x6e, 0x32, 0x27, 0x5c, 0x83, - 0xdb, 0x83, 0x9d, 0xe0, 0x46, 0x88, 0x71, 0x4c, 0xbb, 0x0c, 0x53, 0x0d, 0x78, 0x3d, 0xfc, 0x7b, - 0x17, 0x6f, 0x4f, 0xd3, 0x51, 0x0a, 0x0b, 0xdc, 0xaa, 0x3d, 0x1e, 0x07, 0xc4, 0xda, 0x28, 0x10, - 0xdc, 0xea, 0x1a, 0xb3, 0xfa, 0xab, 0xf0, 0xf2, 0x60, 0xab, 0xc3, 0x67, 0x01, 0xb5, 0xf3, 0x02, - 0xfb, 0x71, 0x89, 0xbf, 0x1c, 0xe7, 0xe0, 0xe1, 0x70, 0x37, 0xbf, 0xd2, 0xf9, 0x5f, 0x09, 0xc4, - 0xbb, 0x47, 0x8c, 0xca, 0xbd, 0x73, 0x85, 0x79, 0xe7, 0x22, 0xbc, 0x50, 0xb8, 0xbe, 0x1b, 0x3a, - 0xfc, 0x95, 0x00, 0x66, 0x13, 0x54, 0x17, 0x7e, 0xa5, 0xc0, 0x71, 0x25, 0x29, 0xb3, 0x78, 0xa9, - 0xf8, 0x42, 0xae, 0xff, 0x2a, 0xd3, 0x7f, 0x05, 0x2e, 0xe7, 0x38, 0xdd, 0x40, 0xc9, 0x1f, 0x86, - 0x09, 0xdd, 0x9f, 0xf4, 0x16, 0x49, 0xe8, 0x5c, 0x3c, 0xbc, 0x48, 0x42, 0xe7, 0xe3, 0xe3, 0x45, - 0xba, 0x13, 0xe2, 0x83, 0xa8, 0x86, 0xad, 0xc6, 0x3c, 0x30, 0xd9, 0x77, 0xfe, 0xa6, 0x04, 0xce, - 0xe6, 0x26, 0x68, 0xf0, 0xee, 0xb0, 0xcd, 0x64, 0x5f, 0x8e, 0x29, 0xee, 0x1d, 0x35, 0x2c, 0x77, - 0xd3, 0x3d, 0xe6, 0xa6, 0x5d, 0xa8, 0x14, 0xee, 0x5c, 0x55, 0x07, 0xbb, 0xb1, 0xc7, 0xe4, 0xc7, - 0x9d, 0xac, 0xf0, 0x3d, 0xf8, 0x8b, 0x12, 0xf8, 0xff, 0x3c, 0x64, 0x0f, 0xee, 0x8c, 0xd0, 0x98, - 0x64, 0x12, 0x58, 0xf1, 0xed, 0x23, 0x44, 0xe4, 0x9e, 0xba, 0xcf, 0x3c, 0x75, 0x0f, 0x7e, 0xa3, - 0x88, 0xa7, 0x22, 0x28, 0xd5, 0x67, 0xa0, 0x89, 0xa8, 0xca, 0xf2, 0xd7, 0xbf, 0x05, 0xfe, 0xea, - 0x9e, 0x45, 0x30, 0x61, 0x81, 0xc7, 0x8e, 0x3e, 0x04, 0x57, 0xbc, 0x3e, 0x2a, 0x4c, 0xf1, 0x0b, - 0x93, 0x30, 0x1c, 0xf5, 0x30, 0x06, 0x52, 0x5b, 0x54, 0x4b, 0xa6, 0xd8, 0x3f, 0x3a, 0x09, 0x40, - 0xa2, 0xd6, 0x6c, 0x8f, 0xf2, 0xc8, 0x13, 0x5a, 0x5d, 0x1f, 0x0d, 0x64, 0x04, 0xc6, 0x93, 0x59, - 0x53, 0x6a, 0x5f, 0xff, 0xe4, 0x69, 0x59, 0xf8, 0xf4, 0x69, 0x59, 0xf8, 0xf3, 0xd3, 0xb2, 0xf0, - 0xe1, 0xb3, 0xf2, 0xd8, 0xa7, 0xcf, 0xca, 0x63, 0x7f, 0x78, 0x56, 0x1e, 0xbb, 0xb7, 0xd1, 0x34, - 0xbc, 0xfd, 0xc3, 0x07, 0x55, 0x8d, 0x58, 0xfc, 0xff, 0xe2, 0x89, 0xcd, 0x5e, 0x8d, 0x36, 0x6b, - 0x5d, 0x94, 0xdf, 0xed, 0xe8, 0xcd, 0xda, 0x0e, 0xa6, 0x0f, 0xa6, 0xd8, 0x7f, 0x3f, 0x2e, 0xfc, - 0x37, 0x00, 0x00, 0xff, 0xff, 0xf5, 0x73, 0x8b, 0xa7, 0xb7, 0x20, 0x00, 0x00, + // 2015 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x59, 0xcd, 0x6f, 0xdc, 0xc6, + 0x15, 0x17, 0x57, 0x1f, 0x91, 0x46, 0xf1, 0x47, 0xc6, 0x6a, 0x22, 0x53, 0xca, 0xae, 0x42, 0xf7, + 0x43, 0x96, 0x5d, 0x52, 0x92, 0x61, 0xc4, 0xb1, 0xab, 0xc8, 0x5a, 0xc9, 0x76, 0x16, 0x76, 0x62, + 0x85, 0x96, 0xd5, 0xc2, 0x2d, 0x4a, 0x8f, 0xc9, 0xc9, 0x8a, 0x30, 0x97, 0x43, 0x71, 0xb8, 0xeb, + 0x2c, 0x8c, 0x1c, 0xd2, 0x43, 0x9b, 0x53, 0x11, 0xf4, 0x03, 0xe8, 0x31, 0x97, 0x1e, 0x7b, 0xe9, + 0xa1, 0xc8, 0x9f, 0x90, 0x5b, 0x53, 0xe4, 0x52, 0xf4, 0xe0, 0x16, 0x72, 0x0f, 0x45, 0x0f, 0x45, + 0x61, 0x14, 0xe8, 0xa9, 0x40, 0xc1, 0xe1, 0xf0, 0x6b, 0x97, 0xbb, 0x4b, 0xee, 0x2a, 0xb7, 0xe5, + 0xcc, 0xbc, 0xdf, 0xbc, 0xf7, 0xe6, 0xbd, 0x37, 0xef, 0x37, 0x0b, 0x14, 0xd3, 0xf6, 0xb0, 0xab, + 0x1f, 0x20, 0xd3, 0xd6, 0x28, 0xd6, 0x9b, 0xae, 0xe9, 0xb5, 0x15, 0x5d, 0x6f, 0x29, 0x8e, 0x4b, + 0x5a, 0xa6, 0x81, 0x5d, 0xa5, 0xb5, 0xa6, 0x1c, 0x36, 0xb1, 0xdb, 0x96, 0x1d, 0x97, 0x78, 0x04, + 0x9e, 0xcb, 0x10, 0x90, 0x75, 0xbd, 0x25, 0x87, 0x02, 0x72, 0x6b, 0x4d, 0x5c, 0xac, 0x13, 0x52, + 0xb7, 0xb0, 0x82, 0x1c, 0x53, 0x41, 0xb6, 0x4d, 0x3c, 0xe4, 0x99, 0xc4, 0xa6, 0x01, 0x84, 0x38, + 0x57, 0x27, 0x75, 0xc2, 0x7e, 0x2a, 0xfe, 0x2f, 0x3e, 0x5a, 0xe1, 0x32, 0xec, 0xeb, 0x51, 0xf3, + 0x03, 0xc5, 0x33, 0x1b, 0x98, 0x7a, 0xa8, 0xe1, 0xf0, 0x05, 0xeb, 0x79, 0x54, 0x8d, 0xb4, 0x08, + 0x64, 0x56, 0x7b, 0xc9, 0xb4, 0xd6, 0x14, 0x7a, 0x80, 0x5c, 0x6c, 0x68, 0x3a, 0xb1, 0x69, 0xb3, + 0x11, 0x49, 0x7c, 0xab, 0x8f, 0xc4, 0x13, 0xd3, 0xc5, 0x7c, 0xd9, 0xa2, 0x87, 0x6d, 0x03, 0xbb, + 0x0d, 0xd3, 0xf6, 0x14, 0xdd, 0x6d, 0x3b, 0x1e, 0x51, 0x1e, 0xe3, 0x76, 0x68, 0xe1, 0x59, 0x9d, + 0xd0, 0x06, 0xa1, 0x5a, 0x60, 0x64, 0xf0, 0x11, 0x4c, 0x49, 0x57, 0xc0, 0xc2, 0xfb, 0xbe, 0x3b, + 0xb7, 0xf9, 0xb6, 0xb7, 0xb0, 0x8d, 0xa9, 0x49, 0x55, 0x7c, 0xd8, 0xc4, 0xd4, 0x83, 0x67, 0xc1, + 0x74, 0xb0, 0xb7, 0x69, 0xcc, 0x0b, 0x4b, 0xc2, 0xf2, 0x8c, 0xfa, 0x12, 0xfb, 0xae, 0x19, 0xd2, + 0x53, 0xb0, 0x98, 0x2d, 0x49, 0x1d, 0x62, 0x53, 0x0c, 0x7f, 0x08, 0x4e, 0xd4, 0x83, 0x21, 0x8d, + 0x7a, 0xc8, 0xc3, 0x4c, 0x7e, 0x76, 0x7d, 0x55, 0xee, 0x75, 0x62, 0xad, 0x35, 0xb9, 0x03, 0xeb, + 0x9e, 0x2f, 0x57, 0x9d, 0xf8, 0xe2, 0x59, 0x65, 0x4c, 0x7d, 0xb9, 0x9e, 0x18, 0x93, 0x16, 0x81, + 0x98, 0xda, 0x7c, 0xdb, 0x87, 0x0b, 0xb5, 0x96, 0x50, 0x87, 0x51, 0xe1, 0x2c, 0xd7, 0xac, 0x0a, + 0xa6, 0xd8, 0xf6, 0x74, 0x5e, 0x58, 0x1a, 0x5f, 0x9e, 0x5d, 0x5f, 0x91, 0x73, 0x04, 0x91, 0xcc, + 0x40, 0x54, 0x2e, 0x29, 0x9d, 0x07, 0xdf, 0xe9, 0xde, 0xe2, 0x9e, 0x87, 0x5c, 0x6f, 0xd7, 0x25, + 0x0e, 0xa1, 0xc8, 0x8a, 0xb4, 0xf9, 0x44, 0x00, 0xcb, 0x83, 0xd7, 0x72, 0xdd, 0x7e, 0x04, 0x66, + 0x9c, 0x70, 0x90, 0x7b, 0xec, 0xed, 0x7c, 0xea, 0x71, 0xf0, 0x2d, 0xc3, 0x30, 0xfd, 0xe8, 0x8e, + 0xa1, 0x63, 0x40, 0x69, 0x19, 0x7c, 0x3b, 0x4b, 0x13, 0xe2, 0x74, 0x29, 0xfd, 0x53, 0x21, 0xdb, + 0xc0, 0xd4, 0xd2, 0xe8, 0xa4, 0xbb, 0x74, 0xde, 0x28, 0xa4, 0xb3, 0x8a, 0x1b, 0xa4, 0x85, 0xac, + 0x4c, 0x95, 0x7f, 0x53, 0x02, 0x93, 0x6c, 0xef, 0x3e, 0xb1, 0x08, 0x17, 0xc0, 0x8c, 0x6e, 0x99, + 0xd8, 0xf6, 0xfc, 0xb9, 0x12, 0x9b, 0x9b, 0x0e, 0x06, 0x6a, 0x06, 0x3c, 0x03, 0x26, 0x3d, 0xe2, + 0x68, 0xef, 0xcd, 0x8f, 0x2f, 0x09, 0xcb, 0x27, 0xd4, 0x09, 0x8f, 0x38, 0xef, 0xc1, 0x15, 0x00, + 0x1b, 0xa6, 0xad, 0x39, 0xe4, 0x09, 0x76, 0x35, 0xd3, 0xd6, 0x82, 0x15, 0x13, 0x4b, 0xc2, 0xf2, + 0xb8, 0x7a, 0xb2, 0x61, 0xda, 0xbb, 0xfe, 0x44, 0xcd, 0xde, 0xf3, 0xd7, 0xae, 0x82, 0xb9, 0x16, + 0xb2, 0x4c, 0x03, 0x79, 0xc4, 0xa5, 0x5c, 0x44, 0x47, 0xce, 0xfc, 0x24, 0xc3, 0x83, 0xf1, 0x1c, + 0x13, 0xda, 0x46, 0x0e, 0x5c, 0x01, 0xaf, 0x44, 0xa3, 0x1a, 0xc5, 0x1e, 0x5b, 0x3e, 0xc5, 0x96, + 0x9f, 0x8a, 0x26, 0xee, 0x61, 0xcf, 0x5f, 0xbb, 0x08, 0x66, 0x90, 0x65, 0x91, 0x27, 0x96, 0x49, + 0xbd, 0xf9, 0x97, 0x96, 0xc6, 0x97, 0x67, 0xd4, 0x78, 0x00, 0x8a, 0x60, 0xda, 0xc0, 0x76, 0x9b, + 0x4d, 0x4e, 0xb3, 0xc9, 0xe8, 0x5b, 0xfa, 0x99, 0x00, 0xde, 0x60, 0x67, 0xb4, 0x1f, 0x42, 0x26, + 0x82, 0xc0, 0x1d, 0x9c, 0xc2, 0x70, 0x03, 0x9c, 0x0e, 0x8f, 0x43, 0x43, 0x86, 0xe1, 0x62, 0x4a, + 0x03, 0xef, 0x55, 0xe1, 0x8b, 0x67, 0x95, 0x93, 0x6d, 0xd4, 0xb0, 0xae, 0x4a, 0x7c, 0x42, 0x52, + 0x4f, 0x85, 0x6b, 0xb7, 0x82, 0x91, 0xab, 0xd3, 0x9f, 0x7c, 0x56, 0x19, 0xfb, 0xc7, 0x67, 0x95, + 0x31, 0xe9, 0x2e, 0x90, 0xfa, 0x29, 0xc2, 0xe3, 0xe4, 0x3c, 0x38, 0x1d, 0x56, 0xb7, 0x68, 0xbb, + 0x40, 0xa3, 0x53, 0x7a, 0x62, 0xbd, 0xbf, 0x59, 0xb7, 0x69, 0xbb, 0x89, 0xcd, 0xf3, 0x99, 0xd6, + 0xb5, 0x57, 0x1f, 0xd3, 0x3a, 0xf6, 0xef, 0x67, 0x5a, 0x5a, 0x91, 0xd8, 0xb4, 0x2e, 0x4f, 0x72, + 0xd3, 0x3a, 0xbc, 0x26, 0x2d, 0x80, 0xb3, 0x0c, 0x70, 0xef, 0xc0, 0x25, 0x9e, 0x67, 0x61, 0x56, + 0xd0, 0xc2, 0xb4, 0xfb, 0x93, 0xc0, 0x0b, 0x5b, 0xc7, 0x2c, 0xdf, 0xa6, 0x02, 0x66, 0xa9, 0x85, + 0xe8, 0x81, 0xd6, 0xc0, 0x1e, 0x76, 0xd9, 0x0e, 0xe3, 0x2a, 0x60, 0x43, 0xef, 0xfa, 0x23, 0x70, + 0x1d, 0x7c, 0x23, 0xb1, 0x40, 0x63, 0x71, 0x84, 0x6c, 0x1d, 0x33, 0xdb, 0xc7, 0xd5, 0x33, 0xf1, + 0xd2, 0xad, 0x70, 0x0a, 0xfe, 0x18, 0xcc, 0xdb, 0xf8, 0x43, 0x4f, 0x73, 0xb1, 0x63, 0x61, 0xdb, + 0xa4, 0x07, 0x9a, 0x8e, 0x6c, 0xc3, 0x37, 0x16, 0xb3, 0x94, 0x99, 0x5d, 0x17, 0xe5, 0xe0, 0x32, + 0x94, 0xc3, 0xcb, 0x50, 0xde, 0x0b, 0x2f, 0xc3, 0xea, 0xb4, 0x5f, 0x9d, 0x3f, 0xfd, 0x6b, 0x45, + 0x50, 0x5f, 0xf5, 0x51, 0xd4, 0x10, 0x64, 0x3b, 0xc4, 0x90, 0x2e, 0x82, 0x15, 0x66, 0x92, 0x8a, + 0xeb, 0x26, 0xf5, 0xb0, 0x8b, 0x8d, 0x38, 0xef, 0x9f, 0x20, 0xd7, 0xd8, 0xc1, 0x36, 0x69, 0x44, + 0x85, 0xe7, 0x06, 0xb8, 0x90, 0x6b, 0x35, 0xf7, 0xc8, 0xab, 0x60, 0xca, 0x60, 0x23, 0xac, 0x96, + 0xcf, 0xa8, 0xfc, 0x4b, 0x2a, 0xf3, 0xdb, 0x29, 0xa8, 0x29, 0xd8, 0x60, 0x25, 0xa4, 0xb6, 0x13, + 0x6d, 0xf3, 0xb1, 0x00, 0x5e, 0xef, 0xb1, 0x80, 0x23, 0x3f, 0x04, 0x27, 0x9d, 0xe4, 0x5c, 0x78, + 0x5b, 0xac, 0xe7, 0x2a, 0x6d, 0x29, 0x58, 0x7e, 0x85, 0x75, 0xe0, 0x49, 0x35, 0x70, 0x22, 0xb5, + 0x0c, 0xce, 0x03, 0x1e, 0xbf, 0x3b, 0xe9, 0x70, 0xde, 0x81, 0x65, 0x00, 0xc2, 0x92, 0x58, 0xdb, + 0x61, 0x87, 0x39, 0xa1, 0x26, 0x46, 0xa4, 0x3b, 0x40, 0x61, 0xd6, 0x6c, 0x59, 0xd6, 0x2e, 0x32, + 0x5d, 0xba, 0x8f, 0xac, 0x6d, 0x62, 0xfb, 0x21, 0x57, 0x4d, 0x57, 0xf0, 0xda, 0x4e, 0x8e, 0xab, + 0xfd, 0xb7, 0x02, 0x58, 0xcd, 0x0f, 0xc7, 0xfd, 0x75, 0x08, 0x5e, 0x71, 0x90, 0xe9, 0x6a, 0x2d, + 0x64, 0xf9, 0x4d, 0x0c, 0x4b, 0x03, 0xee, 0xb2, 0x9b, 0xf9, 0x5c, 0x86, 0x4c, 0x37, 0xde, 0x28, + 0x4a, 0x33, 0x3b, 0x0e, 0x80, 0x93, 0x4e, 0x6a, 0x89, 0xf4, 0x1f, 0x01, 0xbc, 0x31, 0x50, 0x0a, + 0xde, 0xec, 0x95, 0x9b, 0xd5, 0x85, 0x17, 0xcf, 0x2a, 0xaf, 0x05, 0xa5, 0xa0, 0x73, 0x45, 0x77, + 0xb9, 0xf3, 0x71, 0x7a, 0x94, 0x94, 0x04, 0x4e, 0xe7, 0x8a, 0xee, 0xda, 0x02, 0x37, 0xc1, 0xcb, + 0xd1, 0xaa, 0xc7, 0xb8, 0xcd, 0x73, 0x6c, 0x51, 0x8e, 0x5b, 0x38, 0x39, 0x68, 0xe1, 0xe4, 0xdd, + 0xe6, 0x23, 0xcb, 0xd4, 0x6f, 0xe3, 0xb6, 0x3a, 0x1b, 0x4a, 0xdc, 0xc6, 0x6d, 0x69, 0x0e, 0xc0, + 0x20, 0x74, 0x91, 0x8b, 0xe2, 0xc4, 0x79, 0x08, 0xce, 0xa4, 0x46, 0xf9, 0xb1, 0xd4, 0xc0, 0x94, + 0xc3, 0x46, 0xf8, 0xcd, 0x7c, 0x21, 0xe7, 0x59, 0xf8, 0x22, 0x3c, 0x6e, 0x39, 0x80, 0x74, 0x8b, + 0x27, 0x72, 0x2a, 0x02, 0xee, 0x3a, 0x1e, 0x36, 0x6a, 0x76, 0x54, 0x1e, 0xf3, 0xb4, 0x8e, 0x87, + 0x3c, 0xc7, 0x07, 0x01, 0x45, 0xfd, 0xda, 0xeb, 0xc9, 0xfb, 0xb7, 0xe3, 0xa4, 0x70, 0x98, 0xfa, + 0x0b, 0x89, 0x8b, 0x38, 0x7d, 0x74, 0x98, 0x4a, 0xd7, 0x40, 0x39, 0xb5, 0x65, 0x21, 0x7d, 0x3f, + 0x17, 0xc0, 0x52, 0x0f, 0xe9, 0xe8, 0x57, 0xe6, 0x65, 0x2a, 0xe4, 0xbe, 0x4c, 0xbb, 0xa2, 0xa2, + 0x54, 0x30, 0x2a, 0xe0, 0x1c, 0x98, 0x64, 0xad, 0x09, 0x8b, 0xa7, 0x71, 0x35, 0xf8, 0xf0, 0x9b, + 0xcf, 0x4a, 0x4f, 0xc3, 0xb9, 0x7f, 0x31, 0x00, 0xb1, 0xeb, 0x78, 0xca, 0xde, 0xc8, 0x15, 0x26, + 0x83, 0x9c, 0xa2, 0x26, 0x80, 0xa5, 0x43, 0x5e, 0x54, 0xd2, 0x5d, 0x79, 0xb4, 0xf6, 0x1d, 0x44, + 0xf7, 0x08, 0xff, 0x0a, 0xef, 0xc3, 0x11, 0x9d, 0x2a, 0x21, 0xb0, 0x56, 0x60, 0x4b, 0xee, 0x8e, + 0x8b, 0x00, 0x46, 0x27, 0x11, 0x46, 0x44, 0x18, 0x63, 0x51, 0x05, 0x08, 0xaa, 0x9f, 0xc1, 0x3a, + 0x95, 0x0b, 0xd9, 0xbd, 0xcf, 0x36, 0x69, 0x34, 0x4c, 0x4a, 0x4d, 0x62, 0xab, 0x09, 0x8b, 0xbe, + 0xb6, 0x76, 0x4c, 0xaa, 0x83, 0x8b, 0xf9, 0x14, 0xe1, 0x76, 0xbe, 0x09, 0x26, 0xdc, 0x90, 0x97, + 0xcd, 0x54, 0xcf, 0xf9, 0xa9, 0xfe, 0x97, 0x67, 0x95, 0x85, 0x80, 0x1e, 0x52, 0xe3, 0xb1, 0x6c, + 0x12, 0xa5, 0x81, 0xbc, 0x03, 0xf9, 0x0e, 0xae, 0x23, 0xbd, 0xbd, 0x83, 0x75, 0x95, 0x09, 0x48, + 0x1b, 0x3c, 0x1b, 0xee, 0x5a, 0x06, 0xa6, 0xde, 0x7d, 0x5b, 0x27, 0xf6, 0x07, 0xa6, 0xdb, 0xc0, + 0xc6, 0x3e, 0xd5, 0x73, 0x64, 0xd3, 0xcf, 0xc3, 0xde, 0x2e, 0x5b, 0x9e, 0x6b, 0x67, 0x02, 0xd8, + 0xa2, 0xba, 0x46, 0xb1, 0x6d, 0x68, 0x11, 0xf5, 0xe6, 0x35, 0xec, 0x72, 0xae, 0xe0, 0xdc, 0xa7, + 0xfa, 0x3d, 0x6c, 0x1b, 0x71, 0xab, 0x12, 0x54, 0xb3, 0xd3, 0xad, 0x8e, 0xf1, 0xf5, 0xcf, 0x2b, + 0x60, 0x92, 0x29, 0x04, 0x8f, 0x04, 0x30, 0x97, 0x45, 0x6a, 0xe1, 0xf5, 0xe2, 0xe9, 0x90, 0x66, + 0xd2, 0xe2, 0xd6, 0x08, 0x08, 0x81, 0x4b, 0xa4, 0x1b, 0x3f, 0xf9, 0xea, 0xef, 0xbf, 0x2c, 0x6d, + 0xc2, 0x8d, 0xc1, 0xaf, 0x24, 0x51, 0x00, 0x73, 0xd6, 0xac, 0x3c, 0x0d, 0x4f, 0xe3, 0x23, 0xf8, + 0x95, 0xc0, 0x6f, 0x8a, 0x74, 0x56, 0xc0, 0xcd, 0xe2, 0x1a, 0xa6, 0x68, 0xb7, 0x78, 0x7d, 0x78, + 0x00, 0x6e, 0xe1, 0x5b, 0xcc, 0xc2, 0x4b, 0x70, 0xad, 0x80, 0x85, 0x01, 0x21, 0x87, 0x1f, 0x97, + 0xc0, 0x7c, 0x0f, 0x96, 0x4d, 0xe1, 0x9d, 0x21, 0x35, 0xcb, 0x24, 0xf4, 0xe2, 0xbb, 0xc7, 0x84, + 0xc6, 0x8d, 0x7e, 0x87, 0x19, 0x5d, 0x85, 0xd7, 0x8b, 0x1a, 0xad, 0x51, 0x1f, 0x50, 0x8b, 0xb8, + 0x32, 0xfc, 0x9f, 0x00, 0x5e, 0xcb, 0x26, 0xed, 0x14, 0xde, 0x1e, 0x5a, 0xe9, 0xee, 0xd7, 0x01, + 0xf1, 0xce, 0xf1, 0x80, 0x71, 0x07, 0xdc, 0x62, 0x0e, 0xd8, 0x82, 0x9b, 0x43, 0x38, 0x80, 0x38, + 0x09, 0xfb, 0xff, 0x1d, 0xb2, 0xa7, 0x4c, 0x1e, 0x0a, 0x6f, 0xe6, 0xd7, 0xba, 0x1f, 0xa3, 0x16, + 0x6f, 0x8d, 0x8c, 0xc3, 0x0d, 0xdf, 0x62, 0x86, 0x5f, 0x83, 0x6f, 0xe5, 0x78, 0xf6, 0x8c, 0x9e, + 0x13, 0x52, 0x1d, 0x66, 0x86, 0xc9, 0xc9, 0xde, 0x67, 0x28, 0x93, 0x33, 0x98, 0xf6, 0x50, 0x26, + 0x67, 0x11, 0xe5, 0xe1, 0x4c, 0x4e, 0xdd, 0x8a, 0xf0, 0x8f, 0x02, 0xef, 0x7f, 0x53, 0x1c, 0x19, + 0xbe, 0x9d, 0x5f, 0xc5, 0x2c, 0xea, 0x2d, 0x6e, 0x0e, 0x2d, 0xcf, 0x4d, 0xbb, 0xc2, 0x4c, 0x5b, + 0x87, 0xab, 0x83, 0x4d, 0xf3, 0x38, 0x40, 0xf0, 0x32, 0x0a, 0x7f, 0x5d, 0x02, 0xe7, 0x72, 0x90, + 0x5e, 0x78, 0x37, 0xbf, 0x8a, 0xb9, 0xc8, 0xb6, 0xb8, 0x7b, 0x7c, 0x80, 0xdc, 0x09, 0xb7, 0x99, + 0x13, 0x6e, 0xc0, 0xed, 0xc1, 0x4e, 0x70, 0x23, 0xc4, 0x38, 0xa6, 0x5d, 0x86, 0xa9, 0x05, 0x24, + 0x1e, 0xfe, 0xb3, 0x8b, 0xa4, 0xa7, 0xb9, 0x27, 0x85, 0x05, 0x6e, 0xd5, 0x1e, 0x2f, 0x01, 0x62, + 0x75, 0x14, 0x08, 0x6e, 0x75, 0x95, 0x59, 0xfd, 0x3d, 0x78, 0x75, 0xb0, 0xd5, 0xe1, 0x1b, 0x80, + 0xd6, 0x79, 0x81, 0xfd, 0xaa, 0xc4, 0x9f, 0x89, 0x73, 0x90, 0x6e, 0xb8, 0x97, 0x5f, 0xe9, 0xfc, + 0x4f, 0x02, 0xe2, 0xfd, 0x63, 0x46, 0xe5, 0xde, 0xb9, 0xc6, 0xbc, 0x73, 0x19, 0x5e, 0x2a, 0x5c, + 0xdf, 0x4d, 0x03, 0xfe, 0x5e, 0x00, 0xb3, 0x09, 0x5e, 0x0b, 0xdf, 0x2c, 0x70, 0x5c, 0x49, 0x7e, + 0x2c, 0x5e, 0x29, 0x2e, 0xc8, 0xf5, 0x5f, 0x65, 0xfa, 0xaf, 0xc0, 0xe5, 0x1c, 0xa7, 0x1b, 0x28, + 0xf9, 0x8b, 0x30, 0xa1, 0xfb, 0x33, 0xdc, 0x22, 0x09, 0x9d, 0x8b, 0x74, 0x17, 0x49, 0xe8, 0x7c, + 0xe4, 0xbb, 0x48, 0x77, 0x42, 0x7c, 0x10, 0xcd, 0xb4, 0xb5, 0x98, 0xf4, 0x25, 0xfb, 0xce, 0x3f, + 0x94, 0xc0, 0xf9, 0xdc, 0x6c, 0x0c, 0xde, 0x1f, 0xb6, 0x99, 0xec, 0x4b, 0x28, 0xc5, 0xfd, 0xe3, + 0x86, 0xe5, 0x6e, 0x7a, 0xc0, 0xdc, 0xb4, 0x07, 0xd5, 0xc2, 0x9d, 0xab, 0xe6, 0x60, 0x37, 0xf6, + 0x98, 0xf2, 0xb4, 0x93, 0x02, 0x7e, 0x04, 0x7f, 0x57, 0x02, 0xdf, 0xcc, 0xc3, 0xec, 0xe0, 0xee, + 0x08, 0x8d, 0x49, 0x26, 0x5b, 0x15, 0xdf, 0x3f, 0x46, 0x44, 0xee, 0xa9, 0x87, 0xcc, 0x53, 0x0f, + 0xe0, 0x0f, 0x8a, 0x78, 0x2a, 0x82, 0xd2, 0x7c, 0x06, 0x9a, 0x88, 0xaa, 0x2c, 0x7f, 0xfd, 0x57, + 0xe0, 0x4f, 0xec, 0x59, 0x04, 0x13, 0x16, 0x78, 0xd9, 0xe8, 0x43, 0x70, 0xc5, 0x9b, 0xa3, 0xc2, + 0x14, 0xbf, 0x30, 0x09, 0xc3, 0xd1, 0x9a, 0x31, 0x90, 0xd6, 0xa2, 0x7a, 0x32, 0xc5, 0xfe, 0xd5, + 0x49, 0x00, 0x12, 0xb5, 0x66, 0x7b, 0x94, 0x17, 0x9d, 0xd0, 0xea, 0x9d, 0xd1, 0x40, 0x46, 0x60, + 0x3c, 0x99, 0x35, 0xa5, 0xfa, 0xfd, 0x2f, 0x8e, 0xca, 0xc2, 0x97, 0x47, 0x65, 0xe1, 0x6f, 0x47, + 0x65, 0xe1, 0xd3, 0xe7, 0xe5, 0xb1, 0x2f, 0x9f, 0x97, 0xc7, 0xfe, 0xfc, 0xbc, 0x3c, 0xf6, 0x60, + 0xa3, 0x6e, 0x7a, 0x07, 0xcd, 0x47, 0xb2, 0x4e, 0x1a, 0xfc, 0x1f, 0xef, 0xc4, 0x66, 0xdf, 0x8d, + 0x36, 0x6b, 0x5d, 0x56, 0x3e, 0xec, 0xe8, 0xcd, 0xda, 0x0e, 0xa6, 0x8f, 0xa6, 0xd8, 0x5f, 0x1d, + 0x97, 0xfe, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x4e, 0xa1, 0x75, 0x91, 0x20, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/ccv/provider/types/tx.pb.go b/x/ccv/provider/types/tx.pb.go index debc79ba02..be71e8fa18 100644 --- a/x/ccv/provider/types/tx.pb.go +++ b/x/ccv/provider/types/tx.pb.go @@ -1295,113 +1295,113 @@ func init() { } var fileDescriptor_43221a4391e9fbf4 = []byte{ - // 1689 bytes of a gzipped FileDescriptorProto + // 1687 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcf, 0x6f, 0xe4, 0x48, - 0x15, 0x8e, 0xf3, 0x6b, 0xba, 0xab, 0xf3, 0xd3, 0x93, 0x90, 0x8e, 0x37, 0xdb, 0x9d, 0x34, 0xcb, - 0x6e, 0x34, 0x6c, 0xec, 0x9d, 0xc0, 0xce, 0x42, 0xb4, 0x08, 0x92, 0xf4, 0xc2, 0x64, 0x20, 0x93, + 0x15, 0x8e, 0xf3, 0x6b, 0xba, 0xab, 0xf3, 0xd3, 0x93, 0x21, 0x1d, 0x6f, 0xb6, 0x3b, 0x69, 0x96, + 0xdd, 0x68, 0xd8, 0xd8, 0x9b, 0xc0, 0xee, 0x42, 0xb4, 0x08, 0x92, 0xf4, 0xc0, 0x64, 0x21, 0x93, 0xe0, 0x09, 0x8b, 0x04, 0x12, 0x56, 0xb5, 0x5d, 0x71, 0x97, 0xc6, 0x76, 0x59, 0x55, 0xd5, 0x9d, - 0xed, 0x1b, 0xda, 0x13, 0x12, 0x02, 0x2d, 0x37, 0xc4, 0x69, 0x0f, 0x08, 0x81, 0x04, 0xd2, 0x1c, - 0xf6, 0xc4, 0x8d, 0xdb, 0x1c, 0x38, 0x2c, 0x2b, 0x0e, 0x88, 0xc3, 0x80, 0x66, 0x0e, 0xcb, 0x99, - 0xbf, 0x00, 0x55, 0xb9, 0xec, 0x76, 0x27, 0x9d, 0xde, 0xee, 0x0e, 0x1c, 0xb8, 0xb4, 0xda, 0xf5, - 0xbe, 0xf7, 0xd5, 0xf7, 0x3d, 0xbb, 0x5e, 0x95, 0x0d, 0x5e, 0xc7, 0x11, 0x47, 0xd4, 0x6d, 0x42, - 0x1c, 0x39, 0x0c, 0xb9, 0x2d, 0x8a, 0x79, 0xc7, 0x72, 0xdd, 0xb6, 0x15, 0x53, 0xd2, 0xc6, 0x1e, - 0xa2, 0x56, 0xfb, 0xae, 0xc5, 0xdf, 0x33, 0x63, 0x4a, 0x38, 0xd1, 0x3f, 0xdf, 0x07, 0x6d, 0xba, - 0x6e, 0xdb, 0x4c, 0xd1, 0x66, 0xfb, 0xae, 0xb1, 0x0c, 0x43, 0x1c, 0x11, 0x4b, 0xfe, 0x26, 0x79, - 0xc6, 0x86, 0x4f, 0x88, 0x1f, 0x20, 0x0b, 0xc6, 0xd8, 0x82, 0x51, 0x44, 0x38, 0xe4, 0x98, 0x44, - 0x4c, 0x45, 0xab, 0x2a, 0x2a, 0xaf, 0x1a, 0xad, 0x73, 0x8b, 0xe3, 0x10, 0x31, 0x0e, 0xc3, 0x58, - 0x01, 0x2a, 0x97, 0x01, 0x5e, 0x8b, 0x4a, 0x06, 0x15, 0x5f, 0xbf, 0x1c, 0x87, 0x51, 0x47, 0x85, - 0x56, 0x7c, 0xe2, 0x13, 0xf9, 0xd7, 0x12, 0xff, 0xd2, 0x04, 0x97, 0xb0, 0x90, 0x30, 0x27, 0x09, - 0x24, 0x17, 0x2a, 0xb4, 0x96, 0x5c, 0x59, 0x21, 0xf3, 0x85, 0xf5, 0x90, 0xf9, 0xa9, 0x4a, 0xdc, - 0x70, 0x2d, 0x97, 0x50, 0x64, 0xb9, 0x01, 0x46, 0x11, 0x17, 0xd1, 0xe4, 0x9f, 0x02, 0xec, 0x0e, - 0x53, 0xca, 0xac, 0x50, 0x49, 0x8e, 0x25, 0x48, 0x03, 0xec, 0x37, 0x79, 0x42, 0xc5, 0x2c, 0x8e, - 0x22, 0x0f, 0xd1, 0x10, 0x27, 0x13, 0x74, 0xaf, 0x52, 0x15, 0xb9, 0x38, 0xef, 0xc4, 0x88, 0x59, - 0x48, 0xf0, 0x45, 0x2e, 0x4a, 0x00, 0xb5, 0xbf, 0x6a, 0x60, 0xe5, 0x98, 0xf9, 0xfb, 0x8c, 0x61, - 0x3f, 0x3a, 0x24, 0x11, 0x6b, 0x85, 0x88, 0x7e, 0x1b, 0x75, 0xf4, 0x75, 0x50, 0x48, 0xb4, 0x61, - 0xaf, 0xac, 0x6d, 0x6a, 0xdb, 0x45, 0xfb, 0x96, 0xbc, 0x3e, 0xf2, 0xf4, 0xb7, 0xc0, 0x7c, 0xaa, - 0xcb, 0x81, 0x9e, 0x47, 0xcb, 0x93, 0x22, 0x7e, 0xa0, 0xff, 0xfb, 0x59, 0x75, 0xa1, 0x03, 0xc3, - 0x60, 0xaf, 0x26, 0x46, 0x11, 0x63, 0x35, 0x7b, 0x2e, 0x05, 0xee, 0x7b, 0x1e, 0xd5, 0xb7, 0xc0, - 0x9c, 0xab, 0xa6, 0x70, 0x1e, 0xa3, 0x4e, 0x79, 0x4a, 0xf2, 0x96, 0xdc, 0xdc, 0xb4, 0x6f, 0x80, - 0x59, 0xa1, 0x04, 0xd1, 0xf2, 0xb4, 0x24, 0x2d, 0x7f, 0xf2, 0xd1, 0xce, 0x8a, 0xaa, 0xf8, 0x7e, - 0xc2, 0xfa, 0x88, 0x53, 0x1c, 0xf9, 0xb6, 0xc2, 0xed, 0xdd, 0xfe, 0xc9, 0x87, 0xd5, 0x89, 0x7f, - 0x7d, 0x58, 0x9d, 0x78, 0xff, 0xd3, 0x27, 0x77, 0xd4, 0x60, 0xad, 0x02, 0x36, 0xfa, 0xb9, 0xb2, - 0x11, 0x8b, 0x49, 0xc4, 0x50, 0xed, 0x4f, 0x1a, 0x78, 0xf9, 0x98, 0xf9, 0x8f, 0x5a, 0x8d, 0x10, - 0xf3, 0x14, 0x70, 0x8c, 0x59, 0x03, 0x35, 0x61, 0x1b, 0x93, 0x16, 0xd5, 0xef, 0x81, 0x22, 0x93, - 0x51, 0x8e, 0x68, 0x52, 0x80, 0x01, 0x5a, 0xba, 0x50, 0xfd, 0x14, 0xcc, 0x85, 0x39, 0x1e, 0x59, - 0x9b, 0xd2, 0xee, 0xeb, 0x26, 0x6e, 0xb8, 0x66, 0xfe, 0xce, 0x99, 0xb9, 0x7b, 0xd5, 0xbe, 0x6b, - 0xe6, 0xe7, 0xb6, 0x7b, 0x18, 0xf6, 0x3e, 0x97, 0x37, 0xd8, 0x9d, 0xa9, 0xf6, 0x1a, 0xf8, 0xc2, - 0x40, 0x0b, 0x99, 0xd9, 0x27, 0x93, 0x7d, 0xcc, 0xd6, 0x49, 0xab, 0x11, 0xa0, 0x77, 0x09, 0xc7, - 0x91, 0x3f, 0xb6, 0x59, 0x07, 0xac, 0x79, 0xad, 0x38, 0xc0, 0x2e, 0xe4, 0xc8, 0x69, 0x13, 0x8e, - 0x9c, 0xf4, 0xf1, 0x52, 0xbe, 0x5f, 0xcb, 0xdb, 0x94, 0x0f, 0xa0, 0x59, 0x4f, 0x13, 0xde, 0x25, - 0x1c, 0xbd, 0xa3, 0xe0, 0xf6, 0xaa, 0xd7, 0x6f, 0x58, 0xff, 0x11, 0x58, 0xc3, 0xd1, 0x39, 0x85, - 0xae, 0x58, 0xbe, 0x4e, 0x23, 0x20, 0xee, 0x63, 0xa7, 0x89, 0xa0, 0x87, 0xa8, 0x7c, 0x78, 0x4a, - 0xbb, 0xaf, 0x7e, 0x56, 0x61, 0xef, 0x4b, 0xb4, 0xbd, 0xda, 0xa5, 0x39, 0x10, 0x2c, 0xc9, 0xf0, - 0x48, 0xb5, 0xcd, 0x57, 0x2c, 0xab, 0xed, 0xaf, 0x35, 0xb0, 0x78, 0xcc, 0xfc, 0xef, 0xc5, 0x1e, - 0xe4, 0xe8, 0x14, 0x52, 0x18, 0x32, 0x51, 0x4d, 0xd8, 0xe2, 0x4d, 0x22, 0x56, 0xf4, 0x67, 0x57, - 0x33, 0x83, 0xea, 0x47, 0x60, 0x36, 0x96, 0x0c, 0xaa, 0x78, 0x5f, 0x34, 0x87, 0xe8, 0x9f, 0x66, - 0x32, 0xe9, 0xc1, 0xf4, 0xd3, 0x67, 0xd5, 0x09, 0x5b, 0x11, 0xec, 0x2d, 0x48, 0x3f, 0x19, 0x75, - 0x6d, 0x1d, 0xac, 0x5d, 0x52, 0x99, 0x39, 0xf8, 0x59, 0x01, 0xdc, 0x3e, 0x66, 0x7e, 0xea, 0x72, - 0xdf, 0xf3, 0xb0, 0xa8, 0xd2, 0xa0, 0x06, 0xf0, 0x2d, 0xb0, 0x80, 0x23, 0xcc, 0x31, 0x0c, 0x9c, - 0x26, 0x12, 0xa5, 0x57, 0x82, 0x0d, 0x79, 0x33, 0x44, 0xd3, 0x33, 0x55, 0xab, 0x93, 0x37, 0x40, - 0x20, 0x94, 0xbe, 0x79, 0x95, 0x97, 0x0c, 0x8a, 0x86, 0xe0, 0xa3, 0x08, 0x31, 0xcc, 0x9c, 0x26, - 0x64, 0x4d, 0x79, 0x4f, 0xe7, 0xec, 0x92, 0x1a, 0xbb, 0x0f, 0x59, 0x53, 0xaf, 0x82, 0x52, 0x03, - 0x47, 0x90, 0x76, 0x12, 0xc4, 0xb4, 0x44, 0x80, 0x64, 0x48, 0x02, 0x0e, 0x01, 0x60, 0x31, 0xbc, - 0x88, 0x1c, 0xb1, 0x0d, 0x94, 0x67, 0x94, 0x90, 0xa4, 0xc5, 0x9b, 0x69, 0x8b, 0x37, 0xcf, 0xd2, - 0x3d, 0xe2, 0xa0, 0x20, 0x84, 0x7c, 0xf0, 0x8f, 0xaa, 0x66, 0x17, 0x65, 0x9e, 0x88, 0xe8, 0x0f, - 0xc1, 0x52, 0x2b, 0x6a, 0x90, 0xc8, 0xc3, 0x91, 0xef, 0xc4, 0x88, 0x62, 0xe2, 0x95, 0x67, 0x25, - 0xd5, 0xfa, 0x15, 0xaa, 0xba, 0xda, 0x4d, 0x12, 0xa6, 0x5f, 0x0a, 0xa6, 0xc5, 0x2c, 0xf9, 0x54, - 0xe6, 0xea, 0xdf, 0x05, 0xba, 0xeb, 0xb6, 0xa5, 0x24, 0xd2, 0xe2, 0x29, 0xe3, 0xad, 0xe1, 0x19, - 0x97, 0x5c, 0xb7, 0x7d, 0x96, 0x64, 0x2b, 0xca, 0x1f, 0x82, 0x35, 0x4e, 0x61, 0xc4, 0xce, 0x11, - 0xbd, 0xcc, 0x5b, 0x18, 0x9e, 0x77, 0x35, 0xe5, 0xe8, 0x25, 0xbf, 0x0f, 0x36, 0xb3, 0xce, 0x4c, - 0x91, 0x87, 0x19, 0xa7, 0xb8, 0xd1, 0x92, 0x8b, 0x2e, 0x5d, 0x36, 0xe5, 0xa2, 0x7c, 0x08, 0x2a, - 0x29, 0xce, 0xee, 0x81, 0x7d, 0x53, 0xa1, 0xf4, 0x13, 0xf0, 0x8a, 0x5c, 0xa6, 0x4c, 0x88, 0x73, - 0x7a, 0x98, 0xe4, 0xd4, 0x21, 0x66, 0x4c, 0xb0, 0x81, 0x4d, 0x6d, 0x7b, 0xca, 0xde, 0x4a, 0xb0, - 0xa7, 0x88, 0xd6, 0x73, 0xc8, 0xb3, 0x1c, 0x50, 0xdf, 0x01, 0x7a, 0x13, 0x33, 0x4e, 0x28, 0x76, - 0x61, 0xe0, 0xa0, 0x88, 0x53, 0x8c, 0x58, 0xb9, 0x24, 0xd3, 0x97, 0xbb, 0x91, 0x77, 0x92, 0x80, - 0xfe, 0x00, 0x6c, 0x5d, 0x3b, 0xa9, 0xe3, 0x36, 0x61, 0x14, 0xa1, 0xa0, 0x3c, 0x27, 0xad, 0x54, - 0xbd, 0x6b, 0xe6, 0x3c, 0x4c, 0x60, 0xfa, 0x6d, 0x30, 0xc3, 0x49, 0xec, 0x3c, 0x2c, 0xcf, 0x6f, - 0x6a, 0xdb, 0xf3, 0xf6, 0x34, 0x27, 0xf1, 0x43, 0xfd, 0x0d, 0xb0, 0xd2, 0x86, 0x01, 0xf6, 0x20, - 0x27, 0x94, 0x39, 0x31, 0xb9, 0x40, 0xd4, 0x71, 0x61, 0x5c, 0x5e, 0x90, 0x18, 0xbd, 0x1b, 0x3b, - 0x15, 0xa1, 0x43, 0x18, 0xeb, 0x77, 0xc0, 0x72, 0x36, 0xea, 0x30, 0xc4, 0x25, 0x7c, 0x51, 0xc2, - 0x17, 0xb3, 0xc0, 0x23, 0xc4, 0x05, 0x76, 0x03, 0x14, 0x61, 0x10, 0x90, 0x8b, 0x00, 0x33, 0x5e, - 0x5e, 0xda, 0x9c, 0xda, 0x2e, 0xda, 0xdd, 0x01, 0xdd, 0x00, 0x05, 0x0f, 0x45, 0x1d, 0x19, 0x5c, - 0x96, 0xc1, 0xec, 0xba, 0xb7, 0xeb, 0xe8, 0x43, 0x77, 0x9d, 0x2b, 0xad, 0xe2, 0x65, 0xf0, 0x52, - 0x9f, 0x76, 0x90, 0xb5, 0x8b, 0x3f, 0x6a, 0x40, 0xcf, 0xc5, 0x6d, 0x14, 0x92, 0x36, 0x0c, 0x06, - 0x75, 0x8b, 0x7d, 0x50, 0x64, 0xa2, 0x8c, 0x72, 0x7d, 0x4e, 0x8e, 0xb0, 0x3e, 0x0b, 0x22, 0x4d, - 0x2e, 0xcf, 0x1e, 0x6f, 0x53, 0xe3, 0x7b, 0xdb, 0x00, 0xc6, 0x55, 0xed, 0x99, 0xb5, 0x3f, 0x68, - 0x60, 0x55, 0x84, 0x9b, 0x30, 0xf2, 0x91, 0x8d, 0x2e, 0x20, 0xf5, 0xea, 0x28, 0x22, 0x21, 0xd3, - 0x6b, 0x60, 0xde, 0x93, 0xff, 0x1c, 0x4e, 0xc4, 0x91, 0xa7, 0xac, 0xc9, 0xe2, 0x97, 0x92, 0xc1, - 0x33, 0xb2, 0xef, 0x79, 0xfa, 0x36, 0x58, 0xea, 0x62, 0xa8, 0xa0, 0x16, 0x6e, 0x05, 0x6c, 0x21, - 0x85, 0xc9, 0x09, 0xff, 0x7b, 0x6e, 0xaa, 0x72, 0x5b, 0xbf, 0x2a, 0x37, 0x33, 0xf4, 0x54, 0x03, - 0x85, 0x63, 0xe6, 0x9f, 0xc4, 0xfc, 0x28, 0xfa, 0x3f, 0x3f, 0xd0, 0xe9, 0x60, 0x29, 0x75, 0x92, - 0xd9, 0xfb, 0x8d, 0x06, 0x8a, 0xc9, 0xe0, 0x49, 0x8b, 0xff, 0x4f, 0xfc, 0x75, 0xc5, 0x4f, 0xdd, - 0x44, 0xfc, 0x6d, 0xb0, 0x9c, 0xe9, 0xcc, 0xdf, 0x1c, 0x71, 0x46, 0x15, 0xeb, 0x5e, 0x95, 0xeb, - 0x90, 0x84, 0xaa, 0x01, 0xd9, 0x90, 0xa3, 0xab, 0xaa, 0xb5, 0x21, 0x55, 0xe7, 0x2b, 0x31, 0xd9, - 0x5b, 0x89, 0x07, 0x60, 0x9a, 0x42, 0x8e, 0x94, 0x9d, 0x7b, 0x62, 0xa9, 0xfd, 0xfd, 0x59, 0xf5, - 0xa5, 0xc4, 0x12, 0xf3, 0x1e, 0x9b, 0x98, 0x58, 0x21, 0xe4, 0x4d, 0xf3, 0x3b, 0xc8, 0x87, 0x6e, - 0xa7, 0x8e, 0xdc, 0x4f, 0x3e, 0xda, 0x01, 0xca, 0x71, 0x1d, 0xb9, 0xbf, 0xfd, 0xf4, 0xc9, 0x1d, - 0xcd, 0x96, 0x1c, 0x7b, 0x85, 0xd4, 0x6a, 0xed, 0x55, 0xf0, 0xca, 0x20, 0x27, 0x99, 0xe5, 0xbf, - 0x4c, 0xca, 0x63, 0x48, 0x76, 0x58, 0x25, 0x1e, 0x3e, 0x17, 0x67, 0x3e, 0xd1, 0xe6, 0x57, 0xc0, - 0x0c, 0xc7, 0x3c, 0x40, 0xea, 0xde, 0x25, 0x17, 0xfa, 0x26, 0x28, 0x79, 0x88, 0xb9, 0x14, 0xc7, - 0x72, 0x0b, 0x4a, 0xdc, 0xe4, 0x87, 0x7a, 0xcc, 0x4e, 0xf5, 0x9a, 0xcd, 0xda, 0xf7, 0xf4, 0x10, - 0xed, 0x7b, 0x66, 0xb4, 0xf6, 0x3d, 0x3b, 0x44, 0xfb, 0xbe, 0x35, 0xa8, 0x7d, 0x17, 0x06, 0xb5, - 0xef, 0xe2, 0xd0, 0x4d, 0xa1, 0xb6, 0x05, 0xaa, 0xd7, 0x94, 0x34, 0x2d, 0xfb, 0xee, 0x9f, 0x4b, - 0x60, 0xea, 0x98, 0xf9, 0xfa, 0x2f, 0x34, 0xb0, 0x7c, 0xf5, 0x45, 0xef, 0xab, 0x43, 0x9d, 0x32, - 0xfb, 0xbd, 0x4d, 0x19, 0xfb, 0x63, 0xa7, 0xa6, 0xda, 0xf4, 0xdf, 0x6b, 0xc0, 0x18, 0xf0, 0x16, - 0x76, 0x30, 0xec, 0x0c, 0xd7, 0x73, 0x18, 0x0f, 0x6e, 0xce, 0x31, 0x40, 0x6e, 0xcf, 0x7b, 0xd4, - 0x98, 0x72, 0xf3, 0x1c, 0xe3, 0xca, 0xed, 0xf7, 0x76, 0xa2, 0xff, 0x5c, 0x03, 0x4b, 0x57, 0x0e, - 0xf6, 0x5f, 0x19, 0x76, 0x82, 0xcb, 0x99, 0xc6, 0x37, 0xc6, 0xcd, 0xcc, 0x04, 0xfd, 0x54, 0x03, - 0x8b, 0x97, 0x8f, 0x0e, 0x6f, 0x8d, 0xca, 0xaa, 0x12, 0x8d, 0xaf, 0x8f, 0x99, 0x98, 0xa9, 0x79, - 0x5f, 0x03, 0x73, 0x3d, 0x6f, 0x6e, 0x5f, 0x1e, 0x96, 0x31, 0x9f, 0x65, 0xbc, 0x3d, 0x4e, 0x56, - 0x26, 0x22, 0x04, 0x33, 0xc9, 0x06, 0xbd, 0x33, 0x2c, 0x8d, 0x84, 0x1b, 0x6f, 0x8e, 0x04, 0xcf, - 0xa6, 0x8b, 0xc1, 0xac, 0xda, 0x30, 0xcd, 0x11, 0x08, 0x4e, 0x5a, 0xdc, 0xb8, 0x37, 0x1a, 0x3e, - 0x9b, 0xf1, 0x77, 0x1a, 0x58, 0xbf, 0x7e, 0x97, 0x1b, 0xba, 0x87, 0x5c, 0x4b, 0x61, 0x1c, 0xdd, - 0x98, 0x22, 0xd3, 0xfa, 0x2b, 0x0d, 0xac, 0xf4, 0xdd, 0x9e, 0xde, 0x1e, 0xf5, 0x59, 0xcb, 0x67, - 0x1b, 0xf5, 0x9b, 0x64, 0xa7, 0xe2, 0x8c, 0x99, 0x1f, 0x8b, 0xdd, 0xf7, 0xe0, 0xfb, 0x4f, 0x9f, - 0x57, 0xb4, 0x8f, 0x9f, 0x57, 0xb4, 0x7f, 0x3e, 0xaf, 0x68, 0x1f, 0xbc, 0xa8, 0x4c, 0x7c, 0xfc, - 0xa2, 0x32, 0xf1, 0xb7, 0x17, 0x95, 0x89, 0x1f, 0x7c, 0xcd, 0xc7, 0xbc, 0xd9, 0x6a, 0x98, 0x2e, - 0x09, 0xd5, 0x57, 0x4a, 0xab, 0x3b, 0xef, 0x4e, 0xf6, 0x91, 0xb1, 0xfd, 0xa6, 0xf5, 0x5e, 0xef, - 0x97, 0x46, 0xf9, 0x65, 0xa6, 0x31, 0x2b, 0x4f, 0xe3, 0x5f, 0xfa, 0x4f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0xcb, 0x72, 0xac, 0x84, 0xe5, 0x15, 0x00, 0x00, + 0xed, 0x1b, 0xda, 0x13, 0x12, 0x02, 0x2d, 0x37, 0xc4, 0x69, 0x0f, 0x08, 0x09, 0x09, 0xa4, 0x39, + 0xec, 0x89, 0x1b, 0xe2, 0x32, 0x07, 0x0e, 0xcb, 0x8a, 0x03, 0xe2, 0x30, 0xa0, 0x99, 0xc3, 0x72, + 0xe6, 0x2f, 0x40, 0x55, 0x2e, 0xbb, 0xdd, 0x49, 0xa7, 0xa7, 0xbb, 0x03, 0x07, 0x2e, 0xad, 0x76, + 0xbd, 0xef, 0x7d, 0xf5, 0x7d, 0xcf, 0xae, 0x57, 0x65, 0x83, 0xd7, 0x71, 0xc4, 0x11, 0x75, 0x9b, + 0x10, 0x47, 0x0e, 0x43, 0x6e, 0x8b, 0x62, 0xde, 0xb1, 0x5c, 0xb7, 0x6d, 0xc5, 0x94, 0xb4, 0xb1, + 0x87, 0xa8, 0xd5, 0xde, 0xb1, 0xf8, 0xfb, 0x66, 0x4c, 0x09, 0x27, 0xfa, 0xe7, 0xfb, 0xa0, 0x4d, + 0xd7, 0x6d, 0x9b, 0x29, 0xda, 0x6c, 0xef, 0x18, 0xcb, 0x30, 0xc4, 0x11, 0xb1, 0xe4, 0x6f, 0x92, + 0x67, 0xac, 0xfb, 0x84, 0xf8, 0x01, 0xb2, 0x60, 0x8c, 0x2d, 0x18, 0x45, 0x84, 0x43, 0x8e, 0x49, + 0xc4, 0x54, 0xb4, 0xaa, 0xa2, 0xf2, 0xaa, 0xd1, 0x3a, 0xb7, 0x38, 0x0e, 0x11, 0xe3, 0x30, 0x8c, + 0x15, 0xa0, 0x72, 0x19, 0xe0, 0xb5, 0xa8, 0x64, 0x50, 0xf1, 0xb5, 0xcb, 0x71, 0x18, 0x75, 0x54, + 0x68, 0xc5, 0x27, 0x3e, 0x91, 0x7f, 0x2d, 0xf1, 0x2f, 0x4d, 0x70, 0x09, 0x0b, 0x09, 0x73, 0x92, + 0x40, 0x72, 0xa1, 0x42, 0xab, 0xc9, 0x95, 0x15, 0x32, 0x5f, 0x58, 0x0f, 0x99, 0x9f, 0xaa, 0xc4, + 0x0d, 0xd7, 0x72, 0x09, 0x45, 0x96, 0x1b, 0x60, 0x14, 0x71, 0x11, 0x4d, 0xfe, 0x29, 0xc0, 0xee, + 0x30, 0xa5, 0xcc, 0x0a, 0x95, 0xe4, 0x58, 0x82, 0x34, 0xc0, 0x7e, 0x93, 0x27, 0x54, 0xcc, 0xe2, + 0x28, 0xf2, 0x10, 0x0d, 0x71, 0x32, 0x41, 0xf7, 0x2a, 0x55, 0x91, 0x8b, 0xf3, 0x4e, 0x8c, 0x98, + 0x85, 0x04, 0x5f, 0xe4, 0xa2, 0x04, 0x50, 0xfb, 0xab, 0x06, 0x56, 0x8e, 0x99, 0xbf, 0xcf, 0x18, + 0xf6, 0xa3, 0x43, 0x12, 0xb1, 0x56, 0x88, 0xe8, 0xb7, 0x51, 0x47, 0x5f, 0x03, 0x85, 0x44, 0x1b, + 0xf6, 0xca, 0xda, 0x86, 0xb6, 0x55, 0xb4, 0x6f, 0xc9, 0xeb, 0x23, 0x4f, 0x7f, 0x1b, 0xcc, 0xa7, + 0xba, 0x1c, 0xe8, 0x79, 0xb4, 0x3c, 0x29, 0xe2, 0x07, 0xfa, 0xbf, 0x9f, 0x56, 0x17, 0x3a, 0x30, + 0x0c, 0xf6, 0x6a, 0x62, 0x14, 0x31, 0x56, 0xb3, 0xe7, 0x52, 0xe0, 0xbe, 0xe7, 0x51, 0x7d, 0x13, + 0xcc, 0xb9, 0x6a, 0x0a, 0xe7, 0x11, 0xea, 0x94, 0xa7, 0x24, 0x6f, 0xc9, 0xcd, 0x4d, 0xfb, 0x06, + 0x98, 0x15, 0x4a, 0x10, 0x2d, 0x4f, 0x4b, 0xd2, 0xf2, 0xa7, 0x1f, 0x6f, 0xaf, 0xa8, 0x8a, 0xef, + 0x27, 0xac, 0x0f, 0x39, 0xc5, 0x91, 0x6f, 0x2b, 0xdc, 0xde, 0xed, 0x9f, 0x7c, 0x54, 0x9d, 0xf8, + 0xd7, 0x47, 0xd5, 0x89, 0x0f, 0x3e, 0x7b, 0x7c, 0x57, 0x0d, 0xd6, 0x2a, 0x60, 0xbd, 0x9f, 0x2b, + 0x1b, 0xb1, 0x98, 0x44, 0x0c, 0xd5, 0xfe, 0xa8, 0x81, 0x97, 0x8f, 0x99, 0xff, 0xb0, 0xd5, 0x08, + 0x31, 0x4f, 0x01, 0xc7, 0x98, 0x35, 0x50, 0x13, 0xb6, 0x31, 0x69, 0x51, 0xfd, 0x2d, 0x50, 0x64, + 0x32, 0xca, 0x11, 0x4d, 0x0a, 0x30, 0x40, 0x4b, 0x17, 0xaa, 0x9f, 0x82, 0xb9, 0x30, 0xc7, 0x23, + 0x6b, 0x53, 0xda, 0x7d, 0xdd, 0xc4, 0x0d, 0xd7, 0xcc, 0xdf, 0x39, 0x33, 0x77, 0xaf, 0xda, 0x3b, + 0x66, 0x7e, 0x6e, 0xbb, 0x87, 0x61, 0xef, 0x73, 0x79, 0x83, 0xdd, 0x99, 0x6a, 0xaf, 0x81, 0x2f, + 0x0c, 0xb4, 0x90, 0x99, 0x7d, 0x3c, 0xd9, 0xc7, 0x6c, 0x9d, 0xb4, 0x1a, 0x01, 0x7a, 0x8f, 0x70, + 0x1c, 0xf9, 0x63, 0x9b, 0x75, 0xc0, 0xaa, 0xd7, 0x8a, 0x03, 0xec, 0x42, 0x8e, 0x9c, 0x36, 0xe1, + 0xc8, 0x49, 0x1f, 0x2f, 0xe5, 0xfb, 0xb5, 0xbc, 0x4d, 0xf9, 0x00, 0x9a, 0xf5, 0x34, 0xe1, 0x3d, + 0xc2, 0xd1, 0x3d, 0x05, 0xb7, 0xef, 0x78, 0xfd, 0x86, 0xf5, 0x1f, 0x81, 0x55, 0x1c, 0x9d, 0x53, + 0xe8, 0x8a, 0xe5, 0xeb, 0x34, 0x02, 0xe2, 0x3e, 0x72, 0x9a, 0x08, 0x7a, 0x88, 0xca, 0x87, 0xa7, + 0xb4, 0xfb, 0xea, 0x8b, 0x0a, 0x7b, 0x5f, 0xa2, 0xed, 0x3b, 0x5d, 0x9a, 0x03, 0xc1, 0x92, 0x0c, + 0x8f, 0x54, 0xdb, 0x7c, 0xc5, 0xb2, 0xda, 0xfe, 0x5a, 0x03, 0x8b, 0xc7, 0xcc, 0xff, 0x5e, 0xec, + 0x41, 0x8e, 0x4e, 0x21, 0x85, 0x21, 0x13, 0xd5, 0x84, 0x2d, 0xde, 0x24, 0x62, 0x45, 0xbf, 0xb8, + 0x9a, 0x19, 0x54, 0x3f, 0x02, 0xb3, 0xb1, 0x64, 0x50, 0xc5, 0xfb, 0xa2, 0x39, 0x44, 0xff, 0x34, + 0x93, 0x49, 0x0f, 0xa6, 0x9f, 0x3c, 0xad, 0x4e, 0xd8, 0x8a, 0x60, 0x6f, 0x41, 0xfa, 0xc9, 0xa8, + 0x6b, 0x6b, 0x60, 0xf5, 0x92, 0xca, 0xcc, 0xc1, 0xcf, 0x0a, 0xe0, 0xf6, 0x31, 0xf3, 0x53, 0x97, + 0xfb, 0x9e, 0x87, 0x45, 0x95, 0x06, 0x35, 0x80, 0x6f, 0x81, 0x05, 0x1c, 0x61, 0x8e, 0x61, 0xe0, + 0x34, 0x91, 0x28, 0xbd, 0x12, 0x6c, 0xc8, 0x9b, 0x21, 0x9a, 0x9e, 0xa9, 0x5a, 0x9d, 0xbc, 0x01, + 0x02, 0xa1, 0xf4, 0xcd, 0xab, 0xbc, 0x64, 0x50, 0x34, 0x04, 0x1f, 0x45, 0x88, 0x61, 0xe6, 0x34, + 0x21, 0x6b, 0xca, 0x7b, 0x3a, 0x67, 0x97, 0xd4, 0xd8, 0x7d, 0xc8, 0x9a, 0x7a, 0x15, 0x94, 0x1a, + 0x38, 0x82, 0xb4, 0x93, 0x20, 0xa6, 0x25, 0x02, 0x24, 0x43, 0x12, 0x70, 0x08, 0x00, 0x8b, 0xe1, + 0x45, 0xe4, 0x88, 0x6d, 0xa0, 0x3c, 0xa3, 0x84, 0x24, 0x2d, 0xde, 0x4c, 0x5b, 0xbc, 0x79, 0x96, + 0xee, 0x11, 0x07, 0x05, 0x21, 0xe4, 0xc3, 0x7f, 0x54, 0x35, 0xbb, 0x28, 0xf3, 0x44, 0x44, 0x7f, + 0x00, 0x96, 0x5a, 0x51, 0x83, 0x44, 0x1e, 0x8e, 0x7c, 0x27, 0x46, 0x14, 0x13, 0xaf, 0x3c, 0x2b, + 0xa9, 0xd6, 0xae, 0x50, 0xd5, 0xd5, 0x6e, 0x92, 0x30, 0xfd, 0x52, 0x30, 0x2d, 0x66, 0xc9, 0xa7, + 0x32, 0x57, 0xff, 0x2e, 0xd0, 0x5d, 0xb7, 0x2d, 0x25, 0x91, 0x16, 0x4f, 0x19, 0x6f, 0x0d, 0xcf, + 0xb8, 0xe4, 0xba, 0xed, 0xb3, 0x24, 0x5b, 0x51, 0xfe, 0x10, 0xac, 0x72, 0x0a, 0x23, 0x76, 0x8e, + 0xe8, 0x65, 0xde, 0xc2, 0xf0, 0xbc, 0x77, 0x52, 0x8e, 0x5e, 0xf2, 0xfb, 0x60, 0x23, 0xeb, 0xcc, + 0x14, 0x79, 0x98, 0x71, 0x8a, 0x1b, 0x2d, 0xb9, 0xe8, 0xd2, 0x65, 0x53, 0x2e, 0xca, 0x87, 0xa0, + 0x92, 0xe2, 0xec, 0x1e, 0xd8, 0x37, 0x15, 0x4a, 0x3f, 0x01, 0xaf, 0xc8, 0x65, 0xca, 0x84, 0x38, + 0xa7, 0x87, 0x49, 0x4e, 0x1d, 0x62, 0xc6, 0x04, 0x1b, 0xd8, 0xd0, 0xb6, 0xa6, 0xec, 0xcd, 0x04, + 0x7b, 0x8a, 0x68, 0x3d, 0x87, 0x3c, 0xcb, 0x01, 0xf5, 0x6d, 0xa0, 0x37, 0x31, 0xe3, 0x84, 0x62, + 0x17, 0x06, 0x0e, 0x8a, 0x38, 0xc5, 0x88, 0x95, 0x4b, 0x32, 0x7d, 0xb9, 0x1b, 0xb9, 0x97, 0x04, + 0xf4, 0x77, 0xc1, 0xe6, 0xb5, 0x93, 0x3a, 0x6e, 0x13, 0x46, 0x11, 0x0a, 0xca, 0x73, 0xd2, 0x4a, + 0xd5, 0xbb, 0x66, 0xce, 0xc3, 0x04, 0xa6, 0xdf, 0x06, 0x33, 0x9c, 0xc4, 0xce, 0x83, 0xf2, 0xfc, + 0x86, 0xb6, 0x35, 0x6f, 0x4f, 0x73, 0x12, 0x3f, 0xd0, 0xdf, 0x00, 0x2b, 0x6d, 0x18, 0x60, 0x0f, + 0x72, 0x42, 0x99, 0x13, 0x93, 0x0b, 0x44, 0x1d, 0x17, 0xc6, 0xe5, 0x05, 0x89, 0xd1, 0xbb, 0xb1, + 0x53, 0x11, 0x3a, 0x84, 0xb1, 0x7e, 0x17, 0x2c, 0x67, 0xa3, 0x0e, 0x43, 0x5c, 0xc2, 0x17, 0x25, + 0x7c, 0x31, 0x0b, 0x3c, 0x44, 0x5c, 0x60, 0xd7, 0x41, 0x11, 0x06, 0x01, 0xb9, 0x08, 0x30, 0xe3, + 0xe5, 0xa5, 0x8d, 0xa9, 0xad, 0xa2, 0xdd, 0x1d, 0xd0, 0x0d, 0x50, 0xf0, 0x50, 0xd4, 0x91, 0xc1, + 0x65, 0x19, 0xcc, 0xae, 0x7b, 0xbb, 0x8e, 0x3e, 0x74, 0xd7, 0xb9, 0xd2, 0x2a, 0x5e, 0x06, 0x2f, + 0xf5, 0x69, 0x07, 0x59, 0xbb, 0xf8, 0x83, 0x06, 0xf4, 0x5c, 0xdc, 0x46, 0x21, 0x69, 0xc3, 0x60, + 0x50, 0xb7, 0xd8, 0x07, 0x45, 0x26, 0xca, 0x28, 0xd7, 0xe7, 0xe4, 0x08, 0xeb, 0xb3, 0x20, 0xd2, + 0xe4, 0xf2, 0xec, 0xf1, 0x36, 0x35, 0xbe, 0xb7, 0x75, 0x60, 0x5c, 0xd5, 0x9e, 0x59, 0xfb, 0xbd, + 0x06, 0xee, 0x88, 0x70, 0x13, 0x46, 0x3e, 0xb2, 0xd1, 0x05, 0xa4, 0x5e, 0x1d, 0x45, 0x24, 0x64, + 0x7a, 0x0d, 0xcc, 0x7b, 0xf2, 0x9f, 0xc3, 0x89, 0x38, 0xf2, 0x94, 0x35, 0x59, 0xfc, 0x52, 0x32, + 0x78, 0x46, 0xf6, 0x3d, 0x4f, 0xdf, 0x02, 0x4b, 0x5d, 0x0c, 0x15, 0xd4, 0xc2, 0xad, 0x80, 0x2d, + 0xa4, 0x30, 0x39, 0xe1, 0x7f, 0xcf, 0x4d, 0x55, 0x6e, 0xeb, 0x57, 0xe5, 0x66, 0x86, 0x9e, 0x68, + 0xa0, 0x70, 0xcc, 0xfc, 0x93, 0x98, 0x1f, 0x45, 0xff, 0xe7, 0x07, 0x3a, 0x1d, 0x2c, 0xa5, 0x4e, + 0x32, 0x7b, 0xbf, 0xd1, 0x40, 0x31, 0x19, 0x3c, 0x69, 0xf1, 0xff, 0x89, 0xbf, 0xae, 0xf8, 0xa9, + 0x9b, 0x88, 0xbf, 0x0d, 0x96, 0x33, 0x9d, 0x99, 0xfa, 0x3f, 0x69, 0xf2, 0x8c, 0x2a, 0xd6, 0xbd, + 0x2a, 0xd7, 0x21, 0x09, 0x55, 0x03, 0xb2, 0x21, 0x47, 0x57, 0x55, 0x6b, 0x43, 0xaa, 0xce, 0x57, + 0x62, 0xb2, 0xb7, 0x12, 0xf7, 0xc0, 0x34, 0x85, 0x1c, 0x29, 0x3b, 0x3b, 0x62, 0xa9, 0xfd, 0xfd, + 0x69, 0xf5, 0xa5, 0xc4, 0x12, 0xf3, 0x1e, 0x99, 0x98, 0x58, 0x21, 0xe4, 0x4d, 0xf3, 0x3b, 0xc8, + 0x87, 0x6e, 0xa7, 0x8e, 0xdc, 0x4f, 0x3f, 0xde, 0x06, 0xca, 0x71, 0x1d, 0xb9, 0xb6, 0x4c, 0xdf, + 0x2b, 0xa4, 0x2e, 0x6b, 0xaf, 0x82, 0x57, 0x06, 0x99, 0xc8, 0xdc, 0xfe, 0x65, 0x52, 0x9e, 0x40, + 0xb2, 0x73, 0x2a, 0xf1, 0xf0, 0xb9, 0x38, 0xee, 0x89, 0x0e, 0xbf, 0x02, 0x66, 0x38, 0xe6, 0x01, + 0x52, 0xb7, 0x2d, 0xb9, 0xd0, 0x37, 0x40, 0xc9, 0x43, 0xcc, 0xa5, 0x38, 0x96, 0xbb, 0x4f, 0x62, + 0x24, 0x3f, 0xd4, 0xe3, 0x73, 0xaa, 0xd7, 0x67, 0xd6, 0xb9, 0xa7, 0x87, 0xe8, 0xdc, 0x33, 0xa3, + 0x75, 0xee, 0xd9, 0x21, 0x3a, 0xf7, 0xad, 0x41, 0x9d, 0xbb, 0x30, 0xa8, 0x73, 0x17, 0x87, 0xee, + 0x07, 0xb5, 0x4d, 0x50, 0xbd, 0xa6, 0xa4, 0x69, 0xd9, 0x77, 0xff, 0x5c, 0x02, 0x53, 0xc7, 0xcc, + 0xd7, 0x7f, 0xa1, 0x81, 0xe5, 0xab, 0xef, 0x78, 0x5f, 0x1d, 0xea, 0x80, 0xd9, 0xef, 0x45, 0xca, + 0xd8, 0x1f, 0x3b, 0x35, 0xd5, 0xa6, 0xff, 0x4e, 0x03, 0xc6, 0x80, 0x17, 0xb0, 0x83, 0x61, 0x67, + 0xb8, 0x9e, 0xc3, 0x78, 0xf7, 0xe6, 0x1c, 0x03, 0xe4, 0xf6, 0xbc, 0x42, 0x8d, 0x29, 0x37, 0xcf, + 0x31, 0xae, 0xdc, 0x7e, 0x2f, 0x26, 0xfa, 0xcf, 0x35, 0xb0, 0x74, 0xe5, 0x4c, 0xff, 0x95, 0x61, + 0x27, 0xb8, 0x9c, 0x69, 0x7c, 0x63, 0xdc, 0xcc, 0x4c, 0xd0, 0x4f, 0x35, 0xb0, 0x78, 0xf9, 0xd4, + 0xf0, 0xf6, 0xa8, 0xac, 0x2a, 0xd1, 0xf8, 0xfa, 0x98, 0x89, 0x99, 0x9a, 0x0f, 0x34, 0x30, 0xd7, + 0xf3, 0xd2, 0xf6, 0xe5, 0x61, 0x19, 0xf3, 0x59, 0xc6, 0x3b, 0xe3, 0x64, 0x65, 0x22, 0x42, 0x30, + 0x93, 0xec, 0xcd, 0xdb, 0xc3, 0xd2, 0x48, 0xb8, 0xf1, 0xe6, 0x48, 0xf0, 0x6c, 0xba, 0x18, 0xcc, + 0xaa, 0xbd, 0xd2, 0x1c, 0x81, 0xe0, 0xa4, 0xc5, 0x8d, 0xb7, 0x46, 0xc3, 0x67, 0x33, 0xfe, 0x56, + 0x03, 0x6b, 0xd7, 0x6f, 0x70, 0x43, 0xf7, 0x90, 0x6b, 0x29, 0x8c, 0xa3, 0x1b, 0x53, 0x64, 0x5a, + 0x7f, 0xa5, 0x81, 0x95, 0xbe, 0xdb, 0xd3, 0x3b, 0xa3, 0x3e, 0x6b, 0xf9, 0x6c, 0xa3, 0x7e, 0x93, + 0xec, 0x54, 0x9c, 0x31, 0xf3, 0xe3, 0xcf, 0x1e, 0xdf, 0xd5, 0x0e, 0xbe, 0xff, 0xe4, 0x59, 0x45, + 0xfb, 0xe4, 0x59, 0x45, 0xfb, 0xe7, 0xb3, 0x8a, 0xf6, 0xe1, 0xf3, 0xca, 0xc4, 0x27, 0xcf, 0x2b, + 0x13, 0x7f, 0x7b, 0x5e, 0x99, 0xf8, 0xc1, 0xd7, 0x7c, 0xcc, 0x9b, 0xad, 0x86, 0xe9, 0x92, 0x50, + 0x7d, 0xa0, 0xb4, 0xba, 0xf3, 0x6e, 0x67, 0xdf, 0x17, 0xdb, 0x6f, 0x5a, 0xef, 0xf7, 0x7e, 0x64, + 0x94, 0x1f, 0x65, 0x1a, 0xb3, 0xf2, 0x20, 0xfe, 0xa5, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x39, + 0xec, 0x0a, 0x75, 0xe0, 0x15, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/ccv/types/params.go b/x/ccv/types/params.go index 72a95ae7dd..475389d7df 100644 --- a/x/ccv/types/params.go +++ b/x/ccv/types/params.go @@ -27,6 +27,9 @@ const ( // decimal number. For example "0.75" would represent 75%. DefaultConsumerRedistributeFrac = "0.75" + // By default, the bottom 5% of the validator set can opt out of validating consumer chains + DefaultSoftOptOutThreshold = "0.05" + // Default number of historical info entries to persist in store. // We use the same default as the staking module, but use a signed integer // so that negative values can be caught during parameter validation in a readable way, @@ -38,9 +41,6 @@ const ( // the staking module default. DefaultConsumerUnbondingPeriod = stakingtypes.DefaultUnbondingTime - 7*24*time.Hour - // By default, the bottom 5% of the validator set can opt out of validating consumer chains - DefaultSoftOptOutThreshold = "0.05" - // Default retry delay period is 1 hour. DefaultRetryDelayPeriod = time.Hour ) @@ -149,9 +149,6 @@ func (p ConsumerParams) Validate() error { if err := ValidateDuration(p.UnbondingPeriod); err != nil { return err } - if err := ValidateSoftOptOutThreshold(p.SoftOptOutThreshold); err != nil { - return err - } if err := ValidateDenoms(p.RewardDenoms); err != nil { return err } @@ -184,8 +181,6 @@ func (p *ConsumerParams) ParamSetPairs() paramtypes.ParamSetPairs { p.HistoricalEntries, ValidatePositiveInt64), paramtypes.NewParamSetPair(KeyConsumerUnbondingPeriod, p.UnbondingPeriod, ValidateDuration), - paramtypes.NewParamSetPair(KeySoftOptOutThreshold, - p.SoftOptOutThreshold, ValidateSoftOptOutThreshold), paramtypes.NewParamSetPair(KeyRewardDenoms, p.RewardDenoms, ValidateDenoms), paramtypes.NewParamSetPair(KeyProviderRewardDenoms, diff --git a/x/ccv/types/shared_consumer.pb.go b/x/ccv/types/shared_consumer.pb.go index 425129c56c..92d0d82e6a 100644 --- a/x/ccv/types/shared_consumer.pb.go +++ b/x/ccv/types/shared_consumer.pb.go @@ -65,11 +65,8 @@ type ConsumerParams struct { // Unbonding period for the consumer, // which should be smaller than that of the provider in general. UnbondingPeriod time.Duration `protobuf:"bytes,9,opt,name=unbonding_period,json=unbondingPeriod,proto3,stdduration" json:"unbonding_period"` - // The threshold for the percentage of validators at the bottom of the set who - // can opt out of running the consumer chain without being punished. For - // example, a value of 0.05 means that the validators in the bottom 5% of the - // set can opt out - SoftOptOutThreshold string `protobuf:"bytes,10,opt,name=soft_opt_out_threshold,json=softOptOutThreshold,proto3" json:"soft_opt_out_threshold,omitempty"` + // !!! DEPRECATED !!! soft_opt_out_threshold is deprecated. see docs/docs/adrs/adr-015-partial-set-security.md + SoftOptOutThreshold string `protobuf:"bytes,10,opt,name=soft_opt_out_threshold,json=softOptOutThreshold,proto3" json:"soft_opt_out_threshold,omitempty"` // Deprecated: Do not use. // Reward denoms. These are the denominations which are allowed to be sent to // the provider as rewards. RewardDenoms []string `protobuf:"bytes,11,rep,name=reward_denoms,json=rewardDenoms,proto3" json:"reward_denoms,omitempty"` @@ -176,6 +173,7 @@ func (m *ConsumerParams) GetUnbondingPeriod() time.Duration { return 0 } +// Deprecated: Do not use. func (m *ConsumerParams) GetSoftOptOutThreshold() string { if m != nil { return m.SoftOptOutThreshold @@ -343,58 +341,59 @@ func init() { } var fileDescriptor_d0a8be0efc64dfbc = []byte{ - // 812 bytes of a gzipped FileDescriptorProto + // 817 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0x41, 0x73, 0xdc, 0x34, - 0x14, 0x8e, 0xbb, 0x25, 0xdd, 0x68, 0x93, 0xa6, 0x88, 0x50, 0x4c, 0x3a, 0xb3, 0x71, 0x03, 0x87, - 0x1d, 0x98, 0xda, 0x24, 0x2d, 0x17, 0x6e, 0x24, 0xa1, 0x94, 0x1e, 0x92, 0xad, 0x13, 0xca, 0x0c, - 0x1c, 0x34, 0xb2, 0xf4, 0x76, 0xad, 0xc1, 0x96, 0x3c, 0x92, 0xec, 0x90, 0x5f, 0xc0, 0x95, 0x23, - 0x3f, 0xa9, 0xdc, 0x7a, 0xe4, 0x44, 0x99, 0xe4, 0x8f, 0x30, 0x96, 0xed, 0x8d, 0x97, 0x21, 0x50, - 0x6e, 0x7a, 0x7a, 0xdf, 0xf7, 0xd9, 0xdf, 0x93, 0xde, 0x13, 0xfa, 0x4c, 0x48, 0x0b, 0x9a, 0xa5, - 0x54, 0x48, 0x62, 0x80, 0x95, 0x5a, 0xd8, 0x8b, 0x88, 0xb1, 0x2a, 0xaa, 0xf6, 0x22, 0x93, 0x52, - 0x0d, 0x9c, 0x30, 0x25, 0x4d, 0x99, 0x83, 0x0e, 0x0b, 0xad, 0xac, 0xc2, 0xdb, 0xff, 0xc0, 0x08, - 0x19, 0xab, 0xc2, 0x6a, 0x6f, 0xfb, 0x81, 0x05, 0xc9, 0x41, 0xe7, 0x42, 0xda, 0x88, 0x26, 0x4c, - 0x44, 0xf6, 0xa2, 0x00, 0xd3, 0x10, 0xb7, 0x23, 0x91, 0xb0, 0x28, 0x13, 0xf3, 0xd4, 0xb2, 0x4c, - 0x80, 0xb4, 0x26, 0xea, 0xa1, 0xab, 0xbd, 0x5e, 0xd4, 0x12, 0xc6, 0x73, 0xa5, 0xe6, 0x19, 0x44, - 0x2e, 0x4a, 0xca, 0x59, 0xc4, 0x4b, 0x4d, 0xad, 0x50, 0xb2, 0xcd, 0x6f, 0xcd, 0xd5, 0x5c, 0xb9, - 0x65, 0x54, 0xaf, 0x9a, 0xdd, 0xdd, 0x37, 0xab, 0xe8, 0xee, 0x61, 0xfb, 0xcb, 0x53, 0xaa, 0x69, - 0x6e, 0xb0, 0x8f, 0xee, 0x80, 0xa4, 0x49, 0x06, 0xdc, 0xf7, 0x02, 0x6f, 0x32, 0x8c, 0xbb, 0x10, - 0x9f, 0xa0, 0x8f, 0x93, 0x4c, 0xb1, 0x1f, 0x0d, 0x29, 0x40, 0x13, 0x2e, 0x8c, 0xd5, 0x22, 0x29, - 0xeb, 0x6f, 0x10, 0xab, 0xa9, 0x34, 0xb9, 0x30, 0x46, 0x28, 0xe9, 0xdf, 0x0a, 0xbc, 0xc9, 0x20, - 0x7e, 0xd8, 0x60, 0xa7, 0xa0, 0x8f, 0x7a, 0xc8, 0xb3, 0x1e, 0x10, 0x3f, 0x47, 0x0f, 0x6f, 0x54, - 0x21, 0x2c, 0xa5, 0x52, 0x42, 0xe6, 0x0f, 0x02, 0x6f, 0xb2, 0x16, 0xef, 0xf0, 0x1b, 0x44, 0x0e, - 0x1b, 0x18, 0xfe, 0x02, 0x6d, 0x17, 0x5a, 0x55, 0x82, 0x83, 0x26, 0x33, 0x00, 0x52, 0x28, 0x95, - 0x11, 0xca, 0xb9, 0x26, 0xc6, 0x6a, 0xff, 0xb6, 0x13, 0xb9, 0xdf, 0x21, 0x9e, 0x02, 0x4c, 0x95, - 0xca, 0xbe, 0xe4, 0x5c, 0x9f, 0x5a, 0x8d, 0x5f, 0x20, 0xcc, 0x58, 0x45, 0xac, 0xc8, 0x41, 0x95, - 0xb6, 0x76, 0x27, 0x14, 0xf7, 0xdf, 0x09, 0xbc, 0xc9, 0x68, 0xff, 0xc3, 0xb0, 0x29, 0x6c, 0xd8, - 0x15, 0x36, 0x3c, 0x6a, 0x0b, 0x7b, 0x30, 0x7c, 0xf5, 0xc7, 0xce, 0xca, 0xaf, 0x6f, 0x76, 0xbc, - 0xf8, 0x1e, 0x63, 0xd5, 0x59, 0xc3, 0x9e, 0x3a, 0x32, 0xfe, 0x01, 0x7d, 0xe0, 0xdc, 0xcc, 0x40, - 0xff, 0x5d, 0x77, 0xf5, 0xed, 0x75, 0xdf, 0xef, 0x34, 0x96, 0xc5, 0x9f, 0xa1, 0xa0, 0xbb, 0x67, - 0x44, 0xc3, 0x52, 0x09, 0x67, 0x9a, 0xb2, 0x7a, 0xe1, 0xdf, 0x71, 0x8e, 0xc7, 0x1d, 0x2e, 0x5e, - 0x82, 0x3d, 0x6d, 0x51, 0xf8, 0x11, 0xc2, 0xa9, 0x30, 0x56, 0x69, 0xc1, 0x68, 0x46, 0x40, 0x5a, - 0x2d, 0xc0, 0xf8, 0x43, 0x77, 0x80, 0xef, 0x5e, 0x67, 0xbe, 0x6a, 0x12, 0xf8, 0x18, 0xdd, 0x2b, - 0x65, 0xa2, 0x24, 0x17, 0x72, 0xde, 0xd9, 0x59, 0x7b, 0x7b, 0x3b, 0x9b, 0x0b, 0x72, 0x6b, 0xe4, - 0x31, 0xba, 0x6f, 0xd4, 0xcc, 0x12, 0x55, 0x58, 0x52, 0x57, 0xc8, 0xa6, 0x1a, 0x4c, 0xaa, 0x32, - 0xee, 0x23, 0xf7, 0xfb, 0xef, 0xd5, 0xd9, 0x93, 0xc2, 0x9e, 0x94, 0xf6, 0xac, 0x4b, 0xe1, 0x8f, - 0xd0, 0x86, 0x86, 0x73, 0xaa, 0x39, 0xe1, 0x20, 0x55, 0x6e, 0xfc, 0x51, 0x30, 0x98, 0xac, 0xc5, - 0xeb, 0xcd, 0xe6, 0x91, 0xdb, 0xc3, 0x4f, 0xd0, 0xe2, 0xb0, 0xc9, 0x32, 0x7a, 0xdd, 0xa1, 0xb7, - 0xba, 0x6c, 0xdc, 0x67, 0xbd, 0x40, 0x58, 0x83, 0xd5, 0x17, 0x84, 0x43, 0x46, 0x2f, 0x3a, 0x87, - 0x1b, 0xff, 0xe3, 0x22, 0x38, 0xfa, 0x51, 0xcd, 0x6e, 0x2c, 0xee, 0xfe, 0xe6, 0xa1, 0xad, 0xae, - 0xc3, 0xbe, 0x06, 0x09, 0x46, 0x98, 0x53, 0x4b, 0x2d, 0xe0, 0x67, 0x68, 0xb5, 0x70, 0x1d, 0xe7, - 0xda, 0x6c, 0xb4, 0xff, 0x49, 0x78, 0xf3, 0xac, 0x08, 0x97, 0x7b, 0xf4, 0xe0, 0x76, 0xfd, 0xc1, - 0xb8, 0xe5, 0xe3, 0xe7, 0x68, 0xd8, 0xb9, 0x71, 0xbd, 0x37, 0xda, 0x9f, 0xfc, 0x9b, 0xd6, 0xb4, - 0xc5, 0x7e, 0x23, 0x67, 0xaa, 0x55, 0x5a, 0xf0, 0xf1, 0x03, 0xb4, 0x26, 0xe1, 0x9c, 0x38, 0xa6, - 0x6b, 0xbd, 0x61, 0x3c, 0x94, 0x70, 0x7e, 0x58, 0xc7, 0xbb, 0x3f, 0xdf, 0x42, 0xeb, 0x7d, 0x36, - 0x3e, 0x46, 0xeb, 0xcd, 0x78, 0x22, 0xa6, 0xf6, 0xd4, 0x3a, 0xf9, 0x34, 0x14, 0x09, 0x0b, 0xfb, - 0xc3, 0x2b, 0xec, 0x8d, 0xab, 0xda, 0x8d, 0xdb, 0x75, 0x65, 0x88, 0x47, 0xec, 0x3a, 0xc0, 0xdf, - 0xa1, 0xcd, 0xfa, 0xc2, 0x82, 0x34, 0xa5, 0x69, 0x25, 0x1b, 0x43, 0xe1, 0x7f, 0x4a, 0x76, 0xb4, - 0x46, 0xf5, 0x2e, 0x5b, 0x8a, 0xf1, 0x31, 0xda, 0x14, 0x52, 0x58, 0x41, 0x33, 0x52, 0xd1, 0x8c, - 0x18, 0xb0, 0xfe, 0x20, 0x18, 0x4c, 0x46, 0xfb, 0x41, 0x5f, 0xa7, 0x9e, 0xc2, 0xe1, 0x4b, 0x9a, - 0x09, 0x4e, 0xad, 0xd2, 0xdf, 0x16, 0x9c, 0x5a, 0x68, 0x2b, 0xb4, 0xd1, 0xd2, 0x5f, 0xd2, 0xec, - 0x14, 0xec, 0xc1, 0xf1, 0xab, 0xcb, 0xb1, 0xf7, 0xfa, 0x72, 0xec, 0xfd, 0x79, 0x39, 0xf6, 0x7e, - 0xb9, 0x1a, 0xaf, 0xbc, 0xbe, 0x1a, 0xaf, 0xfc, 0x7e, 0x35, 0x5e, 0xf9, 0xfe, 0xc9, 0x5c, 0xd8, - 0xb4, 0x4c, 0x42, 0xa6, 0xf2, 0x88, 0x29, 0x93, 0x2b, 0x13, 0x5d, 0x9f, 0xc5, 0xa3, 0xc5, 0xab, - 0x51, 0x7d, 0x1e, 0xfd, 0xe4, 0x9e, 0x0e, 0x37, 0xf4, 0x93, 0x55, 0x77, 0xa9, 0x1e, 0xff, 0x15, - 0x00, 0x00, 0xff, 0xff, 0x9a, 0xb1, 0xf7, 0x25, 0x62, 0x06, 0x00, 0x00, + 0x14, 0x8e, 0xb3, 0x25, 0xdd, 0x68, 0x93, 0xa6, 0x88, 0x50, 0x4c, 0x3a, 0xb3, 0x71, 0x03, 0x87, + 0x1d, 0x98, 0xda, 0x24, 0x94, 0x61, 0x86, 0x1b, 0x49, 0x28, 0xa5, 0x87, 0x64, 0xeb, 0x84, 0x32, + 0x03, 0x07, 0x8d, 0x2c, 0xbd, 0x5d, 0x6b, 0xb0, 0x25, 0x8f, 0x24, 0x3b, 0xe4, 0x17, 0x70, 0xe5, + 0xc8, 0x4f, 0x2a, 0xb7, 0x1e, 0x39, 0x01, 0x93, 0xfc, 0x11, 0xc6, 0xb2, 0x9d, 0x78, 0x19, 0x02, + 0xe9, 0x4d, 0x4f, 0xef, 0xfb, 0x3e, 0xfb, 0x7b, 0xd2, 0x7b, 0x42, 0x9f, 0x08, 0x69, 0x41, 0xb3, + 0x94, 0x0a, 0x49, 0x0c, 0xb0, 0x52, 0x0b, 0x7b, 0x1e, 0x31, 0x56, 0x45, 0xd5, 0x6e, 0x64, 0x52, + 0xaa, 0x81, 0x13, 0xa6, 0xa4, 0x29, 0x73, 0xd0, 0x61, 0xa1, 0x95, 0x55, 0x78, 0xeb, 0x5f, 0x18, + 0x21, 0x63, 0x55, 0x58, 0xed, 0x6e, 0x3d, 0xb4, 0x20, 0x39, 0xe8, 0x5c, 0x48, 0x1b, 0xd1, 0x84, + 0x89, 0xc8, 0x9e, 0x17, 0x60, 0x1a, 0xe2, 0x56, 0x24, 0x12, 0x16, 0x65, 0x62, 0x9e, 0x5a, 0x96, + 0x09, 0x90, 0xd6, 0x44, 0x3d, 0x74, 0xb5, 0xdb, 0x8b, 0x5a, 0xc2, 0x78, 0xae, 0xd4, 0x3c, 0x83, + 0xc8, 0x45, 0x49, 0x39, 0x8b, 0x78, 0xa9, 0xa9, 0x15, 0x4a, 0xb6, 0xf9, 0xcd, 0xb9, 0x9a, 0x2b, + 0xb7, 0x8c, 0xea, 0x55, 0xb3, 0xbb, 0x73, 0xb9, 0x82, 0xee, 0x1d, 0xb4, 0xbf, 0x3c, 0xa5, 0x9a, + 0xe6, 0x06, 0xfb, 0xe8, 0x2e, 0x48, 0x9a, 0x64, 0xc0, 0x7d, 0x2f, 0xf0, 0x26, 0xc3, 0xb8, 0x0b, + 0xf1, 0x31, 0xfa, 0x30, 0xc9, 0x14, 0xfb, 0xd1, 0x90, 0x02, 0x34, 0xe1, 0xc2, 0x58, 0x2d, 0x92, + 0xb2, 0xfe, 0x06, 0xb1, 0x9a, 0x4a, 0x93, 0x0b, 0x63, 0x84, 0x92, 0xfe, 0x72, 0xe0, 0x4d, 0x06, + 0xf1, 0xa3, 0x06, 0x3b, 0x05, 0x7d, 0xd8, 0x43, 0x9e, 0xf6, 0x80, 0xf8, 0x39, 0x7a, 0x74, 0xa3, + 0x0a, 0x61, 0x29, 0x95, 0x12, 0x32, 0x7f, 0x10, 0x78, 0x93, 0xd5, 0x78, 0x9b, 0xdf, 0x20, 0x72, + 0xd0, 0xc0, 0xf0, 0x17, 0x68, 0xab, 0xd0, 0xaa, 0x12, 0x1c, 0x34, 0x99, 0x01, 0x90, 0x42, 0xa9, + 0x8c, 0x50, 0xce, 0x35, 0x31, 0x56, 0xfb, 0x77, 0x9c, 0xc8, 0x83, 0x0e, 0xf1, 0x14, 0x60, 0xaa, + 0x54, 0xf6, 0x25, 0xe7, 0xfa, 0xc4, 0x6a, 0xfc, 0x02, 0x61, 0xc6, 0x2a, 0x62, 0x45, 0x0e, 0xaa, + 0xb4, 0xb5, 0x3b, 0xa1, 0xb8, 0xff, 0x56, 0xe0, 0x4d, 0x46, 0x7b, 0xef, 0x87, 0x4d, 0x61, 0xc3, + 0xae, 0xb0, 0xe1, 0x61, 0x5b, 0xd8, 0xfd, 0xe1, 0xab, 0x3f, 0xb6, 0x97, 0x7e, 0xfd, 0x73, 0xdb, + 0x8b, 0xef, 0x33, 0x56, 0x9d, 0x36, 0xec, 0xa9, 0x23, 0xe3, 0x1f, 0xd0, 0x7b, 0xce, 0xcd, 0x0c, + 0xf4, 0x3f, 0x75, 0x57, 0x6e, 0xaf, 0xfb, 0x6e, 0xa7, 0xb1, 0x28, 0xfe, 0x0c, 0x05, 0xdd, 0x3d, + 0x23, 0x1a, 0x16, 0x4a, 0x38, 0xd3, 0x94, 0xd5, 0x0b, 0xff, 0xae, 0x73, 0x3c, 0xee, 0x70, 0xf1, + 0x02, 0xec, 0x69, 0x8b, 0xc2, 0x8f, 0x11, 0x4e, 0x85, 0xb1, 0x4a, 0x0b, 0x46, 0x33, 0x02, 0xd2, + 0x6a, 0x01, 0xc6, 0x1f, 0xba, 0x03, 0x7c, 0xfb, 0x3a, 0xf3, 0x55, 0x93, 0xc0, 0x47, 0xe8, 0x7e, + 0x29, 0x13, 0x25, 0xb9, 0x90, 0xf3, 0xce, 0xce, 0xea, 0xed, 0xed, 0x6c, 0x5c, 0x91, 0x5b, 0x23, + 0x9f, 0xa3, 0x07, 0x46, 0xcd, 0x2c, 0x51, 0x85, 0x25, 0x75, 0x85, 0x6c, 0xaa, 0xc1, 0xa4, 0x2a, + 0xe3, 0x3e, 0xaa, 0x7f, 0x7f, 0x7f, 0xd9, 0xf7, 0xe2, 0x77, 0x6a, 0xc4, 0x71, 0x61, 0x8f, 0x4b, + 0x7b, 0xda, 0xa5, 0xf1, 0x07, 0x68, 0x5d, 0xc3, 0x19, 0xd5, 0x9c, 0x70, 0x90, 0x2a, 0x37, 0xfe, + 0x28, 0x18, 0x4c, 0x56, 0xe3, 0xb5, 0x66, 0xf3, 0xd0, 0xed, 0xe1, 0x27, 0xe8, 0xea, 0xc0, 0xc9, + 0x22, 0x7a, 0xcd, 0xa1, 0x37, 0xbb, 0x6c, 0xdc, 0x67, 0xbd, 0x40, 0x58, 0x83, 0xd5, 0xe7, 0x84, + 0x43, 0x46, 0xcf, 0x3b, 0x97, 0xeb, 0x6f, 0x70, 0x19, 0x1c, 0xfd, 0xb0, 0x66, 0x37, 0x36, 0x77, + 0x7e, 0xf3, 0xd0, 0x66, 0xd7, 0x65, 0x5f, 0x83, 0x04, 0x23, 0xcc, 0x89, 0xa5, 0x16, 0xf0, 0x33, + 0xb4, 0x52, 0xb8, 0xae, 0x73, 0xad, 0x36, 0xda, 0xfb, 0x28, 0xbc, 0x79, 0x5e, 0x84, 0x8b, 0x7d, + 0xba, 0x7f, 0xa7, 0xfe, 0x60, 0xdc, 0xf2, 0xf1, 0x73, 0x34, 0xec, 0xdc, 0xb8, 0xfe, 0x1b, 0xed, + 0x4d, 0xfe, 0x4b, 0x6b, 0xda, 0x62, 0xbf, 0x91, 0x33, 0xd5, 0x2a, 0x5d, 0xf1, 0xf1, 0x43, 0xb4, + 0x2a, 0xe1, 0x8c, 0x38, 0xa6, 0x6b, 0xbf, 0x61, 0x3c, 0x94, 0x70, 0x76, 0x50, 0xc7, 0x3b, 0x3f, + 0x2f, 0xa3, 0xb5, 0x3e, 0x1b, 0x1f, 0xa1, 0xb5, 0x66, 0x44, 0x11, 0x53, 0x7b, 0x6a, 0x9d, 0x7c, + 0x1c, 0x8a, 0x84, 0x85, 0xfd, 0x01, 0x16, 0xf6, 0x46, 0x56, 0xed, 0xc6, 0xed, 0xba, 0x32, 0xc4, + 0x23, 0x76, 0x1d, 0xe0, 0xef, 0xd0, 0x46, 0x7d, 0x69, 0x41, 0x9a, 0xd2, 0xb4, 0x92, 0x8d, 0xa1, + 0xf0, 0x7f, 0x25, 0x3b, 0x5a, 0xa3, 0x7a, 0x8f, 0x2d, 0xc4, 0xf8, 0x08, 0x6d, 0x08, 0x29, 0xac, + 0xa0, 0x19, 0xa9, 0x68, 0x46, 0x0c, 0x58, 0x7f, 0x10, 0x0c, 0x26, 0xa3, 0xbd, 0xa0, 0xaf, 0x53, + 0x4f, 0xe2, 0xf0, 0x25, 0xcd, 0x04, 0xa7, 0x56, 0xe9, 0x6f, 0x0b, 0x4e, 0x2d, 0xb4, 0x15, 0x5a, + 0x6f, 0xe9, 0x2f, 0x69, 0x76, 0x02, 0x76, 0xff, 0xe8, 0xd5, 0xc5, 0xd8, 0x7b, 0x7d, 0x31, 0xf6, + 0xfe, 0xba, 0x18, 0x7b, 0xbf, 0x5c, 0x8e, 0x97, 0x5e, 0x5f, 0x8e, 0x97, 0x7e, 0xbf, 0x1c, 0x2f, + 0x7d, 0xff, 0x64, 0x2e, 0x6c, 0x5a, 0x26, 0x21, 0x53, 0x79, 0xc4, 0x94, 0xc9, 0x95, 0x89, 0xae, + 0xcf, 0xe2, 0xf1, 0xd5, 0xcb, 0x51, 0x7d, 0x16, 0xfd, 0xe4, 0x9e, 0x0f, 0x37, 0xf8, 0x93, 0x15, + 0x77, 0xa9, 0x3e, 0xfd, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x00, 0xe4, 0xb0, 0x69, 0x66, 0x06, 0x00, + 0x00, } func (m *ConsumerParams) Marshal() (dAtA []byte, err error) {