Documentation ¶
Index ¶
- Constants
- func NewQuerier(keeper Keeper) sdk.Querier
- type Keeper
- func (k Keeper) AddCdp(ctx sdk.Context, owner sdk.AccAddress, collateral sdk.Coin, principal sdk.Coin) error
- func (k Keeper) AddPrincipal(ctx sdk.Context, owner sdk.AccAddress, denom string, principal sdk.Coin) error
- func (k Keeper) ApplyLiquidationPenalty(ctx sdk.Context, denom string, debt sdk.Int) sdk.Int
- func (k Keeper) AuctionCollateral(ctx sdk.Context, deposits types.Deposits, debt sdk.Int, bidDenom string) error
- func (k Keeper) BurnDebtCoins(ctx sdk.Context, moduleAccount string, denom string, paymentCoins sdk.Coin) error
- func (k Keeper) CalculateCollateralToDebtRatio(ctx sdk.Context, collateral sdk.Coin, debt sdk.Coin) sdk.Dec
- func (k Keeper) CalculateCollateralizationRatio(ctx sdk.Context, collateral sdk.Coin, principal sdk.Coin, fees sdk.Coin, ...) (sdk.Dec, error)
- func (k Keeper) CalculateCollateralizationRatioFromAbsoluteRatio(ctx sdk.Context, collateralDenom string, absoluteRatio sdk.Dec, ...) (sdk.Dec, error)
- func (k Keeper) CalculateFees(ctx sdk.Context, principal sdk.Coin, periods sdk.Int, denom string) sdk.Coin
- func (k Keeper) CdpCollateralRatioIndexIterator(ctx sdk.Context, denom string, targetRatio sdk.Dec) sdk.Iterator
- func (k Keeper) CdpDenomIndexIterator(ctx sdk.Context, denom string) sdk.Iterator
- func (k Keeper) CreateAuctionsFromDeposit(ctx sdk.Context, collateral sdk.Coin, returnAddr sdk.AccAddress, ...) (err error)
- func (k Keeper) DecrementTotalPrincipal(ctx sdk.Context, collateralDenom string, principal sdk.Coin)
- func (k Keeper) DeleteCDP(ctx sdk.Context, cdp types.CDP) error
- func (k Keeper) DeleteDeposit(ctx sdk.Context, cdpID uint64, depositor sdk.AccAddress)
- func (k Keeper) DepositCollateral(ctx sdk.Context, owner, depositor sdk.AccAddress, collateral sdk.Coin) error
- func (k Keeper) DistributeSavingsRate(ctx sdk.Context, debtDenom string) error
- func (k Keeper) GetAllCdps(ctx sdk.Context) (cdps types.CDPs)
- func (k Keeper) GetAllCdpsByDenom(ctx sdk.Context, denom string) (cdps types.CDPs)
- func (k Keeper) GetAllCdpsByDenomAndRatio(ctx sdk.Context, denom string, targetRatio sdk.Dec) (cdps types.CDPs)
- func (k Keeper) GetCDP(ctx sdk.Context, collateralDenom string, cdpID uint64) (types.CDP, bool)
- func (k Keeper) GetCdpByOwnerAndDenom(ctx sdk.Context, owner sdk.AccAddress, denom string) (types.CDP, bool)
- func (k Keeper) GetCdpID(ctx sdk.Context, owner sdk.AccAddress, denom string) (uint64, bool)
- func (k Keeper) GetCdpIdsByOwner(ctx sdk.Context, owner sdk.AccAddress) ([]uint64, bool)
- func (k Keeper) GetCollateral(ctx sdk.Context, denom string) (types.CollateralParam, bool)
- func (k Keeper) GetDebtDenom(ctx sdk.Context) (denom string)
- func (k Keeper) GetDebtParam(ctx sdk.Context, denom string) (types.DebtParam, bool)
- func (k Keeper) GetDenomPrefix(ctx sdk.Context, denom string) (byte, bool)
- func (k Keeper) GetDeposit(ctx sdk.Context, cdpID uint64, depositor sdk.AccAddress) (deposit types.Deposit, found bool)
- func (k Keeper) GetDeposits(ctx sdk.Context, cdpID uint64) (deposits types.Deposits)
- func (k Keeper) GetGovDenom(ctx sdk.Context) (denom string)
- func (k Keeper) GetMarketStatus(ctx sdk.Context, marketID string) (up bool)
- func (k Keeper) GetNextCdpID(ctx sdk.Context) (id uint64)
- func (k Keeper) GetParams(ctx sdk.Context) types.Params
- func (k Keeper) GetPreviousSavingsDistribution(ctx sdk.Context) (distTime time.Time, found bool)
- func (k Keeper) GetTotalDebt(ctx sdk.Context, accountName string) sdk.Int
- func (k Keeper) GetTotalPrincipal(ctx sdk.Context, collateralDenom string, principalDenom string) (total sdk.Int)
- func (k Keeper) GetTotalSurplus(ctx sdk.Context, accountName string) sdk.Int
- func (k Keeper) IncrementTotalPrincipal(ctx sdk.Context, collateralDenom string, principal sdk.Coin)
- func (k Keeper) IndexCdpByCollateralRatio(ctx sdk.Context, denom string, id uint64, collateralRatio sdk.Dec)
- func (k Keeper) IndexCdpByOwner(ctx sdk.Context, cdp types.CDP)
- func (k Keeper) IterateAllCdps(ctx sdk.Context, cb func(cdp types.CDP) (stop bool))
- func (k Keeper) IterateCdpsByCollateralRatio(ctx sdk.Context, denom string, targetRatio sdk.Dec, ...)
- func (k Keeper) IterateCdpsByDenom(ctx sdk.Context, denom string, cb func(cdp types.CDP) (stop bool))
- func (k Keeper) IterateDeposits(ctx sdk.Context, cdpID uint64, cb func(deposit types.Deposit) (stop bool))
- func (k Keeper) LiquidateCdps(ctx sdk.Context, marketID string, denom string, liquidationRatio sdk.Dec) error
- func (k Keeper) LoadAugmentedCDP(ctx sdk.Context, cdp types.CDP) types.AugmentedCDP
- func (k Keeper) MintDebtCoins(ctx sdk.Context, moduleAccount string, denom string, principalCoins sdk.Coin) error
- func (k Keeper) NetSurplusAndDebt(ctx sdk.Context) error
- func (k Keeper) RemoveCdpCollateralRatioIndex(ctx sdk.Context, denom string, id uint64, collateralRatio sdk.Dec)
- func (k Keeper) RemoveCdpOwnerIndex(ctx sdk.Context, cdp types.CDP)
- func (k Keeper) RepayPrincipal(ctx sdk.Context, owner sdk.AccAddress, denom string, payment sdk.Coin) error
- func (k Keeper) ReturnCollateral(ctx sdk.Context, cdp types.CDP)
- func (k Keeper) RunSurplusAndDebtAuctions(ctx sdk.Context) error
- func (k Keeper) SeizeCollateral(ctx sdk.Context, cdp types.CDP) error
- func (k Keeper) SetCDP(ctx sdk.Context, cdp types.CDP) error
- func (k Keeper) SetCdpAndCollateralRatioIndex(ctx sdk.Context, cdp types.CDP, ratio sdk.Dec) error
- func (k Keeper) SetDebtDenom(ctx sdk.Context, denom string)
- func (k Keeper) SetDeposit(ctx sdk.Context, deposit types.Deposit)
- func (k Keeper) SetGovDenom(ctx sdk.Context, denom string)
- func (k Keeper) SetMarketStatus(ctx sdk.Context, marketID string, up bool)
- func (k Keeper) SetNextCdpID(ctx sdk.Context, id uint64)
- func (k Keeper) SetParams(ctx sdk.Context, params types.Params)
- func (k Keeper) SetPreviousSavingsDistribution(ctx sdk.Context, distTime time.Time)
- func (k Keeper) SetTotalPrincipal(ctx sdk.Context, collateralDenom string, principalDenom string, total sdk.Int)
- func (k Keeper) UpdateFeesForAllCdps(ctx sdk.Context, collateralDenom string) error
- func (k Keeper) UpdatePricefeedStatus(ctx sdk.Context, marketID string) (ok bool)
- func (k Keeper) ValidateCollateral(ctx sdk.Context, collateral sdk.Coin) error
- func (k Keeper) ValidateCollateralizationRatio(ctx sdk.Context, collateral sdk.Coin, principal sdk.Coin, fees sdk.Coin) error
- func (k Keeper) ValidateDebtLimit(ctx sdk.Context, collateralDenom string, principal sdk.Coin) error
- func (k Keeper) ValidatePaymentCoins(ctx sdk.Context, cdp types.CDP, payment sdk.Coin) error
- func (k Keeper) ValidatePrincipalAdd(ctx sdk.Context, principal sdk.Coin) error
- func (k Keeper) ValidatePrincipalDraw(ctx sdk.Context, principal sdk.Coin, expectedDenom string) error
- func (k Keeper) WithdrawCollateral(ctx sdk.Context, owner, depositor sdk.AccAddress, collateral sdk.Coin) error
Constants ¶
const BaseDigitFactor = 1000000000000000000
BaseDigitFactor is 10**18, used during coin calculations
Variables ¶
This section is empty.
Functions ¶
func NewQuerier ¶
NewQuerier returns a new querier function
Types ¶
type Keeper ¶
type Keeper struct {
// contains filtered or unexported fields
}
Keeper keeper for the cdp module
func NewKeeper ¶
func NewKeeper(cdc *codec.Codec, key sdk.StoreKey, paramstore subspace.Subspace, pfk types.PricefeedKeeper, ak types.AuctionKeeper, sk types.SupplyKeeper, ack types.AccountKeeper, maccs map[string][]string) Keeper
NewKeeper creates a new keeper
func (Keeper) AddCdp ¶
func (k Keeper) AddCdp(ctx sdk.Context, owner sdk.AccAddress, collateral sdk.Coin, principal sdk.Coin) error
AddCdp adds a cdp for a specific owner and collateral type
func (Keeper) AddPrincipal ¶
func (k Keeper) AddPrincipal(ctx sdk.Context, owner sdk.AccAddress, denom string, principal sdk.Coin) error
AddPrincipal adds debt to a cdp if the additional debt does not put the cdp below the liquidation ratio
func (Keeper) ApplyLiquidationPenalty ¶
ApplyLiquidationPenalty multiplies the input debt amount by the liquidation penalty and mints the debt coins in the cdp module account
func (Keeper) AuctionCollateral ¶
func (k Keeper) AuctionCollateral(ctx sdk.Context, deposits types.Deposits, debt sdk.Int, bidDenom string) error
AuctionCollateral creates auctions from the input deposits which attempt to raise the corresponding amount of debt
func (Keeper) BurnDebtCoins ¶
func (k Keeper) BurnDebtCoins(ctx sdk.Context, moduleAccount string, denom string, paymentCoins sdk.Coin) error
BurnDebtCoins burns debt coins from the cdp module account
func (Keeper) CalculateCollateralToDebtRatio ¶
func (k Keeper) CalculateCollateralToDebtRatio(ctx sdk.Context, collateral sdk.Coin, debt sdk.Coin) sdk.Dec
CalculateCollateralToDebtRatio returns the collateral to debt ratio of the input collateral and debt amounts
func (Keeper) CalculateCollateralizationRatio ¶
func (k Keeper) CalculateCollateralizationRatio(ctx sdk.Context, collateral sdk.Coin, principal sdk.Coin, fees sdk.Coin, pfType pricefeedType) (sdk.Dec, error)
CalculateCollateralizationRatio returns the collateralization ratio of the input collateral to the input debt plus fees
func (Keeper) CalculateCollateralizationRatioFromAbsoluteRatio ¶
func (k Keeper) CalculateCollateralizationRatioFromAbsoluteRatio(ctx sdk.Context, collateralDenom string, absoluteRatio sdk.Dec, pfType pricefeedType) (sdk.Dec, error)
CalculateCollateralizationRatioFromAbsoluteRatio takes a coin's denom and an absolute ratio and returns the respective collateralization ratio
func (Keeper) CalculateFees ¶
func (k Keeper) CalculateFees(ctx sdk.Context, principal sdk.Coin, periods sdk.Int, denom string) sdk.Coin
CalculateFees returns the fees accumulated since fees were last calculated based on the input amount of outstanding debt (principal) and the number of periods (seconds) that have passed
func (Keeper) CdpCollateralRatioIndexIterator ¶
func (k Keeper) CdpCollateralRatioIndexIterator(ctx sdk.Context, denom string, targetRatio sdk.Dec) sdk.Iterator
CdpCollateralRatioIndexIterator returns an sdk.Iterator for all cdps that have collateral denom matching denom and collateral:debt ratio LESS THAN targetRatio
func (Keeper) CdpDenomIndexIterator ¶
CdpDenomIndexIterator returns an sdk.Iterator for all cdps with matching collateral denom
func (Keeper) CreateAuctionsFromDeposit ¶
func (k Keeper) CreateAuctionsFromDeposit( ctx sdk.Context, collateral sdk.Coin, returnAddr sdk.AccAddress, debt, auctionSize sdk.Int, principalDenom string) (err error)
CreateAuctionsFromDeposit creates auctions from the input deposit
func (Keeper) DecrementTotalPrincipal ¶
func (k Keeper) DecrementTotalPrincipal(ctx sdk.Context, collateralDenom string, principal sdk.Coin)
DecrementTotalPrincipal decrements the total amount of debt that has been drawn for a particular collateral type
func (Keeper) DeleteDeposit ¶
DeleteDeposit deletes a deposit from the store
func (Keeper) DepositCollateral ¶
func (k Keeper) DepositCollateral(ctx sdk.Context, owner, depositor sdk.AccAddress, collateral sdk.Coin) error
DepositCollateral adds collateral to a cdp
func (Keeper) DistributeSavingsRate ¶ added in v0.5.0
DistributeSavingsRate distributes surplus that has accumulated in the liquidator account to address holding stable coins according the the savings rate
func (Keeper) GetAllCdps ¶
GetAllCdps returns all cdps from the store
func (Keeper) GetAllCdpsByDenom ¶
GetAllCdpsByDenom returns all cdps of a particular collateral type from the store
func (Keeper) GetAllCdpsByDenomAndRatio ¶
func (k Keeper) GetAllCdpsByDenomAndRatio(ctx sdk.Context, denom string, targetRatio sdk.Dec) (cdps types.CDPs)
GetAllCdpsByDenomAndRatio returns all cdps of a particular collateral type and below a certain collateralization ratio
func (Keeper) GetCdpByOwnerAndDenom ¶
func (k Keeper) GetCdpByOwnerAndDenom(ctx sdk.Context, owner sdk.AccAddress, denom string) (types.CDP, bool)
GetCdpByOwnerAndDenom queries cdps owned by owner and returns the cdp with matching denom
func (Keeper) GetCdpID ¶
GetCdpID returns the id of the cdp corresponding to a specific owner and collateral denom
func (Keeper) GetCdpIdsByOwner ¶
GetCdpIdsByOwner returns all the ids of cdps corresponding to a particular owner
func (Keeper) GetCollateral ¶
GetCollateral returns the collateral param with corresponding denom
func (Keeper) GetDebtDenom ¶
GetDebtDenom returns the denom of debt in the system
func (Keeper) GetDebtParam ¶
GetDebtParam returns the debt param with matching denom
func (Keeper) GetDenomPrefix ¶
GetDenomPrefix returns the prefix of the matching denom
func (Keeper) GetDeposit ¶
func (k Keeper) GetDeposit(ctx sdk.Context, cdpID uint64, depositor sdk.AccAddress) (deposit types.Deposit, found bool)
GetDeposit returns the deposit of a depositor on a particular cdp from the store
func (Keeper) GetDeposits ¶
GetDeposits returns all the deposits to a cdp
func (Keeper) GetGovDenom ¶
GetGovDenom returns the denom of debt in the system
func (Keeper) GetMarketStatus ¶ added in v0.8.0
GetMarketStatus returns true if the market has a price, otherwise false
func (Keeper) GetNextCdpID ¶
GetNextCdpID returns the highest cdp id from the store
func (Keeper) GetPreviousSavingsDistribution ¶ added in v0.5.0
GetPreviousSavingsDistribution get the time of the previous savings rate distribution
func (Keeper) GetTotalDebt ¶
GetTotalDebt returns the total amount of debt tokens held by the liquidator module account
func (Keeper) GetTotalPrincipal ¶
func (k Keeper) GetTotalPrincipal(ctx sdk.Context, collateralDenom string, principalDenom string) (total sdk.Int)
GetTotalPrincipal returns the total amount of principal that has been drawn for a particular collateral
func (Keeper) GetTotalSurplus ¶
GetTotalSurplus returns the total amount of surplus tokens held by the liquidator module account
func (Keeper) IncrementTotalPrincipal ¶
func (k Keeper) IncrementTotalPrincipal(ctx sdk.Context, collateralDenom string, principal sdk.Coin)
IncrementTotalPrincipal increments the total amount of debt that has been drawn with that collateral type
func (Keeper) IndexCdpByCollateralRatio ¶
func (k Keeper) IndexCdpByCollateralRatio(ctx sdk.Context, denom string, id uint64, collateralRatio sdk.Dec)
IndexCdpByCollateralRatio sets the cdp id in the store, indexed by the collateral type and collateral to debt ratio
func (Keeper) IndexCdpByOwner ¶
IndexCdpByOwner sets the cdp id in the store, indexed by the owner
func (Keeper) IterateAllCdps ¶
IterateAllCdps iterates over all cdps and performs a callback function
func (Keeper) IterateCdpsByCollateralRatio ¶
func (k Keeper) IterateCdpsByCollateralRatio(ctx sdk.Context, denom string, targetRatio sdk.Dec, cb func(cdp types.CDP) (stop bool))
IterateCdpsByCollateralRatio iterate over cdps with collateral denom equal to denom and collateral:debt ratio LESS THAN targetRatio and performs a callback function.
func (Keeper) IterateCdpsByDenom ¶
func (k Keeper) IterateCdpsByDenom(ctx sdk.Context, denom string, cb func(cdp types.CDP) (stop bool))
IterateCdpsByDenom iterates over cdps with matching denom and performs a callback function
func (Keeper) IterateDeposits ¶
func (k Keeper) IterateDeposits(ctx sdk.Context, cdpID uint64, cb func(deposit types.Deposit) (stop bool))
IterateDeposits iterates over the all the deposits of a cdp and performs a callback function
func (Keeper) LiquidateCdps ¶
func (k Keeper) LiquidateCdps(ctx sdk.Context, marketID string, denom string, liquidationRatio sdk.Dec) error
LiquidateCdps seizes collateral from all CDPs below the input liquidation ratio
func (Keeper) LoadAugmentedCDP ¶
LoadAugmentedCDP creates a new augmented CDP from an existing CDP
func (Keeper) MintDebtCoins ¶
func (k Keeper) MintDebtCoins(ctx sdk.Context, moduleAccount string, denom string, principalCoins sdk.Coin) error
MintDebtCoins mints debt coins in the cdp module account
func (Keeper) NetSurplusAndDebt ¶
NetSurplusAndDebt burns surplus and debt coins equal to the minimum of surplus and debt balances held by the liquidator module account for example, if there is 1000 debt and 100 surplus, 100 surplus and 100 debt are burned, netting to 900 debt
func (Keeper) RemoveCdpCollateralRatioIndex ¶
func (k Keeper) RemoveCdpCollateralRatioIndex(ctx sdk.Context, denom string, id uint64, collateralRatio sdk.Dec)
RemoveCdpCollateralRatioIndex deletes the cdp id from the store's index of cdps by collateral type and collateral to debt ratio
func (Keeper) RemoveCdpOwnerIndex ¶
RemoveCdpOwnerIndex deletes the cdp id from the store's index of cdps by owner
func (Keeper) RepayPrincipal ¶
func (k Keeper) RepayPrincipal(ctx sdk.Context, owner sdk.AccAddress, denom string, payment sdk.Coin) error
RepayPrincipal removes debt from the cdp If all debt is repaid, the collateral is returned to depositors and the cdp is removed from the store
func (Keeper) ReturnCollateral ¶
ReturnCollateral returns collateral to depositors on a cdp and removes deposits from the store
func (Keeper) RunSurplusAndDebtAuctions ¶
RunSurplusAndDebtAuctions nets the surplus and debt balances and then creates surplus or debt auctions if the remaining balance is above the auction threshold parameter
func (Keeper) SeizeCollateral ¶
SeizeCollateral liquidates the collateral in the input cdp. the following operations are performed: 1. updates the fees for the input cdp, 2. sends collateral for all deposits from the cdp module to the liquidator module account 3. Applies the liquidation penalty and mints the corresponding amount of debt coins in the cdp module 4. moves debt coins from the cdp module to the liquidator module account, 5. decrements the total amount of principal outstanding for that collateral type (this is the equivalent of saying that fees are no longer accumulated by a cdp once it gets liquidated)
func (Keeper) SetCdpAndCollateralRatioIndex ¶
SetCdpAndCollateralRatioIndex sets the cdp and collateral ratio index in the store
func (Keeper) SetDebtDenom ¶
SetDebtDenom set the denom of debt in the system
func (Keeper) SetDeposit ¶
SetDeposit sets the deposit in the store
func (Keeper) SetGovDenom ¶
SetGovDenom set the denom of the governance token in the system
func (Keeper) SetMarketStatus ¶ added in v0.8.0
SetMarketStatus sets the status of the input market, true means the market is up and running, false means it is down
func (Keeper) SetNextCdpID ¶
SetNextCdpID sets the highest cdp id in the store
func (Keeper) SetPreviousSavingsDistribution ¶ added in v0.5.0
SetPreviousSavingsDistribution set the time of the previous block
func (Keeper) SetTotalPrincipal ¶
func (k Keeper) SetTotalPrincipal(ctx sdk.Context, collateralDenom string, principalDenom string, total sdk.Int)
SetTotalPrincipal sets the total amount of principal that has been drawn for the input collateral
func (Keeper) UpdateFeesForAllCdps ¶ added in v0.8.0
UpdateFeesForAllCdps updates the fees for each of the CDPs
func (Keeper) UpdatePricefeedStatus ¶ added in v0.8.0
UpdatePricefeedStatus determines if the price of an asset is available and updates the global status of the market
func (Keeper) ValidateCollateral ¶
ValidateCollateral validates that a collateral is valid for use in cdps
func (Keeper) ValidateCollateralizationRatio ¶
func (k Keeper) ValidateCollateralizationRatio(ctx sdk.Context, collateral sdk.Coin, principal sdk.Coin, fees sdk.Coin) error
ValidateCollateralizationRatio validate that adding the input principal doesn't put the cdp below the liquidation ratio
func (Keeper) ValidateDebtLimit ¶
func (k Keeper) ValidateDebtLimit(ctx sdk.Context, collateralDenom string, principal sdk.Coin) error
ValidateDebtLimit validates that the input debt amount does not exceed the global debt limit or the debt limit for that collateral
func (Keeper) ValidatePaymentCoins ¶
ValidatePaymentCoins validates that the input coins are valid for repaying debt
func (Keeper) ValidatePrincipalAdd ¶
ValidatePrincipalAdd validates that an asset is valid for use as debt when creating a new cdp
func (Keeper) ValidatePrincipalDraw ¶
func (k Keeper) ValidatePrincipalDraw(ctx sdk.Context, principal sdk.Coin, expectedDenom string) error
ValidatePrincipalDraw validates that an asset is valid for use as debt when drawing debt off an existing cdp
func (Keeper) WithdrawCollateral ¶
func (k Keeper) WithdrawCollateral(ctx sdk.Context, owner, depositor sdk.AccAddress, collateral sdk.Coin) error
WithdrawCollateral removes collateral from a cdp if it does not put the cdp below the liquidation ratio