Documentation ¶
Index ¶
- func NewMsgServerImpl(keeper Keeper) types.MsgServer
- func NewQuerier(keeper Keeper) types.QueryServer
- type IterateExchangeRateVote
- type IterateFeederDelegationHandler
- type Keeper
- func (k Keeper) AcceptList(ctx sdk.Context) (res types.DenomList)
- func (k Keeper) AddHistoricPrice(ctx sdk.Context, denom string, exchangeRate sdk.Dec)
- func (k Keeper) AllHistoricPrices(ctx sdk.Context) types.PriceStamps
- func (k Keeper) AllMedianDeviationPrices(ctx sdk.Context) types.PriceStamps
- func (k Keeper) AllMedianPrices(ctx sdk.Context) types.PriceStamps
- func (k Keeper) AverageOfHistoricMedians(ctx sdk.Context, denom string, numStamps uint64) (sdk.Dec, uint32, error)
- func (k Keeper) CalcAndSetHistoricMedian(ctx sdk.Context, denom string) error
- func (k Keeper) ClearBallots(ctx sdk.Context, votePeriod uint64)
- func (k Keeper) ClearExchangeRates(ctx sdk.Context)
- func (k Keeper) DeleteAggregateExchangeRatePrevote(ctx sdk.Context, voter sdk.ValAddress)
- func (k Keeper) DeleteAggregateExchangeRateVote(ctx sdk.Context, voter sdk.ValAddress)
- func (k Keeper) DeleteHistoricMedian(ctx sdk.Context, denom string, blockNum uint64)
- func (k Keeper) DeleteHistoricMedianDeviation(ctx sdk.Context, denom string, blockNum uint64)
- func (k Keeper) DeleteHistoricPrice(ctx sdk.Context, denom string, blockNum uint64)
- func (k Keeper) DeleteMissCounter(ctx sdk.Context, operator sdk.ValAddress)
- func (k Keeper) GetAggregateExchangeRatePrevote(ctx sdk.Context, voter sdk.ValAddress) (types.AggregateExchangeRatePrevote, error)
- func (k Keeper) GetAggregateExchangeRateVote(ctx sdk.Context, voter sdk.ValAddress) (types.AggregateExchangeRateVote, error)
- func (k Keeper) GetExchangeRate(ctx sdk.Context, symbol string) (sdk.Dec, error)
- func (k Keeper) GetExchangeRateBase(ctx sdk.Context, denom string) (sdk.Dec, error)
- func (k Keeper) GetFeederDelegation(ctx sdk.Context, vAddr sdk.ValAddress) (sdk.AccAddress, error)
- func (k Keeper) GetMissCounter(ctx sdk.Context, operator sdk.ValAddress) uint64
- func (k Keeper) GetOracleAccount(ctx sdk.Context) authtypes.ModuleAccountI
- func (k Keeper) GetParams(ctx sdk.Context) (params types.Params)
- func (k Keeper) GetRewardPool(ctx sdk.Context, denom string) sdk.Coin
- func (k Keeper) HasAggregateExchangeRatePrevote(ctx sdk.Context, voter sdk.ValAddress) bool
- func (k Keeper) HistoricMedianDeviation(ctx sdk.Context, denom string) (sdk.Dec, error)
- func (k Keeper) HistoricMedians(ctx sdk.Context, denom string, numStamps uint64) []sdk.Dec
- func (k Keeper) HistoricStampPeriod(ctx sdk.Context) (res uint64)
- func (k *Keeper) IsPeriodLastBlock(ctx sdk.Context, blocksPerPeriod uint64) bool
- func (k Keeper) IterateAggregateExchangeRatePrevotes(ctx sdk.Context, ...)
- func (k Keeper) IterateAggregateExchangeRateVotes(ctx sdk.Context, handler IterateExchangeRateVote)
- func (k Keeper) IterateAllHistoricPrices(ctx sdk.Context, handler func(types.PriceStamp) bool)
- func (k Keeper) IterateAllMedianDeviationPrices(ctx sdk.Context, handler func(types.PriceStamp) bool)
- func (k Keeper) IterateAllMedianPrices(ctx sdk.Context, handler func(types.PriceStamp) bool)
- func (k Keeper) IterateExchangeRates(ctx sdk.Context, handler func(string, sdk.Dec) bool)
- func (k Keeper) IterateFeederDelegations(ctx sdk.Context, handler IterateFeederDelegationHandler)
- func (k Keeper) IterateHistoricMedians(ctx sdk.Context, denom string, numStamps uint, handler func(sdk.Dec) bool)
- func (k Keeper) IterateHistoricPrices(ctx sdk.Context, denom string, numStamps uint, handler func(sdk.Dec) bool)
- func (k Keeper) IterateMissCounters(ctx sdk.Context, handler func(sdk.ValAddress, uint64) bool)
- func (k Keeper) Logger(ctx sdk.Context) log.Logger
- func (k Keeper) MandatoryList(ctx sdk.Context) (res types.DenomList)
- func (k Keeper) MaxOfHistoricMedians(ctx sdk.Context, denom string, numStamps uint64) (sdk.Dec, uint32, error)
- func (k Keeper) MaximumMedianStamps(ctx sdk.Context) (res uint64)
- func (k Keeper) MaximumPriceStamps(ctx sdk.Context) (res uint64)
- func (k Keeper) MedianOfHistoricMedians(ctx sdk.Context, denom string, numStamps uint64) (sdk.Dec, uint32, error)
- func (k Keeper) MedianStampPeriod(ctx sdk.Context) (res uint64)
- func (k Keeper) MinOfHistoricMedians(ctx sdk.Context, denom string, numStamps uint64) (sdk.Dec, uint32, error)
- func (k Keeper) MinValidPerWindow(ctx sdk.Context) (res sdk.Dec)
- func (k Keeper) OrganizeBallotByDenom(ctx sdk.Context, validatorClaimMap map[string]types.Claim) []types.BallotDenom
- func (k Keeper) PossibleWinsPerSlashWindow(ctx sdk.Context) int64
- func (k *Keeper) PruneAllPrices(ctx sdk.Context)
- func (k Keeper) PruneHistoricPricesBeforeBlock(ctx sdk.Context, blockNum uint64)
- func (k Keeper) PruneMedianDeviationsBeforeBlock(ctx sdk.Context, blockNum uint64)
- func (k Keeper) PruneMediansBeforeBlock(ctx sdk.Context, blockNum uint64)
- func (k Keeper) RewardBallotWinners(ctx sdk.Context, votePeriod int64, rewardDistributionWindow int64, ...)
- func (k Keeper) RewardBand(ctx sdk.Context) (res sdk.Dec)
- func (k Keeper) RewardDistributionWindow(ctx sdk.Context) (res uint64)
- func (k Keeper) SetAcceptList(ctx sdk.Context, acceptList types.DenomList)
- func (k Keeper) SetAggregateExchangeRatePrevote(ctx sdk.Context, voter sdk.ValAddress, ...)
- func (k Keeper) SetAggregateExchangeRateVote(ctx sdk.Context, voter sdk.ValAddress, vote types.AggregateExchangeRateVote)
- func (k Keeper) SetExchangeRate(ctx sdk.Context, denom string, exchangeRate sdk.Dec)
- func (k Keeper) SetExchangeRateWithEvent(ctx sdk.Context, denom string, exchangeRate sdk.Dec) error
- func (k Keeper) SetFeederDelegation(ctx sdk.Context, operator sdk.ValAddress, delegatedFeeder sdk.AccAddress)
- func (k Keeper) SetHistoricMedian(ctx sdk.Context, denom string, blockNum uint64, median sdk.Dec)
- func (k Keeper) SetHistoricMedianDeviation(ctx sdk.Context, denom string, blockNum uint64, medianDeviation sdk.Dec)
- func (k Keeper) SetHistoricPrice(ctx sdk.Context, denom string, blockNum uint64, exchangeRate sdk.Dec)
- func (k Keeper) SetHistoricStampPeriod(ctx sdk.Context, historicPriceStampPeriod uint64)
- func (k Keeper) SetMandatoryList(ctx sdk.Context, mandatoryList types.DenomList)
- func (k Keeper) SetMaximumMedianStamps(ctx sdk.Context, maximumMedianStamps uint64)
- func (k Keeper) SetMaximumPriceStamps(ctx sdk.Context, maximumPriceStamps uint64)
- func (k Keeper) SetMedianStampPeriod(ctx sdk.Context, medianStampPeriod uint64)
- func (k Keeper) SetMissCounter(ctx sdk.Context, operator sdk.ValAddress, missCounter uint64)
- func (k Keeper) SetParams(ctx sdk.Context, params types.Params)
- func (k Keeper) SlashAndResetMissCounters(ctx sdk.Context)
- func (k Keeper) SlashFraction(ctx sdk.Context) (res sdk.Dec)
- func (k Keeper) SlashWindow(ctx sdk.Context) (res uint64)
- func (k Keeper) ValidateFeeder(ctx sdk.Context, feederAddr sdk.AccAddress, valAddr sdk.ValAddress) error
- func (k Keeper) VotePeriod(ctx sdk.Context) (res uint64)
- func (k Keeper) VoteThreshold(ctx sdk.Context) (res sdk.Dec)
- func (k Keeper) WithinHistoricMedianDeviation(ctx sdk.Context, denom string) (bool, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewMsgServerImpl ¶
NewMsgServerImpl returns an implementation of the oracle MsgServer interface for the provided Keeper.
func NewQuerier ¶
func NewQuerier(keeper Keeper) types.QueryServer
NewQuerier returns an implementation of the oracle QueryServer interface for the provided Keeper.
Types ¶
type IterateExchangeRateVote ¶
type IterateExchangeRateVote = func( voterAddr sdk.ValAddress, aggregateVote types.AggregateExchangeRateVote, ) (stop bool)
type IterateFeederDelegationHandler ¶
type IterateFeederDelegationHandler func(delegator sdk.ValAddress, delegate sdk.AccAddress) (stop bool)
type Keeper ¶
type Keeper struct { StakingKeeper types.StakingKeeper // contains filtered or unexported fields }
Keeper of the oracle store
func NewKeeper ¶
func NewKeeper( cdc codec.BinaryCodec, storeKey storetypes.StoreKey, paramspace paramstypes.Subspace, accountKeeper types.AccountKeeper, bankKeeper types.BankKeeper, distrKeeper types.DistributionKeeper, stakingKeeper types.StakingKeeper, distrName string, ) Keeper
NewKeeper constructs a new keeper for oracle
func (Keeper) AcceptList ¶
AcceptList returns the denom list that can be activated
func (Keeper) AddHistoricPrice ¶
AddHistoricPrice adds the historic price of a denom at the current block height.
func (Keeper) AllHistoricPrices ¶ added in v0.1.2
func (k Keeper) AllHistoricPrices(ctx sdk.Context) types.PriceStamps
AllHistoricPrices is a helper function that collects and returns all median prices using the IterateAllHistoricPrices iterator
func (Keeper) AllMedianDeviationPrices ¶ added in v0.1.2
func (k Keeper) AllMedianDeviationPrices(ctx sdk.Context) types.PriceStamps
AllMedianDeviationPrices is a helper function that collects and returns all median prices using the IterateAllMedianDeviationPrices iterator
func (Keeper) AllMedianPrices ¶ added in v0.1.2
func (k Keeper) AllMedianPrices(ctx sdk.Context) types.PriceStamps
AllMedianPrices is a helper function that collects and returns all median prices using the IterateAllMedianPrices iterator
func (Keeper) AverageOfHistoricMedians ¶
func (k Keeper) AverageOfHistoricMedians( ctx sdk.Context, denom string, numStamps uint64, ) (sdk.Dec, uint32, error)
AverageOfHistoricMedians calculates and returns the average of the last stampNum historic medians as well as the amount of medians used to calculate that average. If no medians are available, all returns are zero and error is nil.
func (Keeper) CalcAndSetHistoricMedian ¶
CalcAndSetHistoricMedian uses all the historic prices of a given denom to calculate its median price at the current block and set it to the store. It will also call setMedianDeviation with the calculated median.
func (Keeper) ClearBallots ¶
ClearBallots clears all tallied prevotes and votes from the store.
func (Keeper) ClearExchangeRates ¶
func (Keeper) DeleteAggregateExchangeRatePrevote ¶
func (k Keeper) DeleteAggregateExchangeRatePrevote(ctx sdk.Context, voter sdk.ValAddress)
DeleteAggregateExchangeRatePrevote deletes an oracle prevote from the store.
func (Keeper) DeleteAggregateExchangeRateVote ¶
func (k Keeper) DeleteAggregateExchangeRateVote(ctx sdk.Context, voter sdk.ValAddress)
DeleteAggregateExchangeRateVote deletes an oracle prevote from the store.
func (Keeper) DeleteHistoricMedian ¶
DeleteHistoricMedian deletes a given denom's median price at a given block.
func (Keeper) DeleteHistoricMedianDeviation ¶
DeleteHistoricMedianDeviation deletes a given denom's standard deviation around its median price at a given block.
func (Keeper) DeleteHistoricPrice ¶
DeleteHistoricPrice deletes the historic price of a denom at a given block.
func (Keeper) DeleteMissCounter ¶
func (k Keeper) DeleteMissCounter(ctx sdk.Context, operator sdk.ValAddress)
DeleteMissCounter removes miss counter for the validator.
func (Keeper) GetAggregateExchangeRatePrevote ¶
func (k Keeper) GetAggregateExchangeRatePrevote( ctx sdk.Context, voter sdk.ValAddress, ) (types.AggregateExchangeRatePrevote, error)
GetAggregateExchangeRatePrevote retrieves an oracle prevote from the store.
func (Keeper) GetAggregateExchangeRateVote ¶
func (k Keeper) GetAggregateExchangeRateVote( ctx sdk.Context, voter sdk.ValAddress, ) (types.AggregateExchangeRateVote, error)
GetAggregateExchangeRateVote retrieves an oracle prevote from the store.
func (Keeper) GetExchangeRate ¶
GetExchangeRate gets the consensus exchange rate of USD denominated in the denom asset from the store.
func (Keeper) GetExchangeRateBase ¶
GetExchangeRateBase gets the consensus exchange rate of an asset in the base denom (e.g. ATOM -> uatom)
func (Keeper) GetFeederDelegation ¶
func (k Keeper) GetFeederDelegation(ctx sdk.Context, vAddr sdk.ValAddress) (sdk.AccAddress, error)
GetFeederDelegation gets the account address to which the validator operator delegated oracle vote rights.
func (Keeper) GetMissCounter ¶
GetMissCounter retrieves the # of vote periods missed in this oracle slash window.
func (Keeper) GetOracleAccount ¶
func (k Keeper) GetOracleAccount(ctx sdk.Context) authtypes.ModuleAccountI
GetOracleAccount returns oracle ModuleAccount.
func (Keeper) GetRewardPool ¶
GetRewardPool retrieves the balance of the oracle module account.
func (Keeper) HasAggregateExchangeRatePrevote ¶
HasAggregateExchangeRatePrevote checks if a validator has an existing prevote.
func (Keeper) HistoricMedianDeviation ¶
HistoricMedianDeviation returns a given denom's most recently stamped standard deviation around its median price at a given block.
func (Keeper) HistoricMedians ¶
HistoricMedians returns a list of a given denom's last numStamps medians.
func (Keeper) HistoricStampPeriod ¶
HistoricStampPeriod returns the amount of blocks the oracle module waits before recording a new historic price.
func (*Keeper) IsPeriodLastBlock ¶ added in v0.1.2
IsPeriodLastBlock returns true if we are at the last block of the period
func (Keeper) IterateAggregateExchangeRatePrevotes ¶
func (k Keeper) IterateAggregateExchangeRatePrevotes( ctx sdk.Context, handler func(sdk.ValAddress, types.AggregateExchangeRatePrevote) bool, )
IterateAggregateExchangeRatePrevotes iterates rate over prevotes in the store
func (Keeper) IterateAggregateExchangeRateVotes ¶
func (k Keeper) IterateAggregateExchangeRateVotes( ctx sdk.Context, handler IterateExchangeRateVote, )
IterateAggregateExchangeRateVotes iterates rate over prevotes in the store.
func (Keeper) IterateAllHistoricPrices ¶
IterateAllHistoricPrices iterates over all historic prices. Iterator stops when exhausting the source, or when the handler returns `true`.
func (Keeper) IterateAllMedianDeviationPrices ¶
func (k Keeper) IterateAllMedianDeviationPrices( ctx sdk.Context, handler func(types.PriceStamp) bool, )
IterateAllMedianDeviationPrices iterates over all median deviation prices. Iterator stops when exhausting the source, or when the handler returns `true`.
func (Keeper) IterateAllMedianPrices ¶
IterateAllMedianPrices iterates over all median prices. Iterator stops when exhausting the source, or when the handler returns `true`.
func (Keeper) IterateExchangeRates ¶
IterateExchangeRates iterates over USD rates in the store.
func (Keeper) IterateFeederDelegations ¶
func (k Keeper) IterateFeederDelegations(ctx sdk.Context, handler IterateFeederDelegationHandler)
IterateFeederDelegations iterates over the feed delegates and performs a callback function.
func (Keeper) IterateHistoricMedians ¶
func (k Keeper) IterateHistoricMedians( ctx sdk.Context, denom string, numStamps uint, handler func(sdk.Dec) bool, )
IterateHistoricMediansSinceBlock iterates over medians of a given denom in the store in reverse. Iterator stops when exhausting the source, or when the handler returns `true`.
func (Keeper) IterateHistoricPrices ¶
func (k Keeper) IterateHistoricPrices( ctx sdk.Context, denom string, numStamps uint, handler func(sdk.Dec) bool, )
IterateHistoricPrices iterates over historic prices of a given denom in the store in reverse. Iterator stops when exhausting the source, or when the handler returns `true`.
func (Keeper) IterateMissCounters ¶
IterateMissCounters iterates over the miss counters and performs a callback function.
func (Keeper) MandatoryList ¶
MandatoryList returns the denom list that are mandatory
func (Keeper) MaxOfHistoricMedians ¶
func (k Keeper) MaxOfHistoricMedians( ctx sdk.Context, denom string, numStamps uint64, ) (sdk.Dec, uint32, error)
MaxOfHistoricMedians calculates and returns the maximum value of the last stampNum historic medians as well as the amount of medians used to calculate that maximum. If no medians are available, all returns are zero and error is nil.
func (Keeper) MaximumMedianStamps ¶
MaximumMedianStamps returns the maximum amount of medians the oracle module will hold.
func (Keeper) MaximumPriceStamps ¶
MaximumPriceStamps returns the maximum amount of historic prices the oracle module will hold.
func (Keeper) MedianOfHistoricMedians ¶
func (k Keeper) MedianOfHistoricMedians( ctx sdk.Context, denom string, numStamps uint64, ) (sdk.Dec, uint32, error)
MedianOfHistoricMedians calculates and returns the median of the last stampNum historic medians as well as the amount of medians used to calculate that median. If no medians are available, all returns are zero and error is nil.
func (Keeper) MedianStampPeriod ¶
MedianStampPeriod returns the amount blocks the oracle module waits between calculating a new median and standard deviation of that median.
func (Keeper) MinOfHistoricMedians ¶
func (k Keeper) MinOfHistoricMedians( ctx sdk.Context, denom string, numStamps uint64, ) (sdk.Dec, uint32, error)
MinOfHistoricMedians calculates and returns the minimum value of the last stampNum historic medians as well as the amount of medians used to calculate that minimum. If no medians are available, all returns are zero and error is nil.
func (Keeper) MinValidPerWindow ¶
MinValidPerWindow returns oracle slashing threshold
func (Keeper) OrganizeBallotByDenom ¶
func (k Keeper) OrganizeBallotByDenom( ctx sdk.Context, validatorClaimMap map[string]types.Claim, ) []types.BallotDenom
OrganizeBallotByDenom collects all oracle votes for the current vote period, categorized by the votes' denom parameter.
func (Keeper) PossibleWinsPerSlashWindow ¶
PossibleWinsPerSlashWindow returns the total number of possible correct votes that a validator can have per asset multiplied by the number of vote periods in the slash window
func (*Keeper) PruneAllPrices ¶ added in v0.1.2
PruneAllPrices deletes all historic prices, medians, and median deviations outside pruning period determined by the stamp period multiplied by the maximum stamps.
func (Keeper) PruneHistoricPricesBeforeBlock ¶ added in v0.1.2
func (Keeper) PruneMedianDeviationsBeforeBlock ¶ added in v0.1.2
func (Keeper) PruneMediansBeforeBlock ¶ added in v0.1.2
func (Keeper) RewardBallotWinners ¶
func (k Keeper) RewardBallotWinners( ctx sdk.Context, votePeriod int64, rewardDistributionWindow int64, voteTargets []string, ballotWinners []types.Claim, )
RewardBallotWinners is executed at the end of every voting period, where we give out a portion of seigniorage reward(reward-weight) to the oracle voters that voted correctly.
func (Keeper) RewardBand ¶
RewardBand returns the ratio of allowable exchange rate error that a validator can be rewarded.
func (Keeper) RewardDistributionWindow ¶
RewardDistributionWindow returns the number of vote periods during which seigniorage reward comes in and then is distributed.
func (Keeper) SetAcceptList ¶
SetAcceptList updates the accepted list of assets supported by the x/oracle module.
func (Keeper) SetAggregateExchangeRatePrevote ¶
func (k Keeper) SetAggregateExchangeRatePrevote( ctx sdk.Context, voter sdk.ValAddress, prevote types.AggregateExchangeRatePrevote, )
SetAggregateExchangeRatePrevote set an oracle aggregate prevote to the store.
func (Keeper) SetAggregateExchangeRateVote ¶
func (k Keeper) SetAggregateExchangeRateVote( ctx sdk.Context, voter sdk.ValAddress, vote types.AggregateExchangeRateVote, )
SetAggregateExchangeRateVote adds an oracle aggregate prevote to the store.
func (Keeper) SetExchangeRate ¶
SetExchangeRate sets the consensus exchange rate of USD denominated in the denom asset to the store.
func (Keeper) SetExchangeRateWithEvent ¶
SetExchangeRateWithEvent sets an consensus exchange rate to the store with ABCI event
func (Keeper) SetFeederDelegation ¶
func (k Keeper) SetFeederDelegation(ctx sdk.Context, operator sdk.ValAddress, delegatedFeeder sdk.AccAddress)
SetFeederDelegation sets the account address to which the validator operator delegated oracle vote rights.
func (Keeper) SetHistoricMedian ¶
func (Keeper) SetHistoricMedianDeviation ¶
func (Keeper) SetHistoricPrice ¶
func (Keeper) SetHistoricStampPeriod ¶
SetHistoricStampPeriod updates the amount of blocks the oracle module waits before recording a new historic price.
func (Keeper) SetMandatoryList ¶
SetMandatoryList updates the mandatory list of assets supported by the x/oracle module.
func (Keeper) SetMaximumMedianStamps ¶
SetMaximumMedianStamps updates the the maximum amount of medians the oracle module will hold.
func (Keeper) SetMaximumPriceStamps ¶
SetMaximumPriceStamps updates the the maximum amount of historic prices the oracle module will hold.
func (Keeper) SetMedianStampPeriod ¶
SetMedianStampPeriod updates the amount blocks the oracle module waits between calculating a new median and standard deviation of that median.
func (Keeper) SetMissCounter ¶
SetMissCounter updates the # of vote periods missed in this oracle slash window.
func (Keeper) SlashAndResetMissCounters ¶
SlashAndResetMissCounters iterates over all the current missed counters and calculates the "valid vote rate" as: (possibleWinsPerSlashWindow - missCounter)/possibleWinsPerSlashWindow.
If the valid vote rate is below the minValidPerWindow, the validator will be slashed and jailed.
func (Keeper) SlashFraction ¶
SlashFraction returns oracle voting penalty rate
func (Keeper) SlashWindow ¶
SlashWindow returns the number of total blocks in a slash window
func (Keeper) ValidateFeeder ¶
func (k Keeper) ValidateFeeder(ctx sdk.Context, feederAddr sdk.AccAddress, valAddr sdk.ValAddress) error
ValidateFeeder returns error if the given feeder is not allowed to feed the message.
func (Keeper) VotePeriod ¶
VotePeriod returns the number of blocks during which voting takes place.
func (Keeper) VoteThreshold ¶
VoteThreshold returns the minimum percentage of votes that must be received for a ballot to pass.