<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->
## Description
Closes: #8961
SDK allows InitGenesis to return with an empty validator set. In practice, the error for an empty validator set gets thrown in tendermint. To fix this,
* Add non-empty validator set check to the `mm.InitGenesis` function. This will break `simapp.Setup` because it relies on an empty validator set [#comment](https://github.com/cosmos/cosmos-sdk/pull/8909#issuecomment-804850834).
* Update `simapp.Setup` to use a single validator.
* Fix failing tests (Most of them are keeper tests).
<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->
---
### 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...
- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [x] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] provided a link to the relevant issue or specification
- [x] 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)
- [x] added a changelog entry to `CHANGELOG.md`
- [ ] included comments for [documenting Go code](https://blog.golang.org/godoc)
- [ ] updated the relevant documentation or specification
- [x] 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)
<!--
The default pull request template is for types feat, fix, or refactor.
For other templates, add one of the following parameters to the url:
- template=docs.md
- template=other.md
-->
## Description
ref: #8961
<!-- Add a description of the changes that this PR introduces and the files that
are the most critical to review. -->
Following up on [#9697](https://github.com/cosmos/cosmos-sdk/pull/9697#pullrequestreview-727295733), this PR is the first step for the #8961.
---
### 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...
- [x] included the correct [type prefix](https://github.com/commitizen/conventional-commit-types/blob/v3.0.0/index.json) in the PR title
- [x] added `!` to the type prefix if API or client breaking change
- [x] targeted the correct branch (see [PR Targeting](https://github.com/cosmos/cosmos-sdk/blob/master/CONTRIBUTING.md#pr-targeting))
- [x] 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)
- [x] 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)
* temp commit
* setbalance now is internal
* remove set balances in genesis
* feedback test commit
* update tests
* fix: genesis panic message
* fix not bonded pool
* fix(staking): genesis test
* fix(simapp): rollback state fix change
* fix(staking): genesis large val set test
* [Bank Refactor] Frojdi jonathan/remove setsupply (#8491)
* init supply in a different way
* remove external usage of set supply
* change(staking): replace SetSupply with MintCoins in tests
* change(evidence): replace SetSupply with MintCoins in tests
* change(crisis): remove SetSupply in tests
* change(bank): remove set supply from genesis tests
* change(bank): remove set supply from keeper tests
* change(bank): remove remaining set supply usage from keeper tests
* change(bank): remove set supply usage from grpc query and querier tests
* change(bank): remove SetSupply from keeper interface
Co-authored-by: Frojdi Dymylja <frojdi.dymylja@gmail.com>
* remove setbalances from genesis in gov
* remove keyring
* add init genesis state
* change(staking): make genesis checks coherent and add tests
* remove setbalances on distribution
* fix(staking): genesis tests
* [Bank Refactor]: Remove SetBalances usage from the code and tests (#8509)
* change(distribution): remove SetBalances usage from keeper tests
* add(simapp): FundAccount utility function
* chore(staking): use FundAccount in keeper tests
* change(staking): remove usage of SetBalance in allocation tests
* change(staking): remove usage of SetBalance in delegation tests
* change(staking): remove usage of SetBalance in proposal handler tests
* change(staking): remove usage of SetBalances in grpc query tests
* change(staking): remove usage of SetBalances in operations tests
* change(distribution): remove usage of SetBalances in genesis
* change(authz): remove usage of SetBalances keeper and operations test
* fix(authz): TestKeeperFees failing test
* change(slashing): remove SetBalances from expected BankKeeper
* change(slashing): remove usage of SetBalances in tests
* change(distribution): remove SetBalances from expected BankKeeper
* change(genutil): remove usage of SetBalances from tests
* change(gov): remove SetBalances from expected BankKeeper
* change(gov): remove usage of SetBalances from tests
* change(staking): remove usage of SetBalances from slash tests
* change(staking): remove SetBalances from expected BankKeeper
* change(staking): remove usage of SetBalances from delegation tests
* change(staking): remove usage of SetBalances from operations tests
* change(staking): remove usage of SetBalances from validator tests
* change(bank): remove usage of SetBalances from app tests
* change(bank): remove usage of SetBalances from bench tests
* change(bank): remove usage of SetBalances from querier tests
* change(bank): remove usage of SetBalances from grpc query tests
* change(bank): remove usage of SetBalances from operations tests
* change(bank): partially remove usage of SetBalances from keeper tests
* change(bank): finalize removal of usage of SetBalances from keeper tests
* change(auth): remove usage of SetBalances from verify tests
* change(auth): partially remove usage of SetBalances from tests
* [Bank refactor]: finalize removal of setbalances from auth (#8527)
* add tests with is check tx
* temp commit
* fix test
* fix other test and remove setbalances
* change(auth): remove usage of SetBalances is vesting tests
Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com>
* change(types): remove usage of SetBalances in queries
* fix(types): pagination tests
* [Bank refactor] fix pagination tests (#8550)
* fix tests
* lint
* change(bank): remove SetBalances from keeper public API
Co-authored-by: Jonathan Gimeno <jgimeno@gmail.com>
Co-authored-by: SaReN <sahithnarahari@gmail.com>
* change(bank): remove SubtractCoins from keeper public API
* change(ibc/transfer): remove AddCoins from relay tests
* change(bank): remove AddCoins from public keeper API
* fix imports
* remove set balances
* fix fee test
* remove set balances
* fix(staking): remove dependency on minter authorization for staking pools
* chore: update CHANGELOG.md
* update: x/distribution/keeper/keeper_test.go
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* Update simapp/test_helpers.go
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* Update x/staking/genesis_test.go
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* fix(simapp): FundAccount amount variable name
* fix some PR issues
Co-authored-by: Frojdi Dymylja <frojdi.dymylja@gmail.com>
Co-authored-by: Frojdi Dymylja <33157909+fdymylja@users.noreply.github.com>
Co-authored-by: SaReN <sahithnarahari@gmail.com>
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
Co-authored-by: Robert Zaremba <robert@zaremba.ch>
* Clean Any interface
+ removed Any.Pack method. This method is not needed, because we have specialized
functions for createing new Any values. It could be used inappropriately with existing
Any objects.
* removed deprecated PackAny function
* fix linter issue
* update nil handling
* NewAnyWithValue returns error on nil instead of panic
* NewMsgCreateValidator: handle nil pubkey
* Remove AsAny and tx builder workarounds
* fix linter issue
* Add AsAny methods to TxBuilder and StdTxConfig, but keep intoAny interface private
* remove tx.PubKeyToAny
* cosmetic updates
* fix method interface
* move ProtoTxProvider to x/auth/tx
x/staking: Fix all linter warnings.
Fixed warnings across base packages.
New linters:
- unparam
- nolintlint
Co-authored-by: Alessio Treglia <alessio@tendermint.com>
* first commit
* gaia cleanup
* ...
* staking multihooks
* missing module function return args
* bank module name constant
* working, module interface for x/
* got this thing compiling
* make test compiles and passes
* remove expanded simulation invariants
* genesis issue
* continued
* continued
* register crisis routes thought mm
* begin blocker to mm
* end blocker to mm
* empty routes not initialized
* move gaia initChainer sanity check to baseapp
* remove codecs from module manager
* reorging genesis stuff
* module manager passed by reference/bugfixes from working last commit
int
int
* move invariant checks from gaia to crisis
* typo
* basic refactors cmd/gaia/init
* working
* MultiStakingHooks from types to x/staking/types
int
* default module manager order of operations from input modules
* working
* typo
* add AppModuleBasic
* moduleBasicManager / non-test code compiles
* working attempting to get tests passing
* make test passes
* sim random genesis fix
* export bug
* ...
* genutil module
* genutil working
* refactored - happy with non-testing code in cmd/
* ...
* lint fixes
* comment improvement
* cli test fix
* compile housing
* working through compile errors
* working gettin' compilin'
* non-test code compiles
* move testnet to its own module
* reworking tests
int
* bez staging PR 1 comments
* concise module function-of names
* moved all tests from genesis_test.go to other genutil tests
* genaccounts package, add genutil and genaccounts to app.go
* docs for genutil genaccounts
* genaccounts iterate fn
* non-test code with genaccounts/ now compiles
* working test compiling
* debugging tests
* resolved all make test compile errors
* test debuggin
* resolved all unit tests, introduced param module
* cli-test compile fixes
* staking initialization bug
* code comment improvements, changelog entries
* BasicGaiaApp -> ModuleBasics
* highlevel explanation in types/module.go
* @alexanderbez comment revisions
* @fedekunze PR comments
* @alexanderbez PR comments (x2)
* @cwgoes comments (minor updates)
* @fedekunze suggestions
* panic on init with multiple validator updates from different modules
* initchain panic makes validate genesis fail
int
* AppModuleGenesis seperation
int
* test
* remove init panic logic in validate genesis replaced with TODO
* set maxprocs to match system's GOMAXPROCS
* Update circleci
* Cap maxprocs in CI to 4
* @alexanderbez recent comments addressed
* less blocks in twouble sims
int
* runsim error output flag
* -e on import_export as well
* error out
int
* Try to fix failures
* runsim