cosmos-sdk/x
colin axnér 1c6e267964
Remove IBC logic from x/upgrade (#8673)
* add zeroed custom fields check to tm client

* remove custom fields function from x/upgrade and fix tests

* use []byte in x/upgrade, move abci to 02-client

* remove x/ibc from types

* whoops, delete testing files

* fix upgrade tests

* fix tm tests

* fix tests

* update CHANGELOG

* revert proto breakage, use reserved field cc @amaurym

* add IBC Upgrade Proposal type

* remove IBC from upgrade types

* add IBC upgrade logic to 02-client

* fix all tests for x/upgrade

* Add CLI for IBC Upgrade Proposal

* Update x/ibc/core/02-client/types/proposal_test.go

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>

* add gRPC for upgraded client state

* test fixes

* add HandleUpgradeProposal tests

* update docs and remove unnecessary code

* self review bug and test fixes

* neatness

* construct empty rest handler

* fix tests

* fix stringer tests

* Update docs/core/proto-docs.md

Co-authored-by: Christopher Goes <cwgoes@pluranimity.org>

* add key in ibc store tracking ibc upgrade heights

Add a new Key to the IBC client store to track the IBC Upgrade Height. This allows IBC upgrades to correctly remove old IBC upgrade states

* update abci and tests

* revert key storage after discussion with @AdityaSripal

Revert using a key to track IBC upgrades. By clearing any IBC state using an old plan in ScheduleUpgrade, IBC upgrades do not need to be tracked by IBC. This reduces code complexity and reduces potential for bugs.

* clear IBC states on cancelled upgrades

Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Christopher Goes <cwgoes@pluranimity.org>
2021-03-01 16:28:54 +00:00
..
auth Move QueryTx functions to x/auth/tx (#8734) 2021-03-01 15:57:28 +00:00
authz keyring: remove hardcoded default passphrase on NewMnemonic (#8662) 2021-02-23 16:49:09 +00:00
bank store/cachekv, x/bank/types: algorithmically fix pathologically slow code (#8719) 2021-02-27 07:26:22 -08:00
capability Add in-place store migrations (#8485) 2021-02-10 17:49:31 +00:00
crisis various linter fixes (#8666) 2021-02-23 08:46:01 +00:00
distribution x{stake,slash,gov,distrib} In-place Store Migrations (#8504) 2021-02-25 10:43:31 +00:00
evidence various linter fixes (#8666) 2021-02-23 08:46:01 +00:00
feegrant keyring: remove hardcoded default passphrase on NewMnemonic (#8662) 2021-02-23 16:49:09 +00:00
genaccounts various linter fixes (#8666) 2021-02-23 08:46:01 +00:00
genutil various linter fixes (#8666) 2021-02-23 08:46:01 +00:00
gov Remove IBC logic from x/upgrade (#8673) 2021-03-01 16:28:54 +00:00
ibc Remove IBC logic from x/upgrade (#8673) 2021-03-01 16:28:54 +00:00
mint various linter fixes (#8666) 2021-02-23 08:46:01 +00:00
params various linter fixes (#8666) 2021-02-23 08:46:01 +00:00
simulation various linter fixes (#8666) 2021-02-23 08:46:01 +00:00
slashing x{stake,slash,gov,distrib} In-place Store Migrations (#8504) 2021-02-25 10:43:31 +00:00
staking Move QueryTx functions to x/auth/tx (#8734) 2021-03-01 15:57:28 +00:00
upgrade Remove IBC logic from x/upgrade (#8673) 2021-03-01 16:28:54 +00:00
README.md typo fix (#8647) 2021-02-20 09:48:39 +00:00

README.md

List of Modules

Here are some production-grade modules that can be used in Cosmos SDK applications, along with their respective documentation:

  • Auth - Authentication of accounts and transactions for Cosmos SDK application.
  • Authz - Authorization for accounts to perform actions on behalf of other accounts.
  • Bank - Token transfer functionalities.
  • Capability - Object capability implementation.
  • Crisis - Halting the blockchain under certain circumstances (e.g. if an invariant is broken).
  • Distribution - Fee distribution, and staking token provision distribution.
  • Evidence - Evidence handling for double signing, misbehaviour, etc.
  • Governance - On-chain proposals and voting.
  • IBC - IBC protocol for transport, authentication and ordering.
  • IBC Transfer - Cross-chain fungible token transfer implementation through IBC.
  • Mint - Creation of new units of staking token.
  • Params - Globally available parameter store.
  • Slashing - Validator punishment mechanisms.
  • Staking - Proof-of-Stake layer for public blockchains.
  • Upgrade - Software upgrades handling and coordination.

To learn more about the process of building modules, visit the building modules reference documentation.