Commit Graph

1749 Commits

Author SHA1 Message Date
Nick DeLuca
102cc0fff3
Community Pool Staking Rewards Implementation & Improvements (#1742)
* 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
2023-10-03 08:41:54 -07:00
Draco
43be3815cc
feat: disable inflation upgrade logic (#1706)
* 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>
2023-10-02 13:10:22 -07:00
Nick DeLuca
57a1a4b10d
Community Param Updates (#1741)
* 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>
2023-09-26 10:08:26 -07:00
Ruaridh
bc260d8091
feat(community): add switchover param (#1704)
* 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>
2023-09-22 09:05:12 -07:00
Evgeniy Scherbina
0598b99063
Make read-async-io configurable (#1732)
* Make read-async-io configurable

* Added unit-test for read options configuration
2023-09-21 12:18:35 -04:00
Evgeniy Scherbina
9aefbac0e8
Add metrics for rocksdb bloom filter and lsm tree (#1710)
* Add metrics for rocksdb bloom filter

* Add metrics for rocksdb lsm tree

* Add metrics for rocksdb lsm tree

* Add metrics for rocksdb detailed cache

* Fix tests

* Add help for metrics

* Add help for metrics
2023-09-15 15:48:00 -04:00
Evgeniy Scherbina
75c86a772b
Add metrics for rocksdb query latency (#1709)
* Add metrics for rocksdb query latency

* Add metrics for rocksdb write stalling

* Add metrics for rocksdb write stall histogram

* Fix tests
2023-09-15 11:32:17 -04:00
Evgeniy Scherbina
3c8394f17a
Add max-background-jobs rocksdb option (#1708) 2023-09-14 15:08:26 -04:00
Evgeniy Scherbina
f934f5961c
Increase number of options to configure rocksdb (#1696) 2023-09-05 17:22:37 -04:00
Evgeniy Scherbina
d91bd688e7
Rocksdb Metrics (#1692)
* Rocksdb Metrics

* Add rocksdb namespace for options

* Adding help to the metrics

* CR's fixes

* CR's fixes

* CR's fixes
2023-09-05 10:33:25 -04:00
Evgeniy Scherbina
495444586a
Update version of protonet (#1695) 2023-09-05 09:52:20 -04:00
Evgeniy Scherbina
84776db2d1
Fix protonet (#1694) 2023-09-01 16:27:47 -04:00
Ruaridh
ebcebc4be3
docs: update unused cosmos modules in swagger docs (#1664) 2023-08-31 14:51:18 -07:00
Robert Pirtle
8b6bbd36f4
feat(metrics): add timing metrics to abci methods (#1669)
* feat(metrics): add timing metrics to abci methods

* update changelog
2023-08-25 15:14:35 -07:00
Robert Pirtle
9a0aed7626
feat(x/metrics): add module for emiting custom chain metrics (#1668)
* initialize x/metrics with metrics collection

* include global labels in x/metrics metrics

* add x/metrics spec

* add x/metrics test coverage

* update changelog
2023-08-25 12:23:53 -07:00
Robert Pirtle
0ddc87ad1d
ci: add Mergify config to auto-open backport PRs (#1671)
* ci: add Mergify config to auto-open backport PRs

adding PR labels defined in the mergify.yml will trigger PRs with those
code changes to be automatically opened against the release branch from
the PR label.

* add backport label for all kava_2222-10 versions
2023-08-25 12:20:41 -07:00
Evgeniy Scherbina
71a8cee566
Update kava version for internal testnet (#1670) 2023-08-25 10:30:28 -04:00
Evgeniy Scherbina
b01062a991
Fix kava version for internal testnet (#1667)
* Fix kava version for internal testnet

* Fix kava version for protonet
2023-08-23 13:36:23 -04:00
Evgeniy Scherbina
a967d2fdda
Update rocksdb version in ci-master workflow (#1665) 2023-08-22 12:44:39 -04:00
Evgeniy Scherbina
90fbe1aad7
Make rocksdb configurable (#1658)
* Make rocksdb configurable

* Make sure rocksdb tests are running in CI

* Updating ci-rocksdb-build workflow

* Remove test.sh

* Update tm-db dependency
2023-08-22 11:24:48 -04:00
drklee3
47416b3d1a
fix: prevent goleveldb panic on large genesis files(#1661)
Backport of #1631
2023-08-16 14:11:10 -07:00
Robert Pirtle
23f0fe0667
chore: allow override of go binary in Makefile (#1660)
* chore: allow override of go binary in Makefile

* update build dir make commands with GO_BIN
2023-08-11 13:29:54 -07:00
Robert Pirtle
839dc80205
test(e2e): update kvtool & e2e tests (#1659)
* add Cdp querier to Chain

* verify funded account has sufficient balance

* return error for nonzero status codes

* update e2e test for eip712 signing

complex eip712 workflow now uses x/cdp instead of x/earn vault

* update to master kvtool

* reset e2e env variables
2023-08-02 14:52:48 -07:00
Robert Pirtle
667b6d084e
ci: update internal testnet cdp collateral types param (#1657)
* ci: update internal testnet usdt cdp collateral type

* match mainnet global debt limit
2023-07-26 12:33:26 -07:00
Robert Pirtle
15c243224c
fix(evmutil): create module account on InitGenesis (#1655)
* fix(evmutil): create module account on InitGenesis

ensures the creation of the x/evmutil module account on init genesis.

* update changelog

* cleanup debug logging
2023-07-24 16:00:19 -07:00
drklee3
2bcfe5c0be
Remove stray 2 character in readme (#1654) 2023-07-20 15:43:46 -07:00
Jake Tagnepis
55847526b8
docs: update mainnet kava version in readme (#1651) 2023-07-20 12:11:57 -07:00
samcode206
8a7d3aa52c
Add x/cdp msgs to eip712_allowed_msgs list (#1650) 2023-07-14 14:07:21 -07:00
samcode206
5f0a723dea
add erc20/tether/usdt to internal testnet cdp collateral_params (#1649) 2023-07-14 11:59:27 -07:00
Robert Pirtle
5cfa33f638
test(e2e): lower cost to run on live networks (#1646)
* add cost summary to e2e test suite runs

* lower cost of test

* refactor initial funding to use new BankSend()

* reduce gas used for initial funding

* return all sdk funds on shutdown

* enable refunds when running against live network

* save more cosmos coins! require less total overall

* track erc20s on Chain

* refactor erc20 funding with new TransferErc20()

* return all registered erc20 balance

* lower erc20 e2e test values

* withdraw earn position & convert back to erc20

* lower gas fees in e2e tests

* fix env variable typo

* add readme note about how to run on live network

* log total spend required for e2e tests
2023-06-29 22:30:02 -07:00
Robert Pirtle
7cff7bec23
test(e2e): support running against live networks (#1630)
* add NodeRunner impl for connecting to live network

* refactor out node runner setups

* remove hardcoded denom for DeployedErc20

* further specify restrictions on DeployedErc20

* don't override .env funded account mnemonic

* lower amounts for convert to coin e2e tests

* lower fund values used by e2e tests

* add doc comments for all e2e functions & types
2023-06-26 15:03:51 -07:00
Robert Pirtle
336bac7466
convert sdk.Coin to ERC20 on internal testnet deploy (#1642) 2023-06-23 15:25:21 -07:00
Robert Pirtle
80c8c2c0f0
ci: fix internal testnet evmutil params (#1641)
we never voted on a param change proposal we submitted. now we do so the
proposal actually takes effect.
2023-06-22 11:03:46 -07:00
Robert Pirtle
1c7911aabf
ci: add USDT to internal testnet (#1632) 2023-06-21 16:05:48 -07:00
Robert Pirtle
1a223bdce2
test(e2e): refactor NodeRunner in prep for live networks (#1627)
* add KavaNodeRunner comments

* update kvtool

* refactor pingEvm()

* refactor pingKava()

* refactor EvmRpcPort -> EvmRpcUrl

* refactor ChainDetails (g)rpcPort -> (g)rpcUrl

* fixup chain details

* extract kvtool options to separate config

* refactor waitForChainStart()

* pull out KavaNodeRunner into kvtool file

* rename runner to KvtoolRunner

* rename runner.Config to KvtoolRunnerConfig

* prefix hardcoded chain details with "kvtool"
2023-06-20 09:29:25 -07:00
Adam Robert Turman
c0820fc51b
seed dev wallet with atom on internal testnet (#1628) 2023-06-16 16:07:02 -05:00
Robert Pirtle
e4a57113c1
feat: add rocksdb Dockerfile (#1625)
* feat: add rocksdb Dockerfile

* update kvtool
2023-06-14 09:37:21 -07:00
Robert Pirtle
49812b6e7c
fix(cli): Resolve problem with assert-invariants cmd (#1624)
* remove no-op migrate command

* move assert-invariants from migrate -> cmd

* fix: don't modify validators for assert-invariants

Makes validator addition in TestApp initialization optional.

* update changelog
2023-06-09 16:52:52 -07:00
drklee3
230ad734a1
chore: bump tm-db fork to v0.6.7-kava.3 (#1622) (#1623)
* Use updated tm-db branch

* chore: bump tm-db fork to v0.6.7-kava.3

* Update changlog

* Update changlog pr number
2023-06-09 12:56:46 -07:00
Robert Pirtle
141e8ac450
test(e2e): add Committee & Upgrade query clients (#1618)
Also:
- updates kvtool
- adds helper comment to upgrade e2e file
- adjusts e2e account funding logging
- [testnets] enable eip712 signing of cosmos coin msgs
- [testnets] enable cosmos coin conversion for HARD
2023-06-06 14:51:42 -07:00
Adam Robert Turman
4b01b70e0c
clean up missed renaming (#1617) 2023-06-06 13:36:11 -05:00
Robert Pirtle
c90c7a8647
test(e2e): test more complex cosmos assert conversion (#1616)
* ensure users can mint() or burn() erc20s

* refactor test setup

* refactor GetErc20Balance for arbitrary erc20 contracts

* move GetErc20Balance() to Chain

* test complex erc20 operations & convert

* undo changes to e2e env
2023-06-06 09:40:17 -07:00
Adam Robert Turman
0ec64c9378
axlwBTC Lend money market (#1613)
* clean up naming around axlwBTC
reenable lend money market
assign incentives

* Update .github/scripts/seed-protonet.sh

* alphabetical order of denoms

* alphabetical order of denoms

* alphabetical order of denoms pt 3

* alphabetical order of denoms
2023-06-05 18:37:00 -05:00
drklee3
425754da12
fix: update submit-legacy-proposal command in internal testnet seed script (#1615) 2023-06-05 15:02:08 -07:00
Robert Pirtle
6853e4fc9c
cli!: rename evm-native asset conversion cli cmds (#1614) 2023-06-05 13:26:02 -07:00
Robert Pirtle
a1f1f0d957
test(e2e): add tests for cosmos coin conversion (#1612)
* add e2e test for cosmos coin conversion

* add e2e test for eip712 signing of converts

* update kvtool
2023-06-05 13:22:23 -07:00
Robert Pirtle
528be6350e
feat(evmutil): add CosmosCoinsFullyBackedInvariant (#1610)
* add IterateAllDeployedCosmosCoinContracts method

* refactor unpacking big int from erc20 query

* add QueryERC20TotalSupply method

* feat(evmutil): add CosmosCoinsFullyBackedInvariant

* update changelog
2023-06-05 11:39:53 -07:00
Robert Pirtle
f4b8bf8f07
feat(evmutil): implement MsgConvertCosmosCoinFromERC20 (#1609)
* 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
2023-06-02 14:26:51 -07:00
Robert Pirtle
d988330d7f
feat(evmutil): add MsgConvertCosmosCoinFromERC20 proto (#1608)
* add MsgConvertCosmosCoinFromERC20 proto & Msg impl

* test MsgConvertCosmosCoinFromERC20 validation

* register msg codec in this PR 😅
2023-06-02 12:36:59 -07:00
Robert Pirtle
d500cd1236
feat(evmutil): Add DeployedCosmosCoinContracts query (#1605)
* add QueryDeployedCosmosCoinContracts proto

* also implement protobuf marshaler for InternalEVMAddress

* setup iteration & collection for deployed addrs

* rewrite grpc query tests

* support querying for all deployed contracts

* support querying by cosmos denom

* fix & test pagination

* remove unused iteration methods

* add CLI query command

* update changelog

* update spec

* add InternalEVMAddress.MarshalJSON test
2023-06-02 11:23:52 -07:00