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, collateralType string, ...) error
- func (k Keeper) ApplyLiquidationPenalty(ctx sdk.Context, collateralType string, debt sdk.Int) sdk.Int
- func (k Keeper) AuctionCollateral(ctx sdk.Context, deposits types.Deposits, collateralType string, debt sdk.Int, ...) 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, collateralType string, debt sdk.Coin) sdk.Dec
- func (k Keeper) CalculateCollateralizationRatio(ctx sdk.Context, collateral sdk.Coin, collateralType string, ...) (sdk.Dec, error)
- func (k Keeper) CalculateCollateralizationRatioFromAbsoluteRatio(ctx sdk.Context, collateralType string, absoluteRatio sdk.Dec, ...) (sdk.Dec, error)
- func (k Keeper) CalculateFees(ctx sdk.Context, principal sdk.Coin, periods sdk.Int, collateralType string) sdk.Coin
- func (k Keeper) CdpCollateralRatioIndexIterator(ctx sdk.Context, collateralType string, targetRatio sdk.Dec) sdk.Iterator
- func (k Keeper) CdpDenomIndexIterator(ctx sdk.Context, collateralType string) sdk.Iterator
- func (k Keeper) CreateAuctionsFromDeposit(ctx sdk.Context, collateral sdk.Coin, collateralType string, ...) error
- func (k Keeper) DecrementTotalPrincipal(ctx sdk.Context, collateralType 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) GetAllCdpsByCollateralType(ctx sdk.Context, collateralType string) (cdps types.CDPs)
- func (k Keeper) GetAllCdpsByCollateralTypeAndRatio(ctx sdk.Context, collateralType string, targetRatio sdk.Dec) (cdps types.CDPs)
- func (k Keeper) GetCDP(ctx sdk.Context, collateralType string, cdpID uint64) (types.CDP, bool)
- func (k Keeper) GetCdpByOwnerAndCollateralType(ctx sdk.Context, owner sdk.AccAddress, collateralType string) (types.CDP, bool)
- func (k Keeper) GetCdpID(ctx sdk.Context, owner sdk.AccAddress, collateralType string) (uint64, bool)
- func (k Keeper) GetCdpIdsByOwner(ctx sdk.Context, owner sdk.AccAddress) ([]uint64, bool)
- func (k Keeper) GetCollateral(ctx sdk.Context, collateralType string) (types.CollateralParam, bool)
- func (k Keeper) GetCollateralTypePrefix(ctx sdk.Context, collateralType string) (byte, 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) 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, collateralType, principalDenom string) (total sdk.Int)
- func (k Keeper) GetTotalSurplus(ctx sdk.Context, accountName string) sdk.Int
- func (k Keeper) IncrementTotalPrincipal(ctx sdk.Context, collateralType string, principal sdk.Coin)
- func (k Keeper) IndexCdpByCollateralRatio(ctx sdk.Context, collateralType 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, collateralType string, targetRatio sdk.Dec, ...)
- func (k Keeper) IterateCdpsByCollateralType(ctx sdk.Context, collateralType 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, collateralType string, ...) 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, collateralType 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, collateralType 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, collateralType, principalDenom string, total sdk.Int)
- func (k Keeper) UpdateFeesForAllCdps(ctx sdk.Context, collateralType string) error
- func (k Keeper) UpdatePricefeedStatus(ctx sdk.Context, marketID string) (ok bool)
- func (k Keeper) ValidateCollateral(ctx sdk.Context, collateral sdk.Coin, collateralType string) error
- func (k Keeper) ValidateCollateralizationRatio(ctx sdk.Context, collateral sdk.Coin, collateralType string, ...) error
- func (k Keeper) ValidateDebtLimit(ctx sdk.Context, collateralType 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, collateralType string) 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, collateralType 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 ¶
func (k Keeper) ApplyLiquidationPenalty(ctx sdk.Context, collateralType string, debt sdk.Int) sdk.Int
ApplyLiquidationPenalty multiplies the input debt amount by the liquidation penalty
func (Keeper) AuctionCollateral ¶
func (k Keeper) AuctionCollateral(ctx sdk.Context, deposits types.Deposits, collateralType string, 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, collateralType string, 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, collateralType string, 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, collateralType 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, collateralType 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, collateralType 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, collateralType string, returnAddr sdk.AccAddress, debt, auctionSize sdk.Int, principalDenom string) error
CreateAuctionsFromDeposit creates auctions from the input deposit
func (Keeper) DecrementTotalPrincipal ¶
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, collateralType string) 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) GetAllCdpsByCollateralType ¶ added in v0.11.0
func (k Keeper) GetAllCdpsByCollateralType(ctx sdk.Context, collateralType string) (cdps types.CDPs)
GetAllCdpsByCollateralType returns all cdps of a particular collateral type from the store
func (Keeper) GetAllCdpsByCollateralTypeAndRatio ¶ added in v0.11.0
func (k Keeper) GetAllCdpsByCollateralTypeAndRatio(ctx sdk.Context, collateralType string, targetRatio sdk.Dec) (cdps types.CDPs)
GetAllCdpsByCollateralTypeAndRatio returns all cdps of a particular collateral type and below a certain collateralization ratio
func (Keeper) GetCdpByOwnerAndCollateralType ¶ added in v0.11.0
func (k Keeper) GetCdpByOwnerAndCollateralType(ctx sdk.Context, owner sdk.AccAddress, collateralType string) (types.CDP, bool)
GetCdpByOwnerAndCollateralType queries cdps owned by owner and returns the cdp with matching denom
func (Keeper) GetCdpID ¶
func (k Keeper) GetCdpID(ctx sdk.Context, owner sdk.AccAddress, collateralType string) (uint64, bool)
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) GetCollateralTypePrefix ¶ added in v0.11.0
GetCollateralTypePrefix returns the prefix of the matching 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) 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 the governance token
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, collateralType, 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 ¶
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, collateralType 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, collateralType 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) IterateCdpsByCollateralType ¶ added in v0.11.0
func (k Keeper) IterateCdpsByCollateralType(ctx sdk.Context, collateralType string, cb func(cdp types.CDP) (stop bool))
IterateCdpsByCollateralType 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, collateralType 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, collateralType 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, collateralType 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. Collateral for all deposits is sent from the cdp module to the liquidator module account 2. The liquidation penalty is applied 3. Debt coins are sent from the cdp module to the liquidator module account 4. The total amount of principal outstanding for that collateral type is decremented (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, collateralType, 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 ¶
func (k Keeper) ValidateCollateral(ctx sdk.Context, collateral sdk.Coin, collateralType string) error
ValidateCollateral validates that a collateral is valid for use in cdps
func (Keeper) ValidateCollateralizationRatio ¶
func (k Keeper) ValidateCollateralizationRatio(ctx sdk.Context, collateral sdk.Coin, collateralType string, 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 ¶
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