* Emit events for staking rewards
* Update test to check disable inflation check
* Only emit staking rewards event when non-zero value
* use existing transfer amount for event
* add assertion that no events are emitted for zero rewards; refactor
event assertions to be a little cleaner
---------
Co-authored-by: Nick DeLuca <nickdeluca08@gmail.com>
* 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