cosmos-sdk/x
Callum Waters eb5b11be8a
feat: implement new gov msg & query servers (#10868)
## Description

Ref: #9438

This PR performs the major work of swapping out the v1beta1 msg server and query server for the new one which can process a proposal as an array of messages. This PR still retains the legacy servers which simply wrap around the new ones, providing the same interface as before.

In order to keep backwards compatibility, a new msg, `MsgExecLegacyContent` has been created which allows `Content` to become a `Msg` type and still be used as part of the new implementation. 


---

### Author Checklist

*All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.*

I have...

- [ ] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] added `!` to the type prefix if API or client breaking change
- [ ] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [ ] provided a link to the relevant issue or specification
- [ ] followed the guidelines for [building modules](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules)
- [ ] included the necessary unit and integration [tests](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#testing)
- [ ] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [ ] reviewed "Files changed" and left comments if necessary
- [ ] confirmed all CI checks have passed

### Reviewers Checklist

*All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.*

I have...

- [ ] confirmed the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [ ] confirmed `!` in the type prefix if API or client breaking change
- [ ] confirmed all author checklist items have been addressed 
- [ ] reviewed state machine logic
- [ ] reviewed API design and naming
- [ ] reviewed documentation is accurate
- [ ] reviewed tests and test coverage
- [ ] manually tested (if applicable)
2022-01-21 11:14:00 +00:00
..
auth feat: implement new gov msg & query servers (#10868) 2022-01-21 11:14:00 +00:00
authz feat: implement new gov msg & query servers (#10868) 2022-01-21 11:14:00 +00:00
bank chore: v045 cleanups for changelog and migrations (#10974) 2022-01-20 12:11:16 +01:00
capability docs: add READMEs to each modules' directory (#10721) 2021-12-10 16:10:11 +00:00
crisis docs: add READMEs to each modules' directory (#10721) 2021-12-10 16:10:11 +00:00
distribution chore: revert some json tags (#10958) 2022-01-20 23:21:37 +01:00
epoching docs: add READMEs to each modules' directory (#10721) 2021-12-10 16:10:11 +00:00
evidence Update 06_begin_block.md (#10806) 2021-12-18 23:56:42 +01:00
feegrant feat: implement new gov msg & query servers (#10868) 2022-01-21 11:14:00 +00:00
genutil chore: revert some json tags (#10958) 2022-01-20 23:21:37 +01:00
gov feat: implement new gov msg & query servers (#10868) 2022-01-21 11:14:00 +00:00
group feat: Add simulations to group module (#10723) 2022-01-21 10:52:26 +00:00
mint docs: add READMEs to each modules' directory (#10721) 2021-12-10 16:10:11 +00:00
nft fix: update nft storekey nftOfClassByOwnerStoreKey (#10682) 2021-12-07 12:59:51 +00:00
params feat: implement new gov msg & query servers (#10868) 2022-01-21 11:14:00 +00:00
simulation chore: bump TM to v0.35.0 release candidate (#10210) 2021-11-16 11:24:38 -08:00
slashing chore: revert some json tags (#10958) 2022-01-20 23:21:37 +01:00
staking chore: revert some json tags (#10958) 2022-01-20 23:21:37 +01:00
upgrade refactor: move legacy gov to v1beta1 (#10748) 2021-12-13 18:48:44 +00:00
README.md docs: add READMEs to each modules' directory (#10721) 2021-12-10 16:10:11 +00:00

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 applications.
  • 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.
  • Epoching - Allows modules to queue messages for execution at a certain block height.
  • Evidence - Evidence handling for double signing, misbehaviour, etc.
  • Feegrant - Grant fee allowances for executing transactions.
  • Governance - On-chain proposals and voting.
  • 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.

IBC

The IBC module for the SDK has moved to its own repository.