Closes#2812
This PR adds the flag --for-zero-height to gaiad export, which runs several alterations to the application state to prepare for restarting a new chain in a consistent fashion.
It also:
* Moves Gaia's export code to cmd/gaia/app/export.go for cleaner separation.
* Fixes an inconsistency where we treated the initChainer as happening at height -1 - it should now happen at height 0, since the first header sent by Tendermint has height 1.
* Runs the runtime invariant checks on start (in initChainer)
* Adds a few auxiliary functions to clear slashing periods
* Removes the Height field from Delegation objects in x/stake, which was not used anywhere
* Update slashing import/export
* More slashing.WriteGenesis
* Add test import/export to CI
* Store equality comparison.
* Fix validator bond intra-tx counter
* Set timeslices for unbonding validators
* WriteGenesis => ExportGenesis
* Delete validators from unbonding queue when re-bonded
* Hook for validator deletion, fix staking genesis tests
* unbonding redelegation queue
* address some of bez and chris review
* delete old timeslices from queue
* added Rigel's test case
* added end-time to tags
* fixed bug in staking
* removed prints
* Get -> Queue
* called Endblocker in test
* implement validator queue
* Docs and PENDING
* address federicos comments
* unexposed UnbondingToUnbonded
* no copying unbonded val array to memory
* pulling in stuff from fee-distr PR
* revert some gov changes
* fix using cons address, also remove old commented distr code
* doc update
* val comments
* remove GetValidatorByConsPubKey
* Update validator commission fields
* Remove CommissionChangeToday and update to use CommissionChangeTime
* Implement commission as a first class citizen type
* Implement stringer for Comission
* Move commission type and logic to new file
* Add new commission errors
* Add commission to create validator message
* Implement and call UpdateValidatorCommission
* Update godoc for UpdateValidatorCommission
* Add Abs to the decimal type
* Implement new SetValidatorCommission
* Update decimal short godocs
* Move set initial commission logic
* Move initial commission validation to Commission type
* Update initial validator commission logic and unit tests
* Remove commission update time from struct and move to validator
* Update validator create handler tests
* Implement commission logic for CLI
* Fix make lint failure
* Fix make cover failure
* Update edit validator logic to handle new commission rate
* Fix lint and cover
* Update create/edit validator simulation to include commission params
* Update MsgEditValidator godoc
* Update pending log
* Update staking tx docs
* Fix CLI create validator test
* Update variables names for commission strings
* Merge UpdateTime into Commission type
* Update create-validator usage in docs
* Update more docs with examples
* More doc updates
This is to facillitate ease of implementing #1406. (Tags for messages
could then be added dynamically)
Ultimately once we make the router support hiearchical routing, (#770)
we can then remove the name field and just the parse info for tags from that.
Until then, we can parse the tag name as
`fmt.Sprintf("%s %s", msg.Type(), msg.Name())`
* Cherry picked commits from prev branch
* Added new keepers for querier functionalities
* Renaming
* Fixed gov errors and messages
* Added Querier to stake and app
* Update delegation keepers
* REST Queriers not working
* Fix marshalling error
* Querier tests working
* Pool and params working
* sdk.NewCoin for test handler
* Refactor and renaming
* Update LCD queries and added more tests for queriers
* use sdk.NewCoin
* Delegator summary query and tests
* Added more tests for keeper
* Update PENDING.md
* Update stake rest query
* Format and replaced panics for sdk.Error
* Refactor and addressed comments from Sunny and Aleks
* Fixed some of the errors produced by addr type change
* Fixed remaining errors
* Updated and fixed lite tests
* JSON Header and consistency on errors
* Increased cov for genesis
* Added comment for maxRetrieve param in keepers
* Comment on DelegationWithoutDec
* Bech32Validator Keepers
* Changed Bech validator
* Updated remaining tests and bech32 validator
* Addressed most of Rigel's comments
* Updated tests and types
* Make codec to be unexported from keeper
* Moved logic to query_utils and updated tests
* Fix linter err and PENDING
* Fix err
* Fix err
* Fixed tests
* Update PENDING description
* Update UpdateBondedValidatorsFull
* Update iterator
* defer iterator.Close()
* delete comment
* Address some of Aleks comments, need to fix tests
* export querier
* Fixed tests
* Address Rigel's comments
* More tests
* return error for GetDelegatorValidator
* Fixed conflicts
* Fix linter warnings
* Address @rigelrozanski comments
* Delete comments
* wire ––> codec
- replace with and unexported struct and amino's ability to override /
implement MarshalJSON & UnmarshalJSON to have the pub key bechified
- replaced default time to UTC as I (from London) always got an error
while decoding (epoch but in BST ;-)
- remove all occurrences of `BechValidator