* Update cosmos-sdk to v0.45.10-kava
* Add RegisterNodeService to app
* Update cosmos proto files
* Update cosmos proto files
* Use tagged v0.45.10-kava-v0.19-0.21 cosmos version
* update x/auth/legacy to x/auth/migrations
* Delete rest packages and registration
* Remove rest from proposal handlers
* Remove legacy types referencing removed sdk types
* Remove legacy tx broadcast handler
* Update incentive staking hooks to return error
* Remove grpc replace directive, use new grpc version
* Fix storetypes import
* Update tally_handler with updated gov types
* Delete legacy types
* Use new gov default config
* Update RegisterTendermintService params
Signed-off-by: drklee3 <derrick@dlee.dev>
* Replace sdk.StoreKey with storetypes.StoreKey
* Replace sdk.Int#ToDec with sdk.NewDecFromInt
* Replace sdk.NewUintFromBigInt with sdkmath.NewUintFromBigInt
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update most intances of govtypes to govv1beta1
* Unpack coin slice for Coins#Sub and Coins#SafeSub
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update committee gov codec registration
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update migrate utils period_vesting Coins#Sub
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update Coin#Sub in community proposal handler
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update Coin#Sub, FundModuleAccount/FundAccount in banktestutil
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update community, earn, kavadist proposal gov registration
* Update evm cli client EthSecp256k1Type check
* AccAddressFromHex to AccAddressFromHexUnsafe
* Add mint DefaultInflationCalculationFn to earn test
* Update use of removed staking.NewHandler
* Rename FlagIAVLFastNode -> FlagDisableIAVLFastNode
* cmd: Update new snapshot app option
Signed-off-by: drklee3 <derrick@dlee.dev>
* cmd: Add tendermint default config, use cosmos rpc status command
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update ethermint import path
github.com/tharsis/ethermint -> github.com/evmos/ethermint
* Upgrade ibc-go to v6
* Update proto dependencies
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update Tally handler test with new gov types
* Update helpers.GenTx -> helpers.GenSignedMockTx
* Update evmkeeper.NewKeeper params
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update ante authz, tests
* Add feemarket transient key, pass subspaces to evm/feemarket keepers
* Update new ante decorators
* Add new addModuleInitFlags to server commands
* Pass codec to keyring.New in genaccounts
* Pass codec to client keys add
* Add SendCoins to evmutil bank_keeper
* Use github.com/cosmos/iavl@v0.19.5
* Add ante HandlerOptions
* Add unimplemented SendCoins to evmutil bank keeper
Ethermint x/evm does not use this method
* Update init-new-chain script to disable post-london blocks
* Modify test genesis states to append 1 validator
* Update tally handler test to use string values
* Prevent querying balance for empty sdk.AccAddress in auction bidding test
* Set default bond denom to ukava
* Remove overwritten bank genesis total supply in committee proposal test
Signed-off-by: drklee3 <derrick@dlee.dev>
* Use ukava for testing staked balance
* Disable minting in community proposal handler test
Previously stake denom is used, which resulted in 0 minted coins
* Update hard APYToSPY test expected value
Increased iterations in sdk.ApproxRoot, updated closer to real value
* Fix NewDecCoinsFromCoins bug in incentive collectDerivativeStakingRewards
* Allow bkava earn incentive test values to match within small margin for rounding
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update invalid denom in issuance message coin validation
Colons are now valid in denoms
Signed-off-by: drklee3 <derrick@dlee.dev>
* Remove genesis validator in incentive delegation tests
* Update pricefeed market test for invalid denom
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update incentive delegator rewards test without genesis validator
Signed-off-by: drklee3 <derrick@dlee.dev>
* Add validator to export test
* Clear bank state in minting tests
Signed-off-by: drklee3 <derrick@dlee.dev>
* Remove validator for no stake tally test
Signed-off-by: drklee3 <derrick@dlee.dev>
* Clear incentive state before InitGenesis in incentive genesis export test
* Update swagger
Signed-off-by: drklee3 <derrick@dlee.dev>
* Update ethermint version to match replaced version
* Remove legacy swagger
* Add NewEthEmitEventDecorator
* Remove redundant func for AddModuleInitFlags
* Remove unused addBankBalanceForAddress func
* Add SetIAVLLazyLoading option to app cmd
* Use legacy.RegisterAminoMsg for committee msg concrete registration
* Remove unnecessary Amino field
* Add evm_util bankkeeper SendCoins comment
* Update test method ResetBankState to DeleteGenesisValidatorCoins to be more clear
* Validate incentive params.RewardsPerSecond to be non-zero
* Validate swap pools to disallow colons in token denoms
* Register all legacy amino types on gov modulecdc
* Remove redundant Comittee interface registration
* Pin goleveldb to v1.0.1-0.20210819022825-2ae1ddf74ef7
Causes failed to load state at height errors
* Update ethermint to new pinned version with minGasPrices parse error fix
* Update cosmos fork dependcy commit to include reverted account constructor patch
* Update Cosmos v0.46.11 and cometbft v0.34.27
* Bump minimum go version to 1.19
* Update tendermint proto
* Update internal testnet genesis
* Move NewCanTransferDecorator before NewEthGasConsumeDecorator
* Add hard borrow store tests (#1514)
* add store tests for Borrow type
* refactor Deposit tests to match
* Fix old bep3 tests (#1515)
* Update Ethermint to 1b17445 to fix duplicate proto registration
* Add custom status command to use snake_case and stdout
* Add SetInflation helper
* Reduce ambiguity with evm CanSignEthTx error
* Remove init genesis validator claim in test
* Add disabled evmante.NewMinGasPriceDecorator with x/feemarket note
* chore: use tagged versions for Cosmos and Ethermint forks
* update kvtool & increase wait for ibc transfer test
---------
Signed-off-by: drklee3 <derrick@dlee.dev>
Co-authored-by: Ruaridh <rhuairahrighairidh@users.noreply.github.com>
Co-authored-by: Robert Pirtle <astropirtle@gmail.com>
* refactor begin blocker to single func
* remove unused inflation keeper methods
* refactor to private keeper methods
* add testcase for failed mint due to invalid param
* add testcase for GetStakingApy()
* check for zero instead of empty
* actually test super long block time
* skip fund account for earn community proposals
* test x/community keeper GetModuleAccountBalance
* update x/kavamint begin block spec
* use kavamint in incentive to calculate staking apy
* use kavamint minting: rewards_earn_staking_integration_test
* update incentive tests to mint only with kavamint
* remove x/mint from incentive tests
* remove x/mint from kava app
* fix minting in x/auction tests
* replace simapp fund calls with test helper
* remove mint state from genesis.json
* add `x/kavamint` module (#1376)
* stub out the x/kavamint module
* mint staking rewards in x/kavamint BeginBlocker
* calculate cumulative inflation from x/kavamint
* cleanup, abstract bond denom, grpc query tests
* store & use previous block time to calculate mints
* move test suite to testutil
* add test of x/kavamint BeginBlocker
* cleanup & comments from @DracoLi review
* fix x/incentive integration test
* remove rest client grpc test
* add x/kavamint module spec
* track previous block time in genesis
* suggested cleanup from PR review
* bugfix incorrect module account check
* add x/community module (#1388)
* add x/community module
* refactor and setup fund-community-pool tx
* remove unused features (params, genesis state)
* test x/community query and message
* update with master branch deps
* updates from review
* indicate deprecated methods on module (still needed to fulfill interface)
* remove legacy querier
* derive msg Route() and Type() from sdk.MsgTypeURL(&msg)
* use module name for message Route()
* mint community pool inflation in x/kavamint (#1389)
* mint community pool inflation in x/kavamint
* refactor x/kavamint abci inflation test
* test inflation from x/kavamint
* default kavamint rates to 0%
* rename kavamint account name variables
* panic if genesis kavamint previous block time not set
* emit event on kavamint begin blocker
* add kavamint year of inflation sanity check test
* update fund_community_pool message event
* add x/community spec
* refactor inflation accumulation into single func
* use new comm pool in kavadist multispend proposal (#1403)
the x/community module houses the new community pool. this commit
points the CommunityPoolMultiSpendProposal at the new community pool
so that multispend proposals can continue to be processed once original
fee pool funds are move to x/community
* updates from proto lint changes
* update earn proposals to use new community pool
originally the CommunityPoolDepositProposal & CommunityPoolWithdrawProposal
used the vanilla community pool fee pool. this commit updates them both
to use the new x/community module account.
* spec formatting update
* add x/community & x/kavamint to internal testnet genesis
* increase test coverage of x/kavamint
* increase test coverage of x/community
* use string type for sdk.Dec proto fields; disable generation of getters
for genesis and params (and other store objects)
* follow sdk conventions for params endpoint naming
* add kavamint to swagger; update swagger & proto docs
* remove legacy querier; touch up module to match others
* reduce max minting rate; refactor genesis to allow nil/zero block time;
repace proto stringers and remove getters; keep sdk.Dec values strings
in protos; increase validation of sdk.Dec values in params; increase
coverage; add module account permission checks; ensure import and export
of genesis does not change state
* fix scaling of rate values -- should be yearly rates
* revert key change
* fix typo in test name
* fix regression in running tests -- rename method
Co-authored-by: Nick DeLuca <nickdeluca08@gmail.com>
* start makefile refactor to smaller units; break out proto-dep updating;
add check-proto-deps target for use in CI in order to determine if
depdencies have diverged
* add proto check workflow
* download go modules before checking proto deps
* clean up -- hide output and add error message for check target
* add error message for check-rsync
* update any type, and ibc-go protos for v3.4.0
* add buf generate files for gogo, docs, and swagger
* update swagger dirs and run with latest swagger gen
* ignore new build directories
* refactor proto makefile logic -- use buf instead of scripts
* remove old protobuf scripts
* run all proto checks on push
* remove moved file
* set default value for protoc machine
* install build deps seperately
* fetch master for buf check breaking
* checkout from https url in CI for buf breaking
* fix rsync file permissions on darwin
* ignore build dirs
* fix issue with apple provided make; clean up build deps; switch to buf
format
* remove clang format file -- using buf format now
* run make proto-format (buf format changes)
* update generated files for proto format changes
* add total supply endpoint to x/liquid
* add test of x/liquid total supply query
* refactor x/savings test
* add total supply endpoint for x/savings (w/ test)
* add total supply endpoint for x/earn
* handle converting bkava to underlying staked amount
* aggregate bkava underlying values in x/earn
* aggregate underlying value of bkava in x/savings
* Update third party protos for tendermint, cosmos updates
* fix proto gen scripts for go 1.18
* update ibc go swagger for v3.3.0
* update generated files
* update swagger
* update grpc and protobuf deps
* Call earn hooks with correct share values
User's shares instead of total vault shares
* Use different amounts for different accounts
* Add claim test with staking claims
* Remove logging statements
* Remove log
* Pass suite.T() to mock earn hooks
* Use begin blocker for staking reward distribution
* Remove unused beginblocker
* Remove log
* Add earn deposits query param to return individual vaults value as ukava
* Add value_in_staked_tokens param handler to specific vault query
* Use separate ukava coins when querying deposits in ukava
Avoid usd of sdk.Coins.Add() as those will aggregate ukava amounts
* feat: community pool deposit/withdraw proposals
* fix: check community pool balance in tests
* add new msg type definitions
* add msg methods and tests
* add module and keeper skeleton
* add deposit and withdraw methods (no delegation)
* untested depsit/withdraw with delegation methods
* add cli cmds
* fix cli argument parsing
* add tests for delegate/undelegate msgs
* emit un/delegate events
* add godoc comments
* tally handler with liquid staking support
* clean up
* update for liquid keeper changes
* Exclude non-bkava denoms from aggregate underlying ukava calculation
* wip Add claim
* Add distr keeper and claiming
* Add claim test
* Update claim test with failures
* wip Add staking rewards
* -S
Fix savings to earn incentive methods
* Use a single accural time for all earn incentives
* Add additional required liquid methods
* Update genesis to only include 1 accrual time for earn
* Revert "Update genesis to only include 1 accrual time for earn"
This reverts commit cc7e35347298681c0c8a4a0b9bf9b9b296c25531.
* Revert "Use a single accural time for all earn incentives"
This reverts commit aeb49c4622d4e3d99dc6421c8830932b1b546be9.
* Update tests with incentive distribution
* Add earn to incentive rewards query
* add earn cli tx
* Update claim example to use ukava large
* add proposal to gov router
* fix example tx formating
* add proposal handlers to gov app module
* fix: define gov router after earn keeper
* fix: correct proposal type
* remove outdated comment
* refactor withdraw so that fee pool is allows adjusted by the actual withdraw amount
* fix: lint proto file
* use non blocked module account instead of dist acc
* add fund mod account to app, enable receiving
* update to new withdraw interface
* add human readable apy test cases
* remove duplicate changes from previous merge
* remove deprecated io/ioutil package
* standardize proposal type as a pointer
(also matches sdk)
* minior comments and formatting
* use withdraw amount in router msgs
Co-authored-by: rhuairahrighairigh <ruaridh.odonnell@gmail.com>
Co-authored-by: Draco <draco@dracoli.com>
Co-authored-by: drklee3 <derrick@dlee.dev>
Co-authored-by: Ruaridh <rhuairahrighairidh@users.noreply.github.com>
* Add incentive types
* Add earn state methods
* Update earn incentives
* Update unit test NewKeeper to include earn keeper
* Fix sharesOwned typo
* Shares not used for AfterVaultDepositCreated
* Add earn to init genesis
* Pass earn keeper to incentive keeper
* Add sdk.Msg impl, disable legacy migrations
* Disable migrations
* Update incentive earn sync test
* Add earn to client and querier
* Add accum and init tests
* Add additional earn tests
* Fill in fakeEarnKeeper methods to fix tests
* Add earn reward periods to params, begin blocker earn reward
* Add earn to query
* Update genesis_test with missing DefaultMultiRewardPeriods parameter
* Remove disable of migration package
* Fix proto type comments
* Remove unused migration state
* Add legacytx.LegacyMsg compile time interface check
* add earn state validation to genesis validation
Co-authored-by: rhuairahrighairigh <ruaridh.odonnell@gmail.com>
* Use custom aggregate handler for querying 'bkava' vault
* Add 3rd bkava vault
* Add special kava deposit handlers
* Separate bkava logic to parent deposits handler
* Rename single vault/account queries
* Remove all deposits queries
* Include empty vaults in /vaults query
* Respond with empty values when querying account deposits with no deposits
* return ukava value in bkava vault queries
* remove refernce to specific staked token denom
* return ukava value in bkava deposit queries
Co-authored-by: rhuairahrighairigh <ruaridh.odonnell@gmail.com>
* Add basic savings strategy
Supports ukava
* Use clearer error message for ErrInvalidVaultStrategy
* Add invariants
* Separate specific vault/all vaults query, update depositor inconsistencies
* Update swagger
* Use single bkava AllowedVault for all bkava variants
* Do not use allowedVault.Denom for value
* Fix vault balance query
* Update query to list bkava vaults
* Add vaults query doc
* Update grpc query test with no supply
* Add earn hooks
* Handle errors
* Update outdated doc comments, make getAllowedVault_Raw private
* Fix outdated comments, lints
* Fix comment maths
* Use AccAddressFromBech32 to validate message addresses
* Add multiple strategies to params, queries, txs
* Check deposit/withdraw strategy if supported by vault
* Add note for deposit strategy
* Add strategy type to messages
* Update swagger docs, ignore ethermint proto linting errors
* Update strategy test, move single strategy support to strategytype
* Simplify NewStrategyTypeFromString
* Change vault supply to shares
* Update deposit shares
* Use shares instead of supplied
* Update tests, fix share calculation
* Pass hard and savings keeper as pointer to earn keeper
* Update remaining failing test
* Add different share price test, fix comment for share price
* Add shares amount to events
* Additional share tests, use share to asset conversion for withdraw amount
* Update VaultTotalValue test
* Use sdk.Dec for vault shares instead of sdk.Int
* Add test for expensive 20:1 shares
* Update ConvertToShares comment for division, remove redundant test
* Add vault share tests
* Add vault and vault shares to genesis
* Fix error and denoms
* Update init and export genesis with correct data
* Fix total supply genesis check, remove legacy test for enum errors
* Add vault slice validate tests
* Update denom validation, add additional test
* Add query methods
* Add TotalDeposited rpc query
* All accounts and all denoms query wip
* Add query deposits
* Remove IsDenomSupported strategy method
This is not necessary and is already set in params allowed vaults
* Add Vaults, TotalDeposited queries
* Deposits query tests and fixes
* proto lints
* Add earn swagger docs
* Add cli query cmds
* Update init-new-chain.sh with usdx strategy and funds
* Add denom url query path for vaults
* Return a list of coins for each depositor instead of multiple deposit entries
* Simplify strategies to lend and savings
* Add hard and savings keepers
* Add ctx to strategy interface, fill in lend strategy
* Rename lend strategy to hard
* Fix hard deposit query, fix withdraw bank send
* Fix misleading borrow instead of withdraw for hard
* Remove liquidateall strategy method
* Withdraw tests
* Add hard gs to testutil suite
* Update withdraw tests with working hard strategy, clean strategy interface methods
* Check allowed denom for strategy
* Update GetVaultTotalValue doc note
* Update error wrap message for unsupported denom
* Remove unnecessary viewvault keeper
* Withdraw amount from account value, not supplied value
* Test value > supplied withdraw
* Use dec when dividing for withdrawAmountPercent
* Use the correct store prefix for vault shares
* Update swap references to earn
* Simplify vault shares, use a single share for all coins per address