Documentation ¶
Overview ¶
nolint
Index ¶
- Variables
- func AllocateRewards(t *testing.T, input TestInput, pair string, rewards sdk.Coins, ...)
- func FundAccount(input TestInput, addr sdk.AccAddress, amounts sdk.Coins) error
- func MakeEncodingConfig(_ *testing.T) simparams.EncodingConfig
- func MakeTestCodec(t *testing.T) codec.Codec
- func NewMsgServerImpl(keeper Keeper) types.MsgServer
- func NewQuerier(keeper Keeper) types.QueryServer
- func NewTestMsgCreateValidator(address sdk.ValAddress, pubKey cryptotypes.PubKey, amt sdk.Int) *stakingtypes.MsgCreateValidator
- func Tally(ballot types.ExchangeRateBallot, rewardBand sdk.Dec, ...) sdk.Dec
- type Keeper
- func (k Keeper) AccrueVotePeriodPairRewards(ctx sdk.Context, pair string) sdk.Coins
- func (k Keeper) AllocatePairRewards(ctx sdk.Context, funderModule string, pair string, totalCoins sdk.Coins, ...) error
- func (k Keeper) GetOracleAccount(ctx sdk.Context) authtypes.ModuleAccountI
- func (k Keeper) GetParams(ctx sdk.Context) (params types.Params)
- func (k Keeper) GetWhitelistedPairs(ctx sdk.Context) (voteTargets []string)
- func (k Keeper) IsWhitelistedPair(ctx sdk.Context, pair string) bool
- func (k Keeper) Logger(ctx sdk.Context) log.Logger
- func (k Keeper) MinValidPerWindow(ctx sdk.Context) (res sdk.Dec)
- func (k Keeper) RemoveInvalidBallots(ctx sdk.Context, pairBallotMap map[string]types.ExchangeRateBallot) (map[string]types.ExchangeRateBallot, map[string]struct{})
- func (k Keeper) RewardBand(ctx sdk.Context) (res sdk.Dec)
- func (k Keeper) SetParams(ctx sdk.Context, params types.Params)
- func (k Keeper) SetWhitelist(ctx sdk.Context, whitelist []string)
- 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) UpdateExchangeRates(ctx sdk.Context)
- func (k Keeper) ValidateFeeder(ctx sdk.Context, feederAddr sdk.AccAddress, validatorAddr 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) Whitelist(ctx sdk.Context) (res []string)
- type PairRewardsIndexes
- type TestInput
Constants ¶
This section is empty.
Variables ¶
var ( ValPubKeys = simapp.CreateTestPubKeys(5) Addrs = []sdk.AccAddress{ sdk.AccAddress(pubKeys[0].Address()), sdk.AccAddress(pubKeys[1].Address()), sdk.AccAddress(pubKeys[2].Address()), sdk.AccAddress(pubKeys[3].Address()), sdk.AccAddress(pubKeys[4].Address()), } ValAddrs = []sdk.ValAddress{ sdk.ValAddress(pubKeys[0].Address()), sdk.ValAddress(pubKeys[1].Address()), sdk.ValAddress(pubKeys[2].Address()), sdk.ValAddress(pubKeys[3].Address()), sdk.ValAddress(pubKeys[4].Address()), } InitTokens = sdk.TokensFromConsensusPower(200, sdk.DefaultPowerReduction) InitCoins = sdk.NewCoins(sdk.NewCoin(common.DenomNIBI, InitTokens)) OracleDecPrecision = 8 )
Test addresses
var ModuleBasics = module.NewBasicManager( auth.AppModuleBasic{}, bank.AppModuleBasic{}, distr.AppModuleBasic{}, staking.AppModuleBasic{}, params.AppModuleBasic{}, )
ModuleBasics nolint
Functions ¶
func AllocateRewards ¶ added in v0.15.0
func FundAccount ¶
FundAccount is a utility function that funds an account by minting and sending the coins to the address. This should be used for testing purposes only!
func MakeEncodingConfig ¶
func MakeEncodingConfig(_ *testing.T) simparams.EncodingConfig
MakeEncodingConfig nolint
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.
func NewTestMsgCreateValidator ¶
func NewTestMsgCreateValidator(address sdk.ValAddress, pubKey cryptotypes.PubKey, amt sdk.Int) *stakingtypes.MsgCreateValidator
NewTestMsgCreateValidator test msg creator
func Tally ¶ added in v0.14.0
func Tally(ballot types.ExchangeRateBallot, rewardBand sdk.Dec, validatorPerformanceMap map[string]types.ValidatorPerformance) sdk.Dec
Tally calculates the median and returns it. Sets the set of voters to be rewarded, i.e. voted within a reasonable spread from the weighted median to the store
Types ¶
type Keeper ¶
type Keeper struct { StakingKeeper types.StakingKeeper // TODO(mercilex): use asset pair ExchangeRates collections.Map[string, sdk.Dec] FeederDelegations collections.Map[sdk.ValAddress, sdk.AccAddress] MissCounters collections.Map[sdk.ValAddress, uint64] Prevotes collections.Map[sdk.ValAddress, types.AggregateExchangeRatePrevote] Votes collections.Map[sdk.ValAddress, types.AggregateExchangeRateVote] // TODO(mercilex): use asset pair Pairs collections.KeySet[string] PairRewards collections.IndexedMap[uint64, types.PairReward, PairRewardsIndexes] PairRewardsID collections.Sequence // contains filtered or unexported fields }
Keeper of the oracle store
func NewKeeper ¶
func NewKeeper(cdc codec.BinaryCodec, storeKey sdk.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) AccrueVotePeriodPairRewards ¶ added in v0.15.0
AccrueVotePeriodPairRewards retrieves the vote period rewards for the provided pair. And decreases the distribution period count of each pair reward instance. If the distribution period count drops to 0: the reward instance is removed. TODO(mercilex): don't like API name
func (Keeper) AllocatePairRewards ¶ added in v0.15.0
func (Keeper) GetOracleAccount ¶
func (k Keeper) GetOracleAccount(ctx sdk.Context) authtypes.ModuleAccountI
GetOracleAccount returns oracle ModuleAccount
func (Keeper) GetWhitelistedPairs ¶ added in v0.16.1
GetWhitelistedPairs returns the voting target list on current vote period
func (Keeper) IsWhitelistedPair ¶ added in v0.16.1
IsWhitelistedPair returns existence of a pair in the voting target list
func (Keeper) MinValidPerWindow ¶
MinValidPerWindow returns oracle slashing threshold
func (Keeper) RemoveInvalidBallots ¶ added in v0.16.1
func (k Keeper) RemoveInvalidBallots( ctx sdk.Context, pairBallotMap map[string]types.ExchangeRateBallot, ) (map[string]types.ExchangeRateBallot, map[string]struct{})
RemoveInvalidBallots removes the ballots which have not reached the vote threshold or which are not part of the whitelisted pairs anymore: example when params change during a vote period but some votes were already made.
func (Keeper) RewardBand ¶
RewardBand returns the ratio of allowable exchange rate error that a validator can be rewared
func (Keeper) SetWhitelist ¶
SetWhitelist store new whitelist to param store this function is only for test purpose
func (Keeper) SlashAndResetMissCounters ¶
SlashAndResetMissCounters do slash any operator who over criteria & clear all operators miss counter to zero
func (Keeper) SlashFraction ¶
SlashFraction returns oracle voting penalty rate
func (Keeper) SlashWindow ¶
SlashWindow returns # of vote period for oracle slashing
func (Keeper) UpdateExchangeRates ¶ added in v0.14.0
UpdateExchangeRates updates the ExchangeRates, this is supposed to be executed on EndBlock.
func (Keeper) ValidateFeeder ¶
func (k Keeper) ValidateFeeder(ctx sdk.Context, feederAddr sdk.AccAddress, validatorAddr sdk.ValAddress) error
ValidateFeeder return the given feeder is allowed to feed the message or not
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.
type PairRewardsIndexes ¶ added in v0.15.0
type PairRewardsIndexes struct { // RewardsByPair is the index that maps rewards associated with specific pairs. RewardsByPair collections.MultiIndex[string, uint64, types.PairReward] }
func (PairRewardsIndexes) IndexerList ¶ added in v0.15.0
func (p PairRewardsIndexes) IndexerList() []collections.Indexer[uint64, types.PairReward]
type TestInput ¶
type TestInput struct { Ctx sdk.Context Cdc *codec.LegacyAmino AccountKeeper authkeeper.AccountKeeper BankKeeper bankkeeper.Keeper OracleKeeper Keeper StakingKeeper stakingkeeper.Keeper DistrKeeper distrkeeper.Keeper }
TestInput nolint
func CreateTestInput ¶
CreateTestInput nolint Creates a base app, with 5 accounts,