* add new field upgrade_time_set_staking_rewards_per_second with intention
of integrating into the disable inflation logic to set an initial
staking reward time
* when the disable inflation upgrade time occurs, set the staking rewards
per second to the value specified by the new
upgrade_time_set_staking_rewards_per_second. This will allow a decoupled
implementation between the ugprade switching logic, and the core
functionality of paying staking rewards from the pool
* add staking rewards state to community keeper and community module
genesis that is required to calculate and track staking reward payouts
accross blocks
* add implementation of staking reward payouts
* remove unused error
* touch up tests and add a test case that fully tests behavior when pool
is drained
* add function comments
* refactor and pull out main calculation to private pure function with
no dependence on keeper
* zero out default parameters -- these are too chain specific to have
useful defaults
* small touch ups on comments, test cases
* use correct Int from sdkmath, not old sdk types; update protonet genesis
for new parmater
* fix copy pasta comment
* use bond denom from staking keeper instead of referncing ukava directly
* add staking reward state for valid genesis
* update kvtool genesis for new params and rewards state
* refactor param validation test cases to be shared by genesis and params
tests
* add additional test case for zero staking rewards in order to ensure
no regressions in support for turning off rewards
* add test case to ensure default params are valid -- prevent regression
if defaults change to an invalid state during updates of validation or
defaults
* zero out parameters in migration -- this module will be used with
existing chains and parameters should be set after migrations in
each upgrade handler
* update StakingRewardsPerSecond to an 18 decimal type in order to
reduce error
* add community grpc rest endpoints to swagger
* Fix copy pasta query name to refer to correct Community module
Co-authored-by: drklee3 <derrick@dlee.dev>
* generate swagger changes from previous commit
---------
Co-authored-by: drklee3 <derrick@dlee.dev>
* add community params type
* add get/set params methods
* add community genesis state type
* add community init/export genesis
* add querier methods for params
* add query cli cmd
* update changelog
* update protonet genesis
* Add `RewardsPerSecond` param to `x/community` module (#1707)
* Add RewardsPerSecond param to community
* Update rewards per second param to int
* Add rewards_per_second to protonet genesis
* Use default rewards per second of 744191
* Include value if negative in Validate error
* Rename RewardsPerSecond param to StakingRewardsPerSecond
* Add changelog entry
* Add param migration, update consensus version to 2
* Update proto docs
* Update staking_rewards_per_second param name in protonet genesis (#1730)
* Update godoc
Co-authored-by: Robert Pirtle <Astropirtle@gmail.com>
* add genesis state tests
* document what 0 upgrade time means
* update kvtool to include new params
---------
Co-authored-by: drklee3 <derrick@dlee.dev>
Co-authored-by: Robert Pirtle <Astropirtle@gmail.com>