* update params
* stub out methods
* delete legacy migration test
* feat: add infrastructure inflation and payouts
* fix: load same module account blocked addrs in kavadist as app
* fix: testing edge case where period starts and ends same block
* fix: add store key for infra params, update newparams function
* fix: testing edge case where period starts and ends in same block
* add test for basic infra minting
* add test for stand-alone core, partner rewards
* fix: set time elapsed in each case
* add e2e test for infra rewards
* fix: use standard method for naming infra params key
* 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>
* 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
* Use underlying ukava to determine proportional reward amount
* Rename liquid methods to reflect derivative value
* Add tests for derivative values
* Return error to panic in BeginBlocker
Co-authored-by: karzak <kjydavis3@gmail.com>
* tally handler with liquid staking support
* clean up
* update for liquid keeper changes
* switch to tagged cosmos-sdk for tallying updates
Co-authored-by: Nick DeLuca <nickdeluca08@gmail.com>
* 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
* Add savings support for bkava deposits
* Update savings tests with valid validator
* Add invalid bkava deposit test
* Remove test logs
* Add bkava withdraw test
* Add bkava handler for earn incentives
* Add bkava accum tests
* Add bkava denoms in index state
* Set storeTimeEquals to default value
* Add supply expected keepers
* Add tests for proportional adjustment
* Add liquid keeper to incentive keeper
* Use weighted reward periods for bkava
* Add liquid keeper to tests
* Add Accumulate override rewards period with deccoins
* Adjust test to handle sub unit coins
* Add liquid keeper to test
* Fix div by zero for proportional rewards
* Update test for actual expected values
* Update expected indexes to be same for different vaults
* Allow no stored time for vaults that have no indexes or state
* Add test for partial bkava deposit
* Add math check to test
* Deterministically iterate over bkava denoms
* Remove unused expected liquid method GetAllDerivativeDenoms
* 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>
* 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>
* 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
* Filter out the evm denom from min gas prices in the cosmos-sdk ante
chain; this allows '0ukava;1000000000akava' to be used in order to
still support zero fees for cosmos based transactions
* support called context in mock
* ensure min gas prices is always a valid (and sorted) DecCoins
* add doc comments
* add decorator to block msgs in authz
* add to antehandler
* prevent vesting msgs skirting block via authz
* handle edge case of nested exec msgs
* test case to ensure msgs only blocked inside authz
* add app integration test
* tidy up error msg
* hack to set tendermint config correctly
* Revert "hack to set tendermint config correctly"
This reverts commit d34150ab934ab018cc3e95ea9398f098c09e0c8e.
* update cosmos-sdk to include env prefix fix