* Update cometbft, cosmos, ethermint, and ibc-go
* Replace github.com/tendermint/tendermint by github.com/cometbft/cometbft
* Replace github.com/tendermint/tm-db by github.com/cometbft/cometbft-db
* Replace gogo/protobuf with cosmos/gogoproto & simapp replacement
* Replace cosmos-sdk/simapp/helpers with cosmos-sdk/testutil/sims
* Remove no longer used simulations
* Replace ibchost with ibcexported
See https://github.com/cosmos/ibc-go/blob/v7.2.2/docs/migrations/v6-to-v7.md#ibc-module-constants
* Add new consensus params keeper
* Add consensus keeper to blockers
* Fix keeper and module issues in app.go
* Add IsSendEnabledCoins and update SetParams interface changes
* Fix protobuf build for cosmos 47 (#1800)
* fix cp errors by using -f; fix lint by only linting our proto dir;
and use proofs.proto directly from ics23 for ibc-go v7
* run proto-all; commit updated third party deps and swagger changes
* regenerate proto files
* use correct gocosmos build plugin for buf
* re-gen all protobuf files to update paths for new gocosmos plugin
* update protoc and buf to latest versions
* fix staking keeper issues in app.go
* update tally handler for gov changes
* chain id fix and flag fixes
* update deps for cometbft 47.7 upgrade
* remove all module legacy queriers
* update stakingKeeper to pointer
* Replace ModuleCdc from govv1beta1 to govcodec
* remove simulations
* abci.LastCommitInfo → abci.CommitInfo
* Remove unused code in keys.go
* simapp.MakeTestEncodingConfig -> moduletestutil.MakeTestEncodingConfi
* Fix chain id issues in tests
* Fix remaining unit test issues
* Update changelog for upgrade
* Fix e2e tests using updated kvtool
* Update protonet to v47 compatible genesis
* Bump cometbft-db to v0.9.1-kava.1
* Update kvtool
* Remove extra changelog
* Fix merged rocksdb issues
* go mod cleanup
* Bump cometbft-db to v9 and go to 1.21
* Bump rocksdb version to v8.10.0
* Update kvtool to latest version
* Update gin to v1.9.0
* Use ibctm.ModuleName in app_test
* Fallback to genesis chain id instead of client toml
* Remove all simulations
* Fix cdp migrations issue with v47
* Update dependencies to correct tags
---------
Co-authored-by: Nick DeLuca <nickdeluca08@gmail.com>
* 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>
* 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>
* Use cosmossdk.io/errors for deprecated error methods
* Update error registration with cosmossdk.io/errors
* Use cosmossdk.io/math for deprecated sdk.Int alias
* Fix modified proto file
* Update sdk.Int usage in swap hooks
* Update e2e test deprecated method usage
* 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>
* 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>
* Add initial earn claim migrations
* Use existing types for migrations, add accural time migrations
* Add MigrateRewardIndexes
* Delete old state after migration
* Update store test with multiple entries
* Move key methods to keys.go
* Update incentive consensus version to 3
* Call MigrateRewardIndexes in main migration, remove debugging statements
* Fix migration version to v3
* Update module versions
* Update outdated v1 comment
* Add module name to multiplier
* Add claim test to use correct multiplier
* Add separate test for GetMultiplierByDenom
* Add 0 length lockup for earn to params test
* Add additional tests for genesis and params
* proto types
* proto generated types
* liquidstaking top level files: module, genesis
* liquidstaking types
* liquidstaking keeper
* liquidstaking client/cli
* add liquidstaking to app, simapp
* implement mint derivative
* set up liquidstaking keeper test suite
* test mint derivative
* rename module to liquid
* rename proto types, app.go to liquid
* use sdk.Coin instead of shares
* mint liquid tokens to delegator
* burn derivative tokens to receive delegation
* use conversion method instead of type cast
* simplify delegation transfer logic
* broaden delegation transfer tests
* simplify transfer delegation method
This removes a source of rounding errors
* move derivative denom to keeper config
* check for invalid coins in msg validation
* block 0share transfers to avoid handling edge case
* refactor MintDerivative to test calculations
* simplify burn method so shares and tokens equal
* convert TransferShares back to old design
this makes handling vesting tokens easier
* fix missed merge conflict
* remove deprecated constants
* tidy up msg.go
* add msg tests
* remove unused store key
* fix msg event sender
* remove unused params
* tidy up documentation and errors
* remove unused mocks
* remove unused keepers from AppModule
* tidy up msg return values
keeper return values to be used in router msgs
* reinstate unintentionally removed interface check
* catch invalid input for MnitDerivative
clear up test TODOs
* clear up InitGenesis TODO
* Update x/liquid/client/cli/tx.go
Co-authored-by: Derrick Lee <derrick@dlee.dev>
* Update x/liquid/client/cli/tx.go
Co-authored-by: Derrick Lee <derrick@dlee.dev>
* show error logs in devnet
* unblock mod account so it can receive dist rewards
* catch zero amout msgs early
* minor cli fixes
Co-authored-by: rhuairahrighairigh <ruaridh.odonnell@gmail.com>
Co-authored-by: Ruaridh <rhuairahrighairidh@users.noreply.github.com>
Co-authored-by: Derrick Lee <derrick@dlee.dev>
* ibc v3 upgrade
* ibc no longer uses confio
* add proofs proto for ibc/v3
* wip add ethermint module
* update cosmos to 0.45.0
* add ethermint proto & bug fixes
* remove todo
* update docs
* fix a number of bugs
* minor comments update
* fix breaking tests
* Wrap bank keeper for EVM to convert decimals (#1154)
* Add bankkeeper wrapper for evm
* Remove agas from init-new-chain.sh, use ukava for evm_denom
* Fix sdk.Coins conversion, require min 1 coin amount
* Remove gas from init script
idk how this happened lol
* Remove debug logging stmt
* Restore original init ukava amounts
* Fix inplace coins conversion
* Use evmtypes.BankKeeper interface insteadof banktypes
* Add TestGetBalance
* Add doc comments, remove temp actualAmt vars
actualAmt vars replaced with inline calls to make it more clear that the
converted value is being used, as opposed to accidentally reusing the
raw EVM amt.
* Add TestSetBalance
* Add TestIdempotentConversion
* Panic if converted coin from EVM is 0
This happens if a value is less than 1ukava
* Deep copy coins instead of in place modification
* Update test coins amount
* Add panic tests for small EVM amounts
* Use evmtypes.BankKeeper as NewEVMBankKeeper param
* Tidy test setup
* ensure sdk config is set when creating new apps
* Respond EVM bank keeper GetBalance with SpendableCoins
Co-authored-by: Nick DeLuca <nickdeluca08@gmail.com>
* further speed up docker builds
* feat: restore previous keys add defaults, add eth flag (#1172)
* feat: restore previous keys add defaults, add eth flag
* remove outdated comment
* fix: remove redundant flag default
* evm bank keeper with akava handling
* fix issues
* add remaining tests
* add emv module to app
* add missing imports
* clean up comments
* wip akava keeper
* evm keeper
* fix genesis import
* reduce module permissions
* add bank keeper tests
* cleanup tests
* genesis tests
* change defaults
* add eth faucet key & fix issues
* switch to kava ethermint
* add a lot of tests
* add balances invariant
* add evm tests
* Remove panic if Swagger disabled in config (#1155) (#1183)
Co-authored-by: Derrick Lee <derrick@dlee.dev>
* add invariant to catch any akava balance > 1 ukava
* clarify name of balances invariant
* connect invariants to app
* fix evmbankkeeper akava issues
* add spec for evmutil
* remove zero balance accounts from state
* minor adustments
* update to ethermint 0.10.0
* fix eth ante
* add missing godoc comment
* Update x/evmutil/spec/01_concepts.md
Co-authored-by: Kevin Davis <karzak@users.noreply.github.com>
* Update x/evmutil/spec/01_concepts.md
Co-authored-by: Kevin Davis <karzak@users.noreply.github.com>
* Update ethermint to v0.12 (#1203)
* update to ethermint v0.12.2
* use app.Options for new evm options
* fix missed references to app.Options
* use ethermint branch while waiting on upstream fix
* evm migrations for tesnet alpha 2 (#1206)
* update to ethermint v0.12.2
* use app.Options for new evm options
* fix missed references to app.Options
* use ethermint branch while waiting on upstream fix
* add upgrade handler for evm-alpha testnet 2
* v17 migration setup + evm modules
* refactor migrate states
* x/feemarket migration
* v17 migrations setup + evm modules migration (#1210)
* v17 migration setup + evm modules
* refactor migrate states
* update gen time
* fix: update genesis time in test output
Co-authored-by: karzak <kjydavis3@gmail.com>
* add savings module to app blockers
Co-authored-by: Derrick Lee <derrick@dlee.dev>
Co-authored-by: Nick DeLuca <nickdeluca08@gmail.com>
Co-authored-by: rhuairahrighairigh <ruaridh.odonnell@gmail.com>
Co-authored-by: Kevin Davis <karzak@users.noreply.github.com>
Co-authored-by: Ruaridh <rhuairahrighairidh@users.noreply.github.com>
Co-authored-by: karzak <kjydavis3@gmail.com>
* organise testing committee gen state
* remove repeated test app initialization
* minor fixes from linter in tests
* move more setup to SetupApp
* split up KeeperTestSuite for each reward type
* simplify KeeperTestSuite
* simplify PayoutKeeperSuite
* simplify DelegatorRewardSuite
* simplify SupplyRewardsSuite
* simplify BorrowRewardsSuite
* simplify USDXRewardsSuite
* add auth genesis builder for easier test setup
* migrate all incentive tests to auth builder
* add incentive genesis builder for easier setup
migrate hard incentive tests
* migrate all tests to incentive builder
* add hard genesis builder
* small tidy ups
* deduplicate initialTime from borrow tests
* deduplicate initialtTime from supply tests
* deduplicate initialTime from usdx and keeper tests
* deduplicate initialTime in delgator tests
* deduplicate genesis time in payout test
* deduplicate test app initialization
* make authGenesisBuilder available for all modules
* remove unused pricefeed setup
* export incentive genesis builder
* remove commented out test cases
* migrate cdp test to new test state builders
* migrate vv payout tests to use new builders
* swap module scaffolding
* global swap fee
* can't think of a reason for begin blocker; removing for abci.go for now;
* test pair types; refactor pair name logic; simplify pairs validation and
fix stack overflow error
* check comparison
* use test package
* init swap module genesis
* add basic marshall tests
* remove reward apy from pairs
* fix integration helpers
* use max swap fee constant; fix validation of swap fee; add tests to
cover param validation and param set setup
* use noerror over nil
* start genesis tests
* test param set validation mirrors param validation
* add genesis tests
* remove print statement
* add subtests for genesis test cases; add extra querier test for unknown
route; add keeper params testing
* add spec
* update swagger
* find replace hard -> swap in comments
* remove unused method
* rename pairs to allowed pools; pool is more commonly used, and
allowedPool makes it more clear what swap parameter is for. In
addition, we won't conflict with Pool data structure for storing a
created pool in the store.
* remove generated link
* missed spec rename
* validate token order for allowed pools
* fix swagger
* json should be snakecase; change allowedPools to allowed_pools
Co-authored-by: Nick DeLuca <nickdeluca08@gmail.com>
* use kava antehandler
* add authenticated mempool decorator
* add get authorised address methods
* hook antehandler into app
* refactor address fetcher interface
* tidy up args to NewApp
* remove unused function
* tidy up after removing address fetcher interface
* read authorized addresses from config
* fix error message, and minor tidy
* update cosmos-sdk and tendermint
* clarify function name
* add flags for mempool options
* wip: and types and keeper methods
* add keeper tests
* add client
* add spec and events
* respond to review comments
* apply suggestions from review
* feat: add test for validator vesting case
* use int64 for multiplier type
* remove incentive changes