* Initial e2e setup
* Fix inflation disable tests
* Add upgrade handler
* Add param tests for after upgrade
* Replace deprecated grpc creds
* Remove upgrade for e2e test
* Update upgrade handler to set x/community params
* Remove params check in upgrade
* Update tests for switchover time and params check
* wip inflation
* Add attribute to disable inflation event
* Add before/after switchover mint and dist checks
* Add missing attribute to disable inflation test check
* Check mint events are 0
* Check total supply doesn't change
* Check inflation and events before switchover
* Check staking reward payouts from x/community
* move events funcs to util
* Add keyring to chain, fetch keys from kvtool and test withdrawal
* Remove duplicate KavaHomePath
* Update subtest names to specify before/after switchover
Co-authored-by: Draco <draco@dracoli.com>
* Use blocktime for InflationStop event DisableTime
* Test 5 blocks for staking rewards payout
* Remove logging and unused lines
* Check val claimed balance with queried
* Enable and update consolidation tests
* Update test for modified EventTypeInflationStop time attr
* Test x/distribution community tax
* Fix test names
* Update e2e tests for better live network test support (#1749)
* Update e2e tests to support mirrornet
* Skip claim rewards on live network, require no errors for existing tests
* Update readme with upgrade height
* Update .env example with usdt contract address
* Restore .env file to original local e2e
* Log community params when set
* Make AttributeKeyInflationDisableTime more precise
* Add mainnet and testnet community params (#1753)
* Re-enable ibc tests
* Remove duplicate types.EventTypeInflationStop emit
* feat: set validator minimum commissions to at least 5% in upgrade handler (#1761)
* Update validator min commission in upgrade
* Add min commission upgrade test
* Update changelog
* Set validator MaxRate, call BeforeValidatorModified hook
* Check max commission and update time in tests
* Update e2e test for max rate
* Test val update time
* Use SdkBlock instead of Block
* Remove upgrade related handlers and tests
Preserve any module and test util changes
* Update e2e x/community params proposal test to work without upgrade handler
---------
Co-authored-by: Draco <draco@dracoli.com>
* Add consolidate methods
* Update distr feepool balance with dust, add tests
* Set params for proposal handler to not influence module balances
* Add StakingRewardsPerSecond param for proposal test
* Update changelog
* Update test to check emitted events
* Log dust amounts for x/distribution
* Modify feepool communitypool field instead of entire replacement
* Update tests to include cases with empty balances
* Move EventsContains to app
* Remove extra copied ModuleName
* Add Require() to incentive claims in tests to reduce errors
* Move consolidate tests to testutil
* Only transfer non-ukava coins
* Add DefaultStakingRewardsState to proposal handler test
* Move event emit before consolidate
* add golangci specific timeout
---------
Co-authored-by: Nick DeLuca <nickdeluca08@gmail.com>
* Add authority, MsgUpdateParams
* Add e2e test for x/community UpdateParamsMsg proposal
* Ensure new params are different
* Add errors and update codec
* Update changelog
* Use single reused govAuthorityAddr
* Add unit tests for authority and msg
* Validate authority address
* Update proto comment
* Check for ErrInvalidSigner in invalid authority error
* feat: disable inflation upgrade logic
* improve disable inflation comments
* add upgrade tests
* update changelog
* split disable inflation upgrade and the upgrade check
* remove pay rewards logic
* clean up incentives test
* add abci test
* refactor upgradeTime and blockTime check
* fix abci test
* fix wrong pr in changelog
* refactor disable inflation tests, behavior, and implementation
- Unit tests are now shared between keeper and abci begin blocker
since behavior is 100% the same
- ABCI is unaware of keeper initial keeper logic branch (keeper
methods required to be called in certain order by begin blocker)
- Behavior of zero time is changed -- this now doesn't run for the
zero time. This is more ideal for new chains (genesis should set
all correct state instead of relying on inflation disable logic),
and allows for a simpler implementation.
- Begin blocker now panics if parameters are not in state
* remove previous tests and implementation
* remove previous block time keeper state -- not needed for inflation
disalbing
* move inflation disabling to private method and add more comments
* remove unused key
* use correct spelling for idempotence
---------
Co-authored-by: Nick DeLuca <nickdeluca08@gmail.com>
* 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>
* initialize x/metrics with metrics collection
* include global labels in x/metrics metrics
* add x/metrics spec
* add x/metrics test coverage
* update changelog
* fix(evmutil): create module account on InitGenesis
ensures the creation of the x/evmutil module account on init genesis.
* update changelog
* cleanup debug logging
* first pass at convert cosmos coin -> evm msg
* test ConvertCosmosCoinFromERC20 method
* test message server for MsgConvertCosmosCoinFromERC20
* update spec to include MsgConvertCosmosCoinFromERC20
* update changelog
* add CLI command for convert-cosmos-coin-from-erc20
* add test of removed/re-enable denom for convert
* feat(evmutil): add ERC20KavaWrappedNativeCoinContract
* adds the contract ABI & bytecode for an Ownable erc20 with the following:
* customizable decimals on deploy -> requires overriding decimals() view
* mint() exposed for the contract owner which will be the evmutil module
* burn() exposed for the contract owner which will be the evmutil module
* sets up keeper to deploy above token based on details from an
AllowedNativeCoinERC20Token
* tests basic queries and permissions of deployed contract
* update changelog
* improve error messages & comments for erc20 deploy
* add proto for allowed sdk denoms -> evm conversion
* add validation for AllowedNativeCoinERC20Token
* add validation for AllowedNativeCoinERC20Tokens
* add AllowedNativeDenoms into params & genesis
* add evmutil Params.Validate() test
* fix eip712 ante test
* update changelog
* update internal testnet genesis.json
* update state & param specs
updates to the sections describing functionality will be updated once
that functionality actually exists... :)
* update field decimal -> decimals
field now matches erc20 spec
* add validation decimals will cast to uint8
* add v2 store migration for evmutil
* create & register evmutil migrations
* adds migrator to evmutil's keeper
* sets up Migrate1To2 migration
* registers migration in module
* updates GetParams to properly handle historic block queries
* add unit test for GetParams with historic store
* feat: add CommunityCDPRepayDebtPermission
When granted, the new permission allows a committee to submit a
CommunityCDPRepayDebtProposal to lower principal owed on a cdp
owned by the x/community module.
* update changelog
* update protonet genesis.json
* add CommunityPoolCDPRepayDebtProposal proto & type
* add cdpKeeper to x/community's keeper
* add handler for CommunityPoolCDPRepayDebtProposal
* more test cases
* rename CommunityPoolCDP -> CommunityCDP
the proposal does not interact with the vanilla community pool
* fix & test stringer
* update changelog
* add collateral type field to cdp and collateral param
* fix upstream tests
* fix simulations
* fix validation logic
* update incentive to use collateral type instead of denom
* use collateral type instead of denom in cdp
* remove unused code
* address review comments
* move file to query.go (we are adding functionality so specific name
doesn't fit anymore)
* Add tx search for proposals in cli query proposal
* add rest support, height support for rest api, and add go doc string
* add in deadline calculation
* update changelog
Co-authored-by: Kevin Davis <kjydavis3@gmail.com>
* add module accounts command
* update get accounts query to return array of
module accounts instead of map of addresses
* update tests and add update swagger
Co-authored-by: Kevin Davis <kjydavis3@gmail.com>