* Add 'InterestFactor' to CDP type (#734)
* update cdp type to include interest factor
* fix build
* Add cdp accumulator methods (#735)
* remame fees to interest
* add accumulate interest method
* add basic test
* add note
* address review comments
* update tests
* Add sync cdp interest method (#737)
* remame fees to interest
* add accumulate interest method
* add basic test
* add note
* address review comments
* update tests
* remove old fee functions
* add method to synchronize cdp interest
* add multi-cdp tests
* add test with many blocks
* add test for interest getter
* address review comments
* calculate time difference then convert to seconds
* fix: update collateral index when syncing interest
* fix: differentiate between case when apy is zero and all fees are being rounded to zero
* fix: round time difference properly
* update cdp genesis state and migrations (#738)
* remame fees to interest
* add accumulate interest method
* add basic test
* add note
* address review comments
* update tests
* remove old fee functions
* add method to synchronize cdp interest
* add multi-cdp tests
* add test with many blocks
* add test for interest getter
* update cdp genesis state and migrations
* address review comments
* calculate time difference then convert to seconds
* fix: update collateral index when syncing interest
* fix: differentiate between case when apy is zero and all fees are being rounded to zero
* fix: simplify add/remove/update collateral index
* update genesis state to include total principal amounts
* update migration
* Delete kava-4-cdp-state-block-500000.json
* Add cdp liquidations by external keeper (#750)
* feat: split liquidations between external keepers and automated begin blocker
* address review comments
* USDX incentive accumulators (#752)
* feat: split liquidations between external keepers and automated begin blocker
* wip: refactor usdx minting incentives to use accumulators/hooks
* wip: refactor usdx minting claim object
* feat: use accumulators/hooks for usdx minting rewards
* fix: get tests passing
* fix: don't create claim objects unless that cdp type is eligable for rewards
* add begin blocker
* update client
* cleanup comments/tests
* update querier
* address review comments
* fix: check for division by zero
* address review comments
* run hook before interest is synced
* Remove savings rate (#764)
* remove savings rate
* remove savings rate from debt param
* update migrations
* address review comments
* Add usdx incentives calculation test (#765)
* add usdx incentive calculation test
* update reward calculation
* add allowable error to test criteria
* Update x/incentive/keeper/rewards_test.go
Co-authored-by: Kevin Davis <karzak@users.noreply.github.com>
* fix: remove old fields from test genesis state
Co-authored-by: Ruaridh <rhuairahrighairidh@users.noreply.github.com>
Co-authored-by: Ruaridh <rhuairahrighairidh@users.noreply.github.com>
* update to borrow interest factor
* add supply interest factor to accrue interest
* supply interest factor keeper methods
* fix potential bug with user borrow indexing
* sync supply interest on deposit/withdraw
* separate withdraw/deposit
* relocate interest sync methods
* update comment
* simplify supply interest statement
* check truncated int not zero
* add .sub(storedAmount) back
* add store key suppliedcoins
* increment/decrement supplied coins
* update withdraw with new accounting
* update withdraw test
* catch repay edge case
* unit tests
* TestSupplyInterest scaffolding
* test notes
* temp: interest test
* example test
* changes, test checks more state
* fix: calculate supply interest directly
* fix: catch divide by zero
* add state checks back into interest test
* add snapshot test cases
* test owed supplied interest paid at correct ratio
* test user supply syncs user's borrow interest
* remove print statements and clean up
* refactor indented logic
* test supply/borrow multiple coins
* update decoder test
Co-authored-by: karzak <kjydavis3@gmail.com>
* initial feature scaffolding
* implement interest keeper logic
* basic AccrueInterest
* accrue interest on borrow
* update borrow index formula
* update sample reserve factor
* move AccrueInterest to begin blocker
* refactor interest rate updates for accrue interest
* use interest rate model from store
* refactor begin blocker state machine
* add reserve factor to interest model params
* update comment
* store money market instead of interest rate models
* update test suite
* use BorrowedCoins store key
* update public functions and alias
* unit tests, keeper test scaffolding
* demo panic
* address revisions
* add 'normal no jump' test case
* spy = 1 + borrow rate
* update comment
* APYToSPY unit test
* per user borrow index list
* interest keeper test
* test: interest applied on successive borrows
* varied snapshot times
* test: multiple, varied snapshots
* address revisions
* add pending interest before validating new borrow
* update makefile
* address revisions
* fix test
* 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
* update MaximumLimit param to MaximumLimitUSD
* track total borrowed coins in the store
* implement total borrowed coins querier
* add maximum value usd check
* update test suite, add zero coins check
* add test case, update error msg
* max limit in native amount
* remove debug logging
* prepare for master rebase
* master rebase
* fix build
* fix: check for any status other than bonded
* Add harvest staking tests (#680)
* refactor config initialization
* refactor delegator rewards test, add tests
* fix share to token calculation, add unbonding test
* remove dead link
Co-authored-by: Ruaridh <rhuairahrighairidh@users.noreply.github.com>
* fix: don't allow denoms other than hard for harvest rewards
* fix: parse cli flags correctly
* fix: convert duration to seconds before calculating time elapsed
* fix: don't distribute rewards before they start or after they end
* fix: return correct message type
* 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
* feat: query old blocks for auctions
* fix: add next auction id to querier
* fix: set boolean when found
* fix: use correct query route and params
* apply suggestions from review comments
* fix go version in dockerfile
* mix frequently occuring errors
* add missed import
* fix minor validator vesting sim bug
* fix auction sim bug
* fix docker build
* add todo from sim failure
* tidy up dockerfile
* update docs, add dockerignore to speed up builds
* Update simulations/README.md
Co-authored-by: Kevin Davis <karzak@users.noreply.github.com>
* add stack traces to logs for easier debugging
* replace root func with sdk version
Co-authored-by: Kevin Davis <karzak@users.noreply.github.com>
Co-authored-by: karzak <kjydavis3@gmail.com>
* use remaining length when sending coins to vesting account
* query claims that have corresponding claim periods
* cleanup comments
* remove debugging statements
* fix bug with inserting period in middle of vesting schedule
* apply review suggestion
* 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 initial augmented swaps to bring cli & rest api's under same schema
* use an array type
* update to not cause breaking changes in REST API -- don't embed swap
fields
* 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>
* refactor price generation to use determistic sequence up to each block
height and reset for each simulation
* remove extra whitespace
* improve comment
* move PriceGenerator to simulation/types to keep logic clean
* fix exhibit 30 - remove redunant conversions in adding principle to fee
amount, and store debt denom in local var to avoid calling getter
several times
* add deleted comment back
* resolve exhibit 41 - move redundant assignment into if block and only
assign if value is false. No need to assign true to already true value.
* fix exhibit 43 - use existing auctionID variable instead of GetID
* use improved name for auction type in case statemnt
* rename a to auction in PlaceBidSurplus for legibility (part of exhibit 44)
* rename a to auctions in PlaceForwardBidCollateral (part of exhibit 44)
* rename a to auction in PlaceReverseBigCollateral for legibility (part of exhibit 44)
* rename a to auction in PlaceBidDebt for legibility (part of exhibit 44)
* renmae rest of a to auction variables for legibility and resolve exhibit
44
* one missed rename and a typo fix
* update GetTotalSurplus and GetTotalDebt code blocks to be consistent and
resolve feedback in exhibit 13
* spelling fix
* remove uneeded temp variables
* address PR feedback - use suite.Require() instead of default assertions
* initial sketch
* add module migrations
* add migrations for all accout types
* test account migration
* add tendermint migration and migrate cmd
* remove need for errors pkg dependency
* add bech32 decoding fork
* add suggested params and cmd to write them
* add basic upgrade instructions
* fix tests
* address some migration todos
* tidy contrib folder
* finalize params values
* align cdp init genesis with other modules
* add tendermint and distribution test
add custom distribution migration to patch bug
* add staking migration test
* add slashing, evidence tests, refactor auth tests
* add full migration test
* remove go-amino dependency from go.mod
also tidy up unused indirect dependencies
* address remaining TODOs
* remove commented out code from legacy types
* add spot/liquidation markets ids to kava-3 params
* Apply suggestions from code review
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
* address code review suggestions
* add validate genesis to migrate test
* refactor add params func
* remove commented out code from old types
* fix add params
* add deputy address
* add tests using exported kava-2 state
* incorporate new cdp params from master
* update params from review
Co-authored-by: Kevin Davis <karzak@users.noreply.github.com>
* add deputy account
* add committee permissions for new params
Co-authored-by: Alexander Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Kevin Davis <karzak@users.noreply.github.com>